陳 軍
(定西師范高等專(zhuān)科學(xué)校 物理與電子工程系,甘肅 定西 743000)
?
基于MaxplusII的短時(shí)傅里葉變換實(shí)現(xiàn)研究
陳軍*
(定西師范高等專(zhuān)科學(xué)校 物理與電子工程系,甘肅 定西 743000)
文章對(duì)短時(shí)傅里葉變換(short-time Fourier transform,STFT)算法原理進(jìn)行了研究分析,運(yùn)用MaxplusII軟件設(shè)計(jì)實(shí)現(xiàn)了快速短時(shí)傅里葉變換的可編程邏輯器件,詳細(xì)地研究了基4蝶形處理單元的設(shè)計(jì)和旋轉(zhuǎn)因子的地址生成規(guī)律,在滿(mǎn)足時(shí)頻率分辨率的條件下提高了運(yùn)算速率、降低了運(yùn)算度,并在高速率運(yùn)行環(huán)境下達(dá)到了低頻信號(hào)設(shè)計(jì)要求,節(jié)省了硬件資源。通過(guò)軟件仿真研究分析,證明該設(shè)計(jì)的合理性。
現(xiàn)場(chǎng)可編程門(mén)陣列;短時(shí)傅里葉變換;實(shí)現(xiàn);隨機(jī)存取存儲(chǔ)器
STFT因其有算法簡(jiǎn)捷、處理速度快及實(shí)現(xiàn)容易等優(yōu)勢(shì)而在低頻信號(hào)分析、復(fù)合材料的損傷檢測(cè)、鉆柱等振動(dòng)信號(hào)分析、圖像信號(hào)處理等工程領(lǐng)域有廣泛深入的應(yīng)用[1-8]。對(duì)低頻信號(hào)而言,通過(guò)短時(shí)傅里葉變換分析研究其窗口和幀偏移各不相同條件下的圖像譜,所以要求STFT具有可調(diào)整的幀偏移,可靈活選擇的窗類(lèi)型,可變化的窗口長(zhǎng)度。對(duì)信號(hào)進(jìn)行短時(shí)傅立葉變換,目的是對(duì)不同時(shí)刻和頻率相對(duì)應(yīng)的能量密度或強(qiáng)度等信號(hào)特征參量的線性時(shí)頻分析。
STFT是和傅里葉變換相關(guān)的一種數(shù)學(xué)變換,用以確定時(shí)變信號(hào)在其局部波形區(qū)域內(nèi)相位、頻率等的參量。也就是在進(jìn)行信號(hào)分幀處理之后采用快速傅里葉變換進(jìn)行的計(jì)算。其思想為先選擇一個(gè)時(shí)頻局部化的窗函數(shù),假定分析窗函數(shù)在一個(gè)短時(shí)間間隔內(nèi)平穩(wěn),移動(dòng)窗函數(shù),使兩者的積在不同的有限時(shí)間寬度內(nèi)平穩(wěn),從而計(jì)算出每個(gè)不同時(shí)刻的功率譜。STFT使用的窗函數(shù)確定之后,其分辨率也就確定了。若要改變分辨率,則需要重新選擇窗函數(shù)。對(duì)于波形變化比較平緩的低頻語(yǔ)音信號(hào),需要窗函數(shù)具有較高的頻率分辨率。STFT窗函數(shù)滿(mǎn)足海森堡不確定原理,即窗函數(shù)的時(shí)間與頻率分辨率不能同時(shí)達(dá)到最優(yōu)。STFT中基2算法和基4算法具有類(lèi)似性,但相比較基4算法控制較為復(fù)雜,分裂基算法的計(jì)算速度最好,但是操作不易,控制相難度較大。運(yùn)用基4蝶形處理單元與多輸入多輸出存儲(chǔ)器結(jié)合來(lái)并行流水處理數(shù)據(jù),提高數(shù)據(jù)處理速度[3-9]。
MaxplusII以其易使用的圖形界面,具有高密度、高速度、現(xiàn)場(chǎng)模擬調(diào)試驗(yàn)證性強(qiáng)、邏輯實(shí)現(xiàn)能力強(qiáng)、設(shè)計(jì)靈活,在最短的時(shí)間,以最少的精力,達(dá)到最優(yōu)的硬件設(shè)計(jì),空間的并行性運(yùn)算和時(shí)間上可流水線性處理的特點(diǎn),在數(shù)字音頻、圖像信號(hào)處理領(lǐng)域得到廣泛使用[4-14]。本文通過(guò)對(duì)短時(shí)傅里葉變換算法原理研究,運(yùn)用MaxplusII仿真設(shè)計(jì)了實(shí)現(xiàn)快速短時(shí)傅里葉變換的可編程邏輯器件。詳細(xì)地研究了基4蝶形處理單元的設(shè)計(jì)和旋轉(zhuǎn)因子的地址生成規(guī)律,對(duì)設(shè)計(jì)要求運(yùn)用該軟件進(jìn)行了分析討論。
STFT是對(duì)信號(hào)分幀處理之后采用快速傅里葉變換進(jìn)行的計(jì)算。先選擇一個(gè)時(shí)頻局部化的窗函數(shù),其窗函數(shù)的時(shí)寬足夠窄,在分析窗口對(duì)應(yīng)的短時(shí)間間隔內(nèi)信號(hào)足以平穩(wěn),沿時(shí)間軸移動(dòng)窗函數(shù),使兩者的積在不同的有限時(shí)間寬度內(nèi)平穩(wěn),從而計(jì)算出信號(hào)在每個(gè)不同時(shí)刻的功率譜數(shù)學(xué)表達(dá)式。對(duì)于時(shí)間信號(hào)x(t),其STFT的數(shù)學(xué)模型[12-15]:
(1)
該式中,h(t)是窗口函數(shù), 短時(shí)傅里葉變換的局域特性是通過(guò)窗函數(shù)的時(shí)間移位和頻率移位實(shí)現(xiàn)的。對(duì)于一定時(shí)刻t,X(f,t)同時(shí)表現(xiàn)出時(shí)間函數(shù)和頻率函數(shù)雙重性,看成是對(duì)應(yīng)時(shí)刻的局部頻譜,故利用這些特點(diǎn)將信號(hào)作時(shí)域和頻域的研究分析。
基4-STFT實(shí)現(xiàn)框圖如圖1所示,是由快速傅里葉變換(Fast Fourier Transformation,F(xiàn)FT)算法的實(shí)現(xiàn)和對(duì)信號(hào)進(jìn)行FFT運(yùn)算前的分幀及加窗兩部分實(shí)現(xiàn)來(lái)完成[3,8,13,14]。
圖1 基4-STFT實(shí)現(xiàn)框圖
STFT實(shí)現(xiàn)的過(guò)程框圖中,三端口隨機(jī)存取存儲(chǔ)器中的數(shù)據(jù)準(zhǔn)備就緒之后,啟動(dòng)FFT運(yùn)算單元,三端口隨機(jī)存取存儲(chǔ)器中的數(shù)據(jù)被讀取,窗函數(shù)只讀存儲(chǔ)器中的數(shù)據(jù)也被同時(shí)讀取而加窗運(yùn)算,才被分時(shí)送進(jìn)蝶形運(yùn)算電路,與此對(duì)應(yīng),地址單元也產(chǎn)生旋轉(zhuǎn)因子查表地址,相應(yīng)地蝶形運(yùn)算處理器從旋轉(zhuǎn)因子存儲(chǔ)器中讀取其值,將處理后的結(jié)果原址暫時(shí)存放在寄存器堆緩存器中,隨后存入FFT運(yùn)算單元配置的雙口隨機(jī)存取存儲(chǔ)器中,以供下級(jí)數(shù)據(jù)處理器使用。
基4蝶形運(yùn)算單元設(shè)計(jì)是調(diào)用內(nèi)部硬件乘法器構(gòu)造復(fù)數(shù)乘法器,運(yùn)用兩級(jí)流水線,并行處理4路輸入數(shù)據(jù)的工作方式來(lái)提高處理速率。產(chǎn)生旋轉(zhuǎn)因子查找表地址的方式是先計(jì)算出旋轉(zhuǎn)因子,然后存儲(chǔ)到旋轉(zhuǎn)因子存儲(chǔ)器中以便使用。不同級(jí)運(yùn)算讀取隨機(jī)存取器RAM的地址時(shí),旋轉(zhuǎn)因子的查尋找的地址不相同,但具有一定的規(guī)律?;?算法的地址產(chǎn)生規(guī)律中每個(gè)蝶形運(yùn)算單元需要4個(gè)輸入數(shù)據(jù),在不同的級(jí)上有不同的數(shù)據(jù)尋址規(guī)律。
本系統(tǒng)共設(shè)計(jì)了六級(jí)運(yùn)算模塊,每級(jí)都配置有一個(gè)雙口隨機(jī)存取存儲(chǔ)器,一個(gè)地址產(chǎn)生器,一個(gè)旋轉(zhuǎn)因子產(chǎn)生器和一個(gè)蝶形運(yùn)算單元。當(dāng)FFT中第一級(jí)運(yùn)算單元開(kāi)始工作時(shí),從雙口隨機(jī)存取存儲(chǔ)器中讀取的數(shù)據(jù)經(jīng)蝶形運(yùn)算后,原址存進(jìn)下一級(jí)存儲(chǔ)單元。為了確保第一級(jí)蝶形運(yùn)算結(jié)果準(zhǔn)確地存儲(chǔ)到第二級(jí)處理單元的存儲(chǔ)器中,此時(shí)相鄰的后級(jí)及其后各級(jí)均為等待狀態(tài)。當(dāng)?shù)诙?jí)開(kāi)始計(jì)算時(shí),它的前級(jí)即第一級(jí)停止運(yùn)算,其后級(jí)同樣處于等待狀態(tài)。當(dāng)?shù)谌?jí)開(kāi)始計(jì)算時(shí),第四級(jí)及其后級(jí)還未開(kāi)始計(jì)算,第一級(jí)又開(kāi)始工作,第二級(jí)停止計(jì)算。按此方式依次類(lèi)推,當(dāng)?shù)谝粠瑪?shù)據(jù)計(jì)算完成后,后續(xù)數(shù)據(jù)進(jìn)入流水處理。依次運(yùn)行六級(jí)計(jì)算處理后,到FFT運(yùn)算結(jié)果。
2.1信號(hào)分幀加窗實(shí)現(xiàn)設(shè)計(jì)
為了處理語(yǔ)音信號(hào),我們要對(duì)語(yǔ)音信號(hào)進(jìn)行加窗,也就是一次僅處理窗中的數(shù)據(jù)。因?yàn)閷?shí)際的語(yǔ)音信號(hào)是很長(zhǎng)的,我們不能對(duì)非常長(zhǎng)的數(shù)據(jù)進(jìn)行一次性處理。解決辦法就是每次取一段數(shù)據(jù),進(jìn)行分析,然后再取下一段數(shù)據(jù),再進(jìn)行分析。
對(duì)漢明窗中的數(shù)據(jù)進(jìn)行FFT運(yùn)算,一個(gè)窗內(nèi)的信號(hào)表現(xiàn)出一個(gè)周期的信號(hào)。實(shí)際上一段音頻數(shù)據(jù)沒(méi)有明顯的周期性,加上漢明窗后,數(shù)據(jù)形狀就明顯具有了周期性。因加上漢寧窗,只有中間的數(shù)據(jù)體現(xiàn)出來(lái)了,兩邊的數(shù)據(jù)信息丟失了,所以每次移窗函數(shù)時(shí),移動(dòng)1/3到1/2窗長(zhǎng)度,這樣被前一幀丟失的數(shù)據(jù)又重新得到了補(bǔ)償。
三端口RAM可以在FPGA內(nèi)部定制,主要有一個(gè)寫(xiě)地址端口和數(shù)據(jù)寫(xiě)入端口,兩個(gè)讀地址端口和數(shù)據(jù)輸出端口,其最大優(yōu)勢(shì)為同時(shí)進(jìn)行寫(xiě)入和讀出,并且具有不同速率的寫(xiě)入和讀出數(shù)據(jù)的功能,可應(yīng)用于環(huán)形存儲(chǔ)器。對(duì)于寫(xiě)入數(shù)據(jù),其速率為低頻信號(hào)的采樣率,而讀取數(shù)據(jù)的速率是FFT處理單元的時(shí)鐘速率。
2.2數(shù)據(jù)地址產(chǎn)生規(guī)律
該設(shè)計(jì)采用計(jì)數(shù)器的方式獲得讀取數(shù)據(jù)地址。設(shè)蝶形處理單元中基本地址ad,也就是蝶形運(yùn)算單元中的第一個(gè)數(shù)據(jù)的地址ad1。對(duì)于1024點(diǎn)按時(shí)間抽取的基4-FFT算法共有5級(jí),其數(shù)據(jù)地址規(guī)律如表1所列。
表1 蝶形單元數(shù)據(jù)地址規(guī)律
2.3旋轉(zhuǎn)因子存儲(chǔ)器實(shí)現(xiàn)設(shè)計(jì)
本設(shè)計(jì)采用查找表方法,利用旋轉(zhuǎn)因子的對(duì)稱(chēng)性,建立了一個(gè)共有N/4組旋轉(zhuǎn)因子的存儲(chǔ)表。設(shè)x(n)為N=4L點(diǎn)有限長(zhǎng)序列,L為整數(shù),則N點(diǎn)離散傅里葉變換(DFT)定義為[15-16]:
k=0,1,…,N-1
(2)
按時(shí)間抽取,對(duì)DFT進(jìn)行基4算法分解,寫(xiě)出第m級(jí)遞推公式為:
Xm(k0,k1,km-1,nL-m-1,···,n1,n0)
(3)
(4)
2.4蝶形運(yùn)算單元的實(shí)現(xiàn)設(shè)計(jì)
蝶形運(yùn)算是快速傅立葉變換(FFT)中最基本的一個(gè)運(yùn)算單元。在FFT程序設(shè)計(jì)中要找到蝶形運(yùn)算地址與第幾級(jí)迭代,第幾組之間的關(guān)系。在第m級(jí),有如下關(guān)系:
(5)
式中,m為第級(jí)數(shù),p、q分別為單元地址,p-q=2m。
針對(duì)本文提出的短時(shí)傅里葉變換結(jié)構(gòu)采用Spartan-IIE系列XC2S200器件進(jìn)行了驗(yàn)證。圖2利用仿真軟件[17]邏輯綜合、布局布線、時(shí)序仿真和硬件實(shí)時(shí)在線仿真測(cè)試,設(shè)置低頻信號(hào)采樣頻率為32 kHz,選取分析窗函數(shù)為海明窗函數(shù)類(lèi)型數(shù)據(jù)點(diǎn)進(jìn)行加窗,圖中顯示了在某一時(shí)刻,捕獲的STFT低頻信號(hào)的幅度譜波形。主瓣加寬,旁瓣顯著減小,與理論計(jì)算波形相符合。
結(jié)合語(yǔ)音信號(hào)時(shí)頻處理的實(shí)際需要,通過(guò)對(duì)STFT算法的分析研究,借助于仿真平臺(tái)設(shè)計(jì)實(shí)現(xiàn)快速的短時(shí)傅里葉變換的可編程邏輯器件。詳細(xì)地研究了基4蝶形處理單元的設(shè)計(jì)和旋轉(zhuǎn)因子的地址生成規(guī)律,在滿(mǎn)足時(shí)頻率分辨率的條件下提高了運(yùn)算速率、降低了運(yùn)算度,并在高速率運(yùn)行環(huán)境下達(dá)到了低頻信號(hào)設(shè)計(jì)要求,節(jié)省了硬件資源。最后,進(jìn)行了仿真研究分析,達(dá)到信號(hào)處理的設(shè)計(jì)標(biāo)準(zhǔn)。
圖2 嵌入式邏輯分析儀顯示仿真圖
[1] 金朝娣,能昌信,王振翀,等.基于STFT填埋場(chǎng)襯層修補(bǔ)技術(shù)中振動(dòng)信號(hào)分析[J].計(jì)算機(jī)仿真,2011,28(7):277-280.
[2] 夏明赟,蔣濤.一種基于FPGA的高速短時(shí)傅里葉實(shí)現(xiàn)[J].通信技術(shù),2012,45(7):113-115.
[3] 陶中幸.基于FPGA的信號(hào)時(shí)頻分析方法研究[D].蘭州:西北師范大學(xué),2012.
[4] 楊小娜,黃歡,徐曉煜,等. 基于小波模極大值多尺度的圖像邊緣提取[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,01:91-93.
[5] 晏勇.基于FPGA三相正弦信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].電氣自動(dòng)化,2014,36(4):38-40.
[6] 陳軍.基于FPGA的FFT變換分析與電路設(shè)計(jì)實(shí)現(xiàn)[J].工業(yè)儀表與自動(dòng)化裝置,2016(1):40-42.
[7] 劉美容.FFT算法的DSP實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2015,32(1):76-79,84.
[8] 陳軍.基于MaxplusⅡ的短時(shí)傅里葉變換分析及仿真實(shí)現(xiàn)研究[J].遼寧大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,43(1):27-31.
[9] 李允公,姚兆,劉杰,等.基于瞬時(shí)頻率的窗寬遞增尋優(yōu)的短時(shí)傅里葉變換[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2007, 28(12):1737-1740.
[10]趙海臣,李良榮,李叢飛.FFT與IFFT頻域信號(hào)處理研究[J].貴州大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,31(2):64-68.
[11]孫紅英,楊鴻武,陶中幸.語(yǔ)譜分析的FPGA實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2011,33(5):1238-1242.
[12]楊鑫,章紅平,張?zhí)嵘?基于FPGA的快速捕星方法實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào)(工學(xué)版),2015,48(3):424-428.
[13]王全州,裴東,楊志民,等.基于FPGA的FFT處理器的研究與設(shè)計(jì)[J].西北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,44(5):38-42.
[14]段小東,顧立志.高性能基4快速傅里葉變換處理器的設(shè)計(jì)[J].計(jì)算機(jī)工程,2008,34(24) : 238-243.
[15](美)羅納德 N 布雷斯韋爾.傅里葉變換及其應(yīng)用[M].殷勤業(yè), 張建國(guó), 譯.西安:西安交通大學(xué)出版社, 2005:217-225.
[16]程佩青.數(shù)字信號(hào)處理教程[M].3版.北京:清華大學(xué)出版社,2007:202-326.
[17]王鈿,卓興旺.基于verilog 的數(shù)字系統(tǒng)應(yīng)用設(shè)計(jì)[M].2版.北京: 國(guó)防工業(yè)出版社,2007:208-234.
(責(zé)任編輯:曾晶)
Implementary Study of Short-time Fourier Transform Based on MaxplusII
CHEN Jun*
(Department of Physics and Electronic Engineering, Dingxi Teachers’ College, Dingxi 743000, China )
The programmable logic devices of the short-time Fourier transform of fast speed was designed and realized through the principle analysis and study of short time Fourier transform algorithm using MaxplusII. The base 4 butterfly processing unit design and rotation factor address generation rule was studied. It improves the operation rate, reduces the operation under the condition of meeting the frequency resolution, and it attains the design requirements of the low frequency signal in the high speed running environment, saves hardware resources. It proves the rationality of the design through software simulation analysis.
FPGA; STFT; implementation;RAM
A
2016-02-20基金項(xiàng)目: 國(guó)家自然科學(xué)基金項(xiàng)目(60971294);定西師范高等專(zhuān)科學(xué)校項(xiàng)目(DS1505)
陳軍(1969-),男,教授,博士,研究方向:信號(hào)與信息處理,Email: chenjun5582@163.com.
陳軍,Email:chenjun5582@163.com.
TN911.7