Matlab使用fft畫出信號(hào)頻譜圖的方法
做雷原作業(yè),需要對信號(hào)進(jìn)行頻譜分析,網(wǎng)上一搜太亂了,很多不是我想要的,特此整理。
DSP還沒學(xué)到fft,就不對fft原理進(jìn)行詳細(xì)解釋了,直接上代碼。
fs=500;%采樣率
f1=5;%信號(hào)頻率
f2=10;%信號(hào)頻率
T=1;%時(shí)寬1s
n=round(T*fs);%采樣點(diǎn)個(gè)數(shù)
t=linspace(0,T,n);%時(shí)域橫坐標(biāo)
x = 3+cos(2*pi*f1*t) + 2.*cos(2*pi*f2*t);%形成三頻信號(hào),注意第二個(gè)頻率信號(hào)幅度為2,直流幅度為3
figure(1);
plot(t,x);%畫時(shí)域圖
xlabel("t/s")
grid on
X = fftshift(fft(x./(n))); %用fft得出離散傅里葉變換
f=linspace(-fs/2,fs/2-1,n);%頻域橫坐標(biāo),注意奈奎斯特采樣定理,最大原信號(hào)最大頻率不超過采樣頻率的一半
figure(2)
plot(f,abs(X));%畫雙側(cè)頻譜幅度圖
xlabel("f/Hz")
ylabel("幅度")
grid on
顯然,該信號(hào)有三個(gè)頻率分量,直流(0頻),5Hz和10Hz,對應(yīng)的幅度分別為3、1、2,其時(shí)域波形圖如下:

轉(zhuǎn)換為頻域的關(guān)鍵函數(shù)是X = fftshift(fft(x./(n)));一定注意需要除以總樣本數(shù)n,然后用fftshift將曲線挪一下位置。
做完這步操作后,得出的是雙邊頻譜,頻率范圍從-fs/2到fs/2,這是因?yàn)槟慰固夭蓸佣ɡ?,給定采樣頻率為fs,那么原信號(hào)的最大頻率不超過fs/2。橫坐標(biāo)的點(diǎn)數(shù)和時(shí)域信號(hào)的采樣點(diǎn)數(shù)相同,這由離散傅里葉變換的性質(zhì)給出。
繪制頻譜幅度圖如下:

可以看到,直流分量的幅度是3,這與時(shí)域的幅度相同,5Hz和10Hz的幅度分別為0.5和1,這比時(shí)域的幅度減小了一半,這是由于這個(gè)頻譜圖是雙邊頻譜。沿著x=0線“對折”過去加起來,就變成單邊頻譜,頻域幅度就和時(shí)域幅度對應(yīng)上了。
到此這篇關(guān)于Matlab使用fft畫出信號(hào)頻譜的文章就介紹到這了,更多相關(guān)Matlab畫fft信號(hào)頻譜內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
好玩又實(shí)用的查看函數(shù)圖像網(wǎng)站Desmos
這個(gè)網(wǎng)站的最大優(yōu)點(diǎn),就是省去了安裝數(shù)學(xué)繪圖軟件或計(jì)算軟件的麻煩,只要打開瀏覽器就能使用了??戳私榻B之后,可別忘了把這個(gè)好網(wǎng)站加到書簽2021-08-08
Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程
下面小編就為大家分享一篇Hbuilder連遠(yuǎn)程接服務(wù)器上傳代碼的圖文教程,具有很好的參考價(jià)值,一起跟隨小編過來看看吧,希望對大家有所幫助2017-11-11
ffmpeg播放器實(shí)現(xiàn)詳解之視頻顯示(推薦)
FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。這篇文章主要介紹了ffmpeg播放器實(shí)現(xiàn)詳解視頻顯示,需要的朋友可以參考下2020-07-07
DLL(Dynamic Linkable Library) 詳解說明
DLL文件(Dynamic Linkable Library 即動(dòng)態(tài)鏈接庫文件),是一種不能單獨(dú)運(yùn)行的文件,它允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源2008-12-12
Eclipse 誤刪文件的恢復(fù)與代碼的恢復(fù)詳解
這篇文章主要介紹了Eclipse 誤刪文件的恢復(fù),代碼的恢復(fù)的相關(guān)資料,需要的朋友可以參考下2016-09-09

