溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Matlab中利用fft繪制信號頻譜圖

發(fā)布時間:2021-04-30 15:28:41 來源:億速云 閱讀:1079 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)怎么在Matlab中利用fft繪制信號頻譜圖,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

fs=500;%采樣率
f1=5;%信號頻率
f2=10;%信號頻率
T=1;%時寬1s
n=round(T*fs);%采樣點個數(shù)
t=linspace(0,T,n);%時域橫坐標(biāo)
x = 3+cos(2*pi*f1*t) + 2.*cos(2*pi*f2*t);%形成三頻信號,注意第二個頻率信號幅度為2,直流幅度為3
figure(1);
plot(t,x);%畫時域圖
xlabel("t/s")
grid on

X = fftshift(fft(x./(n))); %用fft得出離散傅里葉變換
f=linspace(-fs/2,fs/2-1,n);%頻域橫坐標(biāo),注意奈奎斯特采樣定理,最大原信號最大頻率不超過采樣頻率的一半
figure(2)
plot(f,abs(X));%畫雙側(cè)頻譜幅度圖
xlabel("f/Hz")
ylabel("幅度")
grid on

顯然,該信號有三個頻率分量,直流(0頻),5Hz和10Hz,對應(yīng)的幅度分別為3、1、2,其時域波形圖如下:

怎么在Matlab中利用fft繪制信號頻譜圖

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

繪制頻譜幅度圖如下:

怎么在Matlab中利用fft繪制信號頻譜圖

關(guān)于怎么在Matlab中利用fft繪制信號頻譜圖就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI