+ All Categories
Home > Documents > 第七章MATLAB在信号处理中 的应用 -...

第七章MATLAB在信号处理中 的应用 -...

Date post: 14-Jul-2020
Category:
Upload: others
View: 11 times
Download: 0 times
Share this document with a friend
122
武汉大学物理科学与技术学院微电子系 常胜 第七章 MATLAB在信号处理中 的应用
Transcript
Page 1: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

第七章 MATLAB在信号处理中的应用

Page 2: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.1 信号的表示7.1 连续时间信号的表示

1、锯齿波(三角波)信号x=sawtooth(a*2π*t,width)产生频率为a,幅值为1,峰值出现width处(0<=width<=1)的锯齿波(三角波)。

>>�Fs=10000;t=0:1/Fs:1;>>�x=sawtooth(2*pi*50*t,0.5);>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 3: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、方波信号x=square(a*2π*t,duty)产生频率为a,幅值为1,占空比为duty的方波信号。

>>�Fs=10000;t=0:1/Fs:0.1;>>�x=square(2*pi*50*t,70);>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 4: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、sinc波形x=sinc(t)t≠0时,sinc(t)=sin(πt)/πtt=0时,sinc(t)=1sinc的傅立叶变换是幅值为1的矩形脉冲

>>�x=linspace(-6,6);>>�y=sinc(x);>>�plot(x,y)

武汉大学物理科学与技术学院微电子系 常胜

Page 5: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

4、非周期方波信号x=rectpuls(t,w)产生宽度为[-W/2,W/2]的非周期方波。

>>�t=-1:0.001:1;>>�x=rectpuls(t,1.2);>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 6: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

5、非周期三角波信号x=tripuls(t,w,s)产生宽度为[-w/2,w/2],以s*w/2为顶点的非周期三角波。

>>�t=-2:0.001:2;>>�x=tripuls(t,2,0.6);>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 7: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

6、线性调频扫频信号x=chirp(t,f0,t1,f1,'method')产生一个频率随时间变化的线性调频扫频信号,起始时刻频率为f0,t1时刻频率为f1。

method:linear�线性调频quadratic�二次调频logarithmic�对数调频

>>�t=0:0.001:1;>>�x=chirp(t,0,1,2000,'logarithmic');>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 8: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7、冲击串信号x=pulsstran(t,d,'func')在时间t内对连续函数func,按平移量d平移产生冲击串信号。func必须为t的函数且可以句柄形式调用。

>>�t=0:1/1e3:1;>>�d=0:1/3:1;>>�x=pulstran(t,d,'tripuls',0.1,-1);>>�plot(t,x)

武汉大学物理科学与技术学院微电子系 常胜

Page 9: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

8、Dirichlet信号x=diric(x,n)产生x的dirichlet函数。

9、高斯正弦脉冲信号x=gauspuls(t,fc,bw,bwr)产生中心频率为fc(Hz)、带宽为bw的高斯正弦脉冲,bwr为带宽截止衰减。

10、高斯单脉冲信号x=gmonopuls(t,fc)产生中心频率为fc(Hz)的高斯单脉冲信号。

武汉大学物理科学与技术学院微电子系 常胜

Page 10: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

11、电压控制振荡器函数x=vco(x,fc,fs)产生一个采样频率为fs的振荡信号。x指定其振荡频率,fc为载波或参考频率。x=vco(x,[fmin�fmax],fs)产生一个采样频率为fs的振荡信号。x指定其振荡频率,x=-1时产生频率为fmin的振荡信号, x=1时产生频率为fmax的振荡信号。

武汉大学物理科学与技术学院微电子系 常胜

Page 11: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.1.2 离散时间信号的表示1、单位脉冲序列

function[x,n]=impseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)==0];��%利用逻辑判断实现n=N时信号为1

2、单位阶跃序列function[x,n]=stepseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)>=0];

武汉大学物理科学与技术学院微电子系 常胜

Page 12: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、实指数序列function�[x,n]=expseq(a,ns,nf)n=[ns:nf];x=a.^n;

4、复指数序列function�[x,n]=cexpseq(sigema,w,ns,nf)n=[ns,nf]x=exp((sigema+j*w)*n);���%n为横坐标变量

武汉大学物理科学与技术学院微电子系 常胜

Page 13: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

5、正(余)弦序列function[x,n]=cosseq(w,ns,nf,sita)n=[ns;nf];x=cos(w*n+sita);

6、门序列(矩形序列)function�[x,n]=squseq(ns,nf,N1,N2)n=[ns:nf];seq=[(n-N1>=0)&(n-N2<0)];

武汉大学物理科学与技术学院微电子系 常胜

Page 14: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7、单位斜升序列P159

8、sinc序列P159

9、随机信号P160

武汉大学物理科学与技术学院微电子系 常胜

Page 15: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.2 信号的基本运算1、信号的相加与相乘

信号的相加与相乘是指信号在对应时间的值的相加或相乘。在MATLAB实现中,先将两序列信号时间变量延拓到同长(延拓处信号值为0),再逐点完成加或乘的操作。

y(n)=x1(n)+x2(n)y(n)=x1(n)*x2(n)

ex7_1.m……y1=zeros(1,length(n));�%延拓初值赋0y1(find((n>=n1s)&(n<=n1f)==1))=x1;�%未延拓值赋回x1……

武汉大学物理科学与技术学院微电子系 常胜

Page 16: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 17: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、序列移位与周期延拓序列位移:y(n)=x(n-m)��位移m个时间单位y=x;ny=nx-m

周期延拓:y(n)=x((n))M�

延拓M个周期ny=nxs:nxf;y=x(mod(ny,M)+1)

ex7_2.m武汉大学物理科学与技术学院微电子系 常胜

Page 18: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 19: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 20: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 21: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.3 线性时不变系统(LTI,Linear Time Invariant)7.3.1 系统描述

当输入信号为连续时间信号x(t)时,该系统称为连续时间处理系统。y(t)=T[x(t)]当输入信号为离散时间信号x[n]时,该系统称为离散时间处理系统。y[n]=T[x[n]]当系统具有可加性和齐次性,则该系统为线性系统a1y1(t)+a2y2(t)=T[a1x1(t)+a2x2(t)]a1y1[n]+a2y2[n]=T[a1x1[n]+a2x2[n]]如系统响应与激励加于系统的时刻无关,则为时不变系统。y(t-t0)=T[x(t-t0)]������y[n-n0]=T[x[n-n0]]

武汉大学物理科学与技术学院微电子系 常胜

Page 22: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

线性时不变系统十分常见。描述此类系统的方法有常系数线性微分/差分方程、传递函数、状态方程形式。其中传递函数又可写为零极点增益形式、极点留数形式、二次分式。常系数线性微分/差分方程

其中a0~aN-1,�b0~bN-1为常数,N为系统阶数。

∑ ∑−

= =

=+1N

0i

M

0i

)i(i

)i(i

)N( )t(xb)t(ya)t(y

∑ ∑−

= =

−=−+1N

0i

M

0iii ]in[xb]in[ya]n[y

武汉大学物理科学与技术学院微电子系 常胜

Page 23: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

系统传递函数通过Laplace变换/Z变换可把连续/离散时间信号转换到频域。

将系统输出Laplace变换/Z变换与系统输入Laplace变换/Z变换之比定义为LTI系统的传递函数。在MATLAB中,传递函数用分子、分母两个多项式的系数来表示,且系数按降幂排列。如

表示为num=[1,0.2,1];den=[1,0.5,1]

∑∫+∞

−∞=

−∞+

∞−

− ==n

nst z]n[x)z(xdte)t(x)s(x

21

21

ZZ5.01ZZ2.01)z(H −−

−−

++++

=

武汉大学物理科学与技术学院微电子系 常胜

Page 24: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

A、零极点增益模型对传递函数进行因式分解,可将传递函数写成零极点增益模型。在MATLAB中,增益系数为k,零点向量为q,极点向量为p,均为列向量。

)ps()2ps)(1ps()qs()2qs)(1qs(k)s(H

N

M

−−−−−−

=

)pz()2pz)(1pz()qz()2qz)(1qz(k)z(H

N

M

−−−−−−

=

武汉大学物理科学与技术学院微电子系 常胜

Page 25: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

B、极点留数模型当零极点增益模型中极点均为单极点时,可将其分解为部分分式,得到极点留数模型。

N

N

2

21

psr

psr

1psr)s(H

−++

−+

−=

N

N

2

21

pzr

pzr

1pzr)z(H

−++

−+

−=

武汉大学物理科学与技术学院微电子系 常胜

Page 26: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

C、二次分式模型当LTI系统中的零极点包含复数时,其复数必定共轭。将共轭零极点多项式合并,得到二次分式模型。

∏= ++

++=

L

1k2

k2k1

2k2k1k0

sasa1sbsbbg)s(H

∏=

−−

−−

++++

=L

1k2

k21

k1

2k2

1k1k0

zaza1zbzbbg)z(H

武汉大学物理科学与技术学院微电子系 常胜

Page 27: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

状态空间模型设x为状态变量,u为输入,系统的状态方程可写为连续LTI系统:

离散LTI系统:

在MATLAB中向量A/B/C/D表示系统的状态空间模型。

DuCxyBuAxx +=+=′

]n[Du]n[Cx]n[y]n[Bu]n[Ax]1n[x +=+=+

武汉大学物理科学与技术学院微电子系 常胜

Page 28: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.3.2 系统模型的转换函数

latc2tf函数:由格型结构转换为传递函数形式residuez函数:有传递函数形式转换为部分分式形式sos2zp函数:由级联结构转换为零极点增益形式ss2sos函数:由状态空间形式转换为级联结构ss2tf函数:由状态空间形式转换为传递函数形式ss2zp函数:由状态空间形式转换为零极点增益形式

武汉大学物理科学与技术学院微电子系 常胜

Page 29: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

tf2latc函数:由传递函数形式转换为格型结构tf2sos函数:由传递函数形式转换为级联结构tf2ss函数:由传递函数形式转换为状态空间形式tf2zp函数:由连续的传递函数形式转换为零极点增益形式zp2sos函数:由零极点增益形式转换为级联结构zp2ss函数:由零极点增益形式转换为状态空间形式zp2tf函数:由零极点增益形式转换为传递函数形式

武汉大学物理科学与技术学院微电子系 常胜

Page 30: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

已知描述系统的微分方程为2y’’’+3y’’+5y’+9y=2u’’-5u’+3u求系统的传递函数模型、零极点增益模型、零极点留数模型和状态空间模型。

对方程进行Laplace变换,得到系统的传递函数num=[2,-5,3];den=[2,3,5,9];disp('系统传递函数H(s)');printsys(num,den,�'s');disp('转为零极点增益模型');[zl,pl,kl]=tf2zp(num,den)disp('转为零极点留数模型');[rl,pl,hl]=residue(num,den)disp('转为状态空间模型');[A,B,C,D]=tf2ss(num,den)

9532352)( 23

2

++++−

=sss

sssH

武汉大学物理科学与技术学院微电子系 常胜

Page 31: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.3.3 系统互联与系统结构系统的互联结构可分为级联型、并联型和反馈型。级联型系统系统1的输出是系统2的输入,两系统形成级联结构,传递函数为H=H1H2。

系统的级联函数series[num,den]=series(num1,den1,num2,den2)

)(2)(1)(2)(1)()(

)()()( 21 sdensden

snumsnumsHsHsdensnumsH ===

武汉大学物理科学与技术学院微电子系 常胜

Page 32: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

并联型系统系统1和系统2具有相同的输入,输出是两系统输出的和,传递函数为H=H1+H2。

系统的并联函数parallel[num,den]=parallel(num1,den1,num2,den2)

)(2)(1)(1)(2)(2)(1)()(

)()()( 21 sdensden

sdensnumsdensnumsHsHsdensnumsH +

=+==

武汉大学物理科学与技术学院微电子系 常胜

Page 33: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

反馈型系统系统1的输出是系统2的输入,系统1的输入是外加激励和系统2的输出的和。

系统的反馈连接函数feedback[num,den]=feedback(num1,den1,num2,den2,sign)sign=1表示正反馈,sign=-1表示负反馈

)(2)(1)(2)(1)(2)(1

)()(1)(

)()()(

21

1

snumsnumsdensdensdensnum

sHsHsH

sdensnumsH

±=

±==

武汉大学物理科学与技术学院微电子系 常胜

Page 34: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

求H1=1/(s+1)和H2=2/(s+2)的级联、并联和反馈互联系统的传递函数。

num1=1;den1=[1,1];num2=2;den2=[1,2];[nums,dens]=series(num1,den1,num2,den2)[nump,denp]=parallel(num1,den1,num2,den2)[numf,denf]=feedback(num1,den1,num2,den2)

>>�nums�=��0���0���2���dens�=1�����3�����2>>�nump�=��0���3���4���denp�=1�����3�����2>> nums�=��0���1���2���dens�=1�����3�����4

武汉大学物理科学与技术学院微电子系 常胜

Page 35: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.4 线性时不变系统的响应7.4.1 LTI系统的单位冲激响应1、连续LTI系统的单位冲激响应函数impulse[Y,T]=impulse(sys,tfinal)

sys为系统的传递函数、零极点增益模型或状态空间模型,tfinal为系统响应截止时间。[Y,T]为返回的系统响应和时间相量;若无,则直接绘出单位冲激响应曲线。

求二阶系统的单位冲激响应

uxx

xx

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ −−=⎥

⎤⎢⎣

⎡01

21

078.078.055.0

'2

'1 [ ] [ ]u

xx

y 021

45.696.1 +⎥⎦

⎤⎢⎣

⎡=

武汉大学物理科学与技术学院微电子系 常胜

Page 36: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

a=[-0.55,-0.78;0.78,0];�b=[1;0];c=[1.96,6.45];�d=[0];impulse(a,b,c,d);�title('LTI系统的冲激响应')

武汉大学物理科学与技术学院微电子系 常胜

Page 37: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、离散系统的单位冲激响应函数dimpulse[y,x]=dimpulse(a,b,c,d)�%状态方程形式[y,x]=dimpulse(num,den)�%传递函数形式

[y,x]为返回的单位冲激响应和时间记录相量;若无,则直接绘出冲激响应波形图。

求二阶系统的单位冲激响应

3.07.15.15.32)( 2

2

+−+−

=zzzzzH

武汉大学物理科学与技术学院微电子系 常胜

Page 38: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

num=[2,-3.5,1.5];den=[1,-1.7,0.3];dimpulse(num,den);�title('离散LTI系统的冲激响应')

武汉大学物理科学与技术学院微电子系 常胜

Page 39: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.4.2 线性时不变系统的时域响应函数如一个系统为线性时不变(LTI)系统,则可由系统的单位冲激响应来表征。

1、连续LTI系统的响应对连续系统,其对任意输入x(t)的响应为y(t)=T[x(t)],则

y(t)为x(t)与系统单位冲激响应的卷积积分。

τττ dthxthtxtxTty )()()()()]([)( −=∗== ∫+∞

∞−

武汉大学物理科学与技术学院微电子系 常胜

Page 40: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

dt=input('输入时间间隔dt=')x=ones(1,fix(10/dt));h=exp(-0.1*[0:fix(10/dt)]*dt);��%系统单位冲激响应,持续时间同x(t)y=conv(x,h);�%�卷积函数t=dt*([1:length(y)]-1);plot(t,y),grid

武汉大学物理科学与技术学院微电子系 常胜

Page 41: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、离散LTI系统的响应对离散系统,其对任意输入x[t]的响应为y[t]=T[x[t]],则y[t]为x[t]与系统单位冲激响应的卷积积分。

已知离散LTI系统单位冲激响应为h[n]=0.5^n,求对输入信号序列x[n]=1�(-5<=n<=4)的系统响应。

nx=[-5:4];x=ones(1,10);��%信号x[n]及其时间序列nh=[0:14];h=0.5.^nh;�%单位冲激响应h[n]及其时间序列y=conv(x,h);n0=nx(1)+nh(1);�%卷积序列y起始时间位置N=length(nx)+length(nh)-2;�%卷积序列y序列长度ny=n0:(n0+N);�%�卷积序列y时间向量

武汉大学物理科学与技术学院微电子系 常胜

Page 42: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

subplot(2,2,1);stem(nx,x);title('x[n]');xlabel('n');ylabel('x[k]');subplot(2,2,2);stem(nh,h);title('h[n]');xlabel('n');ylabel('h[n]');subplot(2,2,3);stem(ny,y);title('卷积和y[n]');xlabel('n');ylabel('y[n]');h=get(gca,�'position');h(3)=2.5*h(3);set(gca,�'position',h)��%将第叁个子图横坐标扩大到2.5倍

武汉大学物理科学与技术学院微电子系 常胜

Page 43: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、时域响应函数除了使用卷积函数conv求解LTI系统响应外,在已知系统传递函数或状态方程时,可用以下时域响应函数求解系统时域响应。

A、连续LTI系统响应函数lsim[y,x]=lsim(a,b,c,d,u,t)�%状态方程形式[y,x]=lsim(num,den,u,t)�%传递函数形式u为输入信号,t为时间向量对二阶系统

求当输入是周期为4s的方波时的输出响应。

9532352)( 23

2

++++−

=sss

sssH

武汉大学物理科学与技术学院微电子系 常胜

Page 44: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

num=[2,-5,3];den=[2,3,5,9];t=0:0.1:10;peiod=4;u=(rem(t,peiod)>=peiod/2);�%生成方波u=double(u);��%将logical型变量转换成double型变量lsim(num,den,u,t);�%�lsim不带输出向量时直接得到输出响应曲线title('方波响应');��%�lsim带输出向量时得到输出响应数据

武汉大学物理科学与技术学院微电子系 常胜

Page 45: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

B、离散LTI系统响应函数dlsim[y,x]=dlsim(a,b,c,d,u)�%状态方程形式[y,x]=dlsim(num,den,u)�%工作空间形式

num=[2,-3.4,1.5];den=[1,-1.2,0.8];u=randn(1,100);dlsim(num,den,u);title('随机噪声响应')

8.02.15.14.32)( 2

2

+−+−

=zzzzzH

武汉大学物理科学与技术学院微电子系 常胜

Page 46: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.4.3 时域响应的其他函数1、连续LTI系统的零输入响应函数initial[y,t,x]=initial(a,b,c,d,x0,t0)计算连续时间LTI系统由初始状态x0所引起的零输入响应y。

其中t0为仿真时间相量,x为状态记录。

2、离散LTI系统的零输入响应函数dinitial[y,x,n]=dinitial(a,b,c,d,x0,n0)计算离散时间LTI系统由初始状态x0所引起的零输入响应y。

其中n0为仿真采样点数,x为状态记录。

武汉大学物理科学与技术学院微电子系 常胜

Page 47: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、连续LTI系统的单位阶跃响应函数step[y,t]=step(sys)

返回系统的单位阶跃响应y和仿真时间向量t。其中sys可为系统传递函数(tf)、零极点增益模型(zpk)、状态空间模型(ss)。

4、离散LTI系统的单位阶跃响应函数dstep[y,x]=dstep(sys)

返回系统的单位阶跃响应y和采样时间向量x。其中sys可为系统传递函数(tf)、状态空间模型(ss)。

武汉大学物理科学与技术学院微电子系 常胜

Page 48: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.4.4 频率响应函数1、模拟滤波器Ha(s)的频率响应函数freqsH=freqs(B,A,W)

计算由向量W(rad/s)指定的频率点上的模拟滤波器系统函数Ha(s)的频率响应Ha(jΩ),结果存于向量H中,B、A分别为Ha(s)的分子和分母。

求以下模拟滤波器的频率响应。

16131.24142.36131.21)( 234 ++++

=ssss

sH

武汉大学物理科学与技术学院微电子系 常胜

Page 49: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

B=1;A=[1�2.6131�3.4142�2.6131�1];W=0:0.1:2*pi*5;freqs(B,A,W)

武汉大学物理科学与技术学院微电子系 常胜

Page 50: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、数字滤波器H�(z)的频率响应函数freqzH=freqz(B,A,W)

计算由向量W(rad)指定的频率点上的数字滤波器系统函数H�(z)的频率响应结果存于向量H中,B、A分别为H(z)的分子和分母。

H=freqz(B,A,F,Fs)计算指定频率向量F(Hz)和抽样频率Fs(Hz)的频率响应。

求以下模拟滤波器的频率响应。81)( −−= ZzH

11

11

)()2()1()()2()1(

)()()( −−−

−−−

++++++

== N

M

zNazaazMbzbb

zAzBzH

武汉大学物理科学与技术学院微电子系 常胜

Page 51: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

B=[1�0�0�0�0�0�0�0�-1];�A=1;�freqz(B,A)

武汉大学物理科学与技术学院微电子系 常胜

Page 52: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、滤波函数filterLTI系统对输入信号的响应实质上就是对输入信号的频谱进行选择处理,这个过程称为滤波。

y=filter(B,A,x)对输入向量x中的数据进行滤波处理,B和A分别为数字滤波系统函数H(z)的分子和分母,要求a(1)=1,否则需归一化。

设系统差分方程为y(n)-0.8y(n-1)=x(n),求该系统对信号x(n)=0.8^n�R32(n)的响应。

武汉大学物理科学与技术学院微电子系 常胜

Page 53: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

B=1;A=[1,-0.8];n=0:31;�x=0.8.^n;y=filter(B,A,x);subplot(2,1,1);stem(n,x);subplot(2,1,2);stem(n,y);

武汉大学物理科学与技术学院微电子系 常胜

Page 54: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.5 傅立叶变换傅立叶变换即建立以时间为自变量的“信号”和以频率为自变量的“频谱函数”之间的某种变换关系。当自变量“时间”或“频率”取连续值或离散值时,就形成了几种不同形式的傅立叶变换。

时域信号特性 频谱特性 变换名称非周期连续信号 连续频谱 傅立叶变换周期性连续信号 离散频谱 傅立叶级数

非周期离散信号 连续频谱 序列傅立叶变换

周期性离散信号 周期性离散频谱 离散傅立叶级数

离散信号(有限样本点) 周期性离散频谱 离散傅立叶变换

武汉大学物理科学与技术学院微电子系 常胜

Page 55: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.5.1�连续时间、连续频率-傅立叶变换连续时间非周期信号x(t)的傅立叶变换关系,得到的是连续的非周期频谱密度函数X(jΩ)。正变换:

逆变换:

在MATLAB中,用求和替代积分

∫∞

∞−

Ω−=Ω dtetxjX tj)()(

∫∞

∞−

Ω ΩΩ= dejXtx tj)(21)(π

∑=

Ω− Δ=ΩN

i

tji tetxjX i

1)()(

武汉大学物理科学与技术学院微电子系 常胜

Page 56: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

分析矩形脉冲信号f(t)��(t<=5�f(t)=1��t>5�f(t)=0)在Ω=-40~40�rad/s区间内的频谱。tf=10;N=input('取时间分隔的点数N=');dt=10/N;t=[1:N]*dt;������������������������������������%确定采样周期f=[ones(1,N/2),zeros(1,N/2)];wf=input('需求的频谱宽度wf=�');Nf=input(‘需求的频谱点数Nf=�’);�������������������%确定频域点数w1=linspace(0,wf,Nf);dw=wf/(Nf-1);F1=f*exp(-j*t‘*w1)*dt;���������������������������������%计算傅立叶变换w=[-fliplr(w1),w1(2:Nf)];�������������������������������%矩阵左右翻转F=[fliplr(F1),F1(2:Nf)];����������������������������������%补负频率频谱subplot(1,2,1);plot(t,f,'linewidth',1.5);grid�on;set(gcf,�'color',�'w');axis([0,10,0,1.1]);subplot(1,2,2);�plot(w,abs(F),'linewidth',1.5);grid�on;

武汉大学物理科学与技术学院微电子系 常胜

Page 57: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

N=256,Wf=40,Nf=64��������������������N=64,Wf=40,Nf=256�采样频率256/10����������������������������采样频率64/10

频率泄漏

武汉大学物理科学与技术学院微电子系 常胜

Page 58: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.5.2�连续时间、离散频率-傅立叶级数连续时间周期信号x(t)的傅立叶变换关系,得到的是离散频率非周期函数X(jkΩ0)。正变换:

逆变换:

Ω0=2π/T0为离散频率相邻两谱线间的角频率间隔,k为谐波序号。

∫−

Ω−=Ω2/

2/00

0

0

0)(1)(T

T

tjk dtetxT

jkX

∑∞

−∞=

ΩΩ=k

tjkejkXtx 0)()( 0

2/0T

武汉大学物理科学与技术学院微电子系 常胜

Page 59: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.5.3�离散时间、连续频率-序列傅立叶变换非周期离散信号x(n)的傅立叶变换关系,得到的是连续频域函数X(e^jω)。正变换:

逆变换:

ω为数字频率,与模拟角频率Ω的关系为ω=�ΩT�

∫−

π

ϖϖ ϖπ

deeXnx njj )(21)(

∑∞

−∞=

−=n

njj enxeX ϖϖ )()(

2/0T

武汉大学物理科学与技术学院微电子系 常胜

Page 60: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.5.4�离散时间、离散频率-离散傅立叶级数周期为N的周期性离散信号x(n)的傅立叶变换关系,得到的是离散傅立叶级数的N个对立谐波分量。正变换:

逆变换:

其中

∑−

=

− −===1

01,2,1,0)(~1)](~[)(~ N

K

nkN NnWkX

NkXIDFSnx

∑−

=

−===1

01,2,1,0)(~)](~[)(~ N

n

nkN NkWnxnxDFSkX

nkN

jnkN eW

π2−

=

武汉大学物理科学与技术学院微电子系 常胜

Page 61: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.5.5�离散时间、离散频率-离散傅立叶变换(DFT)长度为N的有限长非周期性离散信号x(n),其频谱可通过离散傅立叶变换得到。正变换:

逆变换:

MATLAB提供了fft、ifft、fft2、ifft2、fftn、ifftn等函数,信号处理工具箱中还提供了线性调频Z变换czt,正逆离散余弦变换dct/idct,零频分量转移fftshift等函数。

∑−

=

− −===1

01,2,1,0)(1)]([)(

N

K

nkN NnWkX

NkXIDFSnx

∑−

=

−===1

01,2,1,0)()]([)(

N

n

nkN NkWnxnxDFSkX

武汉大学物理科学与技术学院微电子系 常胜

Page 62: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

1、一维快速傅立叶变换函数fftX=fft(x,N)采用FFT计算序列向量x的N点DFT变换。N默认为x的长度,N为2的整次幂时,fft使用基2算法计算,否则使用混合算法。

2、一维快速逆傅立叶变换函数ifftx=ifft(X,N)采用FFT算法计算序列向量X的N点IDFT变换。

3、二维快速傅立叶变换函数fft2X=fft2(x)计算矩阵x的二维DFT变换。

4、二维快速逆傅立叶变换函数ifft2x=ifft2(X)计算矩阵X的二维IDFT变换。

武汉大学物理科学与技术学院微电子系 常胜

Page 63: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

5、线性调频z变换函数czty=czt(x,m,s)计算由z=a*w.^(-(0:m-1))定义的Z平面螺线上各点的Z变换。其中,a规定起点,w规定相邻点的比例,m规定变换长度。

6、正/逆离散余弦变换函数dct/idcty=dct(x,N)完成离散余弦变换,N默认为x的长度。

逆离散余弦变换函数的格式和dct相仿。

∑=

−=⎭⎬⎫

⎩⎨⎧

⎥⎦⎤

⎢⎣⎡ +==

N

nNknk

nnxnxDCTky

11,2,1,0)12(

2cos)(2)]([)( π

武汉大学物理科学与技术学院微电子系 常胜

Page 64: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7、将零频分量移至频谱中心的函数fftshiftY=fftshift(X)重新排列X=fft(x)的输出。X一维时,将X左右两半交换,从而将零频分量移至频谱中心;X二维时,将X上下和左右进行交换。

8、基于FFT重叠相加法FIR滤波器的实现函数fftfilty=fftfilt(b,x)采用重叠相加法FFT实现对信号向量x快速滤波,得到输出序列向量y。向量b为FIR滤波器的单位脉冲响应序列。

武汉大学物理科学与技术学院微电子系 常胜

Page 65: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

使用FFT计算下面两个序列的卷积。

x(n)=sin(0.4n)�RN(n),�h(n)=0.9^n�RM(n)

圆周卷积:利用DFT将时域卷积转换为频域相乘,然后再进行IDFT得到时域卷积。需FFT的变换长度L>=N+M-1,输出的y(n)才等于x(n)和h(n)的线性卷积。

L点FFT

L点FFT

L点IFFT×

x(n)

h(n)

X(k)

H(k)

Y(k)=X(k)H(k)

y(n)

武汉大学物理科学与技术学院微电子系 常胜

Page 66: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

xn=sin(0.4*[1:15]);�hn=0.9.^(1:20);��%得到xn和hn,N=20,M=15yn=conv(xn,hn);������������������������������%�直接卷积M=length(xn);�N=length(hn);�nx=1:M;�nh=1:N;%圆周卷积条件,L>=M+M-1L=pow2(nextpow2(M+N-1));�%�L取2的正次幂,方便计算Xk=fft(xn,L);�Hk=fft(hn,L);�Yk=Xk.*Hk;�%�频域相乘yn=ifft(Yk,L);�������������������������������������%�还原到时域,得到卷积结果subplot(2,2,1);stem(nx,xn,'.');ylabel('x(n)');��%�绘图subplot(2,2,2);stem(nh,hn,'.');ylabel('h(n)');ny=1:L;subplot(2,1,2);�stem(ny,real(yn),'.');ylabel('y(n)');

武汉大学物理科学与技术学院微电子系 常胜

Page 67: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 68: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

§7.6 数字滤波器在MATLAB中的设计数字滤波器概述

顾名思义:其作用是对输入信号起到滤波的作用;即DF是由差分方程描述的一类特殊的离散时间系统。它的功能:把输入序列通过一定的运算变换成输出序列。不同的运算处理方法决定了滤波器的实现结构的不同。

武汉大学物理科学与技术学院微电子系 常胜

Page 69: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.1 数字滤波器的工作原理

则:

是其付氏变换。是系统的输出,

是其付氏变换。是系统的输入,设

)()()()(

jw

jw

eYnyeXnx

作原理。这就是数字滤波器的工

符合我们的要求,使滤波器输出选取

表示)后变成其系统性能用

经过滤波器看出:输入序列的频谱

)()(),()()()((

)(

)]()([)()()( 1

jwjwjw

jwjwjw

jw

jwjw

m

eHeXeHeHeXeH

eX

eHeXFmxmnhny −∞

−∞=

=−= ∑

武汉大学物理科学与技术学院微电子系 常胜

Page 70: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.2 数字滤波器表示方法数字滤波器有两种表示方法:方框图表示法;流图表示法.数字滤波器中,信号只有延时,乘以常数和相加三种运算。所以DF结构中有三个基本运算单元:加法器,单位延时,乘常数的乘法器。

武汉大学物理科学与技术学院微电子系 常胜

Page 71: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.3 数字滤波器的分类滤波器的种类很多,分类方法也不同。

1.从功能上分;低、带、高、带阻。2.从实现方法上分:FIR(有限长单位冲激响应滤波器)、

IIR(无限长单位冲激响应滤波器)3.从设计方法上来分:Chebyshev(切比雪

夫),Butterworth(巴特沃斯)4.从处理信号分:经典滤波器、现代滤波器等等。

武汉大学物理科学与技术学院微电子系 常胜

Page 72: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

1、经典滤波器假定输入信号x(n)中的有用成分和希望去除的成分,各自占有不同的频带。当x(n)经过一个线性系统(即滤波器)后即可将欲去除的成分有效地去除。但如果信号和噪声的频谱相互重叠,那么经典滤波器将无能为力。

经典滤波器从功能上分又可分为:低通滤波器(LPAF/LPDF):Low�pass�analog�filter带通滤波器(BPAF/BPDF):Bandpass�analog�filter高通滤波器(HPAF/HPDF):High�pass�analog�filter带阻滤波器(BSAF/BSDF):Bandstop�analog�filter

它们每一种又可分为:数字(Digital)和模拟(Analog)滤波器。

武汉大学物理科学与技术学院微电子系 常胜

Page 73: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2.�现代滤波器它主要研究内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。一旦信号被估计出,那么估计出的信号将比原信号会有高的信噪比。现代滤波器把信号和噪声都视为随机信号,利用它们的统计特征(如自相关函数、功率谱等)导出一套 佳估值算法,然后用硬件或软件予以实现。现代滤波器理论源于维纳在40年代及其以后的工作,这

一类滤波器的代表为:维纳滤波器,此外,还有卡尔曼滤波器、线性预测器、自适应滤波器。

武汉大学物理科学与技术学院微电子系 常胜

Page 74: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.4 MATLAB相关函数Signal�Proce4ssing�Toolbox提供了用于实现不同滤波器结构间转换的程序:latc2tf函数:由格型结构转换为传递函数形式residuez函数:有传递函数形式转换为部分分式形式sos2zp函数:由级联结构转换为零极点增益形式ss2sos函数:由状态空间形式转换为级联结构ss2tf函数:由状态空间形式转换为传递函数形式ss2zp函数:由状态空间形式转换为零极点增益形式

武汉大学物理科学与技术学院微电子系 常胜

Page 75: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

tf2latc函数:由传递函数形式转换为格型结构tf2sos函数:由传递函数形式转换为级联结构tf2ss函数:由传递函数形式转换为状态空间形式tf2zp函数:由连续的传递函数形式转换为零极点增益形式tf2zpk函数:由离散连续的传递函数形式转换为零极点增益形式zp2sos函数:由零极点增益形式转换为级联结构zp2ss函数:由零极点增益形式转换为状态空间形式zp2tf函数:由零极点增益形式转换为传递函数形式

武汉大学物理科学与技术学院微电子系 常胜

Page 76: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.5 IIR滤波器设计流程IIR滤波器设计:(设计简单、阶数较少;相位非线性)1、IIR滤波器阶数的确定

根据设计要求确定所需设计的模拟滤波器原型的阶数。阶数越高,滤波器性能越好,但实现越不经济。确定滤波器阶数所需的参数有:Wp��通带结束频率 Ws��阻带开始频率Rp���通带 大衰减 Rs���阻带 小衰减参数’S’�若无,则是对数字滤波器设计,频率为归一化数字频率。

武汉大学物理科学与技术学院微电子系 常胜

Page 77: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

[n,Wn]=buttord(Wp,Ws,Rp,Rs,’s’)对butterworth模拟低通滤波器求阶数,Wn为求得3dB截止频率[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,’s’)对chebyshevⅠ型模拟低通滤波器求阶数,Wn为求得3dB截止频率[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs,’s’)对chebyshevⅡ型模拟低通滤波器求阶数,Wn为求得3dB截止频率[n,Wn]=ellipord(Wp,Ws,Rp,Rs,’s’)对椭圆模拟低通滤波器求阶数,Wn为求得3dB截止频率

武汉大学物理科学与技术学院微电子系 常胜

Page 78: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、模拟滤波器原型设计⑴ Butterworth模拟低通滤波器(“ 平”幅频响应滤波器)

幅频响应曲线随频率升高单调下降,在通带内 平坦,它的幅平方响应函数为

Ω为模拟角频率,Ωp为通带截止频率[z,p,k]=buttap(n)n为模拟滤波器的阶数,z,p,k分别是设计出的滤波器的零

点、极点和增益。此函数以零极点增益形式表示归一化的传递函数。设计出的模拟低通滤波器原型截至频率总是1rad/s。

N2

P

2

1

1|)jQ(H|

⎟⎟⎠

⎞⎜⎜⎝

⎛ΩΩ

+

=

武汉大学物理科学与技术学院微电子系 常胜

Page 79: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(2)ChebyshevⅠ型模拟低通滤波器频幅响应曲线在通带中等纹波,阻带中单调,它的

幅平方响应函数为

Ω为模拟角频率,Ωp为通带截止频率,ε为纹波参数,CN为Chebyshev多项式。[z,p,k]=cheb1ap(n,Rp)n为模拟滤波器的阶数,Rp为指定通带内 大衰减

z,p,k分别是设计出的滤波器的零点、极点和增益。此函数以零极点增益形式表示归一化的传递函数。

⎟⎟⎠

⎞⎜⎜⎝

⎛ΩΩ

ε+=

P

2N

2

2

C1

1|)jQ(H|

武汉大学物理科学与技术学院微电子系 常胜

Page 80: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(3)ChebyshevⅡ型模拟低通滤波器频幅响应曲线在阻带中等纹波,通带中单调,它的

幅平方响应函数为

Ω为模拟角频率,Ωp为通带截止频率, ε为纹波参数,CN为Chebyshev多项式。[z,p,k]=cheb2ap(n,Rs)n为模拟滤波器的阶数,Rs为指定通带内 小衰减

z,p,k分别是设计出的滤波器的零点、极点和增益。此函数以零极点增益形式表示归一化的传递函数。

1

P

2N

2

2

]C[1

1|)jQ(H|−

⎟⎟⎠

⎞⎜⎜⎝

⎛ΩΩ

ε+=

武汉大学物理科学与技术学院微电子系 常胜

Page 81: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(4)椭圆滤波器频幅相应曲线在通带和阻带中均是等纹波的,

且具有 窄的过渡带。其幅平方响应函数为

其中UN(x)为N阶雅可比椭圆函数[z,p,k]=ellipap(n,Rp,Rs)n为模拟滤波器的阶数,Rp为指定通带内 大

衰减,Rs为阻带内 小衰减,z,p,k分别是设计出的滤波器的零点、极点和增益。此函数以零极点增益形式表示归一化的传递函数。

2

PN

2

2

U1

1|)jQ(H|

⎟⎟⎠

⎞⎜⎜⎝

⎛ΩΩ

ε+

=

武汉大学物理科学与技术学院微电子系 常胜

Page 82: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

滤波器的特点:就幅平方响应而言,椭圆滤波器一般是 优的,在考虑相位响应时,butterworth滤波器在通带上往往有相当的线性。

武汉大学物理科学与技术学院微电子系 常胜

Page 83: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

3、频率变换将得到的模拟滤波器原型在S平面上进行原型变换,得到相应的符合设计要求的模拟低通/高通/带通/带阻滤波器。lp2lp:从滤波器原型到低通模拟滤波器的转换函数;

[bt,at]=lp2lp(b,a,Wo)Wo为指定截止频率,b和a为原滤波器原型的传递函数

的分子系数和分母系数,bt和at为所需低通滤波器的传递函数的分子系数和分母系数。[At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wo)Wo为指定截止频率,A,B,C,D为原滤波器原型的状态空

间参数,At,Bt,Ct,Dt为所需低通滤波器的状态空间参数。

武汉大学物理科学与技术学院微电子系 常胜

Page 84: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

lp2hp:从滤波器原型到高通模拟滤波器的转换函数;[bt,at]=lp2hp(b,a,Wo)[At,Bt,Ct,Dt]=lp2hp(A,B,C,Wo)各参数含义同lp2lp。

lp2bp:从滤波器原型到带通模拟滤波器的转换函数;[bt,at]=lp2bp(b,a,Wo,Bw)[At,Bt,Ct,Dt]=lp2bp(A,B,C,Wo,Bw)Wo为指定通带的中心频率,Bw为指定带宽,其余参数

含义同lp2lp。lp2bs:从滤波器原型到带阻模拟滤波器的转换函数;

[bt,at]=lp2bs(b,a,Wo,Bw)[At,Bt,Ct,Dt]=lp2bs(A,B,C,Wo,Bw)Wo为指定阻带的中心频率,Bw为指定带宽,其余参数

含义同lp2lp。

武汉大学物理科学与技术学院微电子系 常胜

Page 85: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

4、从模拟滤波器变换到数字滤波器从模拟滤波器的传递函数H(s)得到数字滤波器的传递函

数H(z),即作从s平面到z平面的映射变换。常使用以下两种方法:

(1)冲激响应不变法此法的思想是使数字滤波器的冲激响应等于相应的模拟滤波器的冲激响应的采样值,即h(n)=ha(nT)。该映射是多对一的关系,会造成频谱上的交叠。因此,此方法适用于有限带宽的低通或带通滤波器,且要求在阻带中不存在振荡。

[bz,az]=impinvar(b,a,fs)b和a为模拟滤波器传递函数的分子和分母系数;fs为采样频率,缺省为1Hz;bz和az为设计出的数字滤波器传递函数的分子和分母系数。

武汉大学物理科学与技术学院微电子系 常胜

Page 86: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(2)双线性变换法双线性变换法是一个一对一的映射,不存在冲激响应不变法的频谱混叠的问题。但双线性变换法的缺点是数字频率ω与模拟频率Ω之间的关系非线性,而是

[zd,pd,kd]=bilinear(z,p,k,fs)[bd,ad]=bilinear(b,a,fs)[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,fs)

双线性变换法可用上述零极点模型(零点z,极点p,增益k)、传递函数模型(分子系数b,分母系数a)或状态空间模型表示。此方法需对边界频率指标进行预畸变校正。

)2

tan(T2 ω

武汉大学物理科学与技术学院微电子系 常胜

Page 87: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

IIR滤波器设计步骤小结1、由ω=ΩT将所需设计数字滤波器频率指标ωk转换为相

应模拟滤波器频率指标Ωk;2、确定模拟滤波器类型并求其设计阶数;

buttord�cheb1ord�cheb2ord�elliord3、设计模拟低通滤波器原型;

buttap�cheb1ap�cheb2ap�ellipap�besselap4、s域上频率转换得低通/高通/带通/带阻模拟滤波器。

lp2lp�lp2hp�lp2bp�lp2bs5、使用冲激不变法或双线性变换法完成s域到z域的映射,

得到数字滤波器的设计。impinvar�bilinear

武汉大学物理科学与技术学院微电子系 常胜

Page 88: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

IIR滤波器设计实例分别设计模拟和数字低通Butterworth滤波器 ex7_6.m

要求: 通带截止频率fp=5000Hz���带内 大衰减Rp=3dB阻带截止频率fs=10000Hz��带内 小衰减Rs=30dB

(1)模拟低通Butterworth滤波器设计clear;close�all;Wp=5000*2*pi;����������������������%通带截止频率Ws=10000*2*pi;���������������������%阻带开始频率Rp=3;������������������������������%通带 大衰减Rs=30;�����������������������������%阻带 小衰减

武汉大学物理科学与技术学院微电子系 常胜

Page 89: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s')����%低通滤波器阶数和截止频率

[z,p,k]=buttap(n);�����������������%设计低通滤波器原型[b0,a0]=zp2tf(z,p,k);�������������%使用传输函数形式表示[b,a]=lp2lp(b0,a0,Wn);����������%转换为所需的低通滤波器[h,w]=freqs(b,a);����������%由传输函数得到模拟频率w和增

益hplot(w/(2*pi),20*log10(abs(h)));grid�on;xlabel('频率 (Hz)');ylabel('幅频响应 (dB)');xlim([0,12000]);�����������������%指定x轴坐标范围ylin([-40,5]);���������������������%指定y轴坐标范围

武汉大学物理科学与技术学院微电子系 常胜

Page 90: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 91: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(2)数字低通Butterworth滤波器设计(冲激响应法)clear;close�all;Wp=5000*2*pi;����������������������%通带截止频率Ws=10000*2*pi;���������������������%阻带开始频率Fs=40000;Rp=3;������������������������������%通带 大衰减Rs=30;�����������������������������%阻带 小衰减[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s')����%低通滤波器阶数和

截止频率[z,p,k]=buttap(n);�����������������%设计低通滤波器原型[b0,a0]=zp2tf(z,p,k);��������������%使用传输函数形式表示[b,a]=lp2lp(b0,a0,Wn);����������%转换为所需的低通滤波器[bz,az]=impinvar(b,a,Fs);freqz(bz,az);�

武汉大学物理科学与技术学院微电子系 常胜

Page 92: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 93: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(3)数字低通Butterworth滤波器设计(双线性变换法)clear;close�all;Wp=2*Fs*tan(5000*pi/Fs);��������%预畸变校正,ω=f`(Ω)Ws=2*Fs*tan(10000*pi/Fs);�������%预畸变校正,�Ω�=f(ω)Rp=3;������������������������������%通带 大衰减Rs=30;�����������������������������%阻带 小衰减[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s')����%低通滤波器阶数和截

止频率[z,p,k]=buttap(n);�����������������%设计低通滤波器原型[b0,a0]=zp2tf(z,p,k);��������������%使用传输函数形式表示[b,a]=lp2lp(b0,a0,Wn);�������������%转换为所需的低通滤波器[bz,az]=bilinear(b,a,Fs);freqz(bz,az);�

武汉大学物理科学与技术学院微电子系 常胜

Page 94: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 95: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

设计ChebyshevⅠ型带通滤波器 ex7_7.m要求:通带范围300Hz~400Hz�带内 大衰减Rp=3dB

阻带范围<200Hz&>500Hz�带内 小衰减Rs=18dB

采样频率Fs=2000Hzclear;close�all;Fs=2000;Wp(1)=300*2*pi;Wp(2)=400*2*pi;Ws(1)=200*2*pi;Ws(2)=500*2*pi;

武汉大学物理科学与技术学院微电子系 常胜

Page 96: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

Rp=3;Rs=18;[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');Wo=sqrt(Wn(1)*Wn(2));�����������%求带通滤波器中心频率[z,p,k]=cheb1ap(n,Rp);[b0,a0]=zp2tf(z,p,k);[b,a]=lp2bp(b0,a0,Wo,�Wn(2)-Wn(1));�%带通滤波器带宽[bz,az]=impinvar(b,a,Fs);freqz(bz,az)

武汉大学物理科学与技术学院微电子系 常胜

Page 97: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 98: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

IIR滤波器完全设计使用Signal�Processing�Toolbox中的IIR数字滤波器设计函数,可以来完成上述IIR滤波器的设计,这些函数包括:

(1)�Butterworth滤波器设计[b,a]=butter(n,Wn,’ftype’)[b,a]=butter(n,Wn,’s’)[b,a]=butter(……)

Wn为标量,低通/高通滤波器,Wn为二元素数组[w1�w2],带通/带阻滤波器;‘ftype’若未指定,则是低通/带通滤波器,‘ftype’为‘high’,高通滤波器,‘ftype’为’stop’,

带阻滤波器。此函数内参数可为传递函数、零极点模型或状态空间三种表

示方式。

武汉大学物理科学与技术学院微电子系 常胜

Page 99: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

(2)�ChebyshevⅠ型滤波器设计[b,a]=cheby1(n,Rp,Wn,’ftype’)[b,a]=cheby1(n,Rp,Wn,’s’)[z,p,k]=cheby1(……)(3)�ChebyshevⅡ型滤波器设计[b,a]=cheby2(n,Rp,Wn,’ftype’)[b,a]=cheby2(n,Rp,Wn,’s’)[z,p,k]=cheby2(……)(4)�椭圆滤波器设计[b,a]=ellip(n,Rp,Wn,’ftype’)[b,a]=ellip(n,Rp,Wn,’s’)[A,B,C,D]=ellip(……)

武汉大学物理科学与技术学院微电子系 常胜

Page 100: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

设计椭圆带阻数字滤波器 ex7_8.m要求:阻带范围300Hz~400Hz��带内 小衰减Rs=18dB

通带范围<250Hz&>450Hz�带内 大衰减Rp=3dB采样频率Fs=2000Hz

clear;close�all;clc;Fs=2000;Ws(1)=300*2/Fs;���%数字归一化频率,300*2*pi/(Fs*pi)Ws(2)=400*2/Fs; %与后面数字滤波器设计对应Wp(1)=250*2/Fs;Wp(2)=450*2/Fs;Rp=3;Rs=18;

武汉大学物理科学与技术学院微电子系 常胜

Page 101: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

[n,Wn]=ellipord(Wp,Ws,Rp,Rs);��%获得数字滤波器阶数%和带通截止频率

[b,a]=ellip(n,Rp,Rs,Wn,'stop')freqz(b,a,Fs)

b�=0.5289���-0.9865����1.4797���-0.9865����0.5289

a�=1.0000���-1.5585����1.9300���-1.2284����0.6543

武汉大学物理科学与技术学院微电子系 常胜

Page 102: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 103: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.6 FIR滤波器的设计FIR滤波器的优点

传递函数不存在极点,FIR滤波器总是稳定的;系统的冲激响应易设计为奇对称或偶对称,易于实现线性相位;设计灵活,可设计多通带或多阻带系统。

武汉大学物理科学与技术学院微电子系 常胜

Page 104: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

1、窗口法设计FIR滤波器窗口法设计FIR滤波器的基本思想是确定一个符合设

计要求的理想选频滤波器,使用一个合适的窗函数对它的冲激响应加窗,即可得到要设计的FIR滤波器。fir1函数b=fir1(n,Wn,’ftype’,window)fir1函数用于设计一个标准通带(低通、高通、带通、带阻)线性相位数字滤波器。n为滤波器的阶数,Wn为截止频率,’ftype’为滤波器的特性,(Wn和’ftype’的含义同上节)window为所加窗函数(默认为Hamming窗)。窗口长度应比滤波器阶数大一。

武汉大学物理科学与技术学院微电子系 常胜

Page 105: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

使用fir1函数完成FIR滤波器设计 ex7_9.m要求:通带范围0Hz~1000Hz�� 带内波动5%

阻带范围1500Hz~4000Hz��带内 小衰减Rs=40dB采样频率fs=8000Hz����使用Kaiser窗设计

Kaiser窗利用零阶Bessel函数构成,构造Kaiser窗时需根据参数β确定旁瓣抑制和主瓣宽度之间的平衡关系。

Kaiserord函数可算出n,Wn,β,ftype等各参数。

武汉大学物理科学与技术学院微电子系 常胜

Page 106: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

clear;close�all;Fs=8000;fcuts=[1000�1500];mags=[1�0];devs=[0.05�0.01];[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs,Fs)[h]=fir1(n,Wn,ftype,kaiser(n+1,beta));freqz(h);

武汉大学物理科学与技术学院微电子系 常胜

Page 107: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 108: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

fir2函数b=fir2(n,f,m,npt,lap,window)fir2函数使用归一化数字频率值f(升序排列)和每频率点对

应的幅频响应值m来描述滤波器的性能。npt为总的频率取点数值(默认为512),lap代表重复取值的频率点数(默认为25),window为所加窗函数(默认为Hamming窗)。lap/npt决定了滤波器的过渡带宽。

武汉大学物理科学与技术学院微电子系 常胜

Page 109: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

使用fir2函数完成FIR滤波器设计 ex7_10.m要求:70阶双通带线性相位FIR滤波器,

通带一 0.2π~ 0.4π通带二 0.6π~ 0.8πHamming窗

clear;close�all;f=[0�0.2�0.2�0.3�0.4�0.4�0.5�0.6�0.6�0.7�0.8�0.8�0.9�1];m=[0�0�1�1�1�0�0�0�1�1�1�0�0�0];b=fir2(70,f,m,400,10,hamming(71));freqz(b)

武汉大学物理科学与技术学院微电子系 常胜

Page 110: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 111: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

2、 优等波动设计FIR滤波器优等波动法又称Parks-McClellan 优法。它根据

Chebyshev逼近理论对目标滤波器进行逼近,在指标相同的情况下可设计出阶数 低(阶数相同则通带 平坦,阻带 小衰减 大)且通带和阻带均为等波动形式的滤波器。它避免了窗口法难以精确指定截止频率和设计误差分布不均的缺点。

[n,fo,ao,w]=remezord(f,a,dev,fs)b=remez(n,fo,ao,w,’ftype’)其中f为截止频率,a为期望幅度,dev为波动系数。

武汉大学物理科学与技术学院微电子系 常胜

Page 112: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

使用 优等波动法设计FIR滤波器 ex7_11.m要求:设计一“阶梯型”滤波器

0~0.3π 滤波器增益为1 允许波动为1%0.4~0.7�π 滤波器增益为0.5 允许波动为0.5%0.8~π 滤波器阻带 允许波动为0.1%

武汉大学物理科学与技术学院微电子系 常胜

Page 113: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

f=[0.3�0.4�0.7�0.8]�������������%截止频率a=[1�0.5�0];�����������������%期望幅度dev=[0.01�0.005�0.001];[n,fo,ao,w]=remezord(f,a,dev);b=remez(n,fo,ao,w);[h,w]=freqz(b,1,1024);subplot(2,1,1);plot(w/pi,abs(h));xlabel('归一化频率(×\pi�rad/sample)');ylabel('幅频响应');subplot(2,1,2);plot(w/pi,angle(h)/pi);xlabel('归一化频率(×\pi�rad/sample)');ylabel('相频响应');

武汉大学物理科学与技术学院微电子系 常胜

Page 114: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 115: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

7.6.7交互式滤波器设计工具 FDA ToolFDATool是Singal�Processing�Toolbox提供的一个交

互式界面的滤波器设计工具。用户可通过对话框给出滤波器设计要求,完成设计。也可在FDATool中对滤波器进行分析,绘制幅频曲线、相位响应、零极点图等。其设计结果可保存在工作空间,或生成mat文件、文本文件或C语言文件。FDATool的启动命令为fdatool

武汉大学物理科学与技术学院微电子系 常胜

Page 116: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 117: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

使用FDATool设计滤波器 Ex7_12.fda

武汉大学物理科学与技术学院微电子系 常胜

Page 118: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

分析该滤波器 P210

武汉大学物理科学与技术学院微电子系 常胜

Page 119: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

生成simulink模型

武汉大学物理科学与技术学院微电子系 常胜

Page 120: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

滤波器设计导出

武汉大学物理科学与技术学院微电子系 常胜

Page 121: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

武汉大学物理科学与技术学院微电子系 常胜

Page 122: 第七章MATLAB在信号处理中 的应用 - 202.114.108.237202.114.108.237/Download/a746956f-689e-43ed-af88-50ceb0547f6e… · 第七章MATLAB 在信号处理中 ... 9、高斯正弦

习题:根据下列参数完成IIR和FIR数字滤波器设计

通带范围300Hz~500Hz�带内 大衰减Rp=-3dB阻带范围<250Hz&>550Hz�带内 小衰减Rs=-40dB采样频率Fs=2000Hz

要求:1、分别完成IIR和FIR滤波器的设计2、IIR设计不可使用butter、cheby1、cheby2和

ellip这四个完全设计函数3、谈谈自己对两种滤波器设计的感受

武汉大学物理科学与技术学院微电子系 常胜


Recommended