基于MATLAB的滤波器设计本科毕业设计论文.docx

上传人:b****8 文档编号:10663338 上传时间:2023-02-22 格式:DOCX 页数:13 大小:55.27KB
下载 相关 举报
基于MATLAB的滤波器设计本科毕业设计论文.docx_第1页
第1页 / 共13页
基于MATLAB的滤波器设计本科毕业设计论文.docx_第2页
第2页 / 共13页
基于MATLAB的滤波器设计本科毕业设计论文.docx_第3页
第3页 / 共13页
基于MATLAB的滤波器设计本科毕业设计论文.docx_第4页
第4页 / 共13页
基于MATLAB的滤波器设计本科毕业设计论文.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于MATLAB的滤波器设计本科毕业设计论文.docx

《基于MATLAB的滤波器设计本科毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的滤波器设计本科毕业设计论文.docx(13页珍藏版)》请在冰豆网上搜索。

基于MATLAB的滤波器设计本科毕业设计论文.docx

基于MATLAB的滤波器设计本科毕业设计论文

目录

1任务和要求1

2MATLAB软件的简述2

3基于MATLAB的模拟滤波器设计2

3.1利用MATLAB确定低通滤波器的阶数和幅频特性曲线2

3.2利用MATLAB设计带通滤波器2

4基于MATLAB的数字滤波器设计3

4.1FIR数字滤波器设计原理3

4.2窗函数法设计及MATLAB实现4

4.3程序设计法4

4.4IIR数字滤波器的设计6

5设计总结7

参考文献9

 

1任务和要求

(1)任务:

运用MATLAB软件针对性地进行实例分析,设计巴特沃斯模拟滤波器和切比雪夫模拟滤波器,对于数字滤波器通过FIR滤波器和IIR滤波器实例,使其绘制出相应的图形。

(2)基本要求

Ø了解并掌握MATLAB软件。

Ø利用MATLAB确定低通滤波器的阶数和幅频特性曲线。

Ø利用MATLAB设计带通滤波器。

Ø在数字滤波器的设计中,通过FIR滤波器和IIR滤波器的实例,绘制出相应的图形。

2MATLAB软件的简述

MATLAB软件具有很强的开放性和适应性,是国际公认的优秀科技应用软件,是计算机辅助分析与设计、算法研究和应用开发的基础工具和首选平台,是目前科学研究领域最流行的应用软件,其特点概括为:

(1)高效的数字计算方法及符号计算功能,使用户从繁杂的数学运算分析中解脱出来。

(2)完备的图形处理功能,实现计算结果和编程的可视化。

(3)友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。

(4)功能丰富的应用工具箱,为用户提供了大量方便而实用的处理工具。

(5)SIMULINK动态建模与仿真系统,丰富而功能强大的器件库,提供了实时方便的仿真手段。

MATLAB软件是由美国MATHWORKS公司推出的用于数值计算和图形处理的科学计算系统环境。

MATLAB是英文MatrixLABORUTORY(矩阵实验室)的缩写。

是现今国际公认的最优秀的科技应用软件,它具有强大的数值计算和工程运算功能、符号计算功能和科学数据可视化能力。

广泛应用于数值计算、图形分析、过程控制、系统识别、实时控制和动态仿真等领域。

成为大学生、硕士生和博士生必须掌握的基本技能。

同时,MATLAB也被研究单位和工业部门广泛应用,使科学研究和解决各种具体问题的效率大大提高。

MATLAB集成环境主要包括五个部分[2]:

MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLABAPI(AppLICATIONProgramInterface)。

MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。

利用SIMULINK对系统进行仿真与分析[3],在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。

通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。

3基于MATLAB的模拟滤波器设计

3.1利用MATLAB确定低通滤波器的阶数和幅频特性曲线

设计要求:

模拟信号输入滤波器,要求在50Hz处的衰减为1dB,在400Hz处的最小衰减为60dB带内增益为4,通带内无波纹,而且要减小截止频率后波形的起伏。

根据对设计要求的分析,低通滤波器采用Butterworth滤波器,因为它具有较平坦的幅频特性,而且其元件值比较合乎实际、对精度要求稍宽。

下面利用MATLAB确定该低通滤波器的阶数,并画出其幅频特性(图1),程序代码如下[4]:

Wp=50*2*pi;

Ws=400*2*pi;

Rp=1;

Rs=60;

[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s')

Fc=Wn/(2*pi);

[b,a]=butter(N,Wn,'s');

w=linspace(1,800,10000)*2*pi;

H=freqs(b,a,w);

magH=abs(H);

plot(w/(2*pi),20*log10(magH));

xlabel('频率(Hz))';

ylabel('幅度(dB))';

title('幅频特性)';

运行结果:

N=4

Wn=446.9304

图14阶Butterworth滤波器的幅频特性

由图1可以看出,由MATLAB所设计的5阶Butterworth滤波器波形在通带内平直、没有波纹,阻带内陡降,符合我们对滤波特性的实际要求,所以滤波器的阶数选为4阶。

在MATLAB中,用[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s')语句实现Butterworth滤波器阶数和边缘频率的确定;[b,a]=butter(N,Wn,'s')语句来实现Butterworth滤波器的设计。

其中Wp为通带截止频率;Rp为通带截止频率处的衰减;Ws为阻带截止频率;Rs为阻带截止频率处的衰减;[b,a]是滤波器传递函数多项式的系数;n为滤波器的阶数;Wn为截止频率;‘s’表示模拟滤波器的。

3.2利用MATLAB设计带通滤波器

带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。

它是一种用来过滤时间离散信号的过滤系统。

设计高通、带通、带阻滤波器的传统方法是:

根据对高通、带通、带阻滤波器的特性指标要求,导出相应的低通原型的指标来,然后确定低通原型的传递函数H(s),再根据一定变换关系得出高通、带通、带阻滤波器的传递函数。

而用MATLAB可以像设计低通滤波器一样直接得出高通、带通、带阻滤波器的参数和特性曲线。

设计一带通滤波器,设计要求为:

通带频率2~3kHz、两边的过渡带宽为0.5kHz、通带纹波为1dB、阻带衰减大于100dB,并画出幅频特性曲线[5](如图2所示)。

程序如下:

wp=[20003000]*2*pi;

ws=[15003500]*2*pi;

Rp=1;

Rs=100;

[N,Wn]=buttord(wp,ws,Rp,Rs,'s');

%计算阶数和截止频率

Fc=Wn/(2*pi);

[b,a]=butter(N,Wn,'s');

%计算滤波器传递函数多项式系数

w=linspace(1,4000,1000)*2*pi;

H=freqs(b,a,w);

magH=abs(H);

phaH=unwrap(angle(H));

plot((w/2*pi),20*log10(magH),'b');

xlabel('频率/Hz’);

ylabel('幅度/dB’);

gridon

运行结果:

N=22

Wn=1.0e+004*1.9070

图2巴特沃思带通滤波器的幅频特性

因此该带通滤波器的阶数为N=22

4基于MATLAB的数字滤波器设计

数字滤波器又分为无限冲击响应数字滤波器(IIR)和有限冲击响应数字滤波器(FIR),在此举例基于MATLAB的FIR滤波器的设计和IIR滤波器的设计来讨论数字滤波器的设计。

4.1FIR数字滤波器设计原理

FIR数字滤波器可以用下面的差分方程来描述[6]

其中x(n)是输入序列,y(n)是输出序列,h(n)是系统的单位脉冲响应。

由于其采用卷积的方法得到输出,故可以采用快速算法FFT进行卷积计算,提高信号处理速度。

FIR数字滤波器满足线性相位的条件是其乘法器的系数关于中点对称,又因为其结构无反馈的回路,所以是无条件的稳定系统。

4.2窗函数法设计及MATLAB实现

FIR滤波器目前常用的设计方法有窗函数法和频率采样法,窗函数法是从时域进行设计,而频率采样法是从频域进行设计。

窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用。

窗函数法设计的基本思想是:

首先根据技术指标要求,选取合适的阶数N和窗函数的类型

,使其幅频特性逼近理想滤波器幅频特性。

其次,因为理想滤波器的

是无限长的,所以需要对

进行截断,数学上称这种方法为窗函数法[1]。

其中

是希望逼近的滤波器的单位脉冲响应,

是希望逼近的滤波器的幅频特性,

是所设计的滤波器的单位脉冲响应,

是窗函数。

在截断的过程中要保证FIR滤波器的稳定性与线性相位的特性。

由于截断效应使所设计滤波器的幅频特性存在误差,称之为吉布斯效应。

最后,验证所设计的滤波器是否满足要求,若不满足,重新设计。

常用的窗函数有矩形窗、三角窗、汉宁窗和凯塞窗等。

窗函数的选择一般要满足以下三个条件[7]:

(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度。

(2)旁瓣幅度下降速度要快,以利于增加阻带衰减。

(3)主瓣宽度要窄,以获得较陡的过渡带。

FIR滤波器的设计任务是选择有限长度的h(n),使函数H(ejω)满足技术要求。

本文将针对一个含有1000Hz和2000Hz的正弦波信号,设计一个FIR低通滤波器。

参数要求:

采样频率FS=8000Hz,通带为0~1200Hz,阻带1600~4000Hz,通带波纹为1%,阻带波纹10%。

下面将利用程序设计法,SPTool设计法和FDA-Tool设计法对上述滤波器进行设计。

4.3程序设计法

在MATLAB下设计FIR滤波器有多种函数,如fir1,fir2,firls,remez,fircls,firclsl,cremez,firrcos。

下面以remez函数设计滤波器[8]。

程序如下:

Fs=8000;%采样频率

f=[12001600];

a=[10];

dev=[0.010.1];

[n,fo,ao,w]=remezord(f,a,dev,Fs);%估计滤波器的参数

b=remez(n,fo,ao,w);%用remez函数设计滤波器

freqz(b,1,1024,Fs);%滤波器的频率响应,如图1

t=(0:

100)/Fs;

x=sin(2*pi*t*1000)+sin(2*pi*t*2000);%设置输入信号x

x1=filter(b,1,x);%对信号x进行滤波,得输出信号x1

figure

subplot(211);plot(t,x);grid;

subplot(212);plot(t,x1);grid;

程序运行结果如图3,图4所示:

图3上图为幅频特性,下图为相频特性

图4上图为输入信号x,下图为输出信号x1

4.4IIR数字滤波器的设计

IIR数字滤波器冲激响应无限宽,与模拟滤波器相匹配。

因此可采取在模拟滤波器设计的基础上进一步变换的方法设计IIR滤波器,即通过已知的模拟滤波器系统的系统函数H(s)来设计数字滤波器的系统函数H(z),主要是通过脉冲响应不变法或双线性变换法完成s平面到Z平面的变换。

通过典型的模拟滤波器(如巴特沃斯滤波器、切比雪夫滤波器等)可实现一定参数要求的数字滤波器。

IIR数字滤波器的设计具体步骤[9]:

(1)按照既定规则将数字滤波器技术指标转为模拟低通滤波器技术指标。

(2)以转换后的技术指标为依据设计模拟低通滤波器H(s)(传递函数)。

(3)再按照一定规则将H(s)转换成H(z)(数字滤波器的传递函数)。

若设计的是高通、带通或带阻滤波器,还需进行以下步骤:

将高通、带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标,然后设计出低通H(s),再将H(s)转换为H(z)。

(1)程序如下[10]:

wp0=0.5*pi;wp1=0.4*pi;wp2=0.6*pi;Ap=3;ws2=0.7*pi;As=15;

T=5*pi*10^(-6);

%用双线性变换法设计滤波器

%频率预畸变

ws1=wp0-(ws2-wp0);

wc1=(2/T)*tan(wp1/2);wc2=(2/T)*tan(wp2/2);

wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2);

w0=(2/T)*tan(wp0/2);

B=wc2-wc1;

%将指标转换成归一化模拟低通滤波器的指标

nowr1=(((wr1^2)-(w0^2))/(B*wr1));

nowr2=(((wr2^2)-(w0^2))/(B*wr2));

nowc1=(((wc1^2)-(w0^2))/(B*wc1));

nowc2=(((wc2^2)-(w0^2))/(B*wc2));

%设计归一化的模拟低通滤波器

if(abs(nowr1)-abs(nowr2))>0

nowr=abs(nowr2);

else

nowr=abs(nowr1);

end

nowc=1;

N=buttord(nowc,nowr,Ap,As,'s');

[bLP,aLP]=butter(N,nowc,'s');

[bBP,aBP]=lp2bp(bLP,aLP,w0,B);%用双线性变换法转换成数字滤波器

Fs=1/T;

[b,a]=bilinear(bBP,aBP,Fs);

w=linspace(0,pi,500);

h=freqz(b,a,w);

plot(w,20*log10(abs(h)));

axis([0,pi,-120,20]);grid;

xlabel('frequency(rad)');

ylabel('gain(db)');sys=tf(b,a,T)

(2)其图形如图5所示:

图5MATLAB程序设计法仿真波形

 

5设计总结

课程设计通过利用MATLAB来设计数字滤波器和模拟滤波器,对于不同的设计要求,只需修改程序中的参数,运行后即可得到相应的阶数和截止频率,避免了复杂的运算及查表,使得滤波器的设计与实现趋于方便。

其中给出了巴特沃斯滤波器低通滤波器和巴特沃斯带通滤波器的实现程序、FIR数字滤波器的实现程序、IIR数字滤波器的实现程序以及各种滤波实现的滤波图形。

MATLAB软件使得工程设计中滤波器技术更加趋于完善,通过论文设计掌握了MATLAB的基本使用方法。

参考文献

[1]郑君里.应启衍.杨为理.信号与系统[M].北京:

高等教育出版社,2000.

[2]张维玺.巴特沃斯数字陷波滤波器的设计[M].北京:

现代电子技术出版社,2002.

[3]郑阿奇.MATLAB实用教程[M].浙江:

浙江电子出版社,2003.

[4]姜春玲.史玲.基于MATLAB的模拟滤波器的设计[M].山东:

山东交通学院学报,2004.

[5]张春生.钱萌.MATLAB在数字滤波器设计中的应用探索[M].北京:

现代电子技术出版社,2008.

[6]林炜鹏.基于MATLAB的FIR数字滤波器的设计[M].广东:

广东科技出版社,2009.

[7]周学军.基于MATLAB的模拟滤波器的设计与仿真[M].陕西:

西安电子科技大学出版社,2010.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1