文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.007
中文引用格式: 周冬躍,林海全,張洪林,等. 采用窗函數(shù)法進(jìn)行數(shù)字信號截短的優(yōu)化算法[J].電子技術(shù)應(yīng)用,2015,41(12):32-35.
英文引用格式: Zhou Dongyue,Lin Haiquan,Zhang Honglin,et al. Optimization algorithm for digital signals intercept with window function method[J].Application of Electronic Technique,2015,41(12):32-35.
0 引言
對一個時域信號進(jìn)行有限時間片段的分析時,如果對數(shù)字信號進(jìn)行直接截短,就會導(dǎo)致頻譜泄露,從而導(dǎo)致信號分析出現(xiàn)差錯,影響信號分析的精度,以至難以滿足應(yīng)用要求[1-3]。對此,國內(nèi)外學(xué)者提出了一系列改進(jìn)數(shù)字信號截短的方法。文獻(xiàn)[4-5]研究了頻譜泄露的原因以及加窗函數(shù)后頻譜泄露的特性。文獻(xiàn)[6]對海明窗(Hamming Window)、漢寧窗(Hanning Window)在信號截短中的時譜特性進(jìn)行比較分析。文獻(xiàn)[7]分析矩形窗(Rectangular Window)、海明窗、漢寧窗和布萊克曼窗(Blackman Window)對截短時域和空域信號產(chǎn)生的影響。然而,這些研究都局限在理論和仿真分析,其對應(yīng)的方案尚未結(jié)合FPGA硬件應(yīng)用需要。
為了解決工業(yè)產(chǎn)品設(shè)計中的頻譜泄露問題,文中基于FPGA硬件系統(tǒng),對集成矩形窗、海明窗、漢寧窗和布萊克曼窗四個窗函數(shù)的系統(tǒng)進(jìn)行優(yōu)化設(shè)計,在頻譜泄露特性、速度和硬件資源等方面對現(xiàn)有的設(shè)計方案進(jìn)行了較大的優(yōu)化,從而提高了系統(tǒng)的綜合性能。
1 窗函數(shù)的設(shè)計
該方法的基本思路是:首先利用坐標(biāo)旋轉(zhuǎn)數(shù)字計算(CORDIC)迭代方法產(chǎn)生余弦函數(shù),然后利用式(1)~式(4)分別所表示矩形窗、海明窗、漢寧窗和布萊克曼窗函數(shù)實現(xiàn)基于FPGA的矩形窗、海明窗、漢寧窗和布萊克曼窗的信號截短方案。
由式(1)~式(4)可見,為了實現(xiàn)這些窗函數(shù),首先要解決余弦函數(shù)中相位的求解,其次計算余弦函數(shù),最后完成加減運(yùn)算。其中,CORDIC迭代算法提供一種逼近的方法求得余弦值。
限制該算法中的旋轉(zhuǎn)相位θi,使得tanθi=2-i,即θi=tan-12-i。CORDIC迭代可用如式(5)所示的方程組表示:
其中,di=+1,zi≥0;di=-1,zi<0,用于確定旋轉(zhuǎn)方向。依據(jù)迭代公式,設(shè)計硬件結(jié)構(gòu),框圖如圖1所示。
在圓周旋轉(zhuǎn)模式中,i取值越大輸出精度越高,令i=n時能滿足設(shè)計要求,那么經(jīng)過n次迭代后:
通過設(shè)置x0=K總和y0=0就可以計算xn=cosz0和yn=sinz0了,其中,z0為輸入相位, K總=cosθ0×cosθ1×…×cosθn。
2 窗函數(shù)的優(yōu)化
2.1 CORDIC迭代參數(shù)優(yōu)化
CORDIC是系統(tǒng)的核心模塊,由式(6)可知這是一個迭代的過程,為了使CORDIC算法模塊能夠辨認(rèn)并計算本設(shè)計的最小刻度相位,同時考慮節(jié)省迭代對應(yīng)的資源開銷,最后一次迭代所對應(yīng)的旋轉(zhuǎn)相位只要滿足小于該最小刻度相位即可。約定文中設(shè)計的系統(tǒng)采樣點(diǎn)數(shù)是256點(diǎn)至16 M點(diǎn)之間任意可選,當(dāng)信號長度N為16 M點(diǎn)時,可獲得本設(shè)計的最小刻度相位0.000 021 458°。經(jīng)過式(6)的計算可得,在i=22時,即第22次迭代所對應(yīng)的旋轉(zhuǎn)相位0.000 013 660°小于最小刻度相位,故將文中方案迭代次數(shù)確定為23。
為了將最小刻度相位能夠用二進(jìn)制進(jìn)行較精確地表示,由相位因子可知二進(jìn)制位寬應(yīng)至少為25位。而CORDIC算法模塊的相位輸入范圍為0~π/2,且輸入相位是有符號數(shù)。在保證精度的情況下從節(jié)省資源的角度出發(fā),CORDIC算法模塊將相位位寬確定為24位,輸出余弦值的位寬也定為24位。
2.2 窗函數(shù)的結(jié)構(gòu)優(yōu)化
進(jìn)一步分析式(1)~式(4)四個窗函數(shù)的表達(dá)式,發(fā)現(xiàn)這些表達(dá)式具有相同的結(jié)構(gòu),因此可以將它們合并為一條通用的表達(dá)式,如式(7)所示:
不同窗函數(shù)對應(yīng)不同的窗系數(shù)A、B、C,各窗函數(shù)對應(yīng)的具體系數(shù)由式(1)~式(4)可以得出,在設(shè)計時,這些窗系數(shù)可由一個兩位二進(jìn)制變量的值來確定。
由于在任一時刻只有一個窗函數(shù)在工作。此特點(diǎn)滿足了資源共享的條件,因此可以對方案所需的資源進(jìn)行共享優(yōu)化,4種窗函數(shù)使用相同的CORDIC和乘法器,圖2(a)和圖2(b)分別為優(yōu)化前和優(yōu)化后的電路結(jié)構(gòu)。
從圖中可以看出,優(yōu)化后的結(jié)構(gòu)可以大大減少FPGA內(nèi)部的硬件消耗。
表1為設(shè)計優(yōu)化前后在FPGA器件中布局布線所消耗的資源情況,可見優(yōu)化后設(shè)計所消耗的各類資源比優(yōu)化前減少了20%~51%。
2.3 速度的優(yōu)化設(shè)計
整個設(shè)計采取了恰當(dāng)?shù)牧魉€技術(shù)對速度進(jìn)行優(yōu)化,其基本思路是:在組合邏輯較長的路徑上插入幾級寄存器,從而大大提高了數(shù)據(jù)的吞吐量。經(jīng)過增加流水線級數(shù)的方法,時鐘周期比流水線設(shè)計前小,從而提高運(yùn)行速度。圖3為迭代過程流水線設(shè)計之前和之后的模塊圖。
對于圖3(a)所示的優(yōu)化前的方案,僅能通過30 MHz的時序約束。假設(shè)系統(tǒng)運(yùn)行于30 MHz的頻率下,數(shù)據(jù)從進(jìn)入系統(tǒng)到輸出結(jié)果需要19個時鐘周期,即633 ns。而對于圖3(b)所示優(yōu)化后方案,進(jìn)行流水線設(shè)計之后可以通過360 MHz的時序約束,數(shù)據(jù)從進(jìn)入系統(tǒng)到輸出結(jié)果需要42個時鐘周期,即117 ns。很明顯,經(jīng)過流水線設(shè)計后,系統(tǒng)的運(yùn)行速度大大提高。此外,流水線設(shè)計使系統(tǒng)每個時鐘處理一個數(shù)據(jù),不用等到一個數(shù)據(jù)完全輸出才進(jìn)行下一個數(shù)據(jù)的處理。
3 窗函數(shù)對抑制頻譜泄漏方案的實現(xiàn)和分析
3.1 系統(tǒng)整體實現(xiàn)
文中窗函數(shù)采用點(diǎn)數(shù)可調(diào),令信號是長度256點(diǎn)到16 M點(diǎn)動態(tài)可調(diào)的窗函數(shù)控制器,即需要根據(jù)不同的信號長度為系統(tǒng)提供相應(yīng)的相位因子。圖4所示為窗函數(shù)計算過程的流程圖,相位生成器根據(jù)FPGA中的主控器MicroBlase傳來的相位因子和信號長度兩個參數(shù)產(chǎn)生相應(yīng)時刻的相位,然后CORDIC模塊根據(jù)該相位計算相應(yīng)的余弦值,接著根據(jù)當(dāng)前窗函數(shù)類型選擇相應(yīng)的窗系數(shù)并完成窗函數(shù)計算,最后利用窗函數(shù)結(jié)果對輸入信號進(jìn)行加窗處理。
3.2 整體仿真效果和分析
為了分析文中方案對頻譜泄露的特性,對文中的窗函數(shù)法采樣數(shù)據(jù)的頻譜特性進(jìn)行實驗和分析。首先對實驗信號y(t)=40×[sin(40πt)+sin(120πt)]進(jìn)行采樣,采樣頻率為1 000 Hz,采用點(diǎn)數(shù)共1 571點(diǎn),modelsim仿真軟件通過讀取該文件數(shù)據(jù)對文中所設(shè)計的系統(tǒng)進(jìn)行仿真并將仿真結(jié)果保存在文本文件中,采用仿真進(jìn)行頻譜分析,結(jié)果如圖5所示。
分析矩形窗、海明窗、漢寧窗和布萊克曼窗的4種情況中旁瓣衰減,它們的第一旁瓣相對于主瓣衰減和主瓣寬度如表2所示。
由頻譜圖可以看出,對信號加矩形窗(圖5(a))處理,有明顯的頻譜泄露;而對信號加海明窗(圖5(b))、漢寧窗(圖5(c))或布萊克曼窗(圖5(d))處理后,則頻譜泄露明顯減小。海明窗、漢寧窗和布萊克曼窗主瓣加寬,旁瓣則顯著減小。從減小泄漏觀點(diǎn)出發(fā),漢寧窗優(yōu)于矩形窗,布萊克曼窗最好,但主瓣加寬,相當(dāng)于頻率分辨力有所下降。相對而言海明窗加權(quán)的系數(shù)能使主瓣寬度更小。布萊克曼窗主瓣較寬,旁瓣衰減達(dá)到-59.3,頻譜泄露最小,幅值識別精度最高,但頻率識別精度最低??梢姡贔PGA的窗函數(shù)截短,相對于直接截短的方式,采用文中窗函數(shù)處理方案,信號的頻譜泄露特性得到較好改善。
4 結(jié)論
文中所提出的方案對矩形窗、海明窗、漢寧窗和布萊克曼窗進(jìn)行了算法設(shè)計和方案優(yōu)化。為了優(yōu)化方案中的資源消耗和提高精度,采用了資源共享技術(shù)、選擇合理的數(shù)據(jù)位寬以及為CORDIC模塊選擇合適的迭代次數(shù);為了優(yōu)化設(shè)計的速度,采用了流水線技術(shù),從而較大提高處理的速度。最后,利用工具軟件modelsim對系統(tǒng)進(jìn)行了仿真,驗證了算法對應(yīng)的系統(tǒng)功能的正確性以及分析了系統(tǒng)的優(yōu)化性能。
參考文獻(xiàn)
[1] 張斌,孔敏,吳從兵.基于窗函數(shù)下頻譜泄露的研究[J].信息化縱橫,2009(11):10-12.
[2] 田園,周勖.窗函數(shù)在數(shù)字濾波器設(shè)計中的應(yīng)用[J].國外電子測量技術(shù),2013,32(4):25-27.
[3] 郭建濤,劉友安,玉林.基于窗函數(shù)設(shè)計的跳頻信號時域分析[J].計算機(jī)應(yīng)用,2011,31(9):2333-2335.
[4] XUE H,YANG R.Optimal interpolating windowed discrete Fourier transform algorithms for harmonic analysis in power systems[J].IEE Proceedings of Generation,Transmission and Distribution,2003,150(5):583-587.
[5] RELJIN I S,RELJIN B D.Extremely flat-top windows for harmonic analysis[J].IEEE Trans.on Instrumentation and Measurement.2007,56(3):1025-1041.
[6] DAVID C.Swanson.Precision spectral peak frequency measurement using a window leakage ratio function.Mechanical Systems and Signal Processing Volumes 54-55,March 2015:1-15.
[7] RAPUANO S,HARRIS F J.An introduction to FFT and time domain windows[J].IEEE instrumentation & Measurcmcnt Magazine,2007,10(6):32-44.