matlab作业.docx
《matlab作业.docx》由会员分享,可在线阅读,更多相关《matlab作业.docx(10页珍藏版)》请在冰豆网上搜索。
matlab作业
一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域性):
1、单位序列,2、单位阶跃序列,3、正弦序列,4、离散时间实指数序列。
解:
单位阶跃序列:
functionf=Heaviside(t)%阶跃信号
f=(t>0);解得如图1。
单位冲激信号:
functionchongji(t1,t2,t0)%冲激信号δ(t-t0),t1,t2分别为起始时间和终止时间
dt=0.01;
t=t1:
dt:
t2;
n=length(t);
x=zeros(1,n);
x(1,(t0-t1)/dt+1)=1/dt;
stairs(t,x);%以解题方式绘画
axis([t1,t2,0,1.1/dt])解得如图2
正弦序列:
f(t)=Asin(ωt+Φ)函数sin调用形式f(t)=A*sin(ω*t+Φ)
f(t)=Acos(ωt+Φ)函数cos调用形式f(t)=A*cos(ω*t+Φ)
程序示例:
Frp=50;%信号频率值
count=0;
fs=1024;N=1024;%采样速率和数据点数
df=0.01;%频率分辨率
t=1/fs:
1/fs:
1024/fs;
x=sin(2*pi*Frp*t);
subplot(2,1,1);
plot(x);
axis([0,1100,-1.2,1.2]);
xlabel(‘N’);
ylabel(‘振幅’);title(‘sin函数’);gridon;解得如图3
指数:
函数exp调用形式f=A*exp(a*t)
程序:
clear,t0=0;tf=5;dt=0.05;t1=1;
t=[t0:
dt:
tf];st=length(t);
n1=floor((t1-t0)/dt);
x1=zeros(1,st);
x1(n1)=1/dt;
subplot(2,2,1),stairs(t,x1),gridon
axis([0,5,0,22])
x2=[zeros(1,n1-1),ones(1,st-n1+1)];
subplot(2,2,3),stairs(t,x2),gridon
axis([0,5,0,1.1])
alpha=-0.5;w=10;x3=exp((alpha+j*w)*t);
subplot(2,2,2),plot(t,real(x3)),gridon
subplot(2,2,4),plot(t,imag(x3)),gridon
解得如图4。
二、用MATLAB实现信号的时域运算:
1、相加,2、相乘,3、数乘。
相加:
t=0:
0.001:
6;
y1=2*rectpuls(t-3,2);
y2=2*rectpuls(t-3,6);
f1=y1+y2;
plot(t,f1);
gridon;
axis([0,7,0,5]);运行程序,得如图5
相乘:
t=0:
0.001:
6;
y1=2*rectpuls(t-3,2);
y2=2*rectpuls(t-3,6);
f1=y1.*y2;
plot(t,f1);
gridon;
axis([0705]);运行程序,得如图6
数乘:
t=0:
0.001:
6;
y1=2*rectpuls(t-3,2);
y2=2*rectpuls(t-3,6);
f1=2*(y1+y2);
plot(t,f1);
gridon;
axis([07010]);运行程序,得如图7。
三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化):
1、反转,2、时移(超时,延时),3、展缩。
反转:
设f(t)=(1+t/2)*[&(t+2)-&(t-2)],求f(t±2),f(-t),f(2t).
程序:
symst;
f=sym(‘(t/2+1)*(heaviside(t+2)-heaviside(t-2))’);
subplot(2,3,1),ezplot(f,[-3,3]);
title(‘f(t)’);
y1=subs(f,t,t+2);
subplot(2,3,2),ezplot(y1,[-5,1]);
title(‘f(t+2)’);
y2=subs(f,t,t-2);
subplot(2,3,3),ezplot(y2,[-1,5]);
title(‘f(t-2)’);
y3=subs(f,t,-t);
subplot(2,3,4),ezplot(y3,[-3,3]);
title(‘f(-t)’);
y4=subs(f,t,2*t);
subplot(2,3,5),ezplot(y4,[-2,2]);
title(‘f(2*t)’);运行如图8。
移动:
clear;
closeall;t=-5:
0.01:
5;
x=exp(-0.5*t).*stepfun(t,0);
x1=exp(-0.5*(t+2)).*stepfun(t,2);%信号右移两个单位波形
x2=exp(-0.5*(t-2)).*stepfun(t,-2);%信号左移两个单位波形
subplot(311);%输出第一个波形
plot(t,x);
gridon;
title(‘原信号x(t)’);
sunplot(312);%输出第二个波形
plot(t,x1)
gridon;
title(‘右移信号x(t)’);
sunplot(313);%输出第三个波形
plot(t,x2)
gridon;
title(‘左移信号x(t)’);
xlabel(‘时间t’);运行图如图9。
展缩:
设有连续时间信号y(t),尺度变换是指该信号在时间轴尺度上的展缩或压缩。
尺度变换可用变量at(a大于0的常数)替代原信号y(t)的自然变量t,得到尺度变换y(at)来实现。
若a>1,则信号y(at)是将原信号y(t)以原点(t=0)为基准点,沿横轴压缩到原来的1/a。
若a<1,则信号y(at)是将信号y(t)以原点(t=0)为基准点,沿横轴展宽到原来的1/a倍。
简图如图10:
四、用MATLAB实现离散时间系统卷积和仿真波形 。
f1(t)=2t+1,f2t=6t,卷积f1t*f2t。
程序:
s=0.01;
k1=0:
s:
2;
k2=k1;
f1=2*k1+1;
f2=6*k2;
f=conv(f1,f2);
f=f*s;
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
s:
k3*s;
subplot(3,1,1);
plot(k1,f1);
title(‘f1(t)’);
subplot(3,1,2);
plot(k2,f2);
title(‘f2(t)’);
subplot(3,1,3);
plot(k,f);
title(‘f(t)卷积波形’);运行图如图11
五、建立数学模型,然后用MATLAB 编写求解下图电流i1和i2的通用程序。
解:
①建模。
按图1,建立节点电压方程(电阻R2两端的节点从左到右分别为Un1和Un2):
(1/R1+1/R2)Un1+(-1/R2)Un2=IS+αI2
(-1/R2)Un1+(1/R1+1/R2+1/R3)Un2=-αI2+βI1/R3
I1=(Un1-Un2)/R2
I2=Un2/R4
②编程。
利用MATLAB编写的程序如下:
clear,formatcompact
%输入元件参数值R1=4;R2=4;R3=4;R4=2;Is=2;α=0.5;β=4;
%按Z×X=Y列写电路的矩阵方程,其中:
X=[U1;U2;I1;I2]
z11=1/R1+1/R2;z12=-1/R2;z13=0;z14=-α;z21=-1/R2;z22=1/R2+1/R3+1/R4;z23=-β/R3;z24=α;z31=1/R2;z32=-1/R2;z33=-1;z34=0;z41=0;z42=1/R4;z43=0;z44=-1;%以上设置系数矩阵X的元素
Z=[z11,z12,z13,z14;z21,z22,z23,z24;z31,z32,z33,z34;z41,z42,z43,z44];
Y=[Is;0;0;0];
X=Z\Y;%求解结果
I1=X(3),I2=X(4);
I1,I2%输出结果
运行程序得:
I1=1,I2=1
即正确答案为:
I1=1A,I2=1A
图表1
图表2
图表3
图表4
图表10
图表5
图表6
图表7
图表8
图表9
图表11