admin 管理员组

文章数量: 887031


2023年12月23日发(作者:switch语句中表达式的类型)

.

信号与系统MATLAB第一次实验报告

一、实验目的

1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。

2.学会运用MATLAB表示常用连续时间信号的方法

3.观察并熟悉一些信号的波形和特性。

4.学会运用MATLAB进行连续信号时移、反折和尺度变换。

5.学会运用MATLAB进行连续时间微分、积分运算。

6.学会运用MATLAB进行连续信号相加、相乘运算。

7.学会运用MATLAB进行连续信号的奇偶分解。

二、实验任务

将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。

三、实验内容

软件基本运算入门。

1). MATLAB软件的数值计算:

算数运算

向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。

矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。

精选范本

.

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”

软件简单二维图形绘制

1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)

2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)

3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])

4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)

5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)

6).输出:grid on

举例1:

举例2:

精选范本

.

程序流程控制

1).for循环:for循环变量=初值:增量:终值

循环体

End

2).while循环结构:while 逻辑表达式

循环体

End

3).If分支:

(单分支表达式)

if 逻辑表达式

程序模块

End

(多分支结构的语法格式)

if 逻辑表达式1

程序模块1

Else if 逻辑表达式2

程序模块2

else 程序模块n

End

4).switch分支结构

Switch 表达式

Case 常量1

程序模块1

Case 常量2

程序模块2

……

Otherwise 程序模块n

End

4.典型信号的MATLAB表示

1).实指数信号: y=k*exp(a*t)

举例:

精选范本

.

2).正弦信号:y=k*sin(w*t+phi)

3).复指数信号:

举例:

4).抽样信号

5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)

6).三角波脉冲信号:y=tripuls(t,width,skew)

(skew的取值在-1~+1之间,若skew取值为0则对称)

周期三角波信号或锯齿波:Y=sawtooth(t,width)

5.单位阶跃信号的MATLAB表示

6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折

精选范本

.

7.连续时间信号的微分和积分运算

1).连续时间信号的微分运算:

语句格式:diff(function,’variable’,n)

Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数

2).连续时间信号的积分运算:

语句格式:int(function,’variable’,a,b)

Function:被积函数 variable:积分变量 a:积分下限 b:积分上限 (a&b默认是不定积分)

8.信号的相加与相乘运算

9.信号的奇偶分解

四、小结

这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。

五、作业

2-3-(1):

3.利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。

精选范本

.

3.3-1.(1)

3.试用MATLAB命令出3-7所示的偶分量和奇分量。

精选范本

.

精选范本

.

信号与系统MATLAB第二次实验报告

一、 实验目的

1.学会运用MATLAB实现连续时间信号的卷积。

2.学会运用MATLAB符号运算法求连续时间信号的卷积。

3.学会运用MATLAB数值计算法求连续时间信号的卷积。

二、实验任务

能够独立的编辑出卷积函数的matlab代码,并且能够输出对应卷积的图形。学会使用符号运算法和数值计算法计算卷积。

三、 实验内容

1. MATLAB符号运算法求连续时间信号的卷积。

例4-2:

syms tao;

t=sym('t','positive');

xt1=sym('Heaviside(t)-Heaviside(t-1)');

xt2=sym('Heaviside(t)-Heaviside(t-1)');

xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);

yt=int(xt_tao,tao,0,t);

yt=simplify(yt);

ezplot(yt,[0,2]);grid on

精选范本

.

2.MATLAB数值计算法求连续时间信号的卷积。

1).可调用MATLAB中的conv( )函数近似地数值求解连续信号的卷积积分。

2).例4-3:

dt=0.01;t=-1:dt:2.5;

f1=uCT(t)-uCT(t-2);

f2=exp(-3*t).*uCT(t);

f=conv(f1,f2)*dt;n=length(f);tt=(0:n-1)*dt-2;

subplot(221);plot(t,f1);

axis([-1,2.5,-1,2]);title('f1(t)');xlabel('t');grid on;

subplot(222);plot(t,f2);

axis([-1,3,-1,2]);title('f2(t)');xlabel('t');grid on;

subplot(212);plot(tt,f);

title('f(t)=f1(t)*f2(t)');xlabel('t');grid on; //稍复杂

可以利用ctsconv函数求,简单许多。

//以下程序和上面程序出来的图一样

//简化了大部分编程内容

dt=0.01;t1=-1:dt:2.5; //-1是赋值下限,2.5是赋值上限

f1=uCT(t1)-uCT(t1-2); //f1函数的输入 uCT是u(t)函数

t2=t1;

f2=exp(-3*t2).*uCT(t2);

[t,f]=ctsconv(f1,f2,t1,t2,dt); //直接调用cstconv函数进行卷积的运算

//ctsconv( )函数括号里面要放进两个参与卷积的函数、自变量以及dt。

精选范本

.

3).例4-4:

dt=0.01;t1=-0.5:dt:2.5;

f1=uCT(t1)-uCT(t1-1);

t2=t1;

f2=uCT(t2)-uCT(t2-1);

[t,f]=ctsconv(f1,f2,t1,t2,dt);

四、 实验小结

这一章节的实验着重练习卷积函数的编程,对于卷积函数的输出值以及输出图形这两类。

五、 实验作业

作业:

dt=0.01;t1=0:dt:3;

f1=uCT(t1)+2*uCT(t1-1)-2*uCT(t1-2)-uCT(t1-3);

t2=t1;

f2=uCT(t2)-uCT(t2-2);

[t,f]=ctsconv(f1,f2,t1,t2,dt);

精选范本

.

第三次实验报告

一、 实验目的

1. 学会运用MATLAB符号求解连续系统的零输入响应和零状态响应。

2. 学会运用MATLAB数值求解连续系统的零状态响应。

3. 学会运用MATLAB求解连续系统的冲激响应和阶跃响应。

4. 学会运用MATLAB卷积积分求解系统的零状态响应。

二、 实验任务

能够熟练地利用MATLAB软件输入一个微分方程随即输出其零输入状态、零响应状态、冲激响应、阶跃响应。分别利用符号求解法、数值求解法、卷积积分法。

三、实验内容

1.连续时间系统零输入响应和零状态响应的符号求解。

利用dsolve函数可以求解系统微分方程的零输入响应与零状态响应。可实现常系数微分方程的符号求解,格式:

Dsolve(‘eq1,eq2,…’,’cond1,cond2,…’);

微分或导数的输入是用Dy,D2y,D3y…来表示一阶导数、二阶导数…

参数cond1,cond2表示各初始条件或起始条件。

2.连续时间系统零状态响应的数值求解。

提供了对LTI系统的零状态响应进行数值仿真的函数lsim,该函数可以求解零初始条件下微分方程的数值解,其语句为:

精选范本

.

Y=lsim(sys,f,t);

t :计算系统响应的时间抽样向量

f :系统的输入信号向量

sys :LTI系统模型,用来表示微分方程、差分方程或者状态方程

sys的格式:sys=tf(b,a)

例题:

ts=0;te=5;dt=0.01;

sys=tf([6],[1,5,6]);

t=ts:dt:te;

f=10*sin(2*pi*t).*uCT(t);

y=lsim(sys,f,t);

plot(t,y);grid on

xlabel('time(sec)'),ylabel('y(t)');

title('零状态响应')

3.连续时间系统冲激响应和阶跃响应的求解

对于连续LTI系统的冲激响应和阶跃响应的数值解,可分别用函数impulse和step来求解。语句分别是:

Y=impulse(sys,t)

Y=step(sys,t)

t:表示计算系统响应的时间抽样点向量,sys表示LTI系统

例题:

t=0:0.0001:4;

sys=tf([1,16],[1,2,32]);

h=impulse(sys,t);

精选范本

.

g=step(sys,t);

subplot(211);plot(t,h),grid on

xlabel('time(sec)'),ylabel('time(h(t)');title('冲激响应');

subplot(212);plot(t,g),grid on

xlabel('time(sec)'),ylabel('timeg(t)');title('阶跃响应')

4.利用卷积积分法求系统的零状态响应

四、实验小结

本次实验,学会使用软件求微分方程的求解方程,引入了两个新函数impulse求冲激响应和step求阶跃响应,同时注意cond函数的使用。一般在程序的后面会有simplify(f),f即为输出的函数,如果yt=yzi+yzs,若想要输出yt,则也可以表示为yt=simplify(yzi+yzs).

五、实验作业

T1.(1):

ts=0;te=5;dt=0.01;

sys=tf([1],[1,4,3]);

t=ts:dt:te;

f=1*uCT(t);

y=lsim(sys,f,t);

plot(t,y),grid on

xlabel('time(sec)'),ylabel('y(t)')

title('零状态响应')

精选范本

.

T2.(1):

eq='D2y+3*Dy+2*y=0';

cond='y(0)=1,Dy(0)=2';

yzi=dsolve(eq,cond);yzi=simplify(yzi)

eq1='D2y+3*Dy+2*y=Dx+3*x';

eq2='x=exp(-3*t)*Heaviside(t)';

cond='y(-0.01)=0,Dy(-0.01)=0';

yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs.y)

yt=simplify(yzi+yzs)

subplot(311);ezplot(yzi,[0,8]);title('零输入响应');grid on

subplot(312);ezplot(yzs,[0,8]);title('零状态响应');grid on

subplot(313);ezplot(yt,[0,8]);title('完全响应');grid on

精选范本

.

第四次MATLAB实验报告

一、 实验目的

1. 学会运用MATLAB分析傅里叶级数展开,深入理解傅里叶级数的物理含义。

2. 学会运用MATLAB分析周期信号的频谱特性。

3. 学会运用MATLAB求连续时间信号的傅里叶变换。

4. 学会运用MATLAB求连续时间信号的频谱图。

5. 学会运用MATLAB分析连续时间的傅里叶变换的性质。

二、 实验任务

能熟练运用MATLAB编程输入一个函数随即输出其函数对应的傅里叶变换之后的函数以及图形。利用MATLAB

三、实验内容

四、实验小结

五、实验作业

t=-1:0.001:1;

omega=2*pi;

y=square(2*pi*t,50);

plot(t,y),grid on

xlabel('t'),ylabel('square signal')

axis([-1,1,-1.5,1.5]);

n_max=([1,3,5,11,47]);

N=length(n_max);

for k=1:N

n=1:2:n_max(k);

b=4./(pi*n);

x=b*sin(omega*n'*t);

figure;

plot(t,y);

hold on;

plot(t,x);

hold off;

xlabel('t'),ylabel('part');

axis([-1,1,-2,2]),grid on

title(['max=',num2str(n_max(k))]);

end

精选范本

.

精选范本

.

精选范本

.

t=-1:0.001:1;

omega=2*pi;

y=-(sawtooth(pi*5)/2+0.5)+1;

plot(t,y),grid on

xlabel('t'),ylabel('triangel signal')

axis([-1,1,-1.5,1.5]);

n_max=([1,3,5,11,47]);

精选范本

.

N=length(n_max);

for k=1:N

n=1:2:n_max(k);

c=n.^2;

b=4./(pi*n);

x=b*cos(omega*n'*t)+0.5;

figure;

plot(t,y);

hold on;

plot(t,x);

hold off;

xlabel('t'),ylabel('part');

axis([-1,1,-2,2]),grid on

title(['max=',num2str(n_max(k))]);

end

精选范本

.

精选范本

.

精选范本

.

ft=sym('exp(-2*t)*Heaviside(t)');

Fw=fourier(ft);

subplot(211);

ezplot(abs(Fw));title('fudu');grid on

phase=atan(imag(Fw)/real(Fw));

subplot(212);

ezplot(phase);title('xiangwei');grid on

精选范本

.

作业:

ft=sym('(sin(pi*t)/(pi*t))^2');

Fw=fourier(ft);

subplot(211);

ezplot(abs(Fw)),title('fudu');grid on

phase=atan(imag(Fw)/real(Fw));

subplot(212);

ezplot(phase);title('xiangwei');grid on

精选范本

.

w=-3*pi:0.01:3*pi;

b=[13,7];

a=[1,10,8,5];

H=freqs(b,a,w);

subplot(211);

plot(w,abs(H)),xlabel('omega(r/s)'),ylabel('|H(omega)|');

title('H(w)的幅频特性');grid on

subplot(212);

plot(w,angle(H)),xlabel('omega(r/s)'),ylabel('phi(omega)');

title('H(w)的相频特性');grid on

精选范本

.

t=-2:0.001:2;

omega=pi;

y=-(sawtooth(pi*t,0.5)/2+0.5)+1;

plot(t,y),grid on

xlabel('t'),ylabel('triangel signal')

n_max=([1,3,5,11,47]);

N=length(n_max);

for k=1:N

n=1:2:n_max(k);

c=n.^2;

b=4./(pi*pi*c);

x=b*cos(omega*n'*t)+0.5;

figure;

plot(t,y);

精选范本

.

hold on;

plot(t,x);

hold off;

xlabel('t'),ylabel('part');

axis([-2,2,0,1.5]),grid on

title(['max=',num2str(n_max(k))]);

end

精选范本

.

精选范本

.

精选范本


本文标签: 信号 时间 函数 响应 系统