我在不同的偏转下为时域中的一组信号生成了FFT。我想找出信号在哪个频率范围内更敏感。因为我是编程和信号处理的新手,有人可以帮我做以下事情吗?
(在这种情况下FFT plot of signals,通过查看图中的频率 要考虑的范围将介于35000Hz-125000Hz之间 (有没有办法自动找到这个?)另外我不知道在哪里 修正阈值。)
以这样的方式将其分成若干个箱子(不超过10个) 每个峰值应完全落在其中一个箱内。 (箱子需要 长度不等,所有信号应该相同)
然后,计算每个信号中每个bin的能量。然后绘制曲线 对于每个箱子,显示每个箱子中的能量变化 偏转。 (即,x轴上的偏转和y上的曲线下面积 轴)。
以下是我用于获取FFT的代码(也附加了时域信号集和偏转data):
[m, n]= size(amp); % amp- amplitude data
t=linspace(0,5000,n); % time
Fs=2000000;
for i=1:m
L = n;
NFFT = 2^nextpow2(L);
UT = fft(amp(i,:),NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2);
ft(i,:) = zeros(1,NFFT/2);
ft(i,:) = UT(1:NFFT/2);
mag(i,:) = 2*abs(ft(i,:));
end;
figure
for i=1:m
plot(f,mag(i,:))
hold on;
end;
xlabel('Frequency (Hz)','fontsize',12)
ylabel('Magnitude','fontsize',12)
title('Frequency Spectrum of recieved signals','fontsize',14)
axis([0,150000,0,4])
legend(arrayfun(@(deflection) ['Deflection = ',num2str(deflection),'\mum'],deflection,'Uni',0));
set(gcf, 'Color', 'w');