本文档为《基于MATLAB的IIR与FIR滤波器设计》系列实验之一,专注于使用MATLAB进行FIR(有限脉冲响应)数字滤波器的设计。通过理论学习和实践操作相结合的方式,深入探讨了FIR滤波器的基本原理、设计方法及其在信号处理中的应用。
在MATLAB中设计IIR数字滤波器可以使用以下函数:1) buttord 和 cheb1ord 可以确定低通原型巴特沃斯和切比雪夫滤波器的阶数与截止频率;2)[num,den]=butter(N,Wn)和[num,den]=cheby1(N,Wn),[num,den]=cheby2(N,Wn)可以设计这些类型的滤波器;3) lp2hp,lp2bp 和 lp2bs 可以将低通滤波器转换为高通、带通或带阻滤波器;4) 使用bilinear函数可对模拟滤波器进行双线性变换来获得数字滤波器的传输函数系数;5) 利用impinvar可以完成从模拟到数字滤波器设计过程中的脉冲响应不变法。
对于FIR数字滤波器的设计,需要熟悉MATLAB中以下几个关键函数:fir1、kaiserord、remezord 和 remez。其中B = fir1用于直接设计滤波器;[n,Wn,beta,ftype] = kaiserord 可以用来估计滤波器阶数;[n,fo,ao,w] = remezord 用于计算等波纹滤波器的阶数和加权函数w,而B=remez 则是进行实际设计步骤。此外,还需要通过阅读附录中的实例来学习FIR数字滤波器的设计方法及其在MATLAB环境下的实现技巧。
实验中要求根据给定条件使用凯塞窗(Kaiser window)设计一个FIR低通滤波器,并绘制其冲激响应的幅度和相位频响曲线,以讨论不同实现形式的特点。