您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么在Matlab中利用fft繪制信號頻譜圖,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
fs=500;%采樣率 f1=5;%信號頻率 f2=10;%信號頻率 T=1;%時寬1s n=round(T*fs);%采樣點個數 t=linspace(0,T,n);%時域橫坐標 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);%頻域橫坐標,注意奈奎斯特采樣定理,最大原信號最大頻率不超過采樣頻率的一半 figure(2) plot(f,abs(X));%畫雙側頻譜幅度圖 xlabel("f/Hz") ylabel("幅度") grid on
顯然,該信號有三個頻率分量,直流(0頻),5Hz和10Hz,對應的幅度分別為3、1、2,其時域波形圖如下:
轉換為頻域的關鍵函數是X = fftshift(fft(x./(n)));
一定注意需要除以總樣本數n,然后用fftshift將曲線挪一下位置。
做完這步操作后,得出的是雙邊頻譜,頻率范圍從-fs/2到fs/2,這是因為奈奎斯特采樣定理,給定采樣頻率為fs,那么原信號的最大頻率不超過fs/2。橫坐標的點數和時域信號的采樣點數相同,這由離散傅里葉變換的性質給出。
繪制頻譜幅度圖如下:
關于怎么在Matlab中利用fft繪制信號頻譜圖就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。