如何仅分析信号中的脉冲(峰值)?

时间:2019-07-04 08:43:03

标签: matlab vector fft

我有一个周期信号,我要做的是仅对脉冲(峰值也由许多样本形成,但始终相同)应用傅立叶变换。 我确实知道组成一个峰的样本数量以及它们之间的距离,但是我找不到只分析它们的方法。 有想法吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

假设您的向量是:

myVector = [1 2 3 4 5 6 5 4 3 2 1 2 3 4 5 6 5 4 3 2 1]

并假设您要提取峰的FFT,您可以:

  1. 使用功能findpeaks查找峰。这将为您提供山峰及其位置
  2. 将FFT应用于每个子矢量

示例

[pks,locs] = findpeaks(myVector);

这将为您提供信号中的两个峰值:位置6和位置16。

然后,如果您说峰的with是例如3,则可以将FFT应用于子矢量

subVectorA = myVector(locs(1)-1, locs(1)+1);
subVectorB = myVector(locs(2)-1, locs(2)+1);
% Do the FFT to subVectorA
% Do the FFT to subVectorB