王 鑫,劉 巖
(1.佳木斯大學 黑龍江 哈爾濱 150030;2.哈爾濱市衛(wèi)生局 黑龍江 哈爾濱 150000)
FFT[1]的全稱是Fast Fourier Transform,就是不斷將長序列的DFT 分解為短序列的DFT,并利用WmN的周期性和對稱性及其一些特殊值來減少DFT 運算量的快速算法。文中使用的基2 FFT 算法是最基本最常用的傅里葉快速算法。
由于交流電網有效分量為工頻單一頻率,因此任何與工頻頻率[2]不同的成分都可以稱之為諧波。由于正弦電壓加壓于非線性負載,基波電流發(fā)生畸變產生諧波[3]。諧波的危害十分嚴重。諧波使電能的生產、傳輸和利用的效率降低,使電氣設備過熱、產生振動和噪聲,并使絕緣老化,使用壽命縮短,甚至發(fā)生故障或燒毀。諧波可引起電力系統(tǒng)局部并聯(lián)諧振或串聯(lián)諧振,使諧波含量放大,造成電容器等設備燒毀。諧波還會引起繼電保護和自動裝置誤動作,使電能計量出現(xiàn)混亂。對于電力系統(tǒng)外部,諧波對通信設備和電子設備會產生嚴重干擾。文中使用FFT 算法既能有效地檢測出電網諧波,又能滿足實時性要求,在實際應用中取得了較好的保護作用。
文中主要介紹使用TMS320F2812[4]高性能DSP 處理器作為算法硬件平臺,并根據該處理器的結構編寫基2 FFT 算法,并且該方案已成功應用到電網諧波的檢測中。TMS320F2812 是德州儀器出品的16 位高性能數字處理器,主頻可達150 MHz,單片集成了Flash、SRAM 以及多種外設,并且成本低廉,廣泛適用于各種工控應用。
長度為N 的序列x(n)的N 點DFT為
由上式可知,計算X(k)的每一個值需要計算N 次復數乘法和N-1 次復數加法,所以計算X(k)的N個值需要計算N2次復數乘法和(N-1)*N 次復數加法。當N 增大時,運算量非線性迅速增大。例如N=210時,N2=1048576。為了將DFT 應用于各種實時信號處理的實際工程中,必須減少其運算量。
由于N 點DFT 的運算量隨N2增長,因此當N 較大時,減少運算量最有效的途徑就是將N 點DFT 分解為幾個較短的DFT 計算。例如,分解為M個N/M 點DFT,則復數乘法運算量為N2/M,下降到原來的1/M。因此可根據WmN的周期性和對稱性減少DFT 的運算量。
FFT 變換就是不斷地將長序列的DFT 分解為短序列的DFT,并利用WmN的周期性和對稱性及其一些特殊值減少DFT運算量的快速算法。文中介紹的基2 FFT 算法是最基本且最常用的快速算法。
基2 FFT 要求DFT 變換區(qū)間長度N=2M。序列x(n)的N點DFT 按照n 的奇偶性分解為
令x1(l)=x(2l),x2(l)=x(2l+1)。
這樣N 點DFT 的計算分解為計算兩個N/2 點離散傅立葉變換X1(k)、X2(k)。
如上節(jié)所述,N 點FFT 運算中,每級都有N/2個蝶形。每個蝶形都要乘以因子WpN,稱其為旋轉因子,p 稱為旋轉因子的指數。設序列x(n)經時域抽選(位反轉)后,存入數組X 中。如果蝶形運算的兩個輸入數據相距B個點,應用原位運算,則蝶形運算可表示成如下形式
其中p=J*2M-L;J=0,1,…,2L-1-1;L=1,2,…,M。
綜上所述可采用下述運算方法。先從輸入端開始,逐級進行,共進行M 級運算。在進行第L 級運算時,依次求出2L-1個不同的旋轉因子,每求出一個旋轉因子,就計算完它對應的所有2M-L個蝶形。這樣我們可用三重循環(huán)實現(xiàn)基2 FFT 運算,程序流程圖如圖1 所示。
按照此流程圖編寫的C 語言[5]程序代碼如下,
圖1 基2 FFT 算法流程圖Fig.1 Based 2 FFT algorithm flow diagram
按照以上方法實現(xiàn)的軟件經過編譯調試,運行效果良好,128 點FFT 算法執(zhí)行的時間為0.8 ms,滿足電網諧波檢測的實時性條件。
在LCD[6]屏幕上打印出電流信號各個頻點的譜線,當輸入信號為標準正弦波時,譜線圖如圖2 所示,只在50 Hz 頻點位置有一條譜線;當輸入信號為矩形波時,譜線圖如圖3 所示,在50 Hz、150 Hz、250 Hz、350 Hz…處均有譜線;通過這兩個譜線圖對比可以得出該FFT 算法準確有效。
利用此算法在 處理器上執(zhí)行的程序可以準確、高效地檢測出電網諧波,對電網諧波抑制或保護起到了良好的作用。
圖2 正弦信號FFT 譜線圖Fig.2 Sine signal FFT spectrum figure
圖3 矩形波信號FFT 譜線圖Fig.3 Rectangular-wave signal FFT spectrum figure
[1]普???,著.數字信號處理[M].4版.方艷梅,譯.電子工業(yè)出版社,2007.
[2]李國曉.水輪機調速器運行與維護[M].北京:水利水電出版社,2012.
[3]德拉羅薩,著.電力系統(tǒng)與諧波[M].趙琰,孫秋野,譯.北京:機械工業(yè)出版社,2009.
[4]陳是知,姜蕊輝.TMS320F2812原理與開發(fā)實踐[M].北京:中國電力出版社,2010.
[5]譚浩強.C語言程序設計 [M].北京:清華大學出版社,2008.
[6]孫俊喜.LCD驅動電路、驅動程序設計及典型應用[M].北京人民郵電出版社,2009.