版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字中频的基本原理和 FPGA 的实现1基本原理数字中频主要分两部分,数字上变频(DUC)和数字下变频(DDC)。它们的主要功能是相反,但原理和实现的方法是十分相似。在 R8905 项目中由于采用了零中频技术,数字上变频和下变频有一些差别,数字上变频没有了 NCO 模块。另外为了降低输出信号的峰均比又加入了削峰模块 CFR,而 CGC 模块的引入则是补偿削峰所引起的功率损失。2倍内插 CFR
2、; HBCPRI接口处理RCF2倍内插CIC54倍内插3.84M7.68M15.36M61.44MCGC图 1 数字上变频模块框图在数字下变频中 RSSI 模块是信号的功率检测模块,它配合 AGC 电路将信号的输出功率稳定在一定范围内。NCO CIC54倍抽取HB2倍抽取RRC &
3、#160; AGCcpri61.44M15.36M7.68MRSSI图 2 数字下变频模块框图在 DDC 和 DUC 中主要使用 3 种滤波器分别是 RRC,HB 和 CIC,它们个自有个自的特点。RRC 滤波器一般来讲阶数比较多,多用于低频处。由于它的阶数比较多,所以可以得到比较锐利的带通特性,但它所用的乘法器
4、比较多。CIC 滤波器不需要乘法器,但它的带内不是很平坦,适合用在高频处。而HB 滤波器的特性正好在它们之间,它有约一半的系数是 0 可以讲乘法器的个数减少一半。削峰模块 CFR 实际上也是一组滤波器,它的功能是将 CDMA 信号中的峰值信号减小一些,以减小输出信号的峰均比,使射频功率放大器的效率更高。削峰的模块框图如图 3图 3 单级削峰示意图削峰的原理是这样的一个复信号(I,Q)如果它的模大于某个门限,就将其减去这个门限得到一个复信号(dI,dQ),否则(dI,dQ)(0,0)。将
5、(dI,dQ)送到 fir 滤波器中,fir 滤波器是一个低通滤波器将峰值限定在一定的带宽内,防止影响临道。将原信号(I,Q)减去滤波后的信号(fir_i,fir_q)就得到了削峰的值。如果有必要这这样的削峰可以连续做几次,在 R8905 设计中削峰用了两次。2 滤波器的设计由于在滤波的同时还有内插和抽取,所以充分利用这一特性可以减少 FPGA 使用的资源。另外滤波器的系数一般都是对称的,可以将头和尾的数相加再乘滤波器的系数,这样可以大大减少乘法器的使用。以 R8905 中的上变频 R
6、RC 为例来说明:设 a(n)为 RRC 滤波器的系数而 x(n)为 3.84M 输入数据则考虑了内插后的滤波器的数学表达式为y=a(0)*x(n)+a(1)*0+a(2)*x(n-1)+.+a(n-1)*0+a(0)*x(0)=a(0)*(x(n)+x(0) +a(2)*( x(n-1)+x(1).其 FPGA 实现的逻辑框图如下图 4 DUC RRC 滤波器实现逻辑图其中使用了 4 个乘法器和四个 RAM
7、0;以及一个 ROM 来存数据。RRC_CTR_6144 模块控制这些乘法器和 ROM。参考代码如下:/ Date: Sat Jul 21 10:51:51 2007/ Author: duan chenghong/ Company: zte/ Description :/RRC 滤波器用了 4 个 RAM 和 4 个乘法器完成 IQ 两
8、路的滤波功能,/I,Q 的处理方法完全相同。数据同时写入 4 个 RAM 中,但读的地址不/同,由于 RRC 滤波器的系数是对称的所以读 RAM 的地址也是对称的,将地址/对称的 RAM 读出数相加再和 RRC 滤波器系数相成再累加就可以得到最后的结果/modulerrc_ctr_6144 (waddr,raddr0, raddr1, raddr2, raddr3, clk, reset,data_en,&
9、#160;dat0_out, dat1_out, dat2_out, dat3_out, coef,raddr_coef, ih, il, qh, ql, coef_h, coef_l, mih, mil, mqh, mql, idat,qdat, rrc_en);output 5:0 waddr reg 5:0 waddr output 5:0
10、;raddr0 wire 5:0 raddr0 output 5:0 raddr1 wire 5:0 raddr1 output 5:0 raddr2 wire 5:0 raddr2 output 5:0 raddr3 wire 5:0 raddr3 input clk wire clk&
11、#160;input reset wire reset input data_en wire data_en input 31:0 dat0_out wire 31:0 dat0_out input 31:0 dat1_out wire 31:0 dat1_out input 31:0 dat2_out wi
12、re 31:0 dat2_out input 31:0 dat3_out wire 31:0 dat3_out input 31:0 coef wire 31:0 coef output 3:0 raddr_coef wire 3:0 raddr_coef output 16:0 ih reg 16:
13、0 ih output 16:0 il reg 16:0 il output 16:0 qh reg 16:0 qh output 16:0 ql reg 16:0 ql output 15:0 coef_h wire 15:0 coef_h output 15:0 co
14、ef_l wire 15:0 coef_l input 32:0 mih wire 32:0 mih input 32:0 mil wire 32:0 mil input 32:0 mqh wire 32:0 mqh input 32:0 mql wire 32:0 m
15、ql output 15:0 idat reg 15:0 idat output 15:0 qdat reg 15:0 qdat output rrc_en reg rrc_en assign coef_h=coef31:16;assign coef_l=coef15:0;reg 3:0 cnt;always(posedge clk
16、;or negedge reset)if(reset)waddr<=0;elseif(data_en)waddr<=waddr+1'b1;always(posedge clk or negedge reset)if(reset)cnt<=0;elseif(data_en)cnt<=0;elsecnt<=cnt+1'b1;assign raddr_coef = cnt3?cnt-3:cnt-1'b1;/系数的地址assign raddr0
17、60;=cnt3?waddr-23+cnt2:0:waddr-23+cnt2:0-1;assign raddr1 =cnt3?waddr-23+cnt2:0+6:waddr-23+cnt2:0+6-1;assign raddr2 =cnt3?waddr-cnt2:0-1:waddr-cnt2:0-1 assign raddr3 =cnt3?waddr-cnt2:0-6-1:waddr-cnt2:0-6-1 / 4 个 RAM 的读地址always(posedge c
18、lk or negedge reset)if(reset)ih<=0;elseih<=dat0_out31,dat0_out31:16+dat2_out31,dat2_out31:16;always(posedge clk or negedge reset)if(reset)il<=0;elseil<=dat1_out31,dat1_out31:16+dat3_out31,dat3_out31:16;always(posedge clk or negedge r
19、eset)if(reset)qh<=0;elseqh<=dat0_out15,dat0_out15:0+dat2_out15,dat2_out15:0;always(posedge clk or negedge reset)if(reset)ql<=0;elseql<=dat1_out15,dat1_out15:0+dat3_out15,dat3_out15:0;/为防止相加溢出,补一位wire 35:0 ex_mih,ex_mil,ex_mqh,ex_mql;assign ex_mih=mih32?
20、 3'b111,mih:3'b000,mih;assign ex_mil=mil32? 3'b111,mil:3'b000,mil;assign ex_mqh=mqh32? 3'b111,mqh:3'b000,mqh;assign ex_mql=mql32? 3'b111,mql:3'b000,mql;/为防止累加溢出,补 3 位reg 35:0 sum_ih,sum_il,sum_qh,sum_ql;always(pos
21、edge clk or negedge reset)if(reset)sum_ih<=0;elseif(cnt2:0=3'b001)sum_ih<=0;elsesum_ih<=sum_ih+ex_mih;always(posedge clk or negedge reset)if(reset)sum_il<=0;elseif(cnt2:0=3'b001)sum_il<=0;elsesum_il<=sum_il+ex_mil;always(posedge
22、clk or negedge reset)if(reset)sum_qh<=0;elseif(cnt2:0=3'b001)sum_qh<=0;elsesum_qh<=sum_qh+ex_mqh;always(posedge clk or negedge reset)if(reset)sum_ql<=0;elseif(cnt2:0=3'b001)sum_ql<=0;elsesum_ql<=sum_ql+ex_mql;always(posedge clk o
23、r negedge reset)if(reset)rrc_en<=0;elseif(cnt2:0=3'b000)rrc_en<=1'b1;elserrc_en<=0;/产生 RRC 滤波器输出数据使能信号always(posedge clk or negedge reset)if(reset)idat<=0;elseif(cnt2:0=3'b000)idat<=(sum_ih+sum_il)>>13)+1'b1)>>1;alway
24、s(posedge clk or negedge reset)if(reset)qdat<=0;elseif(cnt2:0=3'b000)qdat<=(sum_qh+sum_ql)>>13)+1'b1)>>1;/产生 I,Q 两路数据并对末位进行四舍五入endmodule如果是半带滤波器,考虑到内插在奇数拍时有y=a(0)*x(n)+0*0+a(2)*x(n-1)+.+0*0+a(0)*x(0)=a(0)*(x(n)+x(0) +a(2)*( x(n-1)+x(1
25、).而在偶数拍有y=a(0)*0+0*x(n-1)+a(2)*0+.+a(m)x(m)+0.+0;及只有中间项有数,其他各项不是系数为 0,就是数据为 0,且中间项的系数一般是 0.5,利用这一点可以减少 FPGA 的资源。HB 滤波器的设计和 RRC 十分相似,如下图图 5 HB 滤波器设计框图而 CIC 滤波器相对简单些,它实际上就是一些加法和一些减法,其设计框图如图 6 所示图 6 CIC 滤波器设计框图在
26、160;CIC 滤波器中需要注意的是 d1clk 模块,它只是为了调整时序。3.设计对时序要求的满足:完成代码设计后除了要保证仿真正确同时也要保证电路的时序能够满足设计的要求。从图1 可以看到信号的频率随着每一次内插而变高,那各个滤波器的工作时钟是不是也要逐步提高呢?实际上比较好的方法是时钟始终工作在最高频率 61.44M 上而用使能信号来标识数据。当数据的速率是 3.84M 时就每 16 个 61.44M 时钟产生一个使能,而当速率是 7.68M 时就每 8 个 61.44M 时钟产生一个使能。这样整个 DUC 电路只有一个时钟,便于时钟的时序分析。如果我们使用 Xilinx 的 ISE 进行编译,建议综合工具使用 synplify Pro 而不要使用 ISE本身的 XST。选用 synplify Pro 的方法如图 7图 7 在 ISE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气体分离设备装配调试工创新实践知识考核试卷含答案
- 焦结炉工岗前基础安全考核试卷含答案
- 整经工QC管理水平考核试卷含答案
- 孵化工风险识别模拟考核试卷含答案
- 油画外框制作工岗前质量考核试卷含答案
- 木地板表面造型处理工技术管理强化考核试卷含答案
- 拉深工安全生产能力竞赛考核试卷含答案
- 激光设备安装调试员岗前实操知识考核试卷含答案
- 电商咨询师操作模拟考核试卷含答案
- 微波铁氧体器件调测工风险评估能力考核试卷含答案
- 事业单位财会岗招聘笔试高频考题试卷及解析
- 2026年《中国病毒性心肌炎诊疗临床指南(2026版)》
- 《化工企业设备检修作业安全规范》(AQ 3026-2026)解读化危为安
- 新背景下的2027年高考语文一轮备考策略
- ASTM D5276-23 中文版(运输包装件自由跌落测试标准 完整原文 + 不同重量跌落高度对照表)
- 2026 年世界标准日标准化知识科普课件
- 2026年危重患者抢救制度培训课件
- 2025-2026学年高一化学上学期第一次月考01(人教版必修第一册)A4版
- 2026通信工程专业招聘笔试精练(企业版)
- 2026华医网继续教育危重症患者气道精细化管理题库及答案
- HY/T 0388-2023海洋灾害基本术语
评论
0/150
提交评论