【matlab】IIR滤波器的完全设计函数

1.butter

[b, a] = butter(N, wn,'ftype');

N是滤波器的阶数,wn和N均可以使用buttord函数来求,如[N, wn] = buttord(wp/(fs/2), ws/(fs/2), rp, rs);%其中,wp为通带截止频率(单位为Hz),ws为阻带截止频率(单位为Hz),rp为通带最大衰减,rs为阻带最小衰减。

求出的b、a为设计的滤波器的系统函数的分子和分母

2.cheby1

[b,a] = cheby1(N,rp,wn,'ftype');

rp为通带最大衰减

3.cheby2

 [b,a] = cheby2(N,rs,wn,'ftype');

rs为阻带最小衰减

关于filter函数:

若假设原始信号为x,则 y=filter(b, a, x);即可观察到经过相应滤波器滤波后的函数

关于求滤波器的频率响应:

[H, w] = freqz(b, a);w为频率横坐标,H为频率响应;abs(H)为幅频响应;angle(H)为相频响应

其他说明:

  • 'ftype'为'high'是设计的是高通滤波器;'ftype'为'stop'是设计的是带阻滤波器;缺省的情况下即为设计低通和带通滤波器;
  • buttord函数同类型、对应的函数还有che1ord、che2ord;
  • 该类函数中输入‘s’为模拟滤波器的设计,缺省即为数字滤波器;
  • 使用这些函数设计数字滤波器时,需要进行归一化的处理【matlab】IIR滤波器的完全设计函数_第1张图片
  • 在使用这些函数设计数字滤波器时,数字频率采用标准化频率(归一化

你可能感兴趣的:(matlab,滤波器的设计,数字信号处理)