




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字中频的基本原理和FPGA的实现1 基本原理 数字中频主要分两部分,数字上变频(DUC)和数字下变频(DDC)。它们的主要功能是相反,但原理和实现的方法是十分相似。在R8905项目中由于采用了零中频技术,数字上变频和下变频有一些差别,数字上变频没有了NCO模块。另外为了降低输出信号的峰均比又加入了削峰模块CFR,而CGC模块的引入则是补偿削峰所引起的功率损失。图1 数字上变频模块框图在数字下变频中RSSI模块是信号的功率检测模块,它配合AGC电路将信号的输出功率稳定在一定范围内。 图2 数字下变频模块框图在DDC和DUC中主要使用3种滤波器分别是RRC,HB和CIC,它们个自有个自的特点。R
2、RC滤波器一般来讲阶数比较多,多用于低频处。由于它的阶数比较多,所以可以得到比较锐利的带通特性,但它所用的乘法器比较多。CIC滤波器不需要乘法器,但它的带内不是很平坦,适合用在高频处。而HB滤波器的特性正好在它们之间,它有约一半的系数是0可以讲乘法器的个数减少一半。 削峰模块CFR实际上也是一组滤波器,它的功能是将CDMA信号中的峰值信号减小一些,以减小输出信号的峰均比,使射频功率放大器的效率更高。削峰的模块框图如图3 图3 单级削峰示意图削峰的原理是这样的一个复信号(I,Q)如果它的模大于某个门限,就将其减去这个门限得到一个复信号(dI,dQ),否则(dI,dQ)(0,0)。将(dI,dQ)
3、送到fir滤波器中,fir滤波器是一个低通滤波器将峰值限定在一定的带宽内,防止影响临道。将原信号(I,Q)减去滤波后的信号(fir_i,fir_q)就得到了削峰的值。如果有必要这这样的削峰可以连续做几次,在R8905设计中削峰用了两次。2 滤波器的设计由于在滤波的同时还有内插和抽取,所以充分利用这一特性可以减少FPGA使用的资源。另外滤波器的系数一般都是对称的,可以将头和尾的数相加再乘滤波器的系数,这样可以大大减少乘法器的使用。以R8905中的上变频RRC为例来说明:设a(n)为RRC滤波器的系数而x(n)为3.84M输入数据则考虑了内插后的滤波器的数学表达式为 y=a(0)*x(n)+a(1
4、)*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以及一个ROM来存数据。RRC_CTR_6144模块控制这些乘法器和ROM。参考代码如下:/ Date : Sat Jul 21 10:51:51 2007/ Author : duan chenghong/ Company : zte/ Description : / RRC滤波器用了4个RAM和4个乘法器完成IQ两路的滤波功能,/ I,Q的处理方法完全
5、相同。数据同时写入4个RAM中,但读的地址不/ 同,由于RRC滤波器的系数是对称的所以读RAM的地址也是对称的,将地址/ 对称的RAM读出数相加再和RRC滤波器系数相成再累加就可以得到最后的结果/module rrc_ctr_6144 (waddr, raddr0, raddr1, raddr2, raddr3, clk, reset, data_en, 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,
6、 rrc_en); output 5:0 waddr ; reg 5:0 waddr ; output 5:0 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 ; input reset ; wire reset ; input data_en ; wire data_en ; input 31:0 dat0_out ;
7、wire 31:0 dat0_out ; input 31:0 dat1_out ; wire 31:0 dat1_out ; input 31:0 dat2_out ; wire 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:0 ih ; output 16:0 il ; reg 16:0 il ; output
8、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 coef_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 mql ; output 15:0 idat ; reg 15:0 idat
9、; 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 or negedge reset) if(reset) waddr<=0; else if(data_en) waddr<=waddr+1'b1; always(posedge clk or negedge reset) if(reset) cnt<=0; else if(dat
10、a_en) cnt<=0; else cnt<=cnt+1'b1; assign raddr_coef = cnt3?cnt-3:cnt-1'b1; /系数的地址 assign raddr0 =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:w
11、addr-cnt2:0-6-1 ; / 4个RAM的读地址 always(posedge clk or negedge reset) if(reset) ih<=0; else ih<=dat0_out31,dat0_out31:16+dat2_out31,dat2_out31:16; always(posedge clk or negedge reset) if(reset) il<=0; else il<=dat1_out31,dat1_out31:16+dat3_out31,dat3_out31:16; always(posedge clk or negedge
12、reset) if(reset) qh<=0; else qh<=dat0_out15,dat0_out15:0+dat2_out15,dat2_out15:0; always(posedge clk or negedge reset) if(reset) ql<=0; else ql<=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? 3'b111,mih:3'
13、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(posedge clk or negedge reset) if(reset) sum_ih<=0; else if(cnt2:0=3'b
14、001) sum_ih<=0; else sum_ih<=sum_ih+ex_mih; always(posedge clk or negedge reset) if(reset) sum_il<=0; else if(cnt2:0=3'b001) sum_il<=0; else sum_il<=sum_il+ex_mil; always(posedge clk or negedge reset) if(reset) sum_qh<=0; else if(cnt2:0=3'b001) sum_qh<=0; else sum_qh<
15、=sum_qh+ex_mqh; always(posedge clk or negedge reset) if(reset) sum_ql<=0; else if(cnt2:0=3'b001) sum_ql<=0; else sum_ql<=sum_ql+ex_mql; always(posedge clk or negedge reset) if(reset) rrc_en<=0; else if(cnt2:0=3'b000) rrc_en<=1'b1; else rrc_en<=0; /产生RRC滤波器输出数据使能信号 alway
16、s(posedge clk or negedge reset) if(reset) idat<=0; else if(cnt2:0=3'b000) idat<=(sum_ih+sum_il)>>13)+1'b1)>>1; always(posedge clk or negedge reset) if(reset) qdat<=0; else if(cnt2:0=3'b000) qdat<=(sum_qh+sum_ql)>>13)+1'b1)>>1; /产生I,Q两路数据并对末位进行四舍五入
17、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).而在偶数拍有 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滤波器设计框图在
18、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中选用synpli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特岗教师招聘考试美术专业备考全攻略及模拟题集
- 浙江旅游职业学院《语文教学竞赛指导》2024-2025学年第一学期期末试卷
- 贵州师范学院《幸福经济学》2024-2025学年第一学期期末试卷
- 吉首大学《体育教学技能训练》2024-2025学年第一学期期末试卷
- 2025年炼钢初级考试模拟试题及答题技巧
- 福建体育职业技术学院《Python基础》2024-2025学年第一学期期末试卷
- 2025年市场营销专员面试宝典与预测题
- 2025年初中美术特岗教师招聘考试答题技巧与模拟试题解析
- 2025年船厂安全知识培训题库及解析
- 家具基础知识培训课件
- 卷扬工安全知识培训内容课件
- 2025年度泸州老窖白酒线上线下全渠道销售代理协议
- 教职工开学安全知识培训课件
- 2025年公路交通水运三类人员试题及答案
- 2025年河北省初中学业水平考试历史试题(含答案)
- 2025年甘肃省公职招录考试(省情时政)历年参考题库含答案详解(5套)
- 期末必考题检测卷(三)(含答案)高一数学下学期人教A版必修第二册
- 2025年江苏公务员遴选考试公文写作试卷(附答案)
- 2025年度以新质生产力助推高质量发展等继续教育公需科目试题及答案
- 2025年技师安全考试题库
- 站点考勤管理制度
评论
0/150
提交评论