MATLAB fft:用于大信号

时间:2015-10-29 20:38:56

标签: matlab fft

我有一个300000个条目的信号向量。在循环的每次迭代中,我需要从信号向量中提取2000个连续值,将其存储在X向量中,计算它的FFT并在那些2000个X值中找到最大频率分量。在下一次迭代中,来自2001的值从信号矢量到4000以及将要执行类似的操作。在每次迭代中,我需要知道最大频率。 关于如何去做的任何建议?

1 个答案:

答案 0 :(得分:0)

T=300; %acquisition time

fs=1000; %sampling rate;

t= 0:1/fs:(T-1/fs);    % 300 second @ 1kHz sample rate
fo=1;
f1=500;   
y=chirp(t,fo,T,f1); % 300000 samples, instead of your samples

nfft=2000; % sample number for fft
a=spectrogram(y,nfft,0,nfft,fs); % put your samples in y position

df=fs/nfft; % frequency resolution.. Change this as your resolution

[val ind]=max(a);

freq=df*(ind-1)

您可以轻松地使用频谱图获得每个fft的最大频率。