我在不同的偏转中为时域中的一组信号生成了FFT . 我想找出信号在哪个频率范围内更敏感 . 因为我是编程和信号处理的新手,有人可以帮我做以下事吗?

  • 所以我想选择所有主要峰值来临的频率范围 .

FFT plot of signals
(在这种情况下FFT plot of signals,通过查看图,要考虑的频率范围将介于35000Hz-125000Hz之间(有没有办法自动找到这个?)另外我不知道在哪里修复阈值 . )

  • 将其分成若干个箱(不超过10个),使每个峰值完全落入其中一个箱内 . (箱子不必长度相等,所有信号应相同)

  • 然后,计算每个信号中每个箱的能量 . 然后绘制每个箱的曲线图,显示每个箱中的能量相对于偏转的变化 . (即,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');