【问题标题】:Specific part of an impulse response matlab脉冲响应matlab的特定部分
【发布时间】:2015-01-20 10:34:25
【问题描述】:

我测量麦克风的脉冲响应。在情节开始时我有一些延迟,然后最高值出现在 40 毫秒并减少到 45 毫秒。 当我进行傅立叶变换时,我只想使用 35-45 ms 之间的部分。当我使用不同的麦克风时,延迟会减少或增加,因此峰值会发生变化。所以,我想要的时间范围也会改变。如何在 MATLAB 中自动获取包含最大值的范围?

【问题讨论】:

    标签: matlab plot fft windowing


    【解决方案1】:

    假设您有一个测量向量 y 并且想要一个长度间隔 2r+1 测量,您可以这样做:

    center = find(y==max(y));         % find the peak value
    
    y_edited = y(center-r:center+r);  % look at r samples before and after this peak
    

    然后对y_edited 执行傅里叶变换。请注意,信号中存在噪音可能会影响您的性能。

    【讨论】:

    • 是的,我的信号有一些噪音,我的 fft 结果波动很大。我知道我的麦克风有一个平坦的频率响应,但我没有在我的 fft 和印象中看到这一点。
    • @puCCa 如果您需要更多帮助,我建议在您的原始问题中添加更多信息,例如您的脉冲响应及其傅立叶变换的图表,以及您认为它应该是什么样子。据我所知,我提供的代码应该回答您的原始问题,但鉴于您的评论,您可能需要考虑过滤而不是窗口化。虽然没有更多信息,但我无法确定。
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多