頻域分析原理
頻域分析最被大眾所熟知的可能是卡拉OK的音頻頻譜顯示,這里貼一個來自AVR單片機(jī)的項目 ,其中就用到了FFT來對語音信號進(jìn)行分析:
視頻中橫坐標(biāo)為頻率,縱坐標(biāo)為功率,而且能夠?qū)崟r的反映出語音的頻譜。
FFT是DFT(離散傅里葉變換)的加速算法,最早是由Cooley和Tukey在1965年提出 ,這里面用了很多的技巧,其方向是如何減小計算過程中所需要的乘法運(yùn)算,另外FFT一次可以計算N個點,而且隨著N的增大,F(xiàn)FT優(yōu)勢就會非常明顯。DFT復(fù)雜度(按乘法數(shù)量來計算)是 ,而FFT復(fù)雜度是 ,參考 .
這里簡單的理解下DFT,假設(shè)我們有一個待測數(shù)字序列A(A序列是以fs采樣的N點信號,采樣間隔為ts),假設(shè)此序列中暗含一個頻率為fa的正弦波信號,但是此暗含的信號幅度和相位我們并不知道是多少,現(xiàn)在我們的目標(biāo)是求出此信號的的幅度和相位信息。
我們可以使用信號相關(guān)來解決此問題 ,構(gòu)造2個頻率均為fa,幅度均為1的正弦和余弦序列B和C,然后用這兩個序列分別和A序列相乘,然后濾波,最后輸出的兩個信號就可以求出幅度和相位,假設(shè)A序列中含有非fa頻率的信號,相乘濾波后幅度為0,表示此序列中的非fa頻率信號都將被濾除,最后結(jié)果就只有和fa頻率相關(guān)信號被保留下來。
使用公式描述即:
A信號序列為:
B信號序列為:
C信號序列為:
則兩個輸出且濾波(信號求平均)后的結(jié)果是:
通過這兩個信號就可以求出X[i]中所含fa信號的幅度和相位:
式中,當(dāng)i=N時,正弦信號和余弦信號相位需要是 的整數(shù)倍,這樣濾波器剛剛好將其他頻率的信號完全濾除掉,也就是說不會出現(xiàn)頻譜泄露,所以有: 將上式改寫如下: 若進(jìn)行N點的DFT計算,只要滿足上式了,就可以保證在第k個頻率點出現(xiàn)信號,而不會在DFT中出現(xiàn)頻譜泄露問題。
程序驗證
1%--------------------------------------------------------------------------
2% Edited by bbl
3% Date: 2021-10-31(yyyy-mm-dd)
4% FFT計算
5%--------------------------------------------------------------------------
6fa = 200.1953125e6; % 信號頻率,不出現(xiàn)頻譜混疊
7% fa = 200e6; % 信號頻率,出現(xiàn)頻譜混疊
8A0 = 1; % 信號幅度
9fs = 1e9; % 采樣率
10Nfft = 1024; % FFT點數(shù)
11wa = 2*pi*fa;
12ts = 1/fs;
13t = 0:ts:ts*(Nfft-1); % 構(gòu)造時間序列
14Vn = 1e-3*randn(1,Nfft); % 構(gòu)造噪聲
15y = A0*sin(wa*t)+Vn; % 構(gòu)造信號序列,加入了噪聲方便觀察
16X = fft(y, Nfft); % 計算FFT
17Amp = 2*abs(X)/Nfft; % 計算幅度
18Amp_log = 20*log10(Amp); % 幅度轉(zhuǎn)換為dB
19f = linspace(0, fs/2, Nfft/2+1)*1e-6;
20plot(f, Amp_log(1:Nfft/2+1), '-r', 'LineWidth', 1);
21grid on;
22ylim([-100,10]);
23ylabel('Amp/dBFS');
24xlabel('freq/MHz');
25title(sprintf('FFT, fs=%0.2fM Hz, fa=%0.8fM Hz', fs*1e-6,fa*1e-6));
仿真結(jié)果:
若將fa修改為200.1953125M,得到:
波形正常.
若將fa修改為200.0000000M,得到:
出現(xiàn)了頻譜混疊.
小程序?qū)崿F(xiàn)
電路設(shè)計小工具中實現(xiàn)的是計算fa值,使得在FFT計算過程中不會出現(xiàn)頻譜泄露,當(dāng)然也可以從給定輸出頻率計算出最接近的不會出現(xiàn)頻譜泄露問題的頻率點。本例中是輸入200MHz,查看最接近200MHz而不出現(xiàn)頻譜泄露的頻率點:
也可以計算一個Bin內(nèi)的頻率帶寬:
當(dāng)然,此小程序能顯示當(dāng)前信號落在那個奈奎斯特區(qū)域:
表示fa信號落在第二奈奎斯特區(qū)域。
-
單片機(jī)
+關(guān)注
關(guān)注
6032文章
44525瀏覽量
633256 -
AVR
+關(guān)注
關(guān)注
11文章
1122瀏覽量
78592 -
頻域分析
+關(guān)注
關(guān)注
0文章
20瀏覽量
12729
發(fā)布評論請先 登錄
相關(guān)推薦
評論