頻域分析原理
頻域分析最被大眾所熟知的可能是卡拉OK的音頻頻譜顯示,這里貼一個來自AVR單片機的項目 ,其中就用到了FFT來對語音信號進行分析:
視頻中橫坐標為頻率,縱坐標為功率,而且能夠實時的反映出語音的頻譜。
FFT是DFT(離散傅里葉變換)的加速算法,最早是由Cooley和Tukey在1965年提出 ,這里面用了很多的技巧,其方向是如何減小計算過程中所需要的乘法運算,另外FFT一次可以計算N個點,而且隨著N的增大,FFT優勢就會非常明顯。DFT復雜度(按乘法數量來計算)是 ,而FFT復雜度是 ,參考 .
這里簡單的理解下DFT,假設我們有一個待測數字序列A(A序列是以fs采樣的N點信號,采樣間隔為ts),假設此序列中暗含一個頻率為fa的正弦波信號,但是此暗含的信號幅度和相位我們并不知道是多少,現在我們的目標是求出此信號的的幅度和相位信息。
我們可以使用信號相關來解決此問題 ,構造2個頻率均為fa,幅度均為1的正弦和余弦序列B和C,然后用這兩個序列分別和A序列相乘,然后濾波,最后輸出的兩個信號就可以求出幅度和相位,假設A序列中含有非fa頻率的信號,相乘濾波后幅度為0,表示此序列中的非fa頻率信號都將被濾除,最后結果就只有和fa頻率相關信號被保留下來。
使用公式描述即:
A信號序列為:
B信號序列為:
C信號序列為:
則兩個輸出且濾波(信號求平均)后的結果是:
通過這兩個信號就可以求出X[i]中所含fa信號的幅度和相位:
式中,當i=N時,正弦信號和余弦信號相位需要是 的整數倍,這樣濾波器剛剛好將其他頻率的信號完全濾除掉,也就是說不會出現頻譜泄露,所以有: 將上式改寫如下: 若進行N點的DFT計算,只要滿足上式了,就可以保證在第k個頻率點出現信號,而不會在DFT中出現頻譜泄露問題。
程序驗證
1%--------------------------------------------------------------------------
2% Edited by bbl
3% Date: 2021-10-31(yyyy-mm-dd)
4% FFT計算
5%--------------------------------------------------------------------------
6fa = 200.1953125e6; % 信號頻率,不出現頻譜混疊
7% fa = 200e6; % 信號頻率,出現頻譜混疊
8A0 = 1; % 信號幅度
9fs = 1e9; % 采樣率
10Nfft = 1024; % FFT點數
11wa = 2*pi*fa;
12ts = 1/fs;
13t = 0:ts:ts*(Nfft-1); % 構造時間序列
14Vn = 1e-3*randn(1,Nfft); % 構造噪聲
15y = A0*sin(wa*t)+Vn; % 構造信號序列,加入了噪聲方便觀察
16X = fft(y, Nfft); % 計算FFT
17Amp = 2*abs(X)/Nfft; % 計算幅度
18Amp_log = 20*log10(Amp); % 幅度轉換為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));
仿真結果:
若將fa修改為200.1953125M,得到:
波形正常.
若將fa修改為200.0000000M,得到:
出現了頻譜混疊.
小程序實現
電路設計小工具中實現的是計算fa值,使得在FFT計算過程中不會出現頻譜泄露,當然也可以從給定輸出頻率計算出最接近的不會出現頻譜泄露問題的頻率點。本例中是輸入200MHz,查看最接近200MHz而不出現頻譜泄露的頻率點:
也可以計算一個Bin內的頻率帶寬:
當然,此小程序能顯示當前信號落在那個奈奎斯特區域:
表示fa信號落在第二奈奎斯特區域。
-
單片機
+關注
關注
6043文章
44621瀏覽量
638572 -
AVR
+關注
關注
11文章
1125瀏覽量
78886 -
頻域分析
+關注
關注
0文章
20瀏覽量
12750
發布評論請先 登錄
相關推薦
示波器的 FFT 功能怎么調?
![示波器的 <b class='flag-5'>FFT</b> 功能怎么調?](https://file1.elecfans.com//web2/M00/C4/A2/wKgZomX1Zy2ABpENAAGxDAAIHPY083.jpg)
手機通信原理解析
應用FFT對信號進行頻譜分析
FFT的分析和Xilinx FFT核的介紹
理解FFT和信號加窗原理及意義
![<b class='flag-5'>理解</b><b class='flag-5'>FFT</b>和信號加窗原理及意義](https://file1.elecfans.com//web2/M00/A6/E8/wKgZomUMQS2APh2PAAAUt4qArxY141.jpg)
怎么理解諧波分析(FFT)?
為什么會造成頻譜泄露?如何理解FFT中的頻譜泄露效應?
如何理解FFT中的頻譜泄露效應?
![如何<b class='flag-5'>理解</b><b class='flag-5'>FFT</b>中的頻譜泄露效應?](https://file1.elecfans.com/web2/M00/A9/C9/wKgaomU10R6AflJHAAAWUWXp_8U344.png)
評論