利用MATLAB进行信号与系统分析_精品文档.ppt
《利用MATLAB进行信号与系统分析_精品文档.ppt》由会员分享,可在线阅读,更多相关《利用MATLAB进行信号与系统分析_精品文档.ppt(96页珍藏版)》请在冰豆网上搜索。
利用MATLAB进行信号与系统分析MATLAB简介信号的MATLAB表示利用MATLAB进行系统的时域分析利用MATLAB进行信号的频域分析利用MATLAB分析系统的频率特性利用MATLAB进行连续系统的S域分析利用MATLAB进行离散系统的Z域分析利用MATLAB进行系统的状态变量分析MATLAB简介(MatrixLaboratory)MATLAB的工作方式如何获取帮助表达式变量、数值、算数运算符、关算数运算符、关系运算符、系运算符、逻辑运算符、冒号运算符运算符、冒号运算符数数组及其运算及其运算函数文件函数文件循循环(FOR、WHILE循循环)基本基本绘图语句句MATLAB简介1.1.MATLAB的工作方式的工作方式
(1)窗口命令方式
(2)运行以.M为扩展名磁盘文件22获取帮助获取帮助命令窗口输入:
help+函数名函数名例如helpplot工作方式举例%用plot函数画一个方波t=-100113;f=001100;plot(t,f);xlabel(t);ylabel(f(t);axis(-1302);直接输入以上命令建一个名字为my_file.M的文件,然后在命令窗口输入文件名及回车。
3表达式变量不需要不需要变量的量的类型型说明明变量名的量名的第一个字符必第一个字符必须是字母是字母变量名量名长度:
度:
不超不超过31个字符个字符大写和小写的字母大写和小写的字母视为不同不同的字符的字符例如:
num_students=25特殊特殊变量:
量:
pi表示圆周率,inf表示无穷大,NaN(NotaNumber)表示不定量,如0/0。
3表达式数值MATLAB用常用常规的十的十进制表示数制表示数值用用i或或j作作为后后缀来表示复数的虚部来表示复数的虚部例1.235e5表示1.235105,x=2+3jabs(x)求复数x的模angle(x)求复数x的相角(弧度)real(x)求复数x的实部imag(x)求复数x的虚部conj(x)求复数x的共轭3表达式运算符号算数运算符算数运算符+加-减*乘/除乘方矩阵的复共轭转置3表达式运算符号逻辑运算符逻辑运算符A&B逻辑与(and)A|B逻辑或(or)A逻辑非(not)值为0时表示逻辑假(F),其它任何非零值表示逻辑真。
3表达式运算符号关系运算符关系运算符AB大于A=B大于等于A=B等于A=B不等于3表达式运算符号冒号运算符冒号运算符表达式1:
10表示产生一个行向量,它的值为12345678910表达式10:
-2:
1表示产生一个递减的行向量,它的值为1086424数组数组的构造用冒号用冒号:
产生数生数组例x=2:
5产生一个数组,它的值为x
(1)=2,x
(2)=3,x(3)=4,x(4)=5x=linspace(0,2,11)将区间0,2均匀抽样11点作为数组x给2维数数组赋值时,用分号分号表示一行的结束,如:
z=12;34。
用用linspace产生数生数组4数组MATLAB提供了一些产生基本矩阵的函数zeros产生矩阵元素全为0的矩阵ones产生矩阵元素全为1的矩阵rand产生(0,1)均匀分布随机数矩阵randn产生正态分布随机数矩阵4数组数组的运算数数组和一个和一个标量相加或相乘量相加或相乘例y=x-1z=3*x2个数个数组的的对应元素相乘除元素相乘除.*./例z=x.*y确定数确定数组大小的函数大小的函数size(A)返回值数组A的行数和列数(二维)length(B)确定数组B的元素个数(一维)5.函数文件M文件的第一行包含function功能:
建立一个函数,可以同MATLAB的库函数一样使用.例:
编一个绘制图示波形的函数。
functiony=tri(t)y=abs(t)epss=s+1/(n*n);n=n+1;end例:
计算的值,且误差小于10-6fprintf(s=%.5fn,s)8.plot函数-绘图函数(continuous)t=linspace(0,4*pi,512);plot(t,sin(t),t,cos(t),-.);title(myfigure);xlabel(t);legend(sin(t),cos(t);9.stem函数-绘图函数(discrete)k=0:
39;stem(k,cos(0.9*pi*k);title(cos(0.9pik);Cos(0.9k)波形基本信号的基本信号的MATLAB表示表示(指数信号Aeat,指数序列ak,抽样函数Sa(t),正弦型信号,矩形脉冲信号,三角脉冲信号信号基本运算的信号基本运算的MATLAB实现(尺度变换、翻转、时移、相加、相乘、差分与求和、微分与积分)信号的信号的MATLABMATLAB表示表示基本信号的MATLAB表示指数信号Aeaty=A*exp(a*t);指数序列ak幂运算a.k实现正弦型信号内部函数cos()和sin()抽样函数Sa(t)sinc(t)矩形脉冲信号y=rectpuls(t,width)三角波脉冲信号y=tripuls(t,width,skew)%decayingexponentialt=0:
001:
10;A=1;a=-0.4;ft=A*exp(a*t);plot(t,ft)t=0:
0.1:
10;A=1;a=-0.4;ft=A*exp(a*t);stem(t,ft)%rectpulst=0:
0.001:
4;T=1;ft=rectpuls(t-2*T,T);plot(t,ft)axis(0,4,-0.5,1.5)%tripulst=-3:
0.001:
3;ft=tripuls(t,4,0.5);plot(t,ft)ft=tripuls(t,4,1);%unitimpulssequencek=-50:
50;delta=zeros(1,50),1,zeros(1,50);stem(k,delta)functionf,k=impseq(k0,k1,k2)%产生fk=delta(k-k0);k1=k=k2k=k1:
k2;f=(k-k0)=0;k0=0;k1=-50;k2=50;f,k=impseq(k0,k1,k2);stem(k,f)%unitstepsequencek=-50:
50;uk=zeros(1,50),ones(1,51);stem(k,uk)functionf,k=stepseq(k0,k1,k2)%产生fk=u(k-k0);k1=k=0;k0=0;k1=-50;k2=50;f,k=stepseq(k0,k1,k2);stem(k,f)信号基本运算的MATLAB实现t=-3:
0.001:
3;ft1=tripuls(2*t,4,0.5);subplot(2,1,1)plot(t,ft1)title(f(2t)ft2=tripuls(2-2*t),4,0.5);subplot(2,1,2)plot(t,ft2)title(f(2-2t)信号的尺度变换、翻转、时移(平移)信号的尺度变换、翻转、时移(平移)已知三角波f(t),用MATLAB画出的f(2t)和f(2-2t)波形信号的相加与相乘信号的相加与相乘相加用算术运算符“+”实现相乘用数组运算符“.*”实现例画信号Aeatsin(w0t+f)的波形t=0:
0.001:
8;A=1;a=-0.4;w0=2*pi;phi=0;ft1=A*exp(a*t).*sin(w0*t+phi);plot(t,ft1)离散序列的差分与求和离散序列的差分与求和差分y=diff(f);求和y=sum(f(k1:
k2);连续信号的微分与积分连续信号的微分与积分微分y=diff(f)/h;h为数值计算所取时间间隔定积分quad(function_name,a,b);function_name为被积函数名,a和b指定积分区间。
例已知三角波f(t),画出其微分与积分的波形%differentiationh=0.001;t=-3:
h:
3;y1=diff(f2_2(t)/h;plot(t(1:
length(t)-1),y1)%integrationt=-3:
0.1:
3;forx=1:
length(t)y2(x)=quad(f2_2,-3,t(x);endplot(t,y2)functionyt=f2_2(t)yt=tripuls(t,4,0.5);三角波f(t)微分与积分的波形利用利用MATLABMATLAB进行系统的时域分析进行系统的时域分析连续时间系系统零状零状态响响应的求解的求解连续时间系系统冲激响冲激响应和和阶跃响响应的求解的求解离散离散时间系系统零状零状态响响应的求解的求解离散离散时间系系统单位脉冲响位脉冲响应的求解的求解离散卷离散卷积的的计算算t表示计算系统响应的抽样点向量a=a3,a2,a1,a0;b=b3,b2,b1,b0;sys=tf(b,a)1.连续时间系统零状态响应的求解y=lsim(sys,f,t)sys=tf(b,a)b和a分别为微分方程右端和左端各项的系数向量f是系统输入信号向量,sys是LTI系统模型,借助tf函数获得连续时间系统冲激响应可用impulse函数直接求出,其调用形式为2.连续时间系统冲激响应和阶跃响应的求解y=impulse(sys,t)连续时间系统阶跃响应可用step函数直接求出,其调用形式为y=step(sys,t)t表示计算系统响应的抽样点向量sys是LTI系统模型3.离散时间系统零状态响应的求解b,a分别是差分方程左、右端的系数向量b=b0,b1,b2,bM;a=a0,a1,a2,aN;可用MATLAB表示为y=filter(b,a,f)f表示输入序列,y表示输出序列4.离散时间系统单位脉冲响应的求解b,a分别是差分方程左、右端的系数向量k表示输出序列的取值范围h就是单位脉冲响应h=impz(b,a,k)5.离散卷积的计算例如:
(s3+2s+3)(s2+3s+2)可用下面MATLAB语句求出a=1,0,2,3;b=1,3,2;c=conv(a,b)c=conv(a,b)式中a,b为待卷积两序列的向量表示,c是卷积结果。
conv函数也可用于计算两个多项式的积例1求系统y”(t)+2y(t)+100y(t)=10f(t)的零状态响应,已知f(t)=(sin2t)u(t)。
%program3_1微分方程求解ts=0;te=5;dt=0.01;sys=tf(1,12100);t=ts:
dt:
te;f=10*sin(2*pi*t);y=lsim(sys,f,t);plot(t,y);xlabel(Time(sec)ylabel(y(t)例2求系统y”(t)+2y(t)+100y(t)=10f(t)的零状态响应,已知f(t)=d(t)。
%program3_2连续时间系统的冲激响应ts=0;te=5;dt=0.01;sys=tf(10,12100);t=ts:
dt:
te;y=impulse(sys,t);plot(t,y);xlabel(Time(sec)ylabel(h(t)例3分析噪声干扰的信号fk=sk+dk通过M点滑动平均系统的响应,其中sk=(2k)0.9k是原始信号,dk是噪声。
R=51;d=rand(1,R)-0.5;k=0:
R-1;s=2*k.*(0.9.k);f=s+d;figure
(1);plot(k,d,r-.,k,s,b-,k,f,g-);M=5;b=ones(M,1)/M;a=1;y=filter(b,a,f);figure
(2);plot(k,s,b-,k,y,r-);噪声干扰信号fk=sk+dk通过M点滑动平均系统的响应例4求系统yk+3yk-1+2yk-1=10fk的单位脉冲响应。
%program3_4离散系统的单位脉冲响应k=0:
10;a=132;b=1;h=impz(b,a,k);s