无限脉冲响应(IIR)滤波器详解
立即解锁
发布时间: 2025-08-20 02:33:08 阅读量: 3 订阅数: 12 


数字信号处理入门:理论与实践
### 无限脉冲响应(IIR)滤波器详解
#### 1. IIR滤波器简介
在信号处理领域,存在一类线性时不变(LTI)系统,它们具有无限时长的脉冲响应,这类系统通常被称为无限脉冲响应(IIR)滤波器。与有限脉冲响应(FIR)滤波器不同,IIR滤波器的输出计算不仅依赖于输入信号的值,还会用到之前计算得到的输出信号值。由于输出会被“反馈”回来与输入相结合,所以IIR滤波器属于反馈系统的范畴。从计算的角度来看,输出样本是由之前计算出的输出值确定的,因此IIR系统也常被称为递归滤波器。
IIR滤波器的z变换系统函数是有理函数,其极点位于分母多项式的根处,零点位于分子多项式的根处。和FIR滤波器一样,通过z平面上极点和零点的位置,我们可以深入了解IIR滤波器的重要特性。
#### 2. 一般IIR差分方程
FIR滤波器非常实用且具有许多优良特性,但它并非最通用的LTI系统类别。这是因为FIR滤波器的输出y[n]仅由输入信号x[n]的有限样本集构成。而最通用的离散时间LTI系统,在实现时只需有限的计算量,其输出不仅由输入信号形成,还会结合之前计算的输出。
定义这类更广泛数字滤波器的是以下一般差分方程:
\[y[n] = \sum_{\ell=1}^{N} a_{\ell}y[n - \ell] + \sum_{k=0}^{M} b_{k}x[n - k]\]
其中,系数集\(\{b_{k}\}\)和\(\{a_{\ell}\}\)为常数。\(\{a_{\ell}\}\)被称为反馈系数,\(\{b_{k}\}\)被称为前馈系数,总共需要N + M + 1个系数来定义该差分方程。
若反馈系数\(\{a_{\ell}\}\)都为零,上述差分方程就会简化为FIR系统的差分方程。因此,FIR系统是该通用LTI系统的一个特殊情况。在讨论FIR系统时,我们通常将M视为系统的阶数,因为M既是多项式系统函数的次数,也是FIR差分方程中延迟项的数量。而对于IIR系统,M和N都可用于衡量延迟项的数量,IIR系统的系统函数是一个M阶多项式与N阶多项式的比值。一般来说,我们把反馈项的数量N定义为IIR系统的阶数。
下面通过一个一阶IIR系统的例子来帮助理解,当M = N = 1时,差分方程为:
\[y[n] = a_{1}y[n - 1] + b_{0}x[n] + b_{1}x[n - 1]\]
其框图表示如下:
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([x[n]]):::startend --> B(b0):::process
A --> C(z^-1):::process
C --> D(b1):::process
B --> E(+):::process
D --> E
E --> F(v[n]):::process
G([y[n - 1]]):::startend --> H(a1):::process
H --> I(+):::process
F --> I
I --> J([y[n]]):::startend
```
在这个框图中,信号\(v[n] = b_{0}x[n] + b_{1}x[n - 1]\)由图的左半部分计算得出,通过将延迟输出乘以\(a_{1}\)并与\(v[n]\)相加,形成输出\(y[n]\)。前馈部分的路径从左到右,反馈部分的路径通过延迟从右到左。
#### 3. 时域响应
为了说明如何使用差分方程实现IIR系统,我们来看一个数值例子。假设滤波器系数\(a_{1} = 0.8\),\(b_{0} = 5\),\(b_{1} = 0\),则差分方程为:
\[y[n] = 0.8y[n - 1] + 5x[n]\]
输入信号为:
\[x[n] = 2\delta[n] - 3\delta[n - 1] + 2\delta[n - 3]\]
输入信号的总时长为四个样本。
在计算输出序列时,逻辑上应按正常顺序进行。由于输入在n = 0之前为零,我们自然会假设n = 0是输出的起始索引。当n = 0时,\(x[0] = 2\),代入差分方程可得:
\[y[0] = 0.8y[0 - 1] + 5x[0] = 0.8y[-1] + 5(2)\]
此时会遇到问题,因为\(y[-1]\)的值未知。为了解决这个问题,我们需要做出以下两个假设,这两个假设合称为初始静止条件:
1. 输入在某个起始时间\(n_{0}\)之前必须假设为零,即\(x[n] = 0\),对于\(n < n_{0}\)。我们称这样的输入为突然施加的输入。
2. 输出在信号起始时间之前同样假设为零,即\(y[n] = 0\),对于\(n < n_{0}\)。如果系统在施加突然输入之前输出为零,我们称该系统初始处于静止状态。
在初始静止假设下,\(y[n] = 0\)(\(n < 0\)),则\(y[0] = 0.8(0) + 5(2) = 10\)。
通过迭代差分方程,我们可以依次计算出后续的输出值:
- \(y[1] = 0.8y[0] + 5x[1] = 0.8(10) + 5(-3) = -7\)
- \(y[2] = 0.8y[1] + 5x[2] = 0.8(-7) + 5(0) = -5.6\)
- \(y[3] = 0.8y[2] + 5x[3] = 0.8(-5.6) + 5(2) = 5.52\)
- \(y[4] = 0.8y[3] + 5x[4] = 0.8(5.52) + 5(0) = 4.416\)
- \(y[5] = 0.8y[4] + 5x[5] = 0.8(4.416) + 5(0) = 3.5328\)
输出序列的部分值绘制如下:
| n | y[n] |
|---|---|
| 0 | 10 |
| 1 | -7 |
| 2 | -5.6 |
| 3 | 5.52 |
| 4 | 4.416 |
| 5 | 3.5328 |
当输入在n > 3时变为零,差分方程变为:
\[y[n] = 0.8y[n - 1] + 0\]
此时相邻项的比值为常数,输出信号以由\(a_{1} = 0.8\)确定的速率呈指数衰减。因此,当\(n \geq 3\)时,输出序列可表示为:
\[y[n] = y[3](0.8)^{n - 3}\]
#### 4. IIR滤波器的线性和时不变性
对于一般的IIR差分方程,初始静止条件足以保证通过迭代差分方程实现的系统既是线性的又是时不变的。尽管反馈项使证明比FIR情况更复杂,但对于突然施加的输入和初始静止条件,由于差分方程仅涉及输入和输出样本的线性组合,叠加原理仍然成立。而且,因为初始静止条件在突然施加输入之前必须成立,所以时不变性也成立。
例如,假设差分方程\(y[n] = 0.8y[n - 1] + 5x[n]\)的输入为\(x_{1}[n] = 10x[n - 4]\),其中\(x[n]\)如前面所定义。通过迭代差分方程计算相应的输出\(y_{1}[n]\),并与之前的输出进行比较,可验证系统的线性和时不变性,即输出应该是原来的10倍且延迟4个单位。
#### 5. 一阶IIR系统的脉冲响应
在LTI系统中,单位脉冲序列的响应能够完全表征系统。当输入\(x[n] = \delta[n]\)时,产生的输出信号h[n]被定义为脉冲响应。由于任何其他输入信号都可以表示为加权和延迟脉冲的叠加,所以相应的输出信号可以由脉冲响应h[n]的加权和移位版本构建。
对于一阶递归差分方程\(y[n]
0
0
复制全文
相关推荐








