基于maab的数字滤波器设计及滤波仿真Word文档下载推荐.docx
《基于maab的数字滤波器设计及滤波仿真Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于maab的数字滤波器设计及滤波仿真Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
②巴特沃斯模拟滤波器的设计:
[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,'
[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));
低通滤波器'
subplot(337);
plot(t,y)
30Hz信号'
%高通滤波器设计:
wp=2*170/fs;
ws=2*120/fs;
Rp=20;
As=50;
subplot(332);
[B,A]=butter(N,wc,'
high'
subplot(335);
高通滤波器'
subplot(338);
plot(t,y);
200Hz信号'
%带通滤波器设计:
fp=[70130];
fs=[30170];
wp=2*fp/Fs;
ws=2*fs/Fs;
rp=0.5;
rs=50;
subplot(333);
[N,wc]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wc);
[H,w]=freqz(B,A);
subplot(336);
带通滤波器'
subplot(339);
100Hz信号'
(2)Sinmulink仿真:
参数设计:
自上而下分别是频率为20Hz、200Hz、100Hz,三个滤波器分别为低通滤波器,高通滤波器和带通滤波器。
左边对原信号机进行观测,右边对滤波后的信号进行观测
(3)SPTool和FADtool应用:
:
SPTool主界面
导入原始信号数据
原始信号:
设计低通滤波器:
设计高通滤波器:
设计带通滤波器:
五、实验结果与分析
1、实验现象、数据记录
*上图左边为经过低频滤波器滤波后的低频信号,右边为原低频信号
*上图左边为经过高频滤波器滤波后的低频信号,右边为原高频信号
*上图左边为经过带通滤波器滤波后的中频信号,右边为原中频信号
(3)SPTool和FADtool应用:
低通滤波后的信号:
高通滤波后的信号:
带通滤波后的信号:
指导教师签名:
年月日
2、对实验现象、数据及观察结果的分析与讨论:
经过程序设计的方法,Sinmulink仿真,SPTool和FADtool三种方法均能得到理想的结果;
但三种方法各不相同,相比而言后者较前者操作简单;
3、主要关键和创新点:
用程序设计的方法,Sinmulink仿真,SPTool和FADtool应用分别进行滤波器设计,进过比较,发现,它们效果相同,而Sinmulink仿真比程序设计的方法简单,SPTool和FADtool又比Sinmulink操作上直观、方便。
可见Matlab的功能强大,实现方法多;
作为应用人员,要了解每一种方法,并掌握最简单的方法。
Sinmulink的sin函数信号发生的频率
六、指导老师评语及得分:
签名:
年月日
七、中心意见:
中心主任:
年月日