一、数字滤波器设计

数字滤波器就是由数字乘法器、加法器和延时单位组成的一种装置。它的作用是对输入离散信号的数字代码进行运算处理,从而达到改变信号频谱的目的。数字滤波器可以用计算机软件实现或者大规模集成数字硬件实时实现。在数字滤波器处理模拟信号的时候,先要对输入的模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率要大于信号带宽的两倍,它的频率响应还要具有以抽样频率为间隔的周期重复特性,并且它还要以1/2抽样频率点呈镜像对称。数字滤波器具有高精度、高可靠性、可控制改变特性、便于集成等优点。现在数字滤波器的使用范围比较广,例如,在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域。

数字滤波器有低通、高通、带通、带阻和全通等类型。函数butter可用于设计Butterworth滤波器,butter函数可以设计低通、高通、带通和带阻的数字和模拟滤波器,用butter函数设计的滤波器通带内的幅度响应最大限度的平滑,但损失了截止频率处的下降斜度。

函数chebyl可用于设计Chebyshev I型滤波器,chebyl函数可以设计低通、高通、带通和带阻的数字和模拟Chebyshev I型滤波器,用chebyl函数设计的Chebyshev I型滤波器的通带内为等波纹,它的阻带内为单调。Chebyshev I型滤波器的下降斜度比Chebyshev II型的要大,但是Chebyshev II的代价是通带内波纹比较大。

除了典型设计以外,MATLAB信号处理工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用就可以设计滤波器,这为设计通用滤波器提供了方便。

在MATLAB中设计IIR滤波器时要设计出巴特沃斯滤波器可以使用Butterworth函数,要设计契比雪夫I型滤波器时可以使用Cheby1函数,设计契比雪夫II型滤波器要使用Cheby2,而椭圆滤波器则需要ellipord函数。下面主要介绍的是前两个函数的使用情况。

IIR滤波器在设计上与FIR滤波器的不同点在于前者在设计时的阶数不是由设计者指定的,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。在MATLAB下设计不同类型IIR滤波器的时候都会有与之对应的函数用于阶数的选择。

IIR单位响应与FIR单位响应也是有区别的,前者为无线脉冲序列而后者为有限的。幅频特性精度方面,IIR幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;而FIR的幅频特性精度较之于IIR低,但是线性相位,就是不同频率分量的信号经过FIR滤波器后他们的时间差不变。这是很好的性质。

设计Chebyshev II型滤波器用函数cheby2。可以设计低通、高通、带通和带阻的数字和模拟Chebyshev II型滤波器,其通带内为单调,阻带内等波纹。Chebyshev II型滤波器的下降斜度比I型小,但其阻带内波纹较大。

函数ellip则可以用来设计椭圆形滤波器,和chebyl, cheby2差不多,也是可以设计出低通、高通、带通和带阻的数字和模拟滤波器这么几种,但是和Butterworth和chebyshev滤波器比较而言,ellip函数可以得到下降斜度更大的滤波器,得通带和阻带均为等波纹。一般来说,椭圆滤波器能以最低的阶实现指定的性能指标。

各类滤波器都有自己的特点。在使用中,都需要按照一定的使用要求,应当注意以下几点:

(1)要得到符合要求性质的滤波器的最小阶数N以及数字Butterworth滤波器的固有频率Wn(即3dB )可以使用阶数和固有频率的选择:[N,Wn]=buttord(Wp,Ws,Rp,Rs)。设计的要求是在通带内的衰减不超过Rp,在阻带内的衰减不小于Rs,通带和阻带有截止频率分别是Wp, Ws,它们是归一化的频率,范围是[0, 1],对应π弧度。

(2)设计一个N阶的低通Butterworth滤波器使用函数[B,A]=butter(N, Wn),返回滤波器系数矩阵[B,A]。其中固有频率Wn必须是归一化频率。它的最大值是采样频率的一半。Fs缺省时默认为2Hz。如果Wn=[Wl,W2]是一个两元素的向量,则函数将设计出一个2N阶的带通滤波器,通带为[W1,W2]。

(3)信号处理工具箱中经常使用的频率是Nyquist频率,它被定义为采样频率的一半,在滤波器的阶数选择和设计中的截止频率均使用Nyquist频率进行归一化处理。例如对于一个采样频率为1000 Hz的系统,400Hz的归一化即为400/500=0.8。归一化频率的范围在[0, 1]之间。如果要将归一化频率转换为角频率,则将归一化频率乘以π;如果要将归一化频率转换为Hz,则将归一化频率乘以采样频率的一半。这就是所谓的滤波器设计当中的频率归一化问题

一般在设计Chebyshev I型和Chebyshev II型数字低通滤波器时,会要求通带边界频率fp=2.1kHZ,通带最大衰减Rp=0.5dB;阻带边界频率fs=8kHZ,阻带最小衰减Rs=30dB,采样频率为Fs=20kHZ。

Chebyshev I型的M程序如下:

Fs=20000;                      %抽样频率20KHz
Flp=2100;
Fls=8000;
Wp=2*Flp/Fs;                   %归一化的通带截止频率
Ws=2*Fls/Fs;                   %归一化的阻带截止频率
Rp=0.5;                            %通带最大衰减(单位:dB)
Rs=30;                         %阻带最小衰减(单位:dB)
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);   %返回最小阶数和截止频率
[b,a]=cheby1(N,Rp,Wn);           %返回H(z)的分子分母系数
[hw,w]=freqz(b,a);
subplot(2,1,1);
plot(w/pi,20*log10(abs(hw)));grid on;
xlabel('ω/π');ylabel('幅度(dB)')
title('切比雪夫I型幅频响应');
subplot(2,1,2);plot(w/pi,abs(hw));
grid on;
xlabel('ω/π');ylabel('幅度(H)');

运行以上程序,得到的波形如图1所示,

图1 切比雪夫Ι型幅频响应

运行结果:

N=2
b= 0.1007    0.2014    0.1007
a= 1.0000   -0.9872    0.4140
Chebyshev II型M程序如下:
Fs=20000;                      %抽样频率20KHz
Flp=2100;
Fls=8000;
Wp=2*Flp/Fs;                   %归一化的通带截止频率
Ws=2*Fls/Fs;                   %归一化的阻带截止频率
Rp=0.5;                         %通带最大衰减(单位:dB)
Rs=30;                         %阻带最小衰减(单位:dB)
[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs);  %返回最小阶数和截止频率
[b,a]=cheby2(N,Rs,Wn);          %返回H(z)的分子分母系数
[hw,w]=freqz(b,a);
subplot(2,1,1);
plot(w/pi,20*log10(abs(hw)));grid on;
xlabel('ω/π');ylabel('幅度(dB)')
title('切比雪夫II型幅频响应');
subplot(2,1,2);plot(w/pi,abs(hw));
grid on;
xlabel('ω/π');ylabel('幅度(H)');

运行以上程序,得到的波形如图2所示,

图1 切比雪夫Ⅱ型幅频响应

运行结果:

N=2
b= 0.2357    0.4241    0.2357
a= 1.0000   -0.2996    0.1950

三、 结果分析

从频率响应图中可以看出:巴特沃斯滤波器具有单调下降的幅频特性,通带内平滑;切比雪I型滤波器的幅频特性在通带内有波动,阻带内单调;chebyshev II型滤波器的幅频特性在阻带内有波动,通带内单调;椭圆滤波器的选择性相对前三种是最好的,下降斜度比较大,通带和阻带内均为等波纹,同样的性能指标,椭圆滤波器可以最低的阶数来实现。这样就可以根据不同的要求选用不同类型的滤波器。

结论

MATLAB是以复数矩阵作为基本编程单元的一种程序设计语言,它提供了各种矩阵的运算与操作,并有较强的绘图及其它强大的功能,成为当今国际控制界应用最广,也是最受人们喜爱的一种软件环境。MATLAB是一个高度的集成系统,随着它的版本不断更新,软件功能也不断扩充与完善,在科学和工程计算中将会有更广阔的应用前景。
  用MATLAB语言编制了稳态和动态仿真程序,说明MATLAB语言非常适合数字滤波领域内的仿真及研究,在某些问题的研究中MATLAB及SIMULINK能带来极大的方便并使效率极大提高。

参考文献

[1] 韩利竹,王华.MATLAB电子仿真与应用.北京:国防工业出版社,2003.

[2] 董长虹.MATLAB信号处理与应用. 北京:国防工业出版社,2005.

[3] 赵树杰.数字信号处理.西安:西安电子科技大学出版社,1997.

[4] 陈怀琛.MATLAB及在电子信息课程中的应用.北京:电子工业出版社出版,2002.

MATLAB数字滤波器的设计相关推荐

  1. matlab数字滤波器设计函数汇总(转载)

    这篇博客是[1][2]的整合 分类 函数名 功能说明 滤波器的分析(幅频/相频) abs 求绝对值(幅值) angle 求相角 conv/conv2 求卷积/二维卷积 fftfilt 利用重叠相加法的 ...

  2. IIR数字滤波器的设计及应用——MATLAB

    一.实验目的 (1)熟悉双线性变换法和双重映射法设计IIR数字滤波器的原理与方法. (2)掌握IIR数字滤波器的MATLAB实现方法设计各种滤波器. (3)观察分析滤波器输入输出数据波形,理解数字滤波 ...

  3. Matlab 数字滤波器设计大报告(数字信号处理课程设计)附代码

    文章中滤波器设计与信号产生.处理的全部代码,几乎每行都有注释,在这里下载:https://download.csdn.net/download/weixin_42845306/18877388 摘要 ...

  4. matlab仿真冲激响应函数,无限冲激响应数字滤波器的设计与MATLAB仿真

    <工业控制计算机>2011 年第 24 卷第 10 期 本文针对 IIR 数字滤波器的特点, 根据相应的设计指标运用 MATLAB 软件开展了对数字滤波器的研究并对设计的滤波器实现了仿真以 ...

  5. 基于matlab数字滤波器设计,毕业设计 基于MATLAB的数字滤波器设计

    毕业设计 基于MATLAB的数字滤波器设计,共55页,19284字 摘 要 本文分别研究了在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法及实现方法,并进行图形用户界面设计,以显示本文 ...

  6. 最小相位滤波器 matlab,基于MATLAB最小相位数字滤波器的设计方法研究

    0引言在数字信号处理中,数字滤波器占有极其重要的地位,具有滤波精度高.稳定性好.灵活性强等优点.数字滤波器是由数字乘法器.加法器和延时单元组成的一种装置,它是一个离散时间系统,其基本工作原理是利用离散 ...

  7. MATLAB——IIR数字滤波器的设计

    1.基础知识 1.1.数字滤波器设计的基本步骤 我们知道模拟滤波器的设计是数字滤波器的设计的基础.在学习数字信号处理的过程中,IIR数字滤波器的设计的步骤是 (1)确定采样间隔Ts或者采样频率fs. ...

  8. FIR数字滤波器的设计[Matlab][带源码]

    本次为实验项目,在学习数字信号处理课程需要利用matlab来巩固所学知识 参考博主为整个项目实验,本次我们所需只需前三问即可. FIR数字滤波器的设计_A Master的博客-CSDN博客_fir数字 ...

  9. Matlab数字滤波器设计实践—FIR

    Matlab数字滤波器设计实践-FIR 1低通滤波器设定 在理想情况下,低通滤波器使信号中低于指定截止频率 ωc 的所有频率分量保持不变,并拒绝高于 ωc 的所有分量.由于实现理想低通滤波器所需的脉冲 ...

最新文章

  1. #实现互联网聊天_局域网内两台电脑如何实时语音聊天通话
  2. 十年AI谁“最能打”?AI 2000榜单:何恺明最佳论文“刷”状元,谷歌机构排名第一...
  3. k8s集群配置使用coredns代替kube-dns
  4. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66
  5. 深圳市龙岗职业技术学校录取分数线计算机,深圳市龙岗区第二职业技术学校2021年招生录取分数线...
  6. 简单又帅气的折纸机器人教程_几张纸做出帅气纸飞机,做法简单飞行速度超快,手工折纸飞机...
  7. 数据结构C语言版之线性表
  8. sangerbox制作heapmap_ArcMap制作土地利用转移矩阵——图文详解版.pdf
  9. SqlParameter的参数值为 null
  10. Python datetime日期相减
  11. 微信小程序开发05 研发加速:使用 Webpack 提升小程序研发效率
  12. python模拟阴阳师抽卡
  13. Android 屏幕适配 pt暴力适配
  14. Android studio无法连接识别检测各种模拟器和手机的问题
  15. GitLab安装到实战
  16. 好用的数据恢复软件EasyRecovery2023最新版
  17. 我用过的几款电路设计EDA软件
  18. 2.0 JAVA线性表
  19. Android.bp编译提示ninja: error: unknown target ‘MODULES-IN-xxx‘终极指南
  20. 笔记本电脑java记事本在哪_系统自带有记事本吗_电脑自带的记事本在哪-win7之家...

热门文章

  1. bzoj2018 [Usaco2009 Nov]农场技艺大赛
  2. 使用SourceTree Push 出现 POST git-receive-pack (chunked) 的解决方法
  3. DeFi vs Fintech
  4. LightSwitch多条件判断筛选
  5. js 嵌入式开发板_张江镇林志玲教你用JavaScript做嵌入式开发
  6. img图片加载失败选择默认替换图片
  7. 职场性别报告,男女薪酬仍有差距,男性平均薪酬比女性高29.7%
  8. 解决相册图片旋转的问题
  9. PHP标签的模板技术
  10. 如何查看OutputDebugString的输出?[英]How to view output of OutputDebugString?