0

我是 DSP 的新手。我正在尝试在 java 上创建用于教育目的的应用程序。我想计算 FIR 滤波器系数并绘制它的频率响应。

为了计算系数,我想使用理想频率响应的 ifft,它基本上是矩形窗口。我可以用这种方法和我的 FIR 滤波信号计算系数。然后我想探索它的频率响应。据我所知,我可以通过 fft 从滤波器的脉冲响应中得到它(但那将是同一个矩形窗口,对吧?)。我得到相同的矩形理想频率响应,但我想要真实的频率响应。就像那张照片一样。

在此处输入图像描述

我怎样才能做到这一点?

4

2 回答 2

0
  1. 创建理想的频率响应。
  2. 要创建滤波器系数,请使用理想频率响应的 ifft。
  3. 要计算实际频率响应,请将零添加到系数数组并调用该数组的 fft。我的问题是,我没有向系数数组添加零。当然,从系数我会得到相同的理想频率响应。
于 2013-04-23T16:51:38.537 回答
0

记住使用 fft 或 ifft 你假设你的信号是周期性的(所以它不是一个矩形,它是无限的)。此外,理想的响应是幅度的矩形窗口和相位的线性窗口。所以你必须制作一个具有线性相位的信号

F = exp(-i*w*0.1);
F(51:end-50) = 0;
impulse = real(ifft(F));

你仍然会有虚部(但它会非常小),因为当你“归零”高通频带时相位不精确。在该示例中,截止频率为 50,所需的群延迟为 0.1。

于 2013-04-15T20:26:28.133 回答