资源描述
试验汇报(一)
试验名称
信号表达、卷积(和)、差(微)分方程求解
试验时间
4月 6日
姓名
专业
学号
成绩
一、 试验目的,内容
(一)信号的描述与运算
掌握常用持续和离散信号的表达,熟悉多种数学函数,多种函数的绘图。
掌握数值法计算积分、微分的一般措施,包括微分的差分替代,矩形法、梯形法、抛物线法(辛普森Simpson法)计算积分等Matlab基本内容。
以数值计算为主,学会辨别数值计算和符号计算。
(二)卷积与卷积和
掌握数值法计算离散卷积和,理解离散卷积与持续卷积的关系,掌握计算持续卷积的数值措施(近似措施)。
基本命令:1、绘图函数plot stem 等;2、数组生成与数学运算函数,如sin cos exp diff sum trapz quad diff int等;3、sinc sawtooth square gensig stepfun conv xcorr sym syms 等。
(三)差分、微分方程的求解
掌握差分方程的迭代求解;通过将微分方程转化为差分方程的措施,对微分方程进行近似求解,比较和理论计算的成果差异;掌握数值法求解微分方程的措施,如龙格-库塔法等;掌握符号法求解微分方程解析解的措施。
基本函数: ode23 ode45 dsolve
二、 练习题(红色表达做的题目)
1、 用MATLAB生成下列函数,持续信号用plot,离散信号用stem绘图
(1)
(2)
(3)
2、 熟悉ezplot、polar、mesh等指令
(1)用ezplot绘的图。
(2)用mesh绘的三维曲面。的取值范围是
3、 计算数值积分:
(1) (2)
(3) ,,求
4、解方程:
(1) ,y(-1)=1,y(-2)=2, f(k)=ε(k),求y(k)。
(2) (a)求解微分方程,初始条件为:y(0+)=y'(0+)=1,。理论计算全响应,用ezplot绘成果图。范围为区间[0,4]。
(b)用数值法求解需先化为差分方程。化出对应的差分方程。步长取T=0.1。
(c)确定此差分方程的初始条件。
(d)迭代法计算机求解。请编写程序,运行调试。比较数值解的精确程度。
(3) 电压源鼓励的RLC串联回路微分方程为:。求当R=1Ω,C=1F,L=1H时二阶电路的阶跃响应并绘波形图。
(4) 求解微分方程y''+3y'=3f(t),初始条件y'(0)=1.5,y(0)=0,f(t)=ε(t)
三.练习题源代码及试验成果图
1、 用MATLAB生成下列函数,持续信号用plot,离散信号用stem绘图
(1)
t=-5:0.001:5; %确定t的间隔及取值范围
y=heaviside(t); %写出函数体现式
plot(t,y) %用plot函数绘图
t=-2*pi:0.001:2*pi; %确定t的间隔及取值范围
y=sin(t).*heaviside(t); %写出函数体现式
plot(t,y) %用plot函数绘图
t=-4*pi:0.001:4*pi; %确定t的间隔及取值范围
y=exp(-1*t).*cos(t).*heaviside(t); %写出函数体现式
plot(t,y) %用plot函数绘图
>> t=-3:0.001:3; %确定t的间隔及取值范围
y=heaviside(t+1)-heaviside(t-1);%宽度为2的门函数
plot(t,y) %用plot函数绘图
>> t=-3*pi:pi/100:3*pi;%确定t的间隔及取值范围
y=sinc(3*t/pi); %写出函数体现式
plot(t,y) %用plot函数绘图
>> k=-12:12; %确定k的取值范围及步长
fk=cos(pi/2*k); %fk函数
stem(k,fk) %用plot函数绘制离散图
2.用mesh绘的三维曲面。的取值范围是
x=-8:0.5:8; %对x进行取值
y=x'; %对y在x的范围内取整
X=ones(size(y))*x;
Y=y*ones(size(x)); %取[-8.8]空间范围以0.5的步长去所有值
R=sqrt(X.^2+Y.^2)+eps; %在一定的精度范围内计算R的值,eps用来调整精度的
Z=sin(R)./R; %Z函数
mesh(X,Y,Z);
colormap(hot);
xlabel('x');ylabel('y');zlabel('z');
4、 计算数值积分:
(1)
t=linspace(0,pi,1001); %确定t的取值范围及步长
x=exp(-t).*sin(t);
y=sum(x)*t(2) %用求和法求积分
y =
0.5216
(3) ,,求
dt=0.01;
k1=0:dt:4;
f1=cos(3*k1); %生成信号f1
k2=0:0.01:4;
f2=heaviside(k2)-heaviside(k2-4); %生成信号f2
f=dt*conv(f1,f2); %计算卷积f
k0=0; %序列f 非零样值的起点位置
k3=length(f1)+length(f2)-2; %计算卷积和f 的非零样值的宽度
k=k0:dt:k3*dt; %确定卷积和f 非零样值的时间向量
subplot(2,2,1);
plot(k1,f1);title('f1(t)');xlabel('t');%在子图1 绘f1(t)时域波形图
subplot(2,2,2);
plot(k2,f2);title('f2(t)');xlabel('t'); %在子图2 绘f2(t)时波形图
subplot(2,2,3);
plot(k,f); %画卷积f(t)的时域波形
h=get(gca,'position');
h(3)=2.5*h(3);set(gca,'position',h); %将第三个子图的横坐标范围扩为本来的2.5 倍
title('f(t)=f1(t)*f2(t)');xlabel('t');
4、解方程:
(1) ,y(-1)=1,y(-2)=2, f(k)=ε(k),求y(k)。
>> n=1:15+3;
F=heaviside(n-3);
F(1)=0;F(2)=0; %输入初始条件
Y(1)=2;Y(2)=1; %输入初始条件
%迭代求解
for k=3:18;
Y(k)=F(k)+F(k-1)-2*Y(k-1)-2*Y(k-2);
end
n1=n-3;
stem(n1,Y);xlabel('k');ylabel('f(k)');grid on;
(2) (a)求解微分方程,初始条件为:y(0+)=y'(0+)=1,。理论计算全响应,用ezplot绘成果图。范围为区间[0,4]。
(b)用数值法求解需先化为差分方程。化出对应的差分方程。步长取T=0.1。
(c)确定此差分方程的初始条件。
(d)迭代法计算机求解。请编写程序,运行调试。比较数值解的精确程度。
解:(a)计算知,全响应为yt=(1+e-t-e-3t)ε(t)
下面是理论成果图
>> t=0:0.01:4;
y=(1+exp(-t)-exp(-3*t)).*heaviside(t);
plot(t,y)
(b)上式化为微分方程为
(c) 经计算,初始条件为y(0)=1;y(1)=1.1
(d)>> Ts=0.1; %时间间隔
n=1:4/Ts+3;
F(n)=1;F(1)=0;F(2)=0; %鼓励信号初始条件
Y(4)=1.1;Y(3)=1; %输入初始条件y(4)=;y(3)=1
for k=3:length(n) %迭代求解
Y(k)=(13*F(k)-10*F(k-1)-100*Y(k-2)+240*Y(k-1))/143;
end
n1=(n-3)*Ts;
subplot(2,1,1);plot(n1,Y);
xlabel('t');ylabel('y(t)');title('全响应(数值计算)');grid on;
subplot(2,1,2);ezplot('-exp(-3*t)+exp(-t)+1',[0,4]);
xlabel('t');ylabel('y(t)');title('全响应');grid on;
四.绘图中出现的问题,处理措施及体会
(1)函数与函数相乘时,要用点乘(.*);
(2)>> t=0:0.01:4;
y=(1-exp(-t)).*heaviside(t);
ezplot(t,y)
在调试此程序的时候,会出现Error using ezplot (line 70)
Input must be a string expression, function name, function handle, or INLINE
object.
题目中规定用ezplot绘制成果图,不过调试不出来,因此只好用plot函数绘图,想问一下教员,但愿您能解答一下
(3) n=1:15+3;
F=heaviside(n-3);
F(1)=0;F(2)=0; %输入初始条件
Y(1)=2;Y(2)=1; %输入初始条件
%迭代求解
for k=3:15;
Y(k)=F(k)+F(k-1)-2*Y(k-1)-2*Y(k-2);
end
n1=n-3;
stem(n1,Y);xlabel('k');ylabel('f(k)');grid on;
Error using stem (line 44)
X must be same length as Y
将k=3:15改为k=3:18即可
教 师 评 语
指导教师: 年 月 日
展开阅读全文