iir数字低通滤波器的matlab实现。
目录 一、引言 4
一)设计目的 4
二)设计思想 4
二、iir数字滤波器的matlab实现。
三、实验步骤 13
四、实验结果及截图 14
结果 14参考文献 15
附录 161)熟悉matlab在信号处理方面的应用。
2)深刻了解频域上的频谱特性。
3)了解数字滤波器的设计。
4)学会比较滤波前后语音信号的差异。
5)利用gui工具做一个简洁大方的图形用户界面。
设iir滤波器的输入序列为x(n),则iir滤波器的输入序列x(n)与输出序列y(n)之间的关系可以用下面的方程式表示:
其中,和是滤波器的系数,其中中至少有一个非零。与之相对应的差分方程为:
由传递函数可以发现无限常单位冲激响应滤波器有如下特点:
1) 单位冲激响应h(n)是无限长的。
2) 系统传递函数h(z)在有限z平面上有极点存在。
3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。
iir数字滤波器的设计有多种方法,如频率变换法、数字域直接设计以及计算辅助设计等。下面只介绍频率变换设计法。首先考虑由模拟低通滤波器到数字低通滤波器的转换,其基本的设计过程如下:
1) 将数字滤波器的技术指标转换为模拟滤波器的技术指标;
2) 设计模拟滤波器g(s);
3) 将g(s)转换成数字滤波器h(z);
在低通滤波器的设计基础上,可以得到数字高通、带通、带阻滤波器的设计流程如下:
1) 给定数字滤波器的设计要求(高通、带阻、带通);
2) 转换为模拟(高通、带阻、带通)滤波器的技术指标;
3) 转换为模拟低通滤波器的指标;
4) 设计得到满足第三步要求的低通滤波器传递函数;
5) 通过频率转换得到模拟(高通、带阻、带通)滤波器;
6) 变换为数字(高通、带阻、带通)滤波器。
在matlab中设计iir滤波器的方法及其它们所用到的函数如表6-1所示。
表6-1 matlab中设计iir滤波器的方法列表。
与冲激响应不变法比较,双线性变换的主要优点是靠频率的非线性关系得到s平面与z平面的单值一一对应关系,整个值对应于单位圆一周。所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。
实例6-4】设计一个截止频率为200hz的数字低通滤波器,采用频率为1000hz。
解:源**如下:
z,p,k]=buttap(3);
b,a]=zp2tf(z,p,k);
bt,at]=lp2lp(b,a,200*2*pi);
bz,az]=bilinear(bt,at,1000);
freqz(bz,az,512,1000)
结果如图6-4所示:bz =
az =
实例6-5】基于butterworth模拟滤波器原型,使用双线性转换设计数字滤波器,其中参数指标为:
通带截止频率: 通带波动值:
阻带截止频率: 阻带波动值:
解:首先确定滤波器的阶数n,同时根据确定=0.5。
接着使用bilinear进行双线性转换,最后绘制在频域上的各种图像,其源**如下:
数字滤波器指标。
wp=0.2*pi;
ws=0.3*pi;
rp=1;as=15;
将数字滤波器指标反转变化为模拟滤波器的参数。
t=1;fs=1/t;
omegap=(2/t)*tan(wp/t);
omegas=(2/t)*tan(ws/t);
ep=sqrt(10^(rp/10)-1);
ripple=sqrt(1/(1+ep*ep));
attn=1/(10^(as/20));
butterworth原型模拟滤波器的设计。
cs,ds]=afd_butt(omegap,omegas,rp,as);
双线性变换。
b,a]= bilinear(cs,ds,t,fs);
频域图像的绘制。
freqz(b,a);
程序运行后,产生4阶的butterworth数字滤波器,频率响应如图6-5所示的波形。
图6-5 4阶butterworth数字滤波器。
3、 实验步骤。
1)录入一段语音信号,设置采样率和采样点数。
2)输入信号的频谱分析。
要求首先画出输入信号的时域波形;然后对该信号进行快速傅立叶变换,得到信号的频谱特性。
3)设计数字低通滤波器并画出数字低通滤波器的频率响应。
4)用滤波器对信号进行滤波,比较滤波前后语音信号的波形及频谱。
5)利用matlab gui工具做一个图形用户界面,窗口简洁大方。
4、 实验结果及截图。
结果。5.总结。
通过这次课程设计,使自己对通信原理中的信号的变换,特别是傅立叶变换及其实现过程有了更深的了解。我对matlab 软件也有了熟练的了解,对工程项目设计积累的一定经验。起初在面对一个陌生时会有忌惮和不知所措,而通过这次训练基本可以通过help 指令和doc 指令来自学函数用法。
在程序调试的时候经常会出现错误,耐心调试找到错误并搞清楚为什么会出错则是作为一个程序员的一项基本素质。
我们团队分工明确,成员们勤劳能干,奠定我们高效地完成课程设计的基础。而这期间,我们也确实遇到了很多困难,但我们都攻克了。总之,我们在这次课程设计中学到了很多。
参考文献:1】通信原理第六版樊昌信曹丽娜编著国防工业出版社。
2】信号与系统引论郑君里应启杨为理编著高等教育出版社。
3】 matlab及在电子信息类课程中的应用第二版唐向宏岳恒立郑雪峰编著电子工业出版社。
附录:源程序。
function varargout = idea2(varargin)
idea2 m-file for
idea2, by itself, creates a new idea2 or raises the existing
singleton*.
h = idea2 returns the handle to a new idea2 or the handle to
the existing singleton*.
idea2('callback',hobject,eventdata,handles,..calls the local
function named callback in with the given input arguments.
idea2('property','value',.creates a new idea2 or raises the
existing singleton*. starting from the left, property value pairs are
applied to the gui before idea2_openingfunction gets called. an
unrecognized property name or invalid value makes property application
stop. all inputs are passed to idea2_openingfcn via varargin.
*see gui options on guide's tools menu. choose "gui allows only one
instance to run (singleton)".
see also: guide, guidata, guihandles
copyright 2002-2003 the mathworks, inc.
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...