如何通过输入和输出信号测量声学滤波器的频率响应

信息处理 频率响应
2022-02-13 20:38:06

我正在尝试测量声学滤波器的频率响应。我在滤波器传播之前和之后通过 2 个不同的麦克风对声音进行采样。现在我试图找到系统(声学路径)的频率响应。

使用matlab我该怎么做?

  • 我尝试了识别应用程序,但结果不是那么可靠,如果信号改变就会失败。
  • 我试过但结果也很糟糕。H=|FFT(output)||FFT(input)|

更新:运行此代码后:

[y, Ss] = audioread('4.wav');

h = fir1(30,0.2,rectwin(31));
y_f = filter(h,1,y);

[Txy,f] = tfestimate(y,y_f);    
figure;
plot(f,mag2db(abs(Txy)))

我正进入(状态:在此处输入图像描述

我做错了什么?

1个回答

tfestimate 是一个很好的方法。但是您似乎使用了错误的输入来测试过滤器。如果您的输入信号仅包含较低频率,则 tfestimate 没有足够的信息来计算较高频率的传输。那么,这是一种除以零的情况。