• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Xilinx FPGA SRL16E實(shí)現(xiàn)最優(yōu)Half-band插值濾波器*

      2019-12-11 02:24:00
      通信技術(shù) 2019年12期
      關(guān)鍵詞:乘法器寄存器插值

      張 繁

      (上海諾基亞貝爾股份有限公司,江蘇 南京 210037)

      0 引 言

      數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)在無線通信數(shù)字信號(hào)領(lǐng)域有著廣泛的應(yīng)用。我們在學(xué)習(xí)和研究數(shù)字濾波器的原理和設(shè)計(jì)的同時(shí),在FPGA中實(shí)現(xiàn)高效而又省資源的數(shù)字濾波器,對(duì)工程實(shí)現(xiàn)有著十分重要的意義。

      1 數(shù)字濾波器簡介

      1.1 數(shù)字濾波原理

      數(shù)字濾波器是對(duì)數(shù)字信號(hào)實(shí)現(xiàn)濾波的線性時(shí)不變離散系統(tǒng)。它的實(shí)質(zhì)是一個(gè)運(yùn)算過程,即輸入的數(shù)字信號(hào)序列通過特定的運(yùn)算轉(zhuǎn)變?yōu)檩敵龅臄?shù)字序列。時(shí)域上兩個(gè)序列的線性卷積相當(dāng)于在頻域上其相應(yīng)的頻譜序列的乘積。濾波從本質(zhì)上來說,就是濾波器沖激響應(yīng)的傅里葉變換所得到信號(hào)頻譜的乘積。

      1.2 FIR濾波器

      2 半帶插值濾波器原理

      插值是在保持信號(hào)頻譜內(nèi)容不變的情況下提高信號(hào)采樣率。插值的第一步是在每個(gè)有效的輸入采樣之間插入L-1個(gè)零值采樣點(diǎn),從而把采樣率提高L倍。這使得原始信號(hào)的頻譜延拓L-1次,這個(gè)過程即為“采樣率擴(kuò)展”。插值之后,頻域上信號(hào)頻譜的形狀不變。最后將插入零采樣值的輸入流通過低通濾波器,濾波器的通帶位于原始信號(hào)頻譜位置,濾波器輸出所有延拓頻譜。

      半帶(half-band)插值濾波器是一種特殊的低通FIR數(shù)字濾波器,通帶和阻帶關(guān)于二分之一Nyquist頻率對(duì)稱,因?yàn)橛薪话氲臑V波器系數(shù)為0,用來實(shí)現(xiàn)數(shù)字濾波可以大幅度減少運(yùn)算量,有利于濾波器的實(shí)時(shí)實(shí)現(xiàn)。圖1為脈沖響應(yīng),圖2為多相劃分。圖3為充分利用系數(shù)數(shù)據(jù)中0項(xiàng)的優(yōu)化體系結(jié)構(gòu)。

      圖1 脈沖響應(yīng)

      圖2 多相劃分

      圖3 對(duì)0項(xiàng)優(yōu)化后的半帶插值濾波器結(jié)構(gòu)

      3 Xilinx FPGA SRL16E用法介紹

      3.1 SRL16E基本結(jié)構(gòu)

      SRL16E實(shí)際上是查找表LUT的另一種操作模式,如圖4所示。

      圖4 SRL16E 基本結(jié)構(gòu)

      16個(gè)配置單元被組織成一個(gè)移位寄存器連接到多路復(fù)用器(multiplexer)。多路復(fù)用器根據(jù)A[3:0]從16個(gè)單元中選擇一個(gè)作為輸出。

      3.2 FIR Filter用法

      眾所周知,Xilinx FPGA SRL最基本的用法就是用于移位寄存器或data delay。如果一個(gè)數(shù)據(jù)要delay 10個(gè)周期,那么如果用寄存器打拍法需要打10拍,即需要10個(gè)D觸發(fā)器,需要占用5個(gè)Slice。而如果使用SRL16E來實(shí)現(xiàn),不僅用法簡單,而且只需要占用一個(gè)SLICEM。而這里我們要運(yùn)用的是它的另一種advanced場景:FIR Filter application。如圖5所示,在這里,SRL16E構(gòu)成了FIR filter的抽頭。

      在這種應(yīng)用下,移位寄存器和多路復(fù)用器是完全獨(dú)立的。在CLK和CE信號(hào)的控制下,移位寄存器會(huì)從D input讀取數(shù)據(jù),而Q output則完全取決于A[3:0]的選擇。時(shí)序如圖6所示。

      圖5 FIR Filter Logic

      圖6 FIR Filter timing

      在該模式下,CE和A[3:0]的值不是固定不變,而是根據(jù)設(shè)計(jì)需要,CE為脈沖,在CE為高時(shí),SRL16E會(huì)讀取DIN的數(shù)據(jù),然后當(dāng)CE為低后,緊接著根據(jù)A[3:0]的值來決定Q輸出哪個(gè)抽頭。如圖 6所示,Shift Enable為 CE, Counter為 A[3:0],而Scan Data則為Q輸出。

      4 基于SRL16E的最優(yōu)插值濾波器設(shè)計(jì)與實(shí)現(xiàn)

      4.1 設(shè)計(jì)

      在本例中,我們對(duì)Half-band插值濾波器采用SRL16E FIR Filter及DSP48E來構(gòu)造。跟往常我們在輸入數(shù)據(jù)處插值不一樣,這里先通過濾波器計(jì)算出插值數(shù)據(jù),根據(jù)插值數(shù)據(jù)特征,再進(jìn)行2倍插入。可以節(jié)省FPGA一半乘法器的資源。

      我們先假設(shè)參數(shù):

      Fs = 122.88MHz (output)

      Number of taps = 15.

      Filter Taps:[c0,0,c1 0,c2 0,c3 m,c3,0,c2,0,c1,0,c0],其中 m =1。

      首先按照常規(guī)Half-band插值模式進(jìn)行計(jì)算:

      ①.輸入數(shù)據(jù)為61.44Msps,輸入數(shù)據(jù)為:

      d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12…

      ②.對(duì)輸入數(shù)據(jù)進(jìn)行插值得到122.88Msps新輸入數(shù)據(jù):

      d0,0,d1,0,d2,0,d3,0,d4,0,d5,0,d6,0,d7,0,d8,0,d9,0,d10 0,d11,0,d12…

      而系數(shù)為:

      [c0,0,c1,0,c2,0,c3,m,c3,0,c2,0,c1,0,c0]

      ③.在122.88M數(shù)據(jù)率下按照如下方式進(jìn)行卷積計(jì)算插值:

      如圖7所示,輸出序列為y0,y1,y2,y3,y4,y5,……

      y0=d0*c0+0*0+d1*c1+0*0+d2*c2+0*0+d3*c3+0*m+d4*c3+0*0+d5*c2+0*0+d6*c1+0*0+d7*c0=(d0+d 7)*c0+(d1+d6)*c1+(d2+d5)*c2+(d3+d4)*c3

      y1=d3*m=d3

      y2=d1*c0+0*0+d2*c1+0*0+d3*c2+0*0+d4*c3+0*m+d5*c3+0*0+d6*c2+0*0+d7*c1+0*0+d8*c0=(d1+d 8)*c0+(d2+d7)*c1+(d3+d6)*c2+(d4+d5)*c3

      y3=d4*m=d4

      y4=d2*c0+0*0+d3*c1+0*0+d4*c2+0*0+d5*c3+0*m+d6*c3+0*0+d7*c2+0*0+d8*c1+0*0+d9*c0=(d2+d 9)*c0+(d3+d8)*c1+(d4+d7)*c2+(d5+d6)*c3

      y5=d5*m=d5

      圖7 Half-band插值濾波器計(jì)算過程

      因?yàn)橄禂?shù)是對(duì)稱的,所以FPGA在進(jìn)行最優(yōu)化設(shè)計(jì)實(shí)現(xiàn)時(shí)采取了如下方法:DSP48E中提供A和D輸入進(jìn)行pre addition。先算出y0,y2,y4,y6,…的插值序列(phase0序列,61.44 Msps數(shù)據(jù)率),再與y1,y3,y5,y7,……的序列(phase1序列,61.44 Msps數(shù)據(jù)率)合路,完成最終完整的122.88 Msps的輸出序列y0,y1,y2,y3,y4,y5,……。如圖8所示。

      圖8 DSP48E 計(jì)算內(nèi)插值

      圖9 FPGA實(shí)現(xiàn)最優(yōu)Half-band插值過程

      插值過程如圖9所示。根據(jù)FPGA實(shí)現(xiàn)最優(yōu)Half-band插值過程圖,我們可以看到,在對(duì)半帶插值濾波器進(jìn)行0項(xiàng)優(yōu)化結(jié)構(gòu)之后,再根據(jù)系數(shù)對(duì)稱的特征進(jìn)行優(yōu)化處理,還能再進(jìn)一步節(jié)省一半的乘法器資源。

      4.2 實(shí)現(xiàn)

      用Questasim仿真軟件對(duì)FPGA代碼進(jìn)行仿真。SRL16E_0及SRL16E_1產(chǎn)生的輸出分別送給DSP48E的A跟D輸入,并計(jì)算出插值結(jié)果phase0_data(61.44Msps)。仿真結(jié)果如圖10所示。Phase0與原輸入phase1_data(61.44Msps)進(jìn)行插值,最終得到data_out(122.88Msps),仿真結(jié)果如圖11所示。

      圖10 DSP48E仿真結(jié)果

      圖11 插值仿真結(jié)果

      5 結(jié) 語

      除了根據(jù)系數(shù)對(duì)稱的特點(diǎn)進(jìn)行優(yōu)化,在條件允許下,還能對(duì)乘法器進(jìn)行時(shí)分復(fù)用,以進(jìn)一步節(jié)省乘法器資源,這對(duì)于一些資源緊張的FPGA設(shè)計(jì)來說是一種非常有用的方式。有效利用FPGA的資源結(jié)構(gòu),抓住設(shè)計(jì)特點(diǎn)進(jìn)行FPGA最優(yōu)化設(shè)計(jì)對(duì)工程實(shí)現(xiàn)具有十分重要的意義。

      猜你喜歡
      乘法器寄存器插值
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于Sinc插值與相關(guān)譜的縱橫波速度比掃描方法
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      基于FPGA的流水線單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)*
      一種改進(jìn)FFT多譜線插值諧波分析方法
      基于四項(xiàng)最低旁瓣Nuttall窗的插值FFT諧波分析
      Blackman-Harris窗的插值FFT諧波分析與應(yīng)用
      乘法器模塊在FPGA中的實(shí)現(xiàn)
      基于FPGA 的數(shù)字乘法器性能比較*
      電子器件(2011年6期)2011-08-09 08:07:22
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      宜城市| 荔浦县| 阿拉善盟| 永修县| 黄梅县| 离岛区| 巴彦淖尔市| 长海县| 孝昌县| 施甸县| 肇东市| 苗栗县| 施甸县| 凌海市| 建水县| 菏泽市| 疏勒县| 西平县| 延长县| 绵阳市| 西宁市| 延庆县| 喀什市| 上饶县| 天峨县| 凭祥市| 蒙阴县| 合作市| 涟水县| 永宁县| 郑州市| 襄樊市| 杭州市| 宁夏| 东海县| 高邑县| 宁河县| 禹城市| 张家口市| 鄂托克旗| 元阳县|