MATLAB实验报告14.docx

上传人:b****1 文档编号:3186057 上传时间:2023-05-05 格式:DOCX 页数:31 大小:682.09KB
下载 相关 举报
MATLAB实验报告14.docx_第1页
第1页 / 共31页
MATLAB实验报告14.docx_第2页
第2页 / 共31页
MATLAB实验报告14.docx_第3页
第3页 / 共31页
MATLAB实验报告14.docx_第4页
第4页 / 共31页
MATLAB实验报告14.docx_第5页
第5页 / 共31页
MATLAB实验报告14.docx_第6页
第6页 / 共31页
MATLAB实验报告14.docx_第7页
第7页 / 共31页
MATLAB实验报告14.docx_第8页
第8页 / 共31页
MATLAB实验报告14.docx_第9页
第9页 / 共31页
MATLAB实验报告14.docx_第10页
第10页 / 共31页
MATLAB实验报告14.docx_第11页
第11页 / 共31页
MATLAB实验报告14.docx_第12页
第12页 / 共31页
MATLAB实验报告14.docx_第13页
第13页 / 共31页
MATLAB实验报告14.docx_第14页
第14页 / 共31页
MATLAB实验报告14.docx_第15页
第15页 / 共31页
MATLAB实验报告14.docx_第16页
第16页 / 共31页
MATLAB实验报告14.docx_第17页
第17页 / 共31页
MATLAB实验报告14.docx_第18页
第18页 / 共31页
MATLAB实验报告14.docx_第19页
第19页 / 共31页
MATLAB实验报告14.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实验报告14.docx

《MATLAB实验报告14.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告14.docx(31页珍藏版)》请在冰点文库上搜索。

MATLAB实验报告14.docx

MATLAB实验报告14

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

一、实验目的

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

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

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

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

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

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

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

二、实验任务

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

三、实验内容

1.MATLAB软件基本运算入门。

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

算数运算

向量运算:

1.向量元素要用”[]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。

2.x=x0:

step:

xn.其中x0位初始值,step表示步长或者增量,xn为结束值。

矩阵运算:

1.矩阵”[]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。

2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。

3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:

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

2).MATLAB软件的符号运算:

定义符号变量的语句格式为”syms变量名”

2.MATLAB软件简单二维图形绘制

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).输出:

gridon

举例1:

举例2:

3.matlab程序流程控制

1).for循环:

for循环变量=初值:

增量:

终值

循环体

End

2).while循环结构:

while逻辑表达式

循环体

End

3).If分支:

(单分支表达式)

if逻辑表达式

程序模块

End

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

if逻辑表达式1

程序模块1

Elseif逻辑表达式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:

symstao;

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]);gridon

 

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');gridon;

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

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

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

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

可以利用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);gridon

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),gridon

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

subplot(212);plot(t,g),gridon

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),gridon

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('零输入响应');gridon

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

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

 

第四次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),gridon

xlabel('t'),ylabel('squaresignal')

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

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

N=length(n_max);

fork=1:

N

n=1:

2:

n_max(k);

b=4./(pi*n);

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

figure;

plot(t,y);

holdon;

plot(t,x);

holdoff;

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

axis([-1,1,-2,2]),gridon

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),gridon

xlabel('t'),ylabel('triangelsignal')

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

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

N=length(n_max);

fork=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);

holdon;

plot(t,x);

holdoff;

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

axis([-1,1,-2,2]),gridon

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

end

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

Fw=fourier(ft);

subplot(211);

ezplot(abs(Fw));title('fudu');gridon

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

subplot(212);

ezplot(phase);title('xiangwei');gridon

作业:

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

Fw=fourier(ft);

subplot(211);

ezplot(abs(Fw)),title('fudu');gridon

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

subplot(212);

ezplot(phase);title('xiangwei');gridon

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)的幅频特性');gridon

subplot(212);

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

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

t=-2:

0.001:

2;

omega=pi;

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

plot(t,y),gridon

xlabel('t'),ylabel('triangelsignal')

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

N=length(n_max);

fork=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);

holdon;

plot(t,x);

holdoff;

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

axis([-2,2,0,1.5]),gridon

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

end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2