版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 數(shù)字中頻的基本原理和FPGA的實(shí)現(xiàn)1 基本原理 數(shù)字中頻主要分兩部分,數(shù)字上變頻(DUC)和數(shù)字下變頻(DDC)。它們的主要功能是相反,但原理和實(shí)現(xiàn)的方法是十分相似。在R8905項(xiàng)目中由于采用了零中頻技術(shù),數(shù)字上變頻和下變頻有一些差別,數(shù)字上變頻沒有了NCO模塊。另外為了降低輸出信號(hào)的峰均比又加入了削峰模塊CFR,而CGC模塊的引入則是補(bǔ)償削峰所引起的功率損失。 圖1 數(shù)字上變頻模塊框圖在數(shù)字下變頻中RSSI模塊是信號(hào)的功率檢測(cè)模塊,它配合AGC電路將信號(hào)的輸出功率穩(wěn)定在一定范圍內(nèi)。 圖2 數(shù)字下變頻模塊框圖在DDC和DUC中主要使用3種濾波器分別是RRC,HB和CIC,它們個(gè)自有個(gè)自的特點(diǎn)
2、。RRC濾波器一般來講階數(shù)比較多,多用于低頻處。由于它的階數(shù)比較多,所以可以得到比較銳利的帶通特性,但它所用的乘法器比較多。CIC濾波器不需要乘法器,但它的帶內(nèi)不是很平坦,適合用在高頻處。而HB濾波器的特性正好在它們之間,它有約一半的系數(shù)是0可以講乘法器的個(gè)數(shù)減少一半。 削峰模塊CFR實(shí)際上也是一組濾波器,它的功能是將CDMA信號(hào)中的峰值信號(hào)減小一些,以減小輸出信號(hào)的峰均比,使射頻功率放大器的效率更高。削峰的模塊框圖如圖3 圖3 單級(jí)削峰示意圖削峰的原理是這樣的一個(gè)復(fù)信號(hào)(I,Q)如果它的模大于某個(gè)門限,就將其減去這個(gè)門限得到一個(gè)復(fù)信號(hào)(dI,dQ),否則(dI,dQ)(0,0)。將(dI,d
3、Q)送到fir濾波器中,fir濾波器是一個(gè)低通濾波器將峰值限定在一定的帶寬內(nèi),防止影響臨道。將原信號(hào)(I,Q)減去濾波后的信號(hào)(fir_i,fir_q)就得到了削峰的值。如果有必要這這樣的削峰可以連續(xù)做幾次,在R8905設(shè)計(jì)中削峰用了兩次。2 濾波器的設(shè)計(jì)由于在濾波的同時(shí)還有內(nèi)插和抽取,所以充分利用這一特性可以減少FPGA使用的資源。另外濾波器的系數(shù)一般都是對(duì)稱的,可以將頭和尾的數(shù)相加再乘濾波器的系數(shù),這樣可以大大減少乘法器的使用。以R8905中的上變頻RRC為例來說明:設(shè)a(n)為RRC濾波器的系數(shù)而x(n)為3.84M輸入數(shù)據(jù)則考慮了內(nèi)插后的濾波器的數(shù)學(xué)表達(dá)式為 y=a(0)*x(n)+a
4、(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實(shí)現(xiàn)的邏輯框圖如下 圖4 DUC RRC濾波器實(shí)現(xiàn)邏輯圖其中使用了4個(gè)乘法器和四個(gè)RAM以及一個(gè)ROM來存數(shù)據(jù)。RRC_CTR_6144模塊控制這些乘法器和ROM。參考代碼如下:/ Date : Sat Jul 21 10:51:51 2007/ Author : duan chenghong/ Company : zte/ Description : / RRC濾波器用了4個(gè)RAM和4個(gè)乘法器完成IQ兩路的濾波功能,/ I,Q的處理方
5、法完全相同。數(shù)據(jù)同時(shí)寫入4個(gè)RAM中,但讀的地址不/ 同,由于RRC濾波器的系數(shù)是對(duì)稱的所以讀RAM的地址也是對(duì)稱的,將地址/ 對(duì)稱的RAM讀出數(shù)相加再和RRC濾波器系數(shù)相成再累加就可以得到最后的結(jié)果/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, qd
6、at, 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 ; outp
8、ut 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 id
9、at ; 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(
10、data_en) cnt<=0; else cnt<=cnt+1'b1; assign raddr_coef = cnt3?cnt-3:cnt-1'b1; /系數(shù)的地址 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-
11、1:waddr-cnt2:0-6-1 ; / 4個(gè)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 neged
12、ge 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; /為防止相加溢出,補(bǔ)一位 wire 35:0 ex_mih,ex_mil,ex_mqh,ex_mql; assign ex_mih=mih32? 3'b111,mih:3
13、39;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; /為防止累加溢出,補(bǔ)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
14、9;b001) 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、lt;=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; /產(chǎn)生RRC濾波器輸出數(shù)據(jù)使能信號(hào) al
16、ways(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; /產(chǎn)生I,Q兩路數(shù)據(jù)并對(duì)末位進(jìn)行四舍
17、五入 endmodule如果是半帶濾波器,考慮到內(nèi)插在奇數(shù)拍時(shí)有 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).而在偶數(shù)拍有 y=a(0)*0+0*x(n-1)+a(2)*0+.+a(m)x(m)+0.+0;及只有中間項(xiàng)有數(shù),其他各項(xiàng)不是系數(shù)為0,就是數(shù)據(jù)為0,且中間項(xiàng)的系數(shù)一般是0.5,利用這一點(diǎn)可以減少FPGA的資源。 HB濾波器的設(shè)計(jì)和RRC十分相似,如下圖圖5 HB濾波器設(shè)計(jì)框圖而CIC濾波器相對(duì)簡(jiǎn)單些,它實(shí)際上就是一些加法和一些減法,其設(shè)計(jì)框圖如圖6所示 圖6 CIC濾波
18、器設(shè)計(jì)框圖在CIC濾波器中需要注意的是d1clk模塊,它只是為了調(diào)整時(shí)序。3.設(shè)計(jì)對(duì)時(shí)序要求的滿足: 完成代碼設(shè)計(jì)后除了要保證仿真正確同時(shí)也要保證電路的時(shí)序能夠滿足設(shè)計(jì)的要求。從圖1可以看到信號(hào)的頻率隨著每一次內(nèi)插而變高,那各個(gè)濾波器的工作時(shí)鐘是不是也要逐步提高呢?實(shí)際上比較好的方法是時(shí)鐘始終工作在最高頻率61.44M上而用使能信號(hào)來標(biāo)識(shí)數(shù)據(jù)。當(dāng)數(shù)據(jù)的速率是3.84M時(shí)就每16個(gè)61.44M時(shí)鐘DUC電路只有一個(gè)時(shí)鐘,便于時(shí)鐘的時(shí)序分析。如果我們使用Xilinx的ISE進(jìn)行編譯,建議綜合工具使用synplify Pro而不要使用ISE本身的XST。選用synplify Pro的方法如圖7 圖7 在ISE中選用synplify P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 探秘書海:字里行間的智慧
- 一年來的財(cái)務(wù)工作總結(jié)
- 2023年員工三級(jí)安全培訓(xùn)考試題及完整答案(全優(yōu))
- 2023年-2024年項(xiàng)目安全培訓(xùn)考試題含答案(精練)
- 2023-2024年項(xiàng)目部安全管理人員安全培訓(xùn)考試題原創(chuàng)題
- 2023-2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題答案可打印
- 新生軍訓(xùn)心得體會(huì)400字10篇
- 科學(xué)實(shí)驗(yàn)教學(xué)
- 藥物代謝預(yù)測(cè)與智能模擬研究-洞察分析
- 鐵路運(yùn)營(yíng)成本控制-洞察分析
- 四川省巴中市2023-2024學(xué)年高二上學(xué)期期末考試物理試題【含答案解析】
- 《兩小兒辯日》教學(xué)案例:培養(yǎng)學(xué)生的思辨能力
- 2024年廣東省普通高中學(xué)業(yè)水平考試化學(xué)試卷(修改+答案)版
- 2024年小學(xué)生中華經(jīng)典誦讀知識(shí)競(jìng)賽參考題庫(kù)500題(含答案)
- 日拱一卒行穩(wěn)致遠(yuǎn)
- 培訓(xùn)內(nèi)驅(qū)力的課件
- 管理后臺(tái)策劃方案
- 人防、物防、技防工作措施
- 市場(chǎng)部培訓(xùn)課程課件
- 八年級(jí)歷史上冊(cè)論述題匯總
- 資產(chǎn)評(píng)估學(xué)教程(第八版)習(xí)題及答案 喬志敏
評(píng)論
0/150
提交評(píng)論