我是 DSP 的新手。我正在尝试在 java 上创建用于教育目的的应用程序。我想计算 FIR 滤波器系数并绘制它的频率响应。
为了计算系数,我想使用理想频率响应的 ifft,它基本上是矩形窗口。我可以用这种方法和我的 FIR 滤波信号计算系数。然后我想探索它的频率响应。据我所知,我可以通过 fft 从滤波器的脉冲响应中得到它(但那将是同一个矩形窗口,对吧?)。我得到相同的矩形理想频率响应,但我想要真实的频率响应。就像那张照片一样。
我怎样才能做到这一点?
我是 DSP 的新手。我正在尝试在 java 上创建用于教育目的的应用程序。我想计算 FIR 滤波器系数并绘制它的频率响应。
为了计算系数,我想使用理想频率响应的 ifft,它基本上是矩形窗口。我可以用这种方法和我的 FIR 滤波信号计算系数。然后我想探索它的频率响应。据我所知,我可以通过 fft 从滤波器的脉冲响应中得到它(但那将是同一个矩形窗口,对吧?)。我得到相同的矩形理想频率响应,但我想要真实的频率响应。就像那张照片一样。
我怎样才能做到这一点?
记住使用 fft 或 ifft 你假设你的信号是周期性的(所以它不是一个矩形,它是无限的)。此外,理想的响应是幅度的矩形窗口和相位的线性窗口。所以你必须制作一个具有线性相位的信号
F = exp(-i*w*0.1);
F(51:end-50) = 0;
impulse = real(ifft(F));
你仍然会有虚部(但它会非常小),因为当你“归零”高通频带时相位不精确。在该示例中,截止频率为 50,所需的群延迟为 0.1。