1.滤波器概述
MATLAB专门提供了滤波器设计工具箱。
在命令行输入filterDesigner命令,或者在APP里
即可打开滤波器分析和设置界面
Simulink中Digital Filter Design模块将实现设计结果
2.滤波器MATLAB函数
2.1模拟滤波器
2.1.1巴特沃斯滤波器原型
说明
[z,p,k] = buttap(n) 返回n阶巴特沃斯模拟低通滤波器原型的极点和增益。z、p、k分别为零点、极点、增益。
备注
在MATLAB®中,函数buttap返回零点、极点和增益(z、p和k)。然而,生成的C/C++代码的buttap只返回极点p和增益k,因为零点z总是一个空矩阵。
2.1.2切比雪夫I型模拟低通滤波器原型
说明
[z,p,k] = cheb1ap(n,Rp) 返回n阶切比雪夫I型模拟低通滤波器原型的极点和增益,通带波纹
Rp dB。z、p、k分别为零点、极点、增益。
2.1.3切比雪夫II型模拟低通滤波器原型
说明
[z,p,k] = cheb2ap(n,Rs) 返回n阶切比雪夫II型模拟低通滤波器原型的零点、极点和增益,阻带波纹Rs dB。z、p、k分别为零点、极点、增益。
2.1.4椭圆模拟低通滤波器原型
说明
[z,p,k] = ellipap(n,Rp,Rs) 返回n阶椭圆模拟低通滤波器原型的零点、极点和增益,通带波纹Rp dB,阻带波纹Rs dB。z、p、k分别为零点、极点、增益。
2.1.5贝塞尔模拟低通滤波器原型
说明
[z,p,k] = besselap(n) 返回n阶贝塞尔模拟低通滤波器原型的极点和增益。n为滤波器阶数应小于等于25。 z、p、k分别为零点、极点、增益。
2.2求模拟滤波器的最小阶
2.2.1巴特沃斯滤波器的阶数和截止频率
说明
[n,Wn] = buttord(Wp,Ws,Rp,Rs) 返回数字巴特沃斯滤波器的最低阶,n,通带波纹不超过Rp dB,在阻带至少有Rs dB的衰减。Wp和Ws分别是滤波器的通带和阻带边缘频率,从0到1归一化,其中1对应于π rad/sample。相应截止频率的标量(或矢量)Wn也会被返回。要设计一个巴特沃斯滤波器,使用输出参数n和Wn作为butter的输入。
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s') 找到模拟巴特沃斯滤波器的最小阶数n和截止频率Wn。指定频率Wp和Ws,单位为弧度/秒。
2.2.2切比雪夫I型滤波器的阶数
2.2.3切比雪夫II型滤波器的阶数
2.2.4椭圆滤波器的最小阶
2.3滤波器的传递函数
butter
cheby1
cheby2
ellip
见MATLAB Signal Rrocessing(8)滤波器分类
递归数字滤波器设计
描述
yulewalk使用最小二乘法拟合指定的频率响应来设计递归IIR数字滤波器。
[b,a] = yulewalk(n,f,m) 返回行向量,b和a,包含n+1阶IIR滤波器的系数,其频率-幅度特性与向量f和m中给出的大致一致。
f是一个频率点的向量,指定在0和1之间,其中1对应于一半的采样频率(奈奎斯特频率)。f的第一个点必须是0,最后一个点是1。所有的中间点必须是递增的顺序。允许有重复的频率点,对应于频率响应的步骤。
m是一个矢量,包含了f中指定点的期望幅度响应。
f和m必须是相同的长度。
plot(f,m)显示滤波器的形状。