版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章MATLAB在信号处理中的应用4.1信号及其表示4.2信号的基本运算4.3信号的能量和功率4.4线性时不变系统4.5线性时不变系统的响应4.6线性时不变系统的频率响应4.7傅里叶(Fourier)变换4.8IIR数字滤波器的设计方法4.9FIR数字滤波器设计4.1信号及其表示4.1.1连续时间信号的表示
连续时间信号:时间变化连续。如y=x(t)
离散时间信号(序列):时间离散,如x(nT)=x(t)|t=nT.
例4-1:用MATLAB命令绘出连续时间信号x(t)=e-0.707tsin(2t/3)关于t的曲线,t的范围为:0~30s,并以0.1s递增。
4.1.2工具箱中的信号产生函数函数名功能函数名功能sawtooth产生锯齿波或三角波信号pulstran产生冲激串square产生方波信号rectpule产生非周期的方波信号sinc产生sinc函数波形tripuls产生非周期的三角波信号chirp产生调频余弦信号diric产生Dirichlet或周期sinc函数gauspuls产生高斯正弦脉冲信号gmonopuls产生高斯单脉冲信号vco电压控制振荡器4.1信号及其表示1.Sawtooth(产生锯齿波或三角波信号)格式一:x=sawtooth(t)功能:产生周期为2π,幅值从-1~+1的锯齿波。在2π的整数倍处值为-1~+1,
这一段波形斜率为1/π。格式二:x=sawtooth(t,width)功能:产生三角波,width在0~1之间。
例4-2:产生周期为0.02的三角波。2.Square(产生方波信号)格式一:x=square(t)功能:产生周期为2π,幅值从-1~+1的方波。格式二:x=square(t,duty)功能:产生制定周期的方波,duty为正半周期比例。
例4-3:产生周期为0.02的方波。4.1信号及其表示3.Sinc(产生sinc函数波形函数sinc)格式一:y=sinc(x)功能:sinc(x)用于计算sinc函数。例4-4:产生sinc函数波形。4.Rectpuls(产生非周期方波信号函数)格式一:y=rectpuls(t)功能:产生非周期方波信号,方波的宽度为时间轴的一半。格式二:y=rectpuls(t,w)功能:产生指定宽度为w的非周期方波。例4-5:产生非周期方波。4.1信号及其表示5.Tripuls(产生非周期三角波信号函数Tripuls)格式一:y=tripuls(t)功能:产生非周期三角波信号,三角波的宽度为时间轴的一半。格式二:y=tripuls(t,w,s)功能:产生指定宽度为w的非周期方波,斜率为s(-1<s<1)。例4-66.Chirp(产生线性调频信号函数chirp)格式:y=chirp(t,f0,t1,f1)功能:产生一个线性扫频(频率随时间线性变化)信号,其时间轴的设置由数组t定义。时刻0的瞬时频率为f0,时刻t1的瞬时频率为f1。默认情况下,f0=0Hz,t1=1,f1=100Hz。例4-7:绘制一个线性调频信号。4.1.3离散时间信号的表示
在MATLAB中,离散时间信号x(n)的表示:需用一个向量x表示序列幅值,用另一个等长的定位时间变量n,才能完整地表示一个序列。
[例4-10]
绘制离散时间信号的棒状图。其中x(-1)=-1,x(0)=1,x(1)=2,x(2)=1,x(3)=0,x(4)=-1。MATLAB源程序为:n=-3:5;%定位时间变量x=[0,0,-1,1,2,1,-1,0,0];stem(n,x);grid;%绘制棒状图line([-3,5],[0,0]);%画x轴线xlabel('n');ylabel('x[n]')运行结果如图4.11所示。图4.11离散时间信号图形4.1.4几种常用离散时间信号的表示1.单位脉冲序列直接实现:x=zeros(1,N);x(1,n0)=1;函数实现:利用单位脉冲序列δ(n-n0)的生成函数impseq,
即function[x,n]=impseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)==0]2.单位阶跃序列
直接实现:n=[ns:nf];x=[(n-n0)>=0];函数实现:利用单位阶跃序列u(n-n0)的生成函数stepseq,
即function[x,n]=stepseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)>=0];3.实指数序列直接实现:n=[ns:nf];x=a.^n;函数实现:利用实指数序列x(n)=an的生成函数rexpseq,即function[x,n]=rexpseq(a,ns,nf)n=[ns:nf];x=a.^n;4.复指数序列直接实现:n=[ns:nf];x=exp((sigema+jw)*n);函数实现:利用复指数序列x(n)=e(δ+jω)n的生成函数cexpseq,即function[x,n]=cexpseq(sigema,w,ns,nf)n=[ns:nf];x=exp((sigema+j*w)*n);5.正(余)弦序列直接实现:n=[ns:nf];x=cos(w*n+sita);函数实现:利用正(余)弦序列x(n)=cos(ωn+ϴ)的生成函数cosseq,即function[x,n]=cosseq(w,ns,nf,sita)n=[ns:nf];x=cos(w*n+sita);4.2信号的基本运算4.2.1信号的相加与相乘
y(n)=x1(n)+x2(n)y(n)=x1(n)×x2(n)
MATLAB实现:y=x1+x2;y=x1.*x2
例4-11:信号的相加与相乘4.2.2序列移位与周期延拓运算序列移位:y(n)=x(n-m)。MATLAB实现:y=x;ny=nx-m序列周期延拓:y(n)=x((n))M,MATLAB实现:ny=nxs:nxf;y=x(mod(ny,M)+1)例4-124.2.4两序列的卷积运算两序列卷积运算:
MATLAB实现:y=conv(x1,x2)。序列x1(n)和x2(n)必须长度有限。4.2.5两序列的相关运算两序列相关运算:
。MATLAB实现:y=xcorr(x1,x2)。4.2.3序列翻褶与序列累加运算序列翻褶:y(n)=x(-n)。MATLAB可实现:y=fliplr(x)序列累加的数学描述为:
MATLAB实现:y=cumsum(x)例4-13求序列x(n)=3e-0.2n的翻褶序列y(n)=x(-n)。4.3信号的能量和功率1.信号能量数字定义:MATLAB实现:E=sum(x.*conj(x));或E=sum(abs(x).^2);数字定义:2.信号功率MATLAB实现:
P=sum(x.*conj(x))/N;或E=sum(abs(x).^2)/N;例4-16非周期三角波信号能量的MATLAB计算和余弦信号的平均功率计算。4.4线性时不变系统4.4.1系统的描述1.常系数线性微分/差分方程2.系统传递函数3.零-极点增益模型连续系统:
连续系统:
离散系统:
离散系统:
4.极点留数模型离散系统:
连续系统:
5.二次分式模型连续系统:
离散系统:
6.状态空间模型连续系统:
离散系统:
4.4.2系统模型的转换函数
在MATLAB中,用sos、ss、tf、zp分别表示二次分式模型、状态空间模型、传递函数模型和零-极点增益模型。其中sos表示二次分式,g为比例系数,sos为L×6的矩阵,即
(4-15)
1.ss2tf函数 格式:[num,den]=ss2tf(A,B,C,D,iu)功能:将指定输入量iu的线性系统(A,B,C,D)转换为传递函数模型[num,den]。2.zp2tf函数格式:[num,den]=zp2tf(z,p,k)功能:将给定系统的零-极点增益模型转换为传递函数模型,z、p、k分别为零点列向量、极点列向量和增益系数。线性系统模型的变换函数函数名功能说明函数名功能说明ss2tf状态空间模型转换为传递函数模型zp2tf零-极点增益模型转换为传递函数模型ss2zp状态空间模型转换为零-极点增益模型zp2ss零-极点增益模型转换为状态空间模型ss2sos状态空间模型转换为二次分式模型zp2sos零-极点增益模型转换为二次分式模型tf2ss传递函数模型转换为状态空间模型sos2tf二次分式模型转换为传递函数模型tf2zp传递函数模型转换为零-极点增益模型sos2zp二次分式模型转换为零-极点增益模型tf2sos传递函数模型转换为二次分式模型sos2ss二次分式模型转换为状态空间模型[例4-19]求离散时间系统的零、极点向量和增益系数。在命令窗口输入:>>num=[2,3];den=[1,0.4,1];>>[num,den]=eqtflength(num,den);
%使长度相等>>[z,p,k]=tf2zp(num,den)屏幕显示为z=
0-1.5000p=-0.2000+0.9798i
-0.2000-0.9798ik=24.4.3系统互联与系统结构MATLAB实现函数series()
格式:[A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2)或
[num,den]=series(num1,den1,num2,den2)将系统1、系统2级联,可得到级联连接的传递函数形式为:1.系统的级联MATLAB实现函数parallel()格式:[A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2)或
[num,den]=parallel(num1,den1,num2,den2)2.系统的并联将系统1、系统2并联,可得到并联连接的传递函数形式为:3.两个系统的反馈连接函数feedback格式:[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign)或
[num,den]=feedback(num1,den1,num2,den2,sign)将系统1和系统2进行反馈连接,sign表示反馈方式(默认值为-1);当sig=+1时表示正反馈;当sig=-1时表示负反馈。[例4-20]
求两个单输入单输出子系统的级联、并联和反馈后系统的传递函数。MATLAB源程序为:
num1=1;den1=[1,1];%系统1
num2=2;den2=[1,2];%系统2
[nums,dens]=series(num1,den1,num2,den2)%实现两个系统级联
[nump,denp]=parallel(num1,den1,num2,den2)%实现两个系统并联
[numf,denf]=feedback(num1,den1,num2,den2)%实现两个系统反馈程序运行结果为:nums=002;dens=132nump=034;denp=132numf=012;denf=134因此,各系统的传递函数分别为:4.5线性时不变系统的响应4.5.1线性时不变系统的时域响应1.连续LTI系统的响应2.离散LTI系统的响应用MATLAB中的卷积函数conv()来实现。例4-24P147
用MATLAB中的卷积函数conv()来实现。例4-25已知LTI离散系统的单位冲击响应为:h[n]=0.5n(n=0,1,2,…,14),
求输入信号序列x[n]=1(-5《n《4)的系统响应。格式:[y,x]=lsim(a,b,c,d,u,t)功能:返回连续LTI系统
(2)对任意输入的离散LTI系统响应函数dlsim()格式:[y,x]=dlsim(a,b,c,d,u)功能:返回离散LTI系统
对任意输入时系统的输出响应y和状态记录x,其中u给出每个输入的时序列,一般情况下u为一个矩阵;t用于指定仿真的时间轴,它应为等间隔。例4-26P150对输入序列u的响应y和状态记录x。例4-27P1513.时域响应函数(1)对任意输入的连续LTI系统响应函数lsim()
4.5.2LTI系统的单位冲激响应1.求连续LTI系统的单位冲激响应函数impulse()格式:[Y,T]=impulse(sys)或impulse(sys)功能:返回系统的响应Y和时间向量T,自动选择仿真的时间范围。其中sys可为系统传递函数、零极增益模型或状态空间模型。例4-28P1522.求离散系统的单位冲激响应函数dimpulse()格式:[y,x]=dimpulse(num,den)功能:返回项式传递函数的单位冲激响应y向量和时间状态历史记录x向量。4.5.3时域响应的其它函数1.求连续LTI系统的零输入响应函数initial()格式:[y,t,x]=initial(a,b,c,d,x0)功能:计算出连续时间LTI系统由于初始状态x0所引起的零输入响应y。其中x为状态记录,t为仿真所用的采样时间向量。例4-30P1532.求离散系统的零输入响应函数dinitial()格式:[y,x,n]=dinitial(a,b,c,d,x0)功能:计算离散时间LTI系统由初始状态x0所引起的零输入响应y和状态响应响应x,取样点数由函数自动选取。n为仿真所用的点数。例4-31P1543.求连续系统的单位阶跃响应函数step()格式:[Y,T]=step(sys)
功能:返回系统的单位阶跃响应Y和仿真所用的时间向量T,自动选择仿真的时间范围。其中sys可为系统传递函数(TF)、零极增益模型(ZPK)或状态空间模型(SS)。4.求离散系统的单位阶跃响应函数dstep()格式:[y,x]=dstep(num,den)功能:返回多项式传递函数G(z)=num(z)/den(z)表示的系统单位阶跃响应。4.6线性时不变系统的频率响应1.求模拟滤波器Ha(s)的频率响应函数freqs()格式:H=freqs(B,A,W)
功能:计算由向量W(rad/s)指定的频率点上模拟滤器系统函数Ha(s)的频率响应Ha(jΩ),结果存于H向量中。向量B和A分别为模拟滤波器系统函数Ha(s)的分子和分母多项式系数。[例4-32]
已知某模拟滤波器的系统函数求该模拟滤波器的频率响应。MATLAB源程序如下。B=1;A=[12.61313.41422.61311];W=0:0.1:2*pi*5;freqs(B,A,W)图4.30模拟滤波器的频率响应
[例4-33]已知某滤波器的系统函数为求该滤波器的频率响应。MATLAB源程序为:B=[10000000–1];A=1;freqz(B,A)该程序运行所绘出的幅频与相频性曲线如图4.31所示。图4.31滤波器幅度和相位曲线
2.求数字滤波器H(z)的频率响应函数freqz()格式:H=freqz(B,A,W)功能:计算由向量W(rad)指定的数字频率点上(通常指[0,π]范围的频率)数字滤波器H(z)的频率响应H(ejw),结果存于H向量中。向量B和A分别为数字滤波器系统H(z)的分子和分母多项式系数。3.滤波函数filter格式:y=filter(B,A,x)功能:对向量x中的数据进行滤波处理,即差分方程求解,产生输出序列向量y。B和A分别为数字滤波器系统函数H(z)的分子和分母多项式系数向量。[例4-34]设系统差分方程为MATLAB源程序为:B=1;A=[1,-0.8];n=0:31;x=0.8.^n;y=filter(B,A,x);subplot(2,1,1);stem(x)subplot(2,1,2);stem(y)该程序运行所得结果如图4.32所示。,求该系统对信号的响应。图4.32系统对信号的响应
4.7傅里叶(Fourier)变换4.7.1连续时间、连续频率-傅里叶变换4.7.2连续时间、离散频率-傅里叶级数正变换:
逆变换:
正变换:
逆变换:
4.7.3时间离散、连续频率-序列傅里叶变换4.7.4离散时间、离散频率-离散傅里叶级数4.7.5离散时间、离散频率-离散傅里叶变换(DFT)正变换:
逆变换:
正变换:
逆变换:
正变换:
逆变换:
1.一维快速正傅里叶变换函数fft格式:X=fft(x,N)功能:采用FFT算法计算序列向量x的N点DFT变换,当N缺省时,fft函数自动按x的长度计算DFT。当N为2整数次幂时,fft按基-2算法计算,否则用混合算法。2.一维快速逆傅里叶变换函数ifft格式:x=ifft(X,N)功能:采用FFT算法计算序列向量X的N点IDFT变换。[例4-37]用快速傅里叶变换FFT计算下面两个序列的卷积。,并测试直接卷积和快速卷积的时间。图4.35快速卷积框图MATLAB程序(部分):%线性卷积xn=sin(0.4*[1:15]);
%对序列x(n)赋值,M=15hn=0.9.^(1:20);
%对序列h(n)赋值,N=20yn=conv(xn,hn); %直接调用函数conv计算卷积%园周卷积L=pow2(nextpow2(M+N-1));
Xk=fft(xn,L);
Hk=fft(hn,L);
Yk=Xk.*Hk;
yn=ifft(Yk,L);
图4.36x(n),h(n)及其线性卷积波形4.8IIR数字滤波器的设计方法1.数字滤波器的频率响应函数幅度响应:相位响应:图4.37理想低通、高通、带通、带阻数字滤波器幅度特性
2.滤波器的技术指标幅度响应指标、相位响应指标
图4.38数字低通滤波器的幅度特性
通带要求:
阻带要求:
通带最大衰减:阻带最小衰减:4.8.1冲激响应不变法2.MATLAB信号处理工箱中的专用函数impinvar():格式:[BZ,AZ]=impinvar(B,A,Fs)功能:把具有[B,A]模拟滤波器传递函数模型转换成采样频率为Fs(Hz)的数字滤波器的传递函数模型[BZ,AZ]。采样频率Fs的默认值为Fs=1。1.冲激响应不变法设计IIR数字滤波器的基本原理:[例4-38]MATLAB源程序如下:num=[1];%模拟滤波器系统函数的分子den=[1,sqrt(5),2,sqrt(2),1];%模拟滤波器系统函数的分母[num1,den1]=impinvar(num,den)%求数字低通滤波器的系统函数程序的执行结果如下:num1=-0.00000.09420.21580.0311den1=1.0000-2.00321.9982-0.76120.1069MATLAB信号处理工具箱中的专用双线性变换函数bilinear()格式:[numd,dend]=bilinear(num,den,Fs)功能:把模拟滤波器的传递函数模型转换成数字滤波器的传递函数模型。4.8.2双线性变换法双线性变换利用频率变换关系:
[例4-39]MATLAB源程序如下:
num=1;%模拟滤波器系统函数的分子
den=[1,sqrt(3),sqrt(2),1];%模拟滤波器系统函数的分母
[num1,den1]=bilinear(num,den,1)%求数字滤波器的传递函数运算的结果如下:num1=0.05330.15990.15990.0533den1=1.0000-1.33820.9193-0.15464.8.3IIR数字滤波器的频率变换设计法1.IIR数字滤波器的频率变换设计法的基本原理根据滤波器设计要求,设计模拟原型低通滤波器,然后进行频率变换,将其转换为相应的模拟滤波器(高通、带通等),最后利用冲激响应不变法或双线性变换法,将模拟滤波器数字化成相应的数字滤波器。
图4.39IIR数字滤波器MATLAB设计步骤流程图
1.MATLAB的典型设计利用在MATLAB设计IIR数字滤波器可分以下几步来实现(1)按一定规则将数字滤波器的技术指标转换为模拟低通滤波器的技术指标;(2)根据转换后的技术指标使用滤波器阶数函数,确定滤波器的最小阶数N和截止频率Wc;(3)利用最小阶数N产生模拟低通滤波原型;(4)利用截止频率Wc把模拟低通滤波器原型转换成模拟低通、高通、带通或带阻滤波器;(5)利用冲激响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。[例4-40]设计一个数字信号处理系统,它的采样率为Fs=100Hz,希望在该系统中设计一个Butterworth型高通数字滤波器,使其通带中允许的最小衰减为0.5dB,阻带内的最小衰减为40dB,通带上限临界频率为30Hz,阻带下限临界频率为40Hz。
MATLAB源程序设计如下:
%把数字滤波器的频率特征转换成模拟滤波器的频率特征
wp=30*2*pi;ws=40*2*pi;rp=0.5;rs=40;Fs=100;
[N,Wc]=buttord(wp,ws,rp,rs,'s');
%选择滤波器的最小阶数
[Z,P,K]=buttap(N);
%创建Butterworth低通滤波器原型
[A,B,C,D]=zp2ss(Z,P,K);%零-极点增益模型转换为状态空间模型
[AT,BT,CT,DT]=lp2hp(A,B,C,D,Wc);
%实现低通向高通的转变
[num1,den1]=ss2tf(AT,BT,CT,DT);%状态空间模型转换为传递函数模型
%运用双线性变换法把模拟滤波器转换成数字滤波器
[num2,den2]=bilinear(num1,den1,100);
[H,W]=freqz(num2,den2);
%求频率响应
plot(W*Fs/(2*pi),abs(H));grid;%绘出频率响应曲线
xlabel('频率/Hz'); ylabel('幅值')程序运行结果如图4.40所示。
2.MATLAB的直接设计图4.39IIR数字滤波器MATLAB设计步骤流程图
[例4-42]
试设计一个带阻IIR数字滤波器,其具体的要求是:通带的截止频率:wp1=650Hz、wp2=850Hz;阻带的截止频率:ws1=700Hz、ws2=800Hz;通带内的最大衰减为rp=0.1dB;阻带内的最小衰减为rs=50dB;采样频率为Fs=2000Hz。MATLAB源程序设计如下:
wp1=650;wp2=850;ws1=700;ws2=800;rp=0.1;rs=50;Fs=2000;
wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2);
%利用Nyquist频率进行归一化
[N,wc]=ellipord(wp,ws,rp,rs,'z');%求滤波器阶数
[num,den]=ellip(N,rp,rs,wc,'stop');
%求滤波器传递函数
[H,W]=freqz(num,den);
%绘出频率响应曲线
plot(W*Fs/(2*pi),abs(H));grid;xlabel('频率/Hz');ylabel('幅值')该程序运行后的幅频响应曲线如图4.42所示。
4.9FIR数字滤波器设计格式:w=boxcar(M)
功能:返回M点矩形窗序列。MATLAB信号处理工具箱中的窗函数法设计FIR数字滤波器的专用命令fir1()。格式:B=fir1(N,wc)功能:设计一个具有线性相位的N阶(N点)的低通FIR数字滤波器,返回的向量B为滤波器的系数(单位冲激响应序列),其长度为N+1。4.9.1窗函数设计法窗函数设计的基本原理:
h(n)=w(n)hd(n)
w(n)为窗函数,hd(n)理想数字滤波器的单位冲激响应。在MATLAB信号处理工具箱中为用户提供了Boxcar(矩形)、Bartlet(巴特利特)、Hanning(汉宁)等窗函数,这些窗函数的调用格式相同。
FIR数字滤波器的单位冲激响应h(n)满足偶(奇)对称
h(n)=h(N-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年外贸服饰行业分析报告及未来发展趋势报告
- 2026年摩托车轮胎行业分析报告及未来发展趋势报告
- 2026年新疆科技职业技术学院单招职业技能考试参考题库附答案详解
- 大学试题(管理类)劳动组织管理题库含答案解析
- 2025年漫画中国史题库及答案
- (2025年)项目部人员安全教育试题及答案
- 2026年机械停车行业分析报告及未来发展趋势报告
- 2026年体育场馆运营师高级专业知识与技能测试试题及答案
- 2026年安全生产月知识竞赛题库(含答案)
- 2025年兽医疾病症状识别试题及答案
- (一模)东莞市2026年高三年级模拟考试生物试卷(含答案)
- 2026江苏南京师范大学专业技术人员招聘10人备考题库附完整答案详解(考点梳理)
- 《融合新闻学》第二版 课件05 网络图文报道
- 水路客运安全培训课件
- 2026年深圳中考历史答题规范特训试卷(附答案可下载)
- 车前子提取物对增强T淋巴细胞活性的研究-洞察及研究
- 项目网络配线架端接工艺
- 2026年中国化工经济技术发展中心招聘备考题库及参考答案详解
- 徐州卷烟厂操作考试题及答案
- 雨水管道施工方案及措施
- 2026年驾驶员劳动关系合同书
评论
0/150
提交评论