具有任意幅度和相位响应的 FIR 滤波器的设计

信息处理 过滤器设计 有限脉冲响应 最小二乘
2022-02-16 18:07:33

我在这篇论文“具有任意幅度和相位响应的数字滤波器的约束设计算法”中找到了很多信息,我想了解它。

这个问题是上一个问题(复杂最小二乘近似)的延续。

马特 L 的回答中

(1)H(ejω)=n=0N1h[n]ejnω=cH(ω)h

我想通过以下所需的频率响应来近似(1):

(2)D(ω)=M(ω)ejP(ω)

我对这个规格的问题:

  • 频域规格非对称(具有非对称脉冲响应的线性相位滤波器),具有滤波器阶数和恒定群延迟,恒定加权函数。

    1-在开始设计过滤器之前,必须知道问题是否是线性的,这是否与“h”有关系?

对于 FIR 滤波器,我们使用复最小二乘法制定设计问题。通带误差函数为

(3)E(h)=ω1ω2|H(ejω)D(ejω)|2dω

在这种情况下我该如何求解积分?或者允许我用最小二乘法制定方程的步骤是什么?

在复最小二乘法中有连续和离散逼近。然而,这些积分通常无法解析求解。在这种情况下,要么必须求助于数值积分,要么先验地将问题表述为离散逼近问题。(3) 哪个更好?使用连续或离散近似?

1个回答

为了清楚起见,让我指出你不近似(1)经过(2),但反过来:您通过滤波器的频率响应来近似期望的频率响应,即您的规格,这是通过选择向量中的系数来完成的h这样一些误差测量(例如,最小二乘)被最小化。

由于频率响应(1)是线性的h,该问题是线性最小二乘问题,可以通过求解线性方程组来解决。这对于连续误差测量是正确的(3)以及离散误差测量

(1)E(h)=k=1K|H(ejωk)D(ejωk)|2

在哪里K是离散频率点的数量ωk. 一般来说,我们要求KN, 在哪里N是向量中 FIR 滤波器系数的数量h.

在一般情况下,使用离散误差测量更方便(1). 只有少数特殊情况下,连续误差测量的积分(方程式(3)在你的问题中)可以通过分析解决,否则无论如何你都必须求助于数值近似。即使有可用的解析解,如果频率点的数量为K足够大。

最小化离散平方误差(1)等效于在最小二乘意义上求解以下超定线性方程组:

(2)H(ejωk)=!D(ejωk),k=1,2,,K

公式(2)很方便,因为许多软件包(例如 Matlab)具有语法优雅且计算高效的方法来解决此类系统。

我已经实现了一个基于求解的复杂 FIR 滤波器设计(2)在(非常简单的)Matlab/Octave 函数cfirls.m中。