基于matlab的IIR数字滤波器设计(doc 19页)(正式版)
更新时间:2024-01-02 01:18:01 阅读量: 教育文库 文档下载
基于matlab的IIR数字滤波器设计
一. IIR数字滤波器介绍 1.IIR数字滤波器的基本原理
所谓数字滤波器,是指输入,输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的硬件。实质上就是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统的特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用的频率分量通过,抑制无用的信号分量输出,因此数字滤波与模拟滤波的概念相同,根据其频率特性同样可以分为低通,高通,带通,带阻,只是信号的形式和实现滤波方式有所不同。如果要处理的信号是模拟信号,就可以通过A/D或者D/A转换,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。
数字滤波器滤波的数学表达式:y(n)=x(n)*h(n); 如果滤波器的输入输出信号都是离散信号,那么该滤波器的脉冲响应也一定是离散信号,这样的滤波器就成为了数字滤波器。
上面的系统为时域离散系统时,其频域特性为:
其中分别是数字滤波器的输出序列和输入序列的频域响应,是数字滤波器的频域响应。可以看见按照输入信号的频谱特点和处理信号的目的适当选择滤波器的频域响应,使得滤波后的输出信号满足设计性能要求,就是滤波器的滤波原理。 2.IIR数字滤波器传输特性
IIR数字滤波器的系统函数可以表示为:H(Z)=,式中H(Z)称为N阶IIR滤波器函数。 3..数字滤波器的技术要求.
我们通常设计的数字滤波器一般属于选频滤波器,。
我们的目的是要设计一个因果可实现的滤波器,另外买也要考虑到成本和复杂性问题,因此实用中通带和阻带都允许一定的误差容限,即通带不一定是完全水平的,阻带也不可能完全衰减到零。而且,通带和阻带之间还要设置一定带宽的过渡带。如下图表示低通滤波器的技术要求: 图中, 分别表示通带截止频率和阻带截止频率,通带频率范围为0≤w≤,通带中要求(1-δ1)≤|H≤1,阻带截止频率范围≤w≤Π,再阻带中要求≤δ2,从到称为过渡带,在这个频带内,幅度响应从通带平滑的下落到阻带。 二. IIR数字滤波器的设计方法 1.常用的IIR滤波器设计方法
(1). 以模拟滤波器函数为基础的变换法;即先设计一满足指定条件的模拟滤波器H(s),再将该模拟滤波器转化为数字滤波器H(z)。
(2). 直接设计法:在z平面内,根据零、极点对系统特性的影响,调整零极点位置得H(z)。
(3). 最优化设计法(计算机辅助设计),在某种最小化误差准则下,建立差分方程系数 a k、b i 对理想特性的逼近方程,使用迭代方法解方程组得到最佳逼近系统。由于此方法计算量大,需要借助于计算机进行设计。
下面分别介绍函数设计法和信号处理图形界面来设计IIR数字滤波器,得出最优化的设计方法。 2.基于matlab的函数设计IIR数字滤波器
IIR数字滤波器设计的一般方法是先设计低通模拟滤波器,进行频率变换,将其转换为相应的(高通,带通等)模拟滤波器,在转换为高通,带通或带阻数字滤波器,由模拟滤波器设计数字滤波器的方法。这是因为模拟滤波器设计方法已经很成熟,它不仅有完整的设计公式,还有完善的图表供查阅,另外,还有一些典型的滤波器类型可供我们使用。对设计的全过程的各个步骤,MATLAB都提供了了相应的工具箱函数,使IIR数字滤波器设计变得非常简单。 2.1. 基于matlab函数的IIR滤波器设计 2.1.1.设计方法选择:
程序设计法是基于MATLAB中相应的工具箱函数来实现的,IIR数字滤波器的设计步骤可由图1.2所
示的流程图来表示。
这个图也清晰的表示了5类20个信号处理工具箱函数的作用,
在MATLAB中,模拟滤波器的系统函数
B(1)SM?B(2)SM?1?......?B(M)S?B(M?1)B(S)H(S)= ?NN?1A(S)A(1)S?A(2)S?.....?A((N)S?A(N?1)数字滤波器的系统函数
B(1)?B(2)Z?1?.....?B(M)Z?(M?1)?B(M?1)Z?MB(Z)H(Z)= ??1?(N?1)?NA(Z)A(1)?A(2)Z?.....?A(N)Z?A(N?1)Z在实际工程中,需要的设计结果是系数向量B和A,用B和A来综合滤波器的硬件实现结构或软件
运算结构,为了直观的看出设计结果,本文的实例均以滤波器幅频响应曲线作为设计结果输出。如果需要滤波器系数,在运行程序后,只要在MATLAB命令窗口键入系数向量名,则相应的系数就显示出来了。 2.1.2.程序设计实例分析
(a)设计高通和带通Butterworth数字滤波器
我们给出四阶归一化 Butterworth模拟滤波器的系统函数 H(S)?1
S4?2.6131S3?3.4142S2?2.6131S?1jw用双线性变换法从Ha(s)设计四阶带通butterworth数字滤波器HBP(Z),并图示|HBP(e)|, 设计采样周期T=1s,指标如下
w1c?0.35?,wuc?0.65?
现在我们分步进行:■建模 由于本例主要涉及三个问题: (1) 由数字滤波器指标求相应的模拟滤波器指标; (2) 模拟滤波器频率变换(因为已给定阶数和模拟滤波器的归一化低通原型); (3) 由相应的模拟滤波器到数字滤波器(双线性变换法)。
由于调用bilinear函数将模拟滤波器转换成数字滤波器非常容易,并且有效抑制频率失真的问题,本例给定了数字滤波器指标,所以首先要设计处与该指标相应的四阶Butterworth模拟滤波器,然后调用bilinear函数将其转换为数字滤波器即可,应当特别注意的是,对于双线性变换法,由数字边界频率求相应的模拟边界频率时,一定要考虑预畸变矫正。只有这样,最终设计结果才能满足所给指标, (ⅰ)首先按照步骤一的要求
设计高通数字滤波器时,相应的模拟高通滤波器3dB截止频率为 ?C?w2tg(c) T2 设计带通数字滤波器时,相应的模拟滤波器的3dB截止频率为 ?LC?ww22tg(lc),?uc?tg(uc) T2T2(ⅱ)步骤二的的原理
可调用MATLAB频率变换函数lp2lp,lp2hp,lp2bp,分别实现从模拟低通到模拟低通,高通,带通,带阻的频率变换。
▲【Bt,At】=lp2hp(B,A,wc),将系数向量为B和A的模拟滤波器归一化低通原型(3Db)截止频频为1rad/s),变换成3dB截止频率为wc的高通模拟滤波器,返回高通模拟滤波器系数向量Bt和At。
▲【Bt,At】=lp2bp(B,A,wo,Bw)将系数向量为B和A的模拟滤波器归一化低通原型变换成中心频率为wo,带宽为Bw的带通模拟滤波器,返回带通模拟滤波器的系数向量Bt和At。 其中,wo=?lc?uc ,Bw??uc??lc
由以上原理我们来编写如下程序:
%用双线性变换法设计数字高通和带通滤波器 clear;close all
T=1;wch=pi/2; %T为采样间隔,wch位数字高通3dB截止频率 wlc=0.35*pi;wuc=0.65*pi; %wlc,wuc;数字高通3dB截止频率 B=1;A=[1,2.6131,3.4142,2.6131,1];
[h,w]=freqs(B,A,512); %求原归一化模拟滤波器的频率响应 subplot(3,2,1);plot(w,20*log10(abs(h))); %画模拟滤波器幅频特性 grid;axis([0,10,-90,0])
xlabel('w/ ');ylabel('模拟低通幅度(dB)') %(1)设计高通
omegach=2*tan(wch/2)/T; %预畸变求模拟高通3dB截止频率 [Bhs,Ahs]=lp2hp(B,A,omegach); %模拟域低通转换为高通系数 [Bhz,Ahz]=bilinear(Bhs,Ahs,1/T); %模拟转换位数字高通系数变量 [h,w]=freqz(Bhz,Ahs,512); %求画出数字滤波器幅频特性 Subplot(3,2,3);plot(w/pi,20*log10(abs(h))); grid;axis([0,1,-150,0])
xlabel('w/ ');ylabel('数字滤波器幅度(dB)') %(2)设计带通
omegalc=2*tan(wlc/2)/T; %预畸变求滤波器通带低端截止频率 omegauc=2*tan(wuc/2)/T; %预畸变求滤波器通带高端截止频率 wo=sqrt(omegalc*omegauc);Bw=omegauc-omegalc;
[Bbs,Abs]=lp2bp(B,A,wo,Bw); %模拟域低通转换为带通系数 [Bbz,Abz]=bilinear(Bbs,Abs,1/T); %模拟转换为数字带通系数变量 [h,w]=freqz(Bbz,Abz,512); %求并画出数字滤波器幅频特性 subplot(3,2,4);plot(w/pi,20*log10(abs(h))); grid;axis([0,1,-150,0])
xlabel('w/pi ');ylabel('数字滤波器幅度(dB)')
程序运行结果如图1.3,1.4,1.5所示分别表示模拟低通幅度,数字高通幅度和数字带通幅度特性。
模拟低通幅度 数字高通幅度
图1.3 图1.4 数字带通幅度
图1.5
(b)设计滤波器进行图像去噪处理
以上是我们运用MATLAB工具箱函数来编程设计IIR数字滤波器并对其频响特性进行分析的实例,下面我们就来引入数字滤波器处理图像的实例具体分析。
我们用卷积定理来说明数字滤波器进行图像去噪处理的原理,设图像信号e(x, y)通过线性不变系统h(x, y)的结果是g(x, y),即r(x,y)=e(x,y)*h(x,y); 由时域卷积,频域乘积定理得R(U,V)=E(U,V)H(U,V)。 其中,R(u, v),E(u, v),H(u, v)分别是r(x, y),e(x, y)和h(x, y)的傅里叶变换。
实际上,图像的能量大部分集中在幅度频的低频和中频段,而图像的边缘和噪声对应于高频部分。因此,能降低高频成分幅度的滤波器则能过滤噪声,减弱噪声的影响。
而Butterworth低通滤波器在物理上是可以实现的滤波器,它的转移函数模的平方为
|Ha(j?)|2?1,为N阶,截止频率为?c。
?2N1?()?C下面我们就来设计Butterwirth滤波器来对加高斯白噪声的图像进行去噪处理 I = imread('K:\\祖国好.jpg');
figure, imshow(I),
D = imnoise(I,'gaussian'); figure, imshow(D) D=double(D);
F=fft2(D); %傅里叶变换 F=fftshift(F); %转换数据矩阵 [N1,N2]=size(F); n=2; d0=40;
n1=fix(N1/2); n2=fix(N2/2); for i=1:N1 for j=1:N2
d =sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+(d/d0)^(2*n)); %计算低通转换函数 FD(i,j)=h*F(i,j); %低通滤波 end end
FD=ifftshift(FD); FD=ifft2(FD);
FD=uint8(real(FD)); figure,imshow(FD) 运行结果如下,我们可以从图1.6与图1.7看出Butterworth滤波器能有效地过滤图像中高频加性噪声,增
强图像。
图1.6 图1.7 2.1.3基于函数设计法的总结
从以上一系列函数设计中,我们由matlab函数来设计滤波器是次优化的,它的设计步骤为:
1.先选择设计方法
2.猜测滤波器参数,后进行设计
3.观察滤波器的响应,判断其是否符合要求 4.反复这一尝试与失败过程直到符合要求。
这种设计方法,很显然在设计要求上进行权衡分析是不是很有效,它更多时候是凭借操作者来设计的。因此我们下面将探讨更优化的设计方法。
3. 基于信号处理图形用户界面设计IIR数字滤波器
基于matlab函数的滤波器设计完成后,需要对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。而利用MATLAB强大的信号处理界面工具进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。 3.1.FDATool设计IIR数字滤波器 3.1.1.FDATool工具包的介绍及使用
FDATool(Filter Design&Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB 7.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。
FDATool界面总共分两大部分,一部分是Design Filter。在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。
Design Method(设计方法)选项,包括IIR滤波器的Butterwotth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、Chebyshev Type II(切比雪夫II型)法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。
Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify Order=N-1)。如果选择Minimum Order,则MATLAB根据所选择的滤波器类型自动使用最小阶数。
Frequency Specifications选项,可以详细定义频带的各参数,包括采样频率和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定。例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定,所以只需定义通带截止频率,而不必定义阻带参数。
Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。 3.1.2.FDATool设计IIR数字滤波器
我们将以一个IIR滤波器的设计实例来具体说明使用matlab工具箱的方便。
要求设计elliptic(椭圆)带通数字低通滤波器满足下列指标:
它的通带范围从100HZ到150HZ, 采样频率Fs=1000HZ, 通带最大衰减Rp=1dB,阻带最大衰减 Rs=60dB ,阶数为10。
在该实例中,首先在Response Type中选择Bandpass 高通滤波器,然后在下面的Desigh Method中选择IIR类型,并且指定 Filter Order项中的阶数Specify Order=10 ,由于是设计elliptic 椭圆滤波器,其下面Option就不必选择。 然后在Frequency Specifications中选择Unit为Hz,给出采样频率Fs=1000,通带Fpass1=100和Fpass2=150;最后在Magnitude Specifications中选择Unit为dB,Apass=1,Astop=60. 设置完成后点击Design Filter即可得到所设计的IIR滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性,如图1.8,1.9,2.0所示。设计完成后将结果保存为filterl.fda文件。
下面即是运用FDATOOl对elliptic椭圆滤波器的设计界面:其中幅频特性如图1.8所示
图1.8 相频特性
图1.9
冲击响应特性
图2.0
从以上这些界面中我们可以清晰明了的看到设计的椭圆滤波器各种特性:由以上图中我们能够很容易的分析,图1.8中椭圆滤波器具有等纹波的通频带、等纹波的抑止频带,而且过渡带宽非常狭窄,总之,使用FDATool工具包设计和分析滤波器,是非常方便易行的,而且交互性良好,不需要极其复杂的程序编制就可以实现。在工程中也是广泛应用 。 3.3.基于fdesign更加优化的设计方法 3.1.1.fdesign设计方法概述
Fdesign是一种面向对象的滤波器设计方法。这种设计方法的设计思路是: 1.先设定设计的要求
2.因为MATLAB提供可符合这些要求的设计方法,例如fvtool,sptool等,使用这些工具箱进行设计 3.然后在各种方法中找到最优化的设计方法。 3.1.2.使用滤波器对象的优点
1.设计的filter.dfilt为对象表示,对象中包含所有滤波器的特性及可供操作的函数 2.fvtool,sptool提供了滤波器分析及视觉化集成环境。 3.方便对参数和结构进行滤波功能上的权衡分析,包括:延时,滤波器设计复杂度,阻带衰减权衡分析,
支持多种滤波器结构包括:direct-form FIR,transposed,Overlap-add FIR以及之间的转换用convert函数进行操作。
4.仿真与自动代码生成的途径:它可以生成simulink模型 5.自动估算计算复杂度,使用cost函数:df.cost。 3.1.3 .fvtool设计IIR数字滤波器
FVTool 可用于查看设计或导入的滤波器的特性,包括其幅度响应、相位响应、群延迟、极点-零点
图、冲激响应和阶跃响应等。
下面我就来用一个程序来分析如何用fvtool设计滤波器: %用工具箱的画图工具进行画图
clear;
Wp=60/600;Ws=90/600;Rp=1;Rs=15; %滤波器参数设定 [N, Wn] = BUTTORD(Wp, Ws, Rp, Rs);
[B,A] = BUTTER(N,Wn) ; %巴特沃斯模拟滤波器 [num, den] = iirlp2bp(B,A, 0.15, [0.1, 0.2]); %IIR低通向带通转换
fvtool(B,A, num, den); %进入fvtool界面进行滤波器设计与分析 FT=dfilt.df1(B,A); %将要设计的滤波器参数传递给变量FT
realizemdl(FT); %生成simulink仿真模型界面
运行此程序则会出现fvtool界面,如图2.1所示
Butterwoth滤波器幅频特性界面
图2.1
通过这个界面我们不仅可以分析道所要设计的滤波器的幅频特性,还可以分析它的相频特性,以及零极点图,单位脉冲响应,单位阶跃响应,群延迟,相位延迟以及加入高斯噪声后的频谱等等。
在实际的语言编码通信中,解调后信号和原传递信号的差异是因幅度和时间的量化而产生的,而滤波器则会引起这种差异的产生,而这种差异就是量化噪声,在fvtool界面中我们也能分析到滤波器 的量化噪声功率谱。如下图2.2所示为Round-off Noise Power Spectrum-该滤波器的量化噪声功率谱
图2.2
我们还可以在fvtool的信息栏看到看到滤波器的各项数据如图2.3所示,我们发现它将两项不同参数的滤波器进行比较filter1为6阶的,而filter2为12阶的,因为是IIR滤波器的设计,所以两者都不是线性相位的,这是对同一个传递函数以不同参数进行自动比较,从而选出最优化的设计。
图2.3
通过这个设计巴特沃斯滤波器的程序,我们用realizemdl(FT)命令可以得出该我们所需要设计的滤波器的仿真模型,进而出现simulink界面如图2.4所示;这样一个模块可以直接用于信号传输中滤波器模块的建立。
图2.4
用鼠标双击simulink界面中的该模型,我们可以得到滤波器的设计模型如图2.5所示:
图2.5
我可以看到该模型用到了12个延迟器,13个乘法器,12个加法器,这是一个典型的优化设计滤波器模型。
3.1.4.Sptool设计IIR数字滤波器(面向对象设计)
SPTool是MATLAB信号处理工具箱中自带的交互式图形用户界面工具,它包含了信号处理工具箱中的大部分函数,可以方便快捷地完成对信号、滤波器及频谱的分析、设计和浏览,因此只需要操作界面就可以载入,观察,分析,和打印数字信号,分析和设计数字滤波器。
SPTool 提供对信号、滤波器和频谱分析函数的访问入口。借助其可以: ①设计和编辑各种长度和类型并具有标准配置的 FIR 和 IIR 滤波器
②查看设计或导入的滤波器的特性,包括其幅度响应、相位响应、群延迟、极点-零点图、冲激 响应和阶跃响应等
③将滤波器应用于选定的信号使用不同频谱估计方法进行频域数据的图形化分析,其中包括 Burg、 FFT、多正弦窗 (MTM)、MUSIC、特征向量、Welch 和 Yule-Walker AR 。 ■Sptool设计IIR滤波器实例分析:
首先在MATLAB命令窗口输入命令:Fs=500;t = (0:500)/Fs; f= sin(2*pi*t*40)+sin(3*pi*t*50)+sin(2*pi*t*100);
此时,变量Fs、t、s将显示在workspace列表中。在命令窗口键入Sptool,将弹出Sptool主界面,如图2.9所示;我们按照以下步骤操作:
(1)点击菜单File/Import将信号f导入并取名为f。
(2)单击Filters列表下的New,按照参数要求设计出滤波器filt1
(3)将滤波器filt1应用到f信号序列。分别在Signals、Filters、Spectra列表中选择f、filt1、 mtlbse auto单击Filters列表下的Apply按钮,在弹出的Apply Filter对话框中将输出信号命名为 信号 3
(4)进行频谱分析。在Signals中选滤波后的信号信号3,单击Spectra下的Create按钮,在弹出的Spectra Viewer 界面中选择Method为FFT,Nfft=512,单击Apply按钮生成滤波后信号的频谱。
Sptool主界面
图2.6
IIR Chebyshev1型低通滤波器filt1设计界面
图2.7
模拟信号源f
图 2.8
经滤波后信号3
图2.9
滤波后经FFT处理后频谱
图3.0
分别选中原信号f、滤波后信号3,信号3的频谱 ,单击各自列表下方的View按钮,即可观察他们的波形,如图2.8,2.9,3.0所示。
低通滤波器filt1使输入信号f中频率为40hz的正弦波信号通过,而将频率为75hz和100hz的正弦波信号大大衰减。在图3.0中我们能很清楚的看到滤出的信号3集中在40HZ的频率区,说明滤波的效果比较理想。这样滤波后的信号3波形非常清楚的展现在用户面前。 4.滤波器设计方法总结
在对滤波器实际设计时,运用函数设计法,整个过程的运算量是很大的。设计阶数较高的IIR滤波器时,计算量更大,设计过程中要改变参数或滤波器类型时都要重新计算。它需要反复的实验,而且需要设计者凭借经验设定参数,平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。因此,基于对象的信号处理工具FDATool,Fvtool以及Sptool界面设计滤波器,可以有效的的解决这一问题,它不仅减少了设计复杂度,而且还为用户提供了一个便于分析和观察的界面。
Sptool界面更是提供了简单,直观的,更加优化的数字处理方式。我们可以根据原信号的特点,在Sptool界面中设计我们所需要的滤波器的特性,来对原信号进行处理,它能有效满足信号处理要求,因此我们常常会选择这种更加优化的方式来设计滤波器。 三.IIR数字滤波器的仿真模型及实现 1.仿真工具箱simulink概述
Simulink是MATLAB各种工具箱中比较特别的,一般工具箱只是把面向某一类问题的程序集中起来,其中的程序都是用MATLAB语言编写的,这些工具箱是MATLAB在量方面的扩充,而Simulink工具箱却是从底层开发的一个完整的方针环境和图形界面。在这个环境中,我们可以利用鼠标或着箭盘,完成面向框图系统仿真的全部过程,并且可以更加直观,快速和准确的达到方针的目标。原来的MATLAB是在文本窗口中编程,图形窗口只是用来显示,而Simulink则把图形窗口拓展为可以用 框图方式来编程,使MATLAB的功能有了一个质的飞跃。 2 Simulink仿真框图设计
使用Simulink来仿真,要经过以下步骤: (1) 环节库及输入 (2) 环节的连接 (3) 环节参数的设定
(4) 仿真框图的运行 3.仿真中信号传输实例:
现在我们就以上设计步骤来具体设计关于IIR数字滤波器的信号传输过程: 我们首先确定仿真的模型,信号源:0.05*(5+4*sin(20t))*cos(20t),将这个模拟信号源
进行以0.01s为采样周期进行等间隔采样,然后与信号W1(t)和W2(t)相加(这里W1(t)为离散正弦信号,幅度为2,频率为35.5HZ,而W2(t)是一个高斯白噪声信号作为干扰源,它的均值为0,变动范围在0.1内),这样相加之后,成为一个混合信号,使其通过一个IIR数字带通滤波器,用这个滤波器来滤除我们所需要的频段信号,是输出信号的频率在15到25HZ内。 Ⅰ.环节库及框图的建立
那么,最后就来建立信号传输仿真模块,按照3.2.1的数学模型我们要用到Simulink工具箱中的常用到的常量信号源,DSP离散正弦信号源,和高斯白噪声信号,模拟正弦信号,加法器,乘法器,积分器,零阶保持器以及示波器FDAtool等模块。
我们首先打开simulink工具箱,并且建立一个Model,在这个空白Model中进行环节库及框图的建立,在Simulink菜单下找到Source,双击Source图标,将正弦信号源和常量信号源拉到Model中, 然后在Signal Prosessing Blockset中分别找到DSP离散正弦信号源和噪声信号源拉到Model中,在Commonly Used Blocks中分别找到乘法器和加法器以及示波器,在countinuous中找到积分器,然后把需要用来设计IIR数字滤波器的模块FDATOOL都拉到Model中,把环节都布好后,把各环节的端口按框图连接起来。
Ⅱ.仿真环节参数设定 (1)基本环节参数设定
首先按照要求在几个信号模块源中设定其特性,尤其是需要说明的是,用于模拟信号采样的的零阶保持器中采样时间间隔需要设置为0.01s,因为模拟信号源0.05*(5+4*sin(20t))*cos(20t)最高频率达到40rad/s,由抽样定理可知乃奎斯特抽样频率必须要大于或等于其最高频率的两倍,才不会引起采样中出现信号混叠状况,保证了信号稳定传输。我们注意到,模型中需要两个示波器, Scope1用来显示抽样信号加了高斯噪声信号和DSP正弦离散信号后的混合信号的波形,而Scope2我们将其设计为一个双踪示波器,用来显示滤波后的信号波形,和我们需要的原始抽样信号波形。然后将其进行比较。
■IIR数字滤波器设计模块
在建立这个模型中,我们需要设计的IIR数字带通滤波器是一个10阶的椭圆滤波器,通频带为15-20HZ,我们不妨用FDATool这个工具包来实现它,图3.4为FDATool设计椭圆滤波器的界面,在FDATool界面中我们首先在Response Type中选择Band pass带通滤波器类型,因为elliptic椭圆滤波器具有等纹波的通频带、等纹波的抑止频带、狭窄带的过渡频特性,所以在Design Method中选择IIR elliptic椭圆滤波器的设计类型,在其右边的Filter Order 中选择滤波器的阶数为10阶,因为选择elliptic椭圆滤波器类型所以下面的Option就不必选择,然后确定Frequency Specifications,选择Fs采样频率为1000HZ, 为了得到我们需要所需要的信号频段,因此选择一个狭窄的通带范围从15HZ到25HZ,最后为了尽可能滤除理想的信号,在其右边的Magnitude Specifications中确定Apass通带最小衰减为0.5Db,和Astop阻带最大衰减为80dB,这样他的整个操作界面就如图3.1所示
图3.1 IIR数字滤波器的参数设定
本文再次用到FDATool界面设计IIR数字滤波器,说明它在设计过程中是很方便和快捷的。 (2)simulink仿真模块运行
下面我们就来检验一下其中IIR数字带通滤波器的滤波效果
图3.3和图3.4分别显示混合信号滤波前的波形和滤波后的波形以及开始被抽样得到的原始波形图 经过加噪后的混合信号滤波前的波形
图3.3
我们可以看到,在抽样信号经过两个不同频率的离散信号(DSP离散正弦信号和高斯噪声信号)干扰后的混合信号是一个夹杂多频率的信号,在现实中,我们总会遇到,我们所需要的有用信号在传输过程中不可避免的受到噪声干扰的状况,我们的目的就是得到我们所需要的原始信号,尽可能滤除干扰信号,图3.4就是滤波后信号与原始抽样信号的的波形图
混合信号滤波后的波形以及抽样后波形
图3.4 很明显最后滤波后仍然夹杂不同频率信号,这是因为,设计的IIR带通数字滤波器只能滤出一个频率段的信号,因此从15HZ到20HZ内的高斯噪声信号全都夹杂在里面,而原始抽样信号是一个频率单一的离散信号,不可避免会出现失真。但是不可否认的是,设计的IIR数字滤波器滤波效果依然明显,它有效地滤除了频带外的干扰信号。
通过以上实例,充分说明Simulink中各种非常有用的工具箱不仅对于设计IIR数字滤波器非常有用,而且对于整个信号仿真处理具有相当可视化的效果,它能让使用者从繁琐的底层编程中解放出来,把有限的时间更多的花在解决问题中,必然会提高工作效率。
综上所述,利用Matlab的信号处理工具及其simulink仿真工具包箱能够方便快捷地设计和实现各种滤波器,是信号波形更加直观,本文用FDATool工具箱,信号处理函数以及专门用于滤波器设计的工具界面fvtool与sptool来编写程序来设计IIR数字滤波器,充分利用了MATLAB的交互性好的特点,而且最后用到了simulink仿真工具箱来实现信号传输和滤波器的设计,将滤波器的设计置于一个新的平台,
这对于研究信号的传输和处理有着极其重要的作用。
正在阅读:
基于matlab的IIR数字滤波器设计(doc 19页)(正式版)01-02
关于描写夏天的散文随笔02-22
广东实验中学附属天河学校2013年初一新生入学检测01-09
班主任与教学工作计划08-09
最新整理疫情防控期间思想汇报09-07
老师入党申请书12-11
牙膏市场调研报告12-12
数据结构--线性表及其应用12-08
水的使命作文550字07-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 滤波器
- 正式版
- 基于
- 数字
- matlab
- 设计
- IIR
- doc
- 高效节能农用水泵电机产品生产线技术改造工程项目可行性研究报告
- 26.残疾人扶贫 - 图文
- 财务分析
- 5s管理演讲
- 实训08 木马和间谍常用工具 - 指导书
- 有哪些国家过圣诞节
- 无脊椎动物神经系统比较 - 图文
- 水利监理旁站细则
- 公输练习题1
- 八年级体育与健康教学计划
- 小学心理健康教育工作计划
- 学校2016年今冬明春火灾防控专项行动工作总结
- 脲醛树脂胶黏剂热分解特性研究 - 图文
- 北师大版小学数学教材二年级上册《数松果》教学案例
- 《答谢中书书》《与顾章书》比较阅读
- Equalization and Clock and Data Recovery Techniques for 10-Gbps CMOS Serial-Link Receivers - 图文
- 2014年稽查个人工作总结
- 水利水电勘测设计现行标准名录2011101 - 图文
- 数学实验报告
- 浅谈高校大学生品德教育