双线性变换法设计IIR滤波器

需积分: 10 2 下载量 35 浏览量 更新于2024-08-22 收藏 480KB PPT 举报
"本文主要介绍了IIR滤波器设计中的函数使用方法,特别是基于MATLAB的巴特沃斯滤波器设计函数`butter`,以及双线性变换法设计IIR滤波器的基本概念、原理和应用。" 在信号处理领域,IIR(无限 impulse response)滤波器是一种广泛应用的数字滤波器类型,因其结构简洁、计算效率高而受到青睐。本文主要涉及的是使用MATLAB中的`butter`函数来设计不同类型的IIR滤波器,包括低通、高通、带通和带阻滤波器。 `butter`函数的基本形式为`[n,wc]=buttord(wp,ws,rp,rs)`,这个函数用于确定设计任意选频的巴特沃斯滤波器所需的阶数`n`和截止频率`wc`。参数`wp`和`ws`分别代表通带和阻带的边界频率,`rp`和`rs`则是通带和阻带的衰减目标。对于不同的滤波器类型,`wp`和`ws`的取值范围有所不同: - 低通滤波器:`wp<ws` - 高通滤波器:`wp>ws` - 带通滤波器:`wp=[wp1, wp2]`且`ws=[ws1, ws2]`,满足`ws1<wp1< wp2<ws2` - 带阻滤波器:`wp=[wp1, wp2]`且`ws=[ws1, ws2]`,满足`wp1<ws1< ws2<wp2` 之后,我们可以利用`butter`函数生成滤波器的系数,例如: - `butter(n,wc, 'high')`设计N阶高通滤波器,`wc`是3dB截止频率,单位为π的倍数。 - `butter(n,wc)`如果`wc`是一个包含两个元素的向量`[w1, w2]`,则设计2N阶带通滤波器,3dB带宽为`w1< w<w2`,单位同样为π的倍数。 - 当`wc=[w1, w2]`时,`butter(n,wc, 'high')`会设计2N阶带阻滤波器,3dB带宽为`w1< w<w2`。 此外,文件还提到了一个实验——使用双线性变换法设计IIR数字滤波器。这种方法是为了克服冲激响应不变法可能导致的频率混叠问题。双线性变换将复数S平面映射到Z平面,通过一个线性且双线性的关系。变换函数通常表示为: 1/(1 + sT) → z/(1 - z^(-2)) 这种变换将S平面的左半平面映射到Z平面上单位圆的内部,确保了滤波器的稳定性,并且虚轴以一对一的方式映射,避免了频率混叠。通过代入s=σ+jΩ并进行适当的转换,可以得到Z变换的表达式,从而求得数字滤波器的系数。 双线性变换法在设计过程中具有一定的灵活性,能够实现各种频率响应特性,而且在频域内保持良好的线性特性,适合于设计各种类型的IIR滤波器。在实际操作中,通常需要根据所需的频率响应特性,调整变换参数T,以实现特定的滤波效果。 通过实验,学习者可以深入理解双线性变换法的设计过程,熟悉其在软件如MATLAB中的编程实现,同时观察由此设计的滤波器在频域上的响应特性,进一步掌握这种方法的优缺点。