1.实验目的
(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;
(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
2.实验原理
设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。
本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
IIR数字滤波器设计是信号处理领域中的一个重要环节,特别是在MATLAB环境下,利用其强大的信号处理工具箱,可以高效地实现滤波器的设计和分析。本实验的主要目标是通过双线性变换法来设计IIR滤波器,并在MATLAB中进行软件实现。
双线性变换法是一种常用的IIR滤波器设计方法,它将数字滤波器的设计问题转化为模拟滤波器的设计,然后通过特定的数学变换将模拟滤波器转换为数字滤波器。这个过程包括三个主要步骤:根据给定的数字滤波器指标,比如通带、阻带边缘频率和衰减,转换成对应的模拟滤波器指标;设计满足这些指标的模拟滤波器,通常选择巴特沃斯、切比雪夫1型、切比雪夫2型或椭圆滤波器;使用双线性变换将模拟滤波器转换为数字滤波器。
MATLAB提供了多个滤波器设计函数,如butter、cheby1、cheby2和ellip,它们分别对应于巴特沃斯、切比雪夫1型、切比雪夫2型和椭圆滤波器。例如,`butter`函数用于设计巴特沃斯滤波器,`cheby1`和`cheby2`分别用于设计切比雪夫1型和2型滤波器,而`ellip`函数则用于设计椭圆滤波器。这些函数可以直接用于模拟滤波器设计,也可以直接生成数字滤波器的系数。
在MATLAB中实现IIR数字滤波器,可以调用`filter`函数,该函数接受滤波器的系数和输入信号,生成滤波后的输出信号。例如,设计一个IIR滤波器后,可以使用以下代码进行滤波操作:
```matlab
[b,a] = butter(N, wp/wo); % 设计滤波器,N为阶数,wp和wo分别为通带和截止频率
y = filter(b, a, x); % 使用filter函数,x为输入信号,y为输出信号
```
实验内容包括产生多路抑制载波调幅信号的复合信号,通过观察信号的时域波形和频谱,可以看出这些信号在频域上是可分离的,因此可以使用滤波器进行频域上的处理。实验中使用了`mstg`函数生成信号,并通过`fft`计算信号的频谱。此外,`tplot`和`myplot`等辅助函数用于绘制时域和频域图,帮助理解滤波效果。
在实验过程中,还需要掌握滤波器性能指标的确定,如通带截止频率、阻带截止频率、通带最大衰减和阻带最小衰减等。例如,`ellipord`函数用于根据给定的性能指标计算椭圆滤波器的阶数。
本实验旨在让学生熟练掌握IIR数字滤波器的双线性变换设计方法,了解MATLAB中滤波器设计函数的应用,并通过实际操作理解数字滤波在信号处理中的作用。通过设计不同类型的滤波器并观察其对信号的影响,学生可以深入理解数字滤波器的工作原理和应用场景。
- 1
- 2
- 3
前往页