LTE系統(tǒng)中轉(zhuǎn)換預(yù)編碼的設(shè)計(jì)及實(shí)現(xiàn)
具體到1 080點(diǎn)FFT,將RAM1中的數(shù)據(jù)順序讀出,由MUX1選擇進(jìn)行8點(diǎn)FFT變換,完成第一級(jí)操作后,所得中間結(jié)果順序存儲(chǔ)在RAM2中;然后再將RAM2中的中間結(jié)果取出,由MUX2選擇進(jìn)行135點(diǎn)FFT變換,共操作8次,完成第二級(jí)操作,所得結(jié)果按模塊C中ROM指示的順序存儲(chǔ)在RAM1中;最后順序輸出RAM1中的內(nèi)容就是1 080點(diǎn)FFT的結(jié)果。
3.3 乘法器設(shè)計(jì)
量化效應(yīng)在數(shù)字信號(hào)處理技術(shù)實(shí)現(xiàn)時(shí)是很重要的問題,主要包括運(yùn)算量化效應(yīng)、系數(shù)量化效應(yīng)等,前者的影響大于后者[5]。運(yùn)算中還可能出現(xiàn)溢出,造成更大的誤差。上述問題對(duì)乘法器的設(shè)計(jì)提出了要求,由上文知,基2 FFT由IP核生成,故此處的乘法器設(shè)計(jì)只針對(duì)非基2 FFT有效。
Xilinx的XC5VSX95T內(nèi)部共有640個(gè)DSP48E,每個(gè)DSP48E包含一個(gè)25×18 乘法器。在調(diào)用乘法器IP時(shí),將乘數(shù)設(shè)為寬度為25和18的signed型(旋轉(zhuǎn)因子位寬為18),輸出截取結(jié)果的[41:17]共25 bit,乘法器輸入輸出寬度相等,在結(jié)果輸出的同時(shí)對(duì)結(jié)果進(jìn)行縮放,這樣利于程序模塊化,但前提是要保證數(shù)據(jù)不溢出。由于輸入采樣數(shù)據(jù)寬度只有16 bit,而轉(zhuǎn)換預(yù)編碼輸入數(shù)據(jù)最大長(zhǎng)度只有1 200點(diǎn),再考慮旋轉(zhuǎn)因子系數(shù)小于1,可以斷定25 bit位寬可使乘法器結(jié)果不溢出,且運(yùn)算精度也可滿足要求。
4 性能分析
程序利用Verilog HDL硬件描述語(yǔ)言編寫,在Xilinx公司的高性能設(shè)計(jì)開發(fā)工具ISE10.1i中編譯成功。當(dāng)FPGA芯片選為XC5VSX95T時(shí),在Synplify Pro 9.6.1中進(jìn)行邏輯優(yōu)化與綜合后顯示其最大時(shí)鐘頻率為105.6 MHz,F(xiàn)Fs耗用29 150/58 880,LUTs耗用37 625/58 880,乘法器耗用414/640,Block Ram耗用17*88,各項(xiàng)指標(biāo)都合符要求。布局布線成功后,在Matlab中產(chǎn)生一實(shí)正弦測(cè)試信號(hào),經(jīng)采樣量化成1 200點(diǎn)數(shù)據(jù)后輸入Modelsim SE 6.1d對(duì)程序進(jìn)行后仿真,然后輸出結(jié)果回送至Matlab,得到仿真圖如圖4。
由圖4可以看出FFT處理器處理后的結(jié)果和Matlab計(jì)算的理論結(jié)果基本一致,都在頻率為15 Hz和335 Hz處取得最大FFT絕對(duì)值,兩者之間的誤差正是數(shù)字信號(hào)處理量化效應(yīng)的體現(xiàn)。從整體看,這些誤差是數(shù)據(jù)在經(jīng)過采樣量化和截?cái)嗵幚砗蟛豢杀苊獾那沂强梢匀萑痰模虼丝梢耘袛鄿y(cè)試結(jié)果符合精度指標(biāo)。
本文討論了應(yīng)用在LTE上行轉(zhuǎn)換預(yù)編碼中的多種FFT的軟硬件實(shí)現(xiàn)。與各種FFT單獨(dú)處理或只采用Cooley-Tukey算法的方法相比,本設(shè)計(jì)巧妙地將Good-Thomas算法與Cooley-Tukey算法結(jié)合起來,在硬件資源和成本消耗上都有很大的節(jié)省,速度上也能滿足要求,而且這種結(jié)構(gòu)很容易進(jìn)行功能擴(kuò)展,只需要調(diào)整內(nèi)部FFT單元的種類和數(shù)目即可。這種大規(guī)?;旌匣鵉FT的實(shí)現(xiàn)方法對(duì)其他場(chǎng)合的大規(guī)模FFT有一定的普適性。
評(píng)論