国产专区欧美精品,911国产精品,国产精品人人爽人人做我的可爱,欧美午夜影院一区

MATLAB信號頻譜分析FFT詳解

2020-04-27 來源:king阿金 作者:king阿金 字號:

做OFDM通信少不了頻譜分析,基帶信號DA后的頻譜,以及基帶數字上變頻后的DA信號都要頻譜分析。我覺得其實做任何工程都是這樣,先規定實施方案,然后仿真成功,再實際開發,不過也可以一邊開發,一邊仿真,開發結果要與仿真預期結果一致。

所以分析與仿真工具MATLAB就很重要了,既可以仿真,又可以通過示波器或其他方法把實際信號采下來分析。

matlab使用FFT函數分析信號頻譜

一般我使用的FFT分析頻譜流程如下:

其中有3個注意的點:

1.FFT的結果看的是頻譜,所以怎么把橫坐標的值從原來的FFT點數0:N-1轉換為頻率值呢?

首先要引出頻譜分辨率的概念,即分辨兩個不同頻率信號的最小間隔,FFT結果相鄰點間的間隔。因為N點FFT對應采樣率為fs的序列,其頻率分辨率為,其中Ts為采樣周期,T為整個序列的時間長度。有關頻率分辨率的就不多說了。所以我們橫坐標轉換為:f = (0:length(y)-1)*Fs/length(y);

2.直接FFT的結果里怎么又多余的信號頻率(鏡像頻率)圖2?

DFT具有對稱性,因為其是周期序列DFS在一個周期內的點,時域序列是有限長實序列,DFT的結果的實部周期偶對稱,虛部周期奇對稱,也就是模值周期偶對稱,相位周期奇對稱。其實從奈奎斯特定律也可以看出,fs>=2f,fs的采樣率最多也就顯示fs/2的真實頻率(感性理解哈哈)。
所以程序處理方式就是周期延拓后取-N/2:N/2-1.用到函數fftshift(),結果如圖3.如注釋所述:
%該變換還會生成尖峰的鏡像副本,該副本對應于信號的負頻率。
%為了更好地以可視化方式呈現周期性,可以使用 fftshift 函數對變換執行以零為中心的循環平移。

其實這和設計數字濾波器IIR與FIR也一樣,采樣率為fs的信號,設計的濾波器的通帶阻代也限制在0-fs/2內。

3.程序中的信號幅度值都是1,500點的FFT畫出來的幅度值怎么變成了250,應該是1吧?

是的,應該是1。所以怎么變換為1呢,注意到FFT的結果是偶對稱的,且其反應的真實頻譜是0-fs/2。所以需要的操作是直接取0-N/2的FFT結果,乘以2,然后除以N。即2*abs(y(1:N/2+1))/N,在上面的程序下接著寫:

注意到要除以N,也就是FFT的長度,為什么除以N,這個有很多說法,我自己理性理解的也不透徹,所以這里就不解釋了自行百度(我只能結合本例子感性理解哈哈)。

結果如圖4,可見橫坐標頻率是0-25,縱坐標信號的幅度為1.

然而,有不少人(包括我)平時分析信號都是直接FFT畫頻譜:圖2,且看幅值都是看相對的大小,或者有沒有頻率分量,就很少做圖3與圖4的變換。但是我不知道其中的緣由,今天終于明白了。

圖4 FFT所反映的真正的頻譜幅值

參考資料

[1]傅里葉變換 - MATLAB & Simulink - MathWorks 中國
[2]快速傅里葉變換- MATLAB fft - MathWorks 中國

主題閱讀:MATLAB  頻譜分析
主站蜘蛛池模板: 高密市| 黎平县| 涟源市| 葵青区| 射洪县| 潜山县| 兰州市| 陇西县| 叶城县| 河津市| 灵璧县| 常德市| 比如县| 綦江县| 博罗县| 独山县| 东源县| 张家界市| 宜兰市| 南充市| 土默特左旗| 万州区| 建宁县| 鹤壁市| 阿巴嘎旗| 揭西县| 镇康县| 兴安盟| 资阳市| 庆阳市| 奇台县| 舟山市| 壤塘县| 黄陵县| 修水县| 华蓥市| 黔江区| 盐源县| 郎溪县| 罗山县| 莱芜市|