簡體   English   中英

當信號在Matlab中的rawData中時在頻率軸上計算FFT

[英]Compute FFT in frequency axis when signal is in rawData in Matlab

我有一個頻率為10 MHz的信號,采樣率為100 MS / sec。 當我的信號在rawData中(該rawData的長度為100000)時,如何在Matlab中根據頻率計算FFT

  1. NFFT的最佳長度應該是多少(即,NFFT取決於什么因素)
  2. 為什么我的振幅(Y軸)隨着NFFT改變
  3. NFFT,N和L之間有什么區別。如何計算信號長度
  4. 如何從單個信號(在rawData中)中分離噪聲和信號

這是我的代碼,

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]);

您可以在另一篇文章中找到相應的頻率,我將回答您其他的問題:

  1. 大多數情況下,包括所有數據是最佳選擇。 fft只是將輸入數據截斷為請求的長度,這可能不是您想要的長度。 如果您知道輸入單句的時間段,則可以將其截斷以包括整個時間段。 如果您不知道,那么窗戶(例如漢寧)可能會很有趣。

  2. 如果更改NFFT ,則在fft計算中會使用更多數據,這可能會稍微改變給定頻率的幅度。 您還可以計算0Fs/2 (采樣頻率的一半)之間更多頻率處的幅度。

  3. 問題尚不清楚,請提供NL的定義。

  4. 這取決於您的應用程序。 如果噪聲與信號的頻率相同,則無法將其分離。 否則,您可以使用濾波器(例如帶通)提取感興趣的頻率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM