?

基于復解析帶通濾波器的ZFFT 算法分析與仿真

2022-09-23 09:19張雅希
電聲技術 2022年7期
關鍵詞:頻帶細化濾波器

張雅希,張 琴,林 梅

(江西工業工程職業技術學院,江西 萍鄉 337000)

0 引言

本文針對實時頻譜分析中的關鍵算法進行分析研究。通常情況下,使用快速傅里葉變換(Fast Fourier Transform,FFT)算法,需在全頻帶內進行計算,得到的是整個采樣頻率上的全景頻譜。而在實際的工程應用中,常常只關心某一頻帶范圍內的局部頻譜,此時若仍使用FFT 算法,進行的選定頻帶范圍外的計算變得多余。也就是說,FFT 算法在進行局部頻譜分析時存在運算量大、速度慢的缺點。目前,比較合理有效的解決方法是利用頻譜細化算法對選定的頻帶范圍進行細化頻譜分析,在保證FFT 運算量不變的前提下,提高信號的頻率分辨率。

常見的頻譜細化算法包括線性調頻Z 變換CZT 算法和基于復解析帶通濾波器的ZFFT 算法[1]??紤]到CZT 算法對于譜線之間干涉較嚴重時的細化效果有限,本文選擇對復解析ZFFT 頻譜細化算法進行研究,并通過MATLAB 平臺對FFT 算法和復解析ZFFT 算法進行仿真,驗證頻譜細化算法的有效性。

1 復解析ZFFT 頻譜細化算法的原理及特點

復解析ZFFT 算法的原理如圖1 所示。在對信號進行頻譜細化時,首先通過復解析帶通濾波器濾除無關的頻率成分,而后重采樣,對抽取的信號進行移頻和FFT 變換處理,最終得到的頻譜即為細化頻譜。

圖1 解析ZFFT 算法原理圖

設x(n)為待細化的數字信號序列,信號采樣頻率為fs,細化頻帶區間為f1~f2,細化頻帶的中心頻率為,濾波器的半階數為M且M<<ND,細化倍數設為D,FFT 分析點數為N,信號長度為ND+2M。算法具體原理流程如下。

1.1 帶通濾波

復解析帶通濾波器的帶寬設為fs/2D。為了保證細化頻帶外的成分被完全濾除,濾波器的帶寬fs/2D應等于細化帶寬f2-f1[2]。為平滑濾波器的過渡帶,添加漢寧窗,一般選取半階數M=4D[3]。

對信號x(n)進行復解析帶通濾波后得到信號y(n)為

式中:h(n)為帶通濾波器的沖激響應,n=0,1,…,ND-1。濾波之后,細化頻帶f1-f2的頻譜被保留[2],其余無關頻帶的頻譜被完全濾除。

1.2 重采樣

對y(n)重采樣,每隔D點抽取出一點,信號采樣頻率由原來的fs降低為,信號的長度由ND降為N。重采樣后的信號g(n)為

1.3 移頻

對重采樣后的信號g(n)進行移頻,將f1移至零頻點。設移頻量為ω1d:

(2) 若控制有眼/無眼性狀的基因位于常染色體上,請用上表中雜交子代果蠅為材料,設計一個雜交實驗來確定無眼性狀的顯隱性(要求: 寫出雜交組合和預期結果)。

1.4 FFT 譜分析

對移頻后的N點復序列g1(n)進行FFT 處理,得到相應的頻譜G1(k),G1(k)和X(k)的關系為

式中:l1為帶通濾波時f1在Y(k)中對應譜線的位置,因為M<<ND,l1也可近似認為是f1在X(k)中的對應譜線的位置。

對G1(k)和X(k)的表達式進行變換后可得到:

此時頻譜的頻率分辨率為Δf′=fs/ND,用N/2條譜線即可表示出信號選定頻帶的細化譜。

對于采用FFT 算法得到的頻譜,其頻率分辨率Δf=fs/N。如果使用FFT 算法,對長度為ND+2M的序列x(n)進行分析,對應的頻率分辨率為Δf=fs/(ND+2M);使用復解析ZFFT 算法對同樣的x(n)進行分析,對應的頻率分辨率為Δf′=fs/ND。因M<<ND,可以近似認為這兩種算法分析得到的頻譜頻率分辨率相等,但前者需進行ND點的FFT 運算,而后者只需進行N點的FFT 運算。即復解析ZFFT 算法在保證頻率分辨率的同時,減小了FFT運算量?;蛘哒f,在相同FFT 運算量的情況下,復解析ZFFT 算法的頻率分辨率更高,即可實現頻譜的選帶細化。

2 仿真驗證

通過MATLAB 平臺對FFT 算法和復解析ZFFT算法進行仿真,以驗證頻譜細化算法的有效性。仿真測試信號涉及單頻信號和密集多頻信號。

2.1 單頻信號的頻譜仿真

用MATLAB 生成包含單個頻率成分的正弦信號x1:

信號采樣頻率設為fs=5 120 Hz,FFT 分析點數設為2 048,則FFT 的頻率分辨率為2.5 Hz。使用復解析ZFFT 算法分析時,細化頻帶設為60~80 Hz,細化頻帶中心頻率70 Hz,細化倍數50,對應的頻率分辨率為0.05 Hz。

在無噪聲情況下和外加高斯白噪聲情況下[4](信噪比SNR=-5 dB,SNR=-10 dB)分別采用FFT算法、復解析ZFFT 算法對信號x1進行頻譜分析,頻譜測量結果為:在三種情況下,FFT 算法仿真估計出的信號頻率均為70 Hz,誤差1.15 Hz;復解析ZFFT 算法仿真估計出的結果均為68.85 Hz,誤差0 Hz。圖2 和圖3 為在有信噪比為-10 dB 的高斯白噪聲情況下,分別采用FFT 算法、復解析ZFFT算法分析得到的頻譜圖。觀察易得,在單頻信號情況下,復解析ZFFT 算法在頻譜測量精度上比FFT算法更高。

圖2 FFT 頻譜圖(單頻)

圖3 復解析ZFFT 細化頻譜圖(單頻)

2.2 密集多頻信號的頻譜仿真

用MATLAB 生成包含多個密集頻率成分的正弦信號[5]x2:

式中:信號頻率fx2=68.35 Hz,fx3=69.70 Hz,fx4=70.23 Hz,fx5=70.85 Hz,fx6=71.06 Hz,信號幅度分別為3,5,4,3.5,6。

信號采樣頻率設為fs=5 120 Hz,FFT 分析點數設為2 048,則FFT 的頻率分辨率為2.5 Hz。使用復解析ZFFT 算法進行分析時,將細化頻帶設為60~80 Hz,細化頻帶中心頻率70 Hz,細化100 倍,相應的頻率分辨率為0.025 Hz。

與單頻信號的仿真類似,在無噪聲情況下和外加高斯白噪聲(信噪比SNR=-5 dB,SNR=-10 dB)情況下分別采用FFT 算法和復解析ZFFT 算法對信號x2進行頻譜分析,頻譜測量結果為:在三種情況下FFT 算法仿真估計出的結果均為70 Hz,不能將5 個頻率相差很近的信號區分開;對應的復解析ZFFT 算法仿真估計出的結果68.35 Hz,69.70 Hz,70.225 Hz,70.85 Hz 和71.05 Hz,誤差分別為0 Hz,0 Hz,0.005 Hz,0 Hz 及0.01 Hz。圖4 和圖5 為在有信噪比為-10 dB 的高斯白噪聲情況下,分別采用FFT 算法、復解析ZFFT 算法分析得到的頻譜圖。觀察發現,圖4 頻譜圖上只能看到一個譜峰,而圖5 頻譜圖中5 條譜線清晰可見,在有噪聲情況下,也能夠完全區分開這5 個頻率成分。

圖4 FFT 頻譜圖(密集多頻)

圖5 復解析ZFFT 細化頻譜圖(密集多頻)

3 結語

本文主要針對基于復解析帶通濾波器的ZFFT頻譜細化算法進行分析研究,同時設計合理的仿真方案,通過MATLAB 平臺對傳統FFT 算法和復解析ZFFT 算法進行仿真。仿真結果表明,無論是在單頻信號、多頻信號還是密集多頻信號的情況下,使用復解析ZFFT 算法進行局部頻譜分析都具有明顯優勢,在相同FFT 運算量的情況下,其頻率分辨率遠遠高于FFT 算法。特別是在密集多頻信號的頻率估計中,復解析ZFFT 算法能夠將FFT 根本無法分辨出的多個密集頻率成分準確地細化出來,實現局部細化頻譜。

猜你喜歡
頻帶細化濾波器
基于小波變換的輸電線路故障類型識別方法研究
淺談有源濾波器分析及仿真
基于多模諧振器的超寬帶濾波器設計
在融入鄉村振興中細化文明實踐
進程網的細化研究*
Wi-Fi網絡中5G和2.4G是什么?有何區別?
基于能量檢測的認知無線電頻譜感知算法研究
中小企業重在責任細化
超材料吸收器設計方法的研究進展
“細化”市場,賺取百萬財富
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合