譚保華,張文宇,黃程旭,鄭焙天,何嘉奇
(1.湖北工業(yè)大學(xué)理學(xué)院,武漢 430068;2.長江大學(xué)物理與光電工程學(xué)院,湖北 荊州 434023;3.湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,武漢 430068)
隨著非線性負(fù)載的普及使用,電網(wǎng)的結(jié)構(gòu)復(fù)雜化的同時(shí),電網(wǎng)諧波污染[1-3]也日益嚴(yán)重.因此,為了抑制諧波危害,必須對諧波進(jìn)行檢測,以保證電網(wǎng)的穩(wěn)定運(yùn)行.
目前,快速傅里葉變換(fast Fourier transform,F(xiàn)FT)在電網(wǎng)諧波檢測中應(yīng)用較為廣泛[4],但時(shí)域截?cái)噙^程中常產(chǎn)生頻譜泄露和柵欄效應(yīng),影響諧波分析精度.加窗函數(shù)和譜線插值算法是FFT算法常用的改進(jìn)方法,一方面是選用更好的窗函數(shù),而另一方面是增加修正的譜線條數(shù),文獻(xiàn)[5-7]通過卷積得到旁瓣特性更好的窗函數(shù),雖然構(gòu)造的窗函數(shù)抑制頻譜泄露能力更強(qiáng),但卷積也使得窗的主瓣寬度增加,頻率分辨率損失加大.文獻(xiàn)[8-9]中使用更多的譜線修正,提高精度的同時(shí)算法復(fù)雜度也大大提高,影響了電網(wǎng)諧波分析的實(shí)時(shí)性.
在傳統(tǒng)加窗插值FFT算法的基礎(chǔ)上,文獻(xiàn)[10]首次提出了全相位FFT算法的概念,其計(jì)算所得各條譜線的相位值與頻率誤差無關(guān),滿足“相位不變性”,相位檢測精度較FFT更高,并且全相位FFT算法本身帶有頻譜泄露抑制能力.文獻(xiàn)[11]中提出了一種組合優(yōu)化算法,利用改進(jìn)FFT算法計(jì)算幅值和頻率,利用全相位FFT算法計(jì)算相位,該方法沒有完全利用全相位FFT算法優(yōu)點(diǎn),文獻(xiàn)[12]中提出了一種雙窗全相位FFT雙譜線校正算法,將傳統(tǒng)FFT修正所用的比值校正法[13]推廣到全相位FFT算法,獲得了更好的諧波檢測精度.文獻(xiàn)[14]中將二譜線插值算法應(yīng)用于全相位FFT,相比FFT二譜線插值精度更高.
綜上所述,傳統(tǒng)FFT結(jié)合譜線插值算法如果過于追求算法精度,會使算法的復(fù)雜度提升,在一些實(shí)際設(shè)備上運(yùn)行較慢,最終無法同時(shí)兼顧時(shí)間和精度.文章通過分析全相位FFT算法原理,將一種FFT三譜線校正算法用于全相位FFT,并推到全相位FFT下的修正公式.文章算法能夠準(zhǔn)確計(jì)算諧波和間諧波參數(shù),且具有一定的抗噪聲能力.
傳統(tǒng)FFT對信號分析時(shí),直接對離散信號的截?cái)鄶?shù)據(jù)進(jìn)行FFT運(yùn)算,大多數(shù)情況下,會導(dǎo)致頻譜泄露效應(yīng),而相比較傳統(tǒng)FFT截?cái)?,全相位FFT算法在一定區(qū)間范圍內(nèi)考慮了該序列的全部采樣情況.根據(jù)線性時(shí)不變系統(tǒng)的性質(zhì),全相位FFT算法等效的算法流程如圖1所示.
全相位FFT本質(zhì)上是在FFT算法之前進(jìn)行了數(shù)據(jù)的預(yù)處理,首先使用卷積窗wc與 2N-1個(gè)信號數(shù)據(jù)相乘,再將間隔為N的數(shù)據(jù)兩兩相加,產(chǎn)生的N個(gè)數(shù)據(jù)進(jìn)行FFT處理,即得全相位FFT算法結(jié)果[15-16].
圖1中,卷積窗wc是由前窗f與經(jīng)過翻轉(zhuǎn)的后窗b進(jìn)行卷積后得到,即
wc(n)=f(n)×b(-n),n∈[-N+1,N-1].
(1)
若前窗f和后窗b相同,且互為對稱窗,則由時(shí)域卷積定理可得該卷積窗對應(yīng)的離散傅里葉變換為
Wc(ω)=F(ω)·B(ω)=|W(ω)|2,
(2)
式中,|W(ω)|2為窗函數(shù)的幅值頻域表達(dá)式.
一單頻復(fù)數(shù)指數(shù)序列x(n)以采樣頻率fs進(jìn)行采樣,得到的離散信號表達(dá)式為
(3)
式中,A、f0和φ0分別為信號的幅值,頻率和相位.
對信號x(n)乘以窗函數(shù)f進(jìn)行時(shí)域截?cái)?,根?jù)頻域卷積定理可得,加窗后的傅里葉變換為
(4)
根據(jù)圖1,加f窗函數(shù)的全相位FFT算法的傅里葉變換為
(5)
對比式(4)和式(5)可得,F(xiàn)FT算法的相位受其頻率偏移量的影響,而全相位FFT算法的相位值則不受影響,所以不需修正全相位FFT計(jì)算所得相位值即可得到很高的精度,并且全相位FFT中窗函數(shù)旁瓣譜線相比主譜線按平方關(guān)系衰減,使得主譜線更為突出,可有效抑制頻譜泄露.
如圖2中所示,對信號進(jìn)行非整周期采樣或異步采樣時(shí),由于柵欄效應(yīng)的影響,所得頻譜峰值一般會有偏差δ,諧波的實(shí)際頻點(diǎn)k0很難位于離散譜線的頻點(diǎn)k上,因此需要對計(jì)算的結(jié)果進(jìn)行修正,Jacobsen等[17]提出了一種三譜線校正方法,但該方法僅用于FFT處理,本文將其拓展到全相位FFT算法,并給出該方法下全相位FFT的參數(shù)修正公式.
窗函數(shù)的使用對于譜線插值的計(jì)算結(jié)果影響很大[18],一般選用旁瓣特性優(yōu)越的窗函數(shù)對信號截?cái)?,但過分追求旁瓣特性忽略主瓣寬度會使得頻率分辨率損失較大,因此在選擇窗函數(shù)時(shí)需要兼顧主瓣特性和旁瓣特性.
基本窗函數(shù)的時(shí)域方程為:
(6)
式中,M為余弦項(xiàng)個(gè)數(shù),n=0,1,…,N-1.bm為各項(xiàng)的系數(shù),取決于不同的窗函數(shù).
式(7)的傅里葉變換得到的幅頻函數(shù)為
(7)
當(dāng)N遠(yuǎn)大于1的時(shí)候,窗函數(shù)的幅頻函數(shù)可以化簡為
(8)
設(shè)k為真實(shí)頻點(diǎn)k0附近幅值最大的譜線,k左邊譜線為k-1,右邊譜線為k+1,非同步采樣時(shí),幅值最大譜線和其左右譜線均具有較大幅值,采用3根譜線的信息進(jìn)行修正,定義頻率偏移量:
δ=k0-k,δ∈[-0.5,0.5].
(9)
根據(jù)式(4)和式(5)中所得FFT和全相位FFT的頻域函數(shù)區(qū)別,將基本FFT定義的三譜線校正方法用于全相位FFT,推導(dǎo)修正公式:
(10)
式中,P為比例因子.常見窗函數(shù)的比例因子取值如表1所示.
根據(jù)式(5)中所得全相位FFT頻域函數(shù)與窗函數(shù)頻域函數(shù)關(guān)系,可將式(10)化簡為:
(11)
由式(8)中化簡得到的窗函數(shù)表達(dá)式,利用MATLAB中的polyfit函數(shù)反擬合式(11),可得δ=f(α),則頻率的校正公式為
f0=(k+δ)Δf,
(12)
幅值的校正公式為
(13)
根據(jù)全相位FFT算法的相位不變性.相位的計(jì)算直接利用全相位FFT算法結(jié)果,即
φ0=arg[Y(k)].
(14)
采用某一諧波信號進(jìn)行分析,驗(yàn)證文中的算法具有較高的諧波檢測精度,諧波信號的表達(dá)式為:
(15)
式中,基波頻率f1=19.75 Hz.采樣頻率設(shè)為40 960 Hz,采樣點(diǎn)數(shù)設(shè)為10 240,其他各項(xiàng)參數(shù)的取值如表2所示.
表2 經(jīng)典諧波信號參數(shù)Tab.2 Classical harmonic signal parameters
將該算法與FFT三譜線插值進(jìn)行對比,選用漢寧窗作為兩種算法所用窗函數(shù),比較諧波參數(shù)計(jì)算的精度.比較結(jié)果如表3所示.
表3 諧波參數(shù)估計(jì)誤差Tab.3 Harmonic parameter estimation error %
分析表3結(jié)果可得,計(jì)算式(15)的諧波信號模型時(shí),全相位FFT三譜線校正的幅值、頻率和相位誤差的數(shù)量級在10-7%~10-9%、10-8%~10-9%和10-8%~10-10%之間,相比FFT三譜線插值法,幅值和頻率的精度提高了3~6個(gè)數(shù)量級,相位的精度提高了3~7個(gè)數(shù)量級,可見全相位FFT算法由于相位不變性,其相位檢測精度明顯高于普通FFT,并且將譜線校正方法用于全相位FFT算法的結(jié)果也優(yōu)于FFT算法.
實(shí)際上電網(wǎng)的頻率往往會出現(xiàn)一定的波動(dòng)[19],采用式(15)所示的經(jīng)典諧波信號模型,在認(rèn)為基波頻率為19.75 Hz,而基波頻率實(shí)際在19.25~20.25 Hz之間變化時(shí),采用本文算法對信號進(jìn)行分析,諧波信號的幅值、頻率和相位檢測的相對誤差如圖3所示.
由圖3可知,隨著基波頻率波動(dòng)值變大,諧波檢測各項(xiàng)參數(shù)的精度也在下降,但本文算法依然能夠保持較好的精度,在19.25 Hz和20.25 Hz時(shí),幅值、頻率和相位的檢測精度約為10-7%~10-8%、10-4%和10-7%~10-10%,保持了較高的準(zhǔn)確度,結(jié)果說明本文算法在頻率波動(dòng)情況下依然能夠進(jìn)行諧波信號的檢測.
圖3 頻率波動(dòng)下的信號檢測誤差Fig.3 Signal detection error under frequency fluctuation
在電網(wǎng)諧波分析中,信號一般不止包含諧波,還含有諧波.因此,使用文獻(xiàn)[13]中的諧波和間諧波模型:
(16)
式中,采樣頻率fs=40960 Hz,采樣點(diǎn)數(shù)為10 240,基波頻率為50.1 Hz.其它參數(shù)取值如表4所示.
表4 諧波和間諧波信號參數(shù)Tab.4 Harmonic and inter-harmonic signal parameters
將該算法與文獻(xiàn)[11]中的雙窗全相位FFT雙譜線校正和文獻(xiàn)[13]中的雙窗全相位FFT雙譜線插值算法進(jìn)行對比,依然選用漢寧窗作為所有算法所用窗函數(shù),因全相位FFT算法估計(jì)相位精度一致,故比較諧波幅值和頻率估計(jì)的精度,比較結(jié)果如表5及表6所示.
表5 幅值計(jì)算相對誤差Tab.5 Amplitude calculation relative error %
分析表5和表6可得,在式(16)所示的諧波與間諧波模型下,本文算法的幅值和頻率誤差的數(shù)量級在10-6%~10-8%和10-7%~10-9%之間,相比雙窗全相位FFT雙譜線校正算法,有四個(gè)幅值的檢測精度提高了1個(gè)數(shù)量級,有四個(gè)頻率的檢測精度提高了1個(gè)數(shù)量級,可見采用三譜線校正方法,一定情況下可以獲得較二譜線校正更好的精度;同時(shí),相比雙窗全相位FFT雙譜線插值方法,幅值和頻率的檢測精度均提高了1~3個(gè)數(shù)量級.
表6 頻率計(jì)算相對誤差Tab.6 Frequency calculation relative error %
針對復(fù)雜諧波模型中所用算法和本文算法,對耗時(shí)進(jìn)行對比分析.所用計(jì)算機(jī)的 CPU 型號為Intel(R)Core(TM)i7-7700HQ CPU @ 2.80 GHz,操作系統(tǒng)為Windows 10家庭版64位,運(yùn)行環(huán)境為MATLAB 2017.耗時(shí)對比結(jié)果如表7所示.
由表7可知,采用相同的窗函數(shù)時(shí),全相位FFT算法采用不同改進(jìn)時(shí)對計(jì)算時(shí)間的影響不大,本文算法采用了三譜線校正,相比二譜線校正利用了更多信息,但是計(jì)算耗時(shí)并沒有明顯增加.本文算法在提高精度的同時(shí)對計(jì)算復(fù)雜度也沒有很大影響.
在實(shí)際電網(wǎng)中,諧波信號大多數(shù)情況下含有一定的高斯白噪聲[20],選用式(16)所示的諧波和間諧波信號模型,信噪比在10~100 dB內(nèi)以10 dB為步長進(jìn)行變化,與雙窗全相位FFT雙譜線校正算法及雙窗全相位FFT雙譜線插值算法對比,驗(yàn)證算法的抗噪能力.
添加白噪聲后不同算法計(jì)算得到的基波幅值和頻率的相對誤差如圖4和圖5所示.
由圖4和圖5可知,隨著信噪比的減小,全相位FFT雙譜線校正算法、全相位FFT雙譜線插值算法和本文算法的相對誤差相比未加白噪聲減小了1~2個(gè)數(shù)量級,但本文算法的幅值和頻率誤差數(shù)量級相比全相位FFT雙譜線校正算法依然提高了1個(gè)數(shù)量級左右,全相位FFT雙譜線插值算法在引入白噪聲后隨著信噪比變化時(shí)誤差數(shù)量級變化不大,但精度不高.故本文算法的諧波檢測精度較高,且具有一定的抗白噪聲能力.
圖5 不同信噪比條件下的頻率相對誤差Fig.5 Phase relative error under different SNR conditions
本文針對目前快速傅里葉變換算法在電網(wǎng)諧波檢測中存在的頻譜泄露現(xiàn)象,提出了一種全相位FFT三譜線校正算法,算法利用全相位FFT計(jì)算得到的峰值譜線周圍的三根譜線,構(gòu)造頻率偏移量修正公式,推導(dǎo)出諧波和間諧波參數(shù)的校正公式.最后,分別使用簡單諧波信號、復(fù)雜間諧波和諧波信號和含白噪聲信號作為仿真模型,比較本文算法與其它諧波和間諧波檢測算法精度的精度大小.本文的詳細(xì)內(nèi)容和具體結(jié)論如下.
1)從公式推導(dǎo)上比較傳統(tǒng)FFT算法與全相位FFT算法在抑制頻譜泄露能力,全相位FFT算法不僅自帶頻譜泄露抑制能力,并且具有相位不變性,因此選擇全相位FFT算法進(jìn)行改進(jìn).
2)將原本用于傳統(tǒng)FFT算法的一種高精度三譜線校正算法拓展到全相位FFT算法,根據(jù)公式推導(dǎo)中全相位FFT算法與FFT算法的關(guān)系,推導(dǎo)得到以全相位FFT算法所得結(jié)果進(jìn)行校正時(shí)的參數(shù)修正公式.
3)以簡單諧波模型、復(fù)雜諧波和間諧波模型和含白噪聲的諧波和間諧波模型為仿真對象,在簡單諧波模型中,本文算法相比FFT三譜線插值算法精度提高了3~7個(gè)數(shù)量級;當(dāng)基波頻率波動(dòng)時(shí),本文算法依然能夠保持較好的精度,在復(fù)雜諧波和間諧波模型中,本文算法相比雙窗全相位FFT算法雙譜線插值和雙窗全相位FFT雙譜線校正算法提高了1~3個(gè)數(shù)量級,并且在含白噪聲信號模型仿真中,本文算法的抗白噪聲能力更為突出,可為電網(wǎng)諧波檢測提供有效手段.