趙宏強
(海軍航空工程學院 青島校區(qū),山東 青島 266041)
頻譜分析是信號處理中最常用的方法,傳統(tǒng)的頻譜分析方法一般采用快速傅里葉變換(FFT),F(xiàn)FT 得到的是整個折疊頻率上的粗略的“全景頻譜”,而在實際應用中,往往需要對感興趣的窄帶頻譜區(qū)間進行細微觀察和分析,這就需要較高的頻率分辨率。FFT 算法中頻率分辨率和采樣點數(shù)成反比,在采樣頻率不變的前提下,要提高頻率分辨率,就必須增加采樣點數(shù),但增加采樣點數(shù)就會增加FFT 的計算量。因此,F(xiàn)FT 的頻率分辨率和計算量是相互矛盾的,這也在一定程度上限制了FFT 的應用。
為了解決對窄帶頻譜區(qū)間進行細致觀測的問題,提出了頻譜細化的概念,其基本思路是對信號頻譜中的某一頻段進行局部放大,實現(xiàn)選帶分析。頻譜細化技術(shù)近年來發(fā)展迅速,常見算法有:FFT-FS 算法、ZOOM-FFT(以下簡稱ZFFT)算法和線性調(diào)頻Z 變換(Chirp-Z 變換,以下簡稱CZT)算法。本文主要對上述三種頻譜細化算法的原理進行比較,通過仿真分析總結(jié)各自的應用特點,并從頻率分辨率的角度對三種算法的實質(zhì)進行了分析研究。
設采樣序列為x(n),n =0,1,…,N-1,采樣頻率為fs,需要進行細化的頻帶為f1~f2,對信號進行N 點FFT 變換。因此,
信號初始的頻率分辨率為Δf=fs/N,選帶的中心頻率為f0=(f1+f2)/2,帶寬為fW=f2-f1。
序列x(n)的傅立葉系數(shù):
式(1)中,k=0,1,…,N/2。
頻率kΔf 處幅值譜矢量表達式為ak-jbk,即ak和bk分別對應頻譜幅值的實部和虛部。由采樣定理知,序列x(n)中包含著0 ~fs/2 的頻段信息,所以如果用連續(xù)的傅立葉變換對頻譜進行計算,把頻譜曲線看成是連續(xù)的,即把式(1)中的k 看作區(qū)間(0≤k≤N/2)內(nèi)連續(xù)變化的實變量f(0≤f≤fs/2),則可將式(1)變成:
于是,利用式(2)便可得連續(xù)的頻譜曲線,從而使頻率分辨率不再受采樣點數(shù)N 的限制,f 是一個連續(xù)的頻率。這便是FFT-FS 頻譜細化算法的基本原理[1]。
在實際運用中,在定義域f∈[f1,f2]內(nèi),直接采用式(2)進行計算,然后根據(jù)所需的頻率分辨率Δf '來設定選頻帶內(nèi)的取樣點數(shù)M,兩者之間的關(guān)系為Δf ' =fW/(M-1)。
N 點FFT 計算的頻譜實際上是z 平面單位圓上的N 點等間隔取樣,CZT 計算的則是z 平面螺旋線周線上Z 變換的等間隔取樣,這些取樣在螺旋線的某一部分上按等角度分布。X(z)表示序列x(n)的Z 變換,利用CZT 算法,可以計算下列給定點zk上的X(zk)。
式(3)中A=A0e-jθ0,W=W0e-jφ0,A0和θ0分別表示起始抽樣點z0的矢量半徑長度和相角,W0表示螺旋線的伸展率,φ0表示兩相鄰抽樣點之間的角度差,M 為所要分析復頻譜的抽樣點數(shù),不一定等于N。按式(3)給定的zk值,經(jīng)過推導,可得X(zk):
令
則
式(7)中,
以上便是CZT 頻譜細化算法的基本原理[2-5],其計算流程如圖1 所示。
圖1 CZT 的計算流程
在實際運用中,首先根據(jù)所需的頻率分辨率Δf '來設定選頻帶內(nèi)的取樣點數(shù)M,兩者之間的關(guān)系為Δ f ' =fW/(M-1),然后根據(jù)選頻帶f1~f2確定CZT 的相關(guān)參數(shù),因為希望得到的是信號的頻譜分析,故應該在單位圓上去實現(xiàn)CZT,所以取A0=W0=1,θ0=2πf1/fs,φ0=2πΔf '/fs,最后根據(jù)圖1的計算流程進行CZT 計算。
ZFFT 頻譜細化算法的基本原理可歸納為[6-8]:將初始信號與單位復指數(shù)信號exp(-2πnf0/fs)相乘進行復調(diào)制,將實序列變?yōu)閺托蛄?,利用傅里葉變換的移頻性質(zhì)把選頻段的中心頻率移至零頻,再通過低通抗混疊濾波和整數(shù)倍抽取,最后對抽取后的信號做FFT 分析和頻率調(diào)整,便可以得到選頻段的細化頻譜。ZFFT 的計算流程如圖2 所示。
在實際運用中,首先根據(jù)所需的頻率分辨率Δf '來設定重采樣的細化倍數(shù)D,兩者之間的關(guān)系為Δf ' = fs/DN =Δf/D,假設要進行N 點FFT 變換,信號的長度為L,則D 的取值范圍應滿足DN≤L;然后根據(jù)選頻帶f1~f2確定低通濾波器的參數(shù),濾波器的截止頻率fd的取值范圍應滿足fd≤fs/2D;最后再根據(jù)圖2 的計算流程進行計算即可。
圖2 ZFFT 的計算流程
設仿真信號為:x(t)=cos(2π×203t)+cos(2π ×203.9t+π/3),信號的采樣頻率為1 024 Hz,采樣點數(shù)為1 024 點,頻率分辨率為Δf=1 Hz。分別采用基帶FFT、ZFFT、FFT-FS和CZT 對信號進行分析,分析結(jié)果如圖3 所示。
在由基帶FFT 得到的全景頻譜中,無法分辨出信號中的兩個頻率成分,通過局部放大FFT 頻譜,盡管可以得到兩個極大值,但由于兩頻率成分間隔為0.9 Hz <Δf,所以不能確定信號是單頻信號還是多頻信號。通過設定參數(shù),對頻帶200 ~205 Hz 進行細化,使三種頻譜細化算法的頻率分辨率都為0.1 Hz,三種算法都能看到兩個明顯的峰值,可以確定信號是由兩個頻率構(gòu)成的多頻信號。從而驗證了三種頻譜細化算法的有效性。
圖3 基帶FFT、FFT-FS、CZT 和ZFFT 的分析對比
盡管FFT-FS 與CZT 頻譜細化的算法不同,但是由圖3可以看出兩者的細化結(jié)果非常接近,為了進一步研究,分別對抽樣點M 為11、21 和51,即頻率分辨率分別為0.5 Hz、0.25 Hz 和0.1 Hz 三種情況下對上述仿真信號進行了分析,兩者頻譜幅值絕對誤差的數(shù)量級都為10-13,如圖4 所示。因此,F(xiàn)FT-FS 與CZT 的仿真結(jié)果可以認為是一致的,在下面的仿真中僅以FFT-FS 作為代表進行分析。
當多頻信號中頻率間隔較小時,兩頻率之間會產(chǎn)生干涉現(xiàn)象,上述仿真條件不變,F(xiàn)FT-FS 與ZFFT 的頻率分辨率都為Δf '1=0.1 Hz,改變信號兩頻率的大小進行分析。當頻率間隔為5Δf '1時,分析結(jié)果如圖5(a)所示,F(xiàn)FT-FS 仍能分辨出兩個頻率,但發(fā)生了峰值漂移,有了相互排斥的現(xiàn)象,幅值衰減達20%;當頻率間隔為2Δf '1時,分析結(jié)果如圖5(b)所示,F(xiàn)FT-FS 已經(jīng)不能分辨出兩個頻率,即使增加抽樣點數(shù)M也無濟于事,由于兩頻率的疊加使幅值增加30%;但是在這兩種情況下,ZFFT 都能正確分辨出信號中的兩個頻率,并且頻率和幅值估計值幾乎沒有誤差。盡管兩次仿真的頻率間隔都大于FFT-FS 細化后的頻率分辨率,但是FFT-FS 對于密集多頻信號間的干涉無能為力,不能有效分辨密集多頻信號,而ZFFT 卻可以有效抑制信號間的干涉,高精度地分辨密集多頻信號。
ZFFT 之所以有很高的分辨精度,并能抑制頻率間的干涉,主要是因為進行ZFFT 仿真時,所需的數(shù)據(jù)長度是FFTFS 的D 倍(D 為細化倍數(shù)),它的高分辨率是以增加數(shù)據(jù)長度來實現(xiàn)的。實際上,ZFFT 的性能與對原數(shù)據(jù)做DN 點FFT后,在選頻帶內(nèi)的局部放大的效果相近。
以上的仿真都是在沒有噪聲干擾的情況下進行的,下面將在不同信噪比(SNR)下,對DN 點的FFT、ZFFT、FFT-FS 和CZT 4 種算法的性能及特點進行比較。
圖4 FFT-FS 與CZT 頻譜幅值的絕對誤差
圖5 FFT-FS 與ZFFT 的分析對比圖
設仿真信號:x1 = 2cos(2π × 203t + 10π/180),x2 =cos(2π×203.85t+20π/180),x3 =2cos(2π ×203.7t +10π/180),x4 =cos(2π×203.83t+20π/180)
s(n)為加性高斯白噪聲,信號的采樣頻率為1 024 Hz,采樣點數(shù)為1 024 點,初始頻率分辨率為1 Hz,令ZFFT 中的D=20,F(xiàn)FT-FS 和CZT 中的M=51,選頻帶為200 ~205 Hz,從而保證3 種算法細化后的頻率分辨率都為Δf '2=0.05 Hz。算例(A-C)分別是在SNR =-10,0,10 三種情況下對信號x1 +x2 +s(n)進行的仿真,算例(D-F)是在SNR =10 的情況下分別對信號x2 +x3 +s(n)、x1 +x4 +s(n)、x4 +s(n)進行的仿真,所有的仿真結(jié)果都是在進行了1 000 次蒙特卡洛仿真后取的平均值,如表1 所示。
1)上述所有情況下的仿真都表明,DN 點的FFT 和ZFFT 的性能是接近的,F(xiàn)FT-FS 和CZT 的性能是接近的,一般情況下可認為彼此是一致的,下面僅以ZFFT 和FFT-FS 兩種方法為代表進行比較;
2)由算例(A-C)可得,隨著SNR 的增加,ZFFT 的性能得到提高,頻率、幅值和相位三者的誤差都變小;FFT-FS 只有相位誤差變小,而頻率和幅值誤差變化不大;盡管隨著SNR 的增加ZFFT 和FFT-FS 的性能都得到一定程度的改善,但改善程度較小,因此,兩種方法的抗噪性都較好;
3)算例(F)是一個單頻信號,而算例(E)比(F)多了一個頻率接近的信號,但仿真結(jié)果顯示FFT-FS 的幅值誤差和相位誤差在(F)中比在(E)都小了一個數(shù)量級,頻率誤差也小了一倍,性能得到明顯提高;而ZFFT 性能變化不大。說明了FFT-FS 比較適合于單頻信號的頻譜細化,否則精度將受到影響;
4)算例(D)與(C)相比,只是縮小了兩頻率間的頻率間隔,但FFT-FS 的頻率、幅值和相位誤差分別為10Δf '2,43.2893%和24.560 1 度,信號已經(jīng)完全失真,而ZFFT 的性能卻幾乎沒有受到任何影響。證明了FFT-FS 不適用于頻率間隔較小的密集多頻信號,而ZFFT 卻可以有效抑制頻率間的干涉;
5)算例(D)和(E)相比,只是其中一個信號的頻率成分由203.85 Hz 改為了203.83 Hz,但仿真結(jié)果顯示ZFFT 在(E)中的幅值誤差達25%,相位誤差近75 度,信號完全失真;算例(F)中對頻率為203.83 Hz 的單頻信號進行分析,ZFFT 在(F)中的誤差和(E)接近,并沒有得到改善。這主要是由于203.85 Hz 是整周期采樣(Δf '2=0.05Hz),而203.83 Hz 不是整周期采樣。因此,ZFFT 僅適用于整周期采樣的信號,其估計精度較高,對非整周期采樣的信號分析其復制和相位就會完全失真,算例(F)也說明即使是對單頻非整周期采樣信號也無能為力。比較而言,F(xiàn)FT-FS 對于信號是否是整周期采樣影響不大。
表1 各種頻譜細化方法的性能比較
頻譜細化算法之所以能夠?qū)x頻段的頻譜進行細化,根本原因在于頻率分辨率的提高,下面從頻率分辨率的含義入手,對頻譜細化算法的本質(zhì)就行分析。
文獻[3]對頻率分辨率進行了較詳細的闡述,給出了物理分辨率Δfp=fs/L 和計算分辨率Δfc=fs/N 兩個概念,其中fs為采樣頻率,L 為信號長度,N 為FFT 的變換點數(shù)。計算分辨率是靠計算得出的,它并不能反映真實信號的頻率分辨能力,而真正反映信號頻率分辨能力的是物理分辨率,在采樣頻率不變的前提下,要提高信號的分辨能力,只能通過增加數(shù)據(jù)的實際長度來實現(xiàn)。
FFT-FS 和CZT 頻譜細化算法本質(zhì)上是相同的。就是在不增加數(shù)據(jù)長度的前提下,用不同的數(shù)學處理方式在選頻帶內(nèi)通過插值,增加FFT 的變換點數(shù),從而提高信號的計算分辨率,實現(xiàn)對局部頻段的細化,但不能提高物理分辨率,因而不能改善信號的頻率分辨能力。
ZFFT 頻譜細化算法通過濾波重采樣使采樣頻率fs降低D 倍,因而物理分辨率變?yōu)閒s/DL,進而提高頻率分辨能力,但該過程隱含的條件是對原始數(shù)據(jù)長度增加D 倍后進行的重采樣,實際數(shù)據(jù)長度為DL,信號最初的物理分辨率也為fs/DL。因此,ZFFT 并不能提高信號的物理分辨率,它只是在假定信號長度為L 不變的錯誤前提下,通過一系列數(shù)學變換使得選頻帶內(nèi)物理分辨率貌似從fs/L 提高到了fs/DL,得到了提高頻率分辨能力的假象,而信號的物理分辨率在整個過程中并沒有改變,通過ZFFT 得到的改善頻率分辨能力的結(jié)果,并不是通過ZFFT 算法實現(xiàn)的,根本原因在于信號數(shù)據(jù)長度的增加。ZFFT 的實際效果和對信號直接進行DN 點FFT變換是一致的。綜上可得,ZFFT 本質(zhì)上并不能真正實現(xiàn)頻譜細化,它只是一種節(jié)省運算量的快速算法。
介紹了當前三種頻譜細化算法的原理,通過大量的仿真對各種算法的特點進行研究,最后通過頻率分辨率的概念對各種算法的本質(zhì)進行了分析。
1)ZFFT 和DN 點FFT 變換是一致的,它并不能真正實現(xiàn)頻譜細化,它只是一種節(jié)省運算量的快速算法。ZFFT 可以改善信號的頻率分辨能力,但以增加數(shù)據(jù)長度為代價。ZFFT 對整周期采樣信號進行分析,在SNR=-10 dB 的情況下,頻率誤差為0,幅值誤差約為4%,相位誤差小于3 度;但對于非整周期采樣,即使在SNR=10 dB 的情況下,幅值誤差達25%,相位誤差近75 度。因此,ZFFT 僅適用于整周期采樣的信號分析,精度較高。
2)FFT-FS 和CZT 在本質(zhì)上是一致的,靈活性較好,可以對選頻帶進行任意倍數(shù)的細化,不受信號長度的影響,但不能改善信號的頻率分辨能力,不適用于密集信號的分析。在SNR=10 dB 的情況下,當頻率間隔為3Δfc 時,頻率誤差為10Δfc,幅值誤差約為45%,相位誤差大于20°。FFT-FS 對單頻信號分析精度較高,對多頻信號分析,頻率和相位誤差都較大,不如ZFFT 效果好。但FFT-FS 的估計精度不受信號是否為整周期采樣的影響,適用范圍更廣。
[1]劉進明,應懷樵.FFT 譜連續(xù)細化分析的傅里葉變換法[J].振動工程學報,1995,8(2):162-166.
[2]程佩青.數(shù)字信號處理教程[M].第2 版.北京:清華大學出版社,2001.
[3]胡廣書. 數(shù)字信號處理-理論、算法與實現(xiàn)[M]. 第2版.北京:清華大學出版社,2003.
[4]RABINER L,SCHAFER R,RADER C.The chirp z transform algorithm[J].IEEE Transactions on Audio and Electroacoustics,1969,17(2):86-92.
[5]錢克矛,李川奇.頻譜校正的線性調(diào)頻Z 變換方法[J].振動工程學報,2000,13(4):628-632.
[6]丁康,潘成灝,李巍華.ZFFT 與Chirp-Z 變換細化選帶的頻譜分析對比[J].振動與沖擊,2006,25(6):9-12.
[7]李天昀,葛臨東. 兩種快速頻域細化分析方法的研究[J]. 系 統(tǒng) 工 程 與 電 子 技 術(shù),2004,26(9): 1192-1194,1216.
[8]王力,張冰,徐偉.基于MATLAB 復調(diào)制ZOOM-FFT 算法的分析和實現(xiàn)[J]. 艦船電子工程,2006,26(4):119-121.
[9]丁明亮,羅久飛,郭小渝.單側(cè)聲帶息肉的聲學信號特征[J]. 重慶理工大學學報:自然科學版,2011(8):60-65.