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