matlab fftshift_MATLAB信号频谱分析FFT详解
做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 中國
來源:CSDN king阿金
原創RF測試筆記:
頻譜分析系列:如何選擇顯示檢波器頻譜分析系列:為什么需要預選器?頻譜分析系列:淺談分辨率帶寬RBW頻譜分析系列:如何理解FFT中的頻譜泄露效應?
頻譜分析系列:如何理解FFT中時間窗與RBW的關系
頻譜分析系列:為什么降低VBW不會降低頻譜儀底噪?數字調制系列:如何理解IQ ?數字調制系列:IQ基本理論噪聲系數系列:噪聲來源、定義及影響
噪聲系數系列:天線噪聲溫度測試方法
噪聲系數系列:噪聲系數測試之增益法噪聲系數系列:淺析AGC電路噪聲系數的測試
噪聲系數系列:淺析多通道接收單元噪聲系數的測試
噪聲系數系列:鏡頻抑制濾波器對射頻接收前端輸出噪聲的影響
選擇示波器時的“5倍法則”投稿&專欄合作??請加小編微信?|?微信號:18675536035總結
以上是生活随笔為你收集整理的matlab fftshift_MATLAB信号频谱分析FFT详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 环信SDK 踩坑记webIM篇(一)
- 下一篇: 基于php的成绩管理设计(含源文件)