[英]Compute FFT in frequency axis when signal is in rawData in Matlab
我有一個頻率為10 MHz的信號,采樣率為100 MS / sec。 當我的信號在rawData中(該rawData的長度為100000)時,如何在Matlab中根據頻率計算FFT
這是我的代碼,
t=(1:40);
f=10e6;
fs=100e6;
NFFT=1024;
y=abs(rawData(:1000,2));
X=abs(fft(y,NFFT));
f=[-fs/2:fs/NFFT:(fs/2-fs/NFFT)];
subplot(1,1,1);
semilogy(f(513:1024),X(513:1024));
axis([0 10e6 0 10]);
您可以在另一篇文章中找到相應的頻率,我將回答您其他的問題:
大多數情況下,包括所有數據是最佳選擇。 fft
只是將輸入數據截斷為請求的長度,這可能不是您想要的長度。 如果您知道輸入單句的時間段,則可以將其截斷以包括整個時間段。 如果您不知道,那么窗戶(例如漢寧)可能會很有趣。
如果更改NFFT
,則在fft計算中會使用更多數據,這可能會稍微改變給定頻率的幅度。 您還可以計算0
到Fs/2
(采樣頻率的一半)之間更多頻率處的幅度。
問題尚不清楚,請提供N
和L
的定義。
這取決於您的應用程序。 如果噪聲與信號的頻率相同,則無法將其分離。 否則,您可以使用濾波器(例如帶通)提取感興趣的頻率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.