基于matlab的数字滤波器设计及滤波仿真 2.docx

上传人:b****6 文档编号:15330389 上传时间:2023-07-03 格式:DOCX 页数:18 大小:713.95KB
下载 相关 举报
基于matlab的数字滤波器设计及滤波仿真 2.docx_第1页
第1页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第2页
第2页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第3页
第3页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第4页
第4页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第5页
第5页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第6页
第6页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第7页
第7页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第8页
第8页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第9页
第9页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第10页
第10页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第11页
第11页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第12页
第12页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第13页
第13页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第14页
第14页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第15页
第15页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第16页
第16页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第17页
第17页 / 共18页
基于matlab的数字滤波器设计及滤波仿真 2.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于matlab的数字滤波器设计及滤波仿真 2.docx

《基于matlab的数字滤波器设计及滤波仿真 2.docx》由会员分享,可在线阅读,更多相关《基于matlab的数字滤波器设计及滤波仿真 2.docx(18页珍藏版)》请在冰点文库上搜索。

基于matlab的数字滤波器设计及滤波仿真 2.docx

基于matlab的数字滤波器设计及滤波仿真2

 

山东科技大学电工电子实验教学中心

创新性实验结题报告

 

实验项目名称_基于matlab的数字滤波器设计及滤波仿真_

 

三个正弦信号用三种方法进行滤波分离

1.编程法、、法与FDATool法

一、实验摘要

随着通信行业和电子计算机技术的发展,数字信号处理技术受到了越来越广泛关注,其理论及算法随着计算机技术和微电子技术的发展得到了飞速地发展,数字滤波器是数字信号处理中最重要的组成部分之一,本文详细介绍了利用MATLAB信号处理工具箱(SignalProcessingToolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。

利用Maltab模拟一个基本输入信号(如三个正弦频率信号的叠加),自行设定滤波器

的技术指标,用程序设计法设计各种滤波器(低通,高通,带通),使用Simulink进行滤波仿真最后得到分离的三个正弦频率信号,并与理论上得滤波效果进行对比和讨论。

 

二、实验目的

深入理解IIR和FIR数字滤波器的概念、基本原理和方法,学会用MATLAB语言和FADtool设计数字滤波器,掌握各种数字滤波器的设计方法和特点,熟悉MATLAB及其数字信号处理工具箱的使用方法,通过设计和仿真来加深学生对滤波的理解并提高设计能力,学习创新性实验报告的撰写方法。

 

三、实验场地及仪器、设备和材料:

实验室:

J11-318

实验设备:

PC机一台,Matlab软件

 

四、实验内容

(1)、实验原理:

①正弦信号:

②巴特沃斯模拟滤波器的设计:

[N,Wc]=buttord(Wp,Ws,ap,as,'s')

[N,wc]=buttord(wp,ws,αp,αs)

用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。

调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:

0≤wp≤1,0≤ws≤1。

1表示数字频率pi。

αp,αs分别为通带最大衰减和组带最小衰减(dB)。

当ws≤wp时,为高通滤波器;

当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。

N,wc作为butter函数的调用参数。

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)

用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。

Ωp,Ωs,Ωc均为实际模拟角频率

[BS,AS]=butter(N,Wc,'s')

[B,A]=BUTTER(N,Wn),设计一个阶数为n,频率为Wn的低通滤波器;

[B,A]=BUTTER(N,Wn,ftype)可以设计高通,带阻滤波器,其中ftype参数的形式可以指定何种滤波器,ftype为‘high’时,设计一个阶数为n,频率为Wn的高通滤波器;ftype为‘stop’时,得到滤波器阶数为2*n,频率范围为Wn=[W1,W2]的带阻滤波器;

③双线性变换设计IIR滤波器:

[BZ,AZ]=bilinear(BS,AS,1/T)

④信号滤波

Y=filter(B,A,X)

输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母整个滤波过程是通过下面差分方程实现的:

a

(1)*y(n)=b

(1)*x(n)+b

(2)*x(n-1)+...+b(nb+1)*x(n-nb)-a

(2)*y(n-1)-...-a(na+1)*y(n-na)

[Y,Zf]=FILTER(B,A,X,Zi),输入X为滤波前序列,Y为滤波结果序列,B/A提供滤波器系数,B为分子,A为分母,并输入Zi指定X的初始状态,Zf为最终状态矢量

(2)Simulink的使用方法:

模块库中的模块可以直接用鼠标进行拖曳(选中模块,按住鼠标左键不放)而放到模型窗口中进行处理。

在模型窗口中,选中模块,则其4个角会出现黑色标记。

此时可以对模块进行以下的基本操作。

移动:

选中模块,按住鼠标左键将其拖曳到所需的位置即可。

若要脱离线而移动,可按住shift键,再进行拖曳。

复制:

选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。

删除:

选中模块,按Delete键即可。

若要删除多个模块,可以同时按住Shift键,再用鼠标选中多个模块,按Delete键即可。

也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。

转向:

为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。

在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。

或者直接按Ctrl+F键执行FlipBlock,按Ctrl+R键执行RotateBlock。

改变大小:

选中模块,对模块出现的4个黑色标记进行拖曳即可。

模块命名:

先用鼠标在需要更改的名称上单击一下,然后直接更改即可。

名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。

HideName可以隐藏模块名称。

颜色设定:

Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。

参数设定:

用鼠标双击模块,就可以进入模块的参数设定窗口,从而对模块进行参数设定。

参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。

通过对模块的参数设定,

就可以获得需要的功能模块。

属性设定:

选中模块,打开Edit菜单的BlockProperties可以对模块进行属性设定。

包括Description属性、Priority优先级属性、Tag属性、Openfunction属性、Attributesformatstring属性。

其中Openfunction属性是一个很有用的属性,通过它指定一个函数名,则当该模块被双击之后,Simulink就会调用该函数执行,这种函数在MATLAB中称为回调函数。

模块的输入输出信号:

模块处理的信号包括标量信号和向量信号;标量信号是一种单一信号,而向量信号为一种复合信号,是多个信号的集合,它对应着系统中几条连线的合成。

缺省情况下,大多数模块的输出都为标量信号,对于输入信号,模块都具有一种“智能”的识别功能,能自动进行匹配。

某些模块通过对参数的设定,可以使模块输出向量信号。

 

(3)SPTool的使用方法:

SPTool图形化信号处理工具的使用SPTool工具提供四个基本的信号处理图形用户界面(GUI)程序,它们分别是

(1)信号浏览器:

用于浏览可视化的信号图像

(2)滤波器设计器:

可用于设计和编辑FIR和IIR数字滤波器,绝大多数

MATLAB信号处理工具箱提供的命令行函数都可以在这个可视化的滤波

器设计器中被调用,用户调用Pole/Zero编辑器设计出符合自己需要的滤

波器。

(3)滤波器浏览器:

这个工具主要用于分析滤波器的特性。

(4)频谱浏览器:

用于频谱分析,使用工具箱提供的频谱估计函数去分析某个

信号序列的功率谱密度。

实验步骤:

1、打开SPTool主界面

单击start----Toolboxes----signalprocessional----SPTool,或者直接在命令行输入SPTool,启动SPTool工具,出现主界面:

主界面有三栏列表,包括信号源列表、滤波器列表和频谱列表。

2、用户能够从MATLAB主工作空间中导入信号序列、滤波器或频谱。

如从工作空间中导入信号源数据:

单击File---import,出现设置参数,产生的信号源命名为signal1,点击OK,可看到在主界面的信号列表中增加一个signal1[vector]项。

3、滤波器的设计

(1)可以从工作空间中直接导入已设计好的滤波器系数(如大作业中用FDATool设计好的滤波器的系数):

(2)也可以直接在SPTool中进行设计产生。

如选择频谱列表中的filt1[design],单击Edit,或者在频谱列表中单击New,出现:

为比较两个信号的频谱,首先创建一个功率谱密度对象spect1,在SPTool主窗口中选择signal1[vector],然后单击频谱列表下面的Create按钮,这时会弹出频谱浏览器窗口。

即使用缺省的参数创建了信号signal1的频谱,单击Apply,这是频谱图像就会显示出来。

同样可创建另一个OUT2频谱图soect2。

然后在频谱列表中使用shift同时选中两个频谱,单击View就可显示在频谱浏览器中,这样就可以比较滤波前后的频谱变化。

2、实验内容

(1)设计三个频率混合的信号y,频率可设为100Hz、1000Hz、10000Hz;

(2)设计3个巴特沃斯模拟滤波器,分别为低通、高通、带通;

(3)用双线性变换法将设计好的巴特沃斯滤波器转换为数字滤波器;

(4)对混合信号y进行滤波;

(5)比较滤波前后信号各分量的变化;

(6)调试滤波器参数;

(8)Simulink仿真;

(9)SPTool仿真;

(10)总结报告。

 

3、实验步骤

(1)Matlab程序设计:

clc;

fs=4000;

t=0:

1/fs:

1;

x=sin(2*pi*20*t)+sin(2*pi*100*t)+sin(2*pi*200*t);

%低通滤波器设计:

wp=2*30/fs;

ws=2*60/fs;

Rp=1;

As=30;

subplot(331);

plot(t,x);

title('原始信号');

[N,wc]=buttord(wp,ws,Rp,As);

[B,A]=butter(N,wc);

[H,W]=freqz(B,A);

y=filter(B,A,x);

subplot(334);

plot(W,abs(H));

title('低通滤波器');

subplot(337);

plot(t,y)

title('30Hz信号');

%高通滤波器设计:

wp=2*170/fs;

ws=2*120/fs;

Rp=20;

As=50;

subplot(332);

plot(t,x);

title('原始信号');

[N,wc]=buttord(wp,ws,Rp,As);

[B,A]=butter(N,wc,'high');

[H,W]=freqz(B,A);

y=filter(B,A,x);

subplot(335);

plot(W,abs(H));

title('高通滤波器');

subplot(338);

plot(t,y);

title('200Hz信号');

%带通滤波器设计:

fp=[70130];fs=[30170];

wp=2*fp/Fs;ws=2*fs/Fs;rp=;rs=50;

subplot(333);

plot(t,x);

title('原始信号');

[N,wc]=ellipord(wp,ws,rp,rs);

[B,A]=ellip(N,rp,rs,wc);

[H,w]=freqz(B,A);

y=filter(B,A,x);

subplot(336);

plot(W,abs(H));

title('带通滤波器');

subplot(339);

plot(t,y);

title('100Hz信号');

(2)Sinmulink仿真:

参数设计:

自上而下分别是频率为20Hz、200Hz、100Hz,三个滤波器分别为低通滤波器,高通滤波器和带通滤波器。

左边对原信号机进行观测,右边对滤波后的信号进行观测

 

(3)SPTool和FADtool应用:

SPTool主界面

 

导入原始信号数据

 

原始信号:

 

设计低通滤波器:

 

设计高通滤波器:

 

设计带通滤波器:

 

五、实验结果与分析

1、实验现象、数据记录

(1)Matlab程序设计:

(2)Sinmulink仿真:

*上图左边为经过低频滤波器滤波后的低频信号,右边为原低频信号

*上图左边为经过高频滤波器滤波后的低频信号,右边为原高频信号

 

*上图左边为经过带通滤波器滤波后的中频信号,右边为原中频信号

 

(3)SPTool和FADtool应用:

低通滤波后的信号:

高通滤波后的信号:

 

带通滤波后的信号:

 

指导教师签名:

 

年月日

 

2、对实验现象、数据及观察结果的分析与讨论:

经过程序设计的方法,Sinmulink仿真,SPTool和FADtool三种方法均能得到理想的结果;但三种方法各不相同,相比而言后者较前者操作简单;

 

3、主要关键和创新点:

用程序设计的方法,Sinmulink仿真,SPTool和FADtool应用分别进行滤波器设计,进过比较,发现,它们效果相同,而Sinmulink仿真比程序设计的方法简单,SPTool和FADtool又比Sinmulink操作上直观、方便。

可见Matlab的功能强大,实现方法多;作为应用人员,要了解每一种方法,并掌握最简单的方法。

Sinmulink的sin函数信号发生的频率

 

六、指导老师评语及得分:

 

签名:

年月日

七、中心意见:

 

中心主任:

年月日

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2