Matlab讲义实验报告连续时间信号的分析.docx
《Matlab讲义实验报告连续时间信号的分析.docx》由会员分享,可在线阅读,更多相关《Matlab讲义实验报告连续时间信号的分析.docx(50页珍藏版)》请在冰豆网上搜索。
![Matlab讲义实验报告连续时间信号的分析.docx](https://file1.bdocx.com/fileroot1/2022-12/30/e5ca576f-eaf0-4faf-a003-675b8b5dacf4/e5ca576f-eaf0-4faf-a003-675b8b5dacf41.gif)
Matlab讲义实验报告连续时间信号的分析
连续时间信号的分析
一、实验目的
1.学习使用MATLAB产生基本的连续信号、绘制信号波形。
2.实现信号的基本运算,为信号分析和系统设计奠定基础。
二、实验原理
1、基本信号的产生
时间间隔代替连续信号。
连续指数信号的产生
连续矩形脉冲信号(门信号)的产生。
连续周期矩形波信号的产生。
2、信号的基本运算
相加、相减、相乘、平移、反折、尺度变换。
三、实验内容
1.用MATLAB编程产生正弦信号
,并画图。
代码如下:
clc
clear
f0=5;
w0=2*pi*f0;
t=0:
0.001:
1;
x=2*sin(w0*t+pi/3);
plot(t,x)
title('正弦信号')
2.用MATLAB编程产生信号
,画出波形。
代码如下:
clc
clear
f0=2;
t=0:
0.0001:
2.5;
y=square(w0*t,50);
plot(t,y);
axis([02.5-1.51.5])
title('周期方波');
图形如下:
3.分别画出2中
移位3个单位的信号
、反折后的信号
、尺度变换后的信号
。
代码如下:
clc
clear
t=-10:
0.001:
10;
subplot(3,1,1)
plot(t,f(t-3))
axis([-77-22])
xlabel('t')
ylabel('f(t-3)')
title('移位')
gridon
subplot(3,1,2)
plot(t,f(-t))
axis([-77-22])
xlabel('t')
ylabel('f(-t)')
title('反折')
gridon
subplot(3,1,3)
plot(t,f(3*t))
axis([-77-22])
xlabel('t')
ylabel('f(3t)')
title('尺度变换')
gridon
图形如下:
4.用MATLAB编程画出下图描述的函数。
分别画出
的图形。
代码如下:
clc
clear
t=-10:
0.001:
10;
subplot(5,1,1)
plot(t,fc(t))
axis([-24-13])
xlabel('t')
ylabel('f(t)')
title('f(t)')
gridon
subplot(5,1,2)
plot(t,fc(1-t))
axis([-43-13])
xlabel('t')
ylabel('f(1-t)')
gridon
subplot(5,1,3)
plot(t,fc(3*t+2))
axis([-22-13])
xlabel('t')
ylabel('f(3t+2)')
gridon
subplot(5,1,4)
plot(t,fc(2-t/3))
axis([-610-23])
xlabel('t')
ylabel('f(2-t/3)')
gridon
F=(fc(t)+f(2-t)).*heaviside(1-t)
subplot(5,1,5)
plot(t,fc(2-t/3))
axis([-810-12])
xlabel('t')
gridon
图形如下:
四、实验思考
通过实验我熟悉了各个函数功能并掌握各种变换有助于进一步了解信号的各种变化的方式和意义。
利用Matlab可以求连续、有限时域的零状态响应,求连续、有限时域的零状态响应、冲激响应和阶跃响应。
Matlab可以大大提高效率,对于某些信号或响应的给出形象的物理解释,给自己一个直观的感受。
实验二连续时间系统的时域分析
一、实验目的
1.加深对线性时不变系统中零状态响应概念的理解,掌握其MATLAB的求解方法。
2.加强对卷积运算的理解,验证卷积的一些重要性质。
3.会求给定连续系统的单位冲击响应和阶跃响应。
二、实验原理
1.卷积积分定义
(1)
(2)
MATLABconv()函数:
计算两个离散时间序列的卷积。
性质:
交换律
结合律
分配律
C=conv(a,b)。
连续卷积MATLAB求解
function[y,k]=sconv(f1,f2,k1,k2,T)
y=conv(f1,f2);
y=y*T;
k_start=k1
(1)+k2
(1);
k_end=length(f1)+length(f2)-2;
k=k_start:
T:
(k_start+k_end*T);
给定两个函数
和
求
。
clc
clear
T=0.001;
k1=-1:
T:
5;
f1=2*(k1<4&k1>0);
k2=-1:
T:
3;
f2=(k2>0&k2<2);
[y,k]=sconv(f1,f2,k1,k2,T);
subplot(3,1,1)
plot(k1,f1);
axis([-1,5,0,2.2]);
title(‘f1’);
subplot(3,1,2)
plot(k2,f2);
axis([-1,3,0,1.2]);
title(‘f2’);
subplot(3,1,3)
plot(k,y);
axis([min(k),max(k),min(y),max(y)+0.2]);
title(‘y=f1*f2’);
2.零状态响应、单位冲击响应、单位阶跃响应
概念:
输出响应=零输入响应(初始状态)+零状态响应(输入信号)
LTI系统:
。
阶跃响应:
单位阶跃信号输入+零状态
(4)MATLAB语句:
传递函数建立sys=tf([b,a])b=[b3,b2,b1,b0]a=[a3,a2,a1,a0];
脉冲响应:
h=impulse(sys,t);t-采用时间
任意输入零状态响应:
h=lsim(sys,f,t);f-任意输入函数
单位阶跃响应:
h=step(sys,t);
求微分方程
的单位冲击响应。
比较理论值和计算值。
clear
clc
t=0:
0.01:
5;
b=[1,3];
a=[1,3,2];
sys=tf(b,a);
y=impulse(sys,t);
subplot(2,1,1);
plot(t,y)
title('MATLAB计算解')
y1=2*exp(-t)-exp(-2*t);
subplot(2,1,2)
plot(t,y1);
title('理论解')
figure
(2)
plot(t,abs(y-y1'));
title('误差')
讲解plot语句可以画横向量也可以画纵向量。
向量、矩阵转置“’”。
abs求绝对值。
三、实验内容
1.已知
和
求
,并且画出
、
以及
波形。
代码如下:
clc
clear
T=0.001;
k1=-3:
T:
3;
f1=1*(k1<1&(k1+1)>0);
k2=-3:
T:
3;
f2=2*(k1<1&(k1+1)>0);
[y,k]=sconv(f1,f2,k1,k2,T);
subplot(3,1,1)
plot(k1,f1);
axis([-3,3,0,2]);
subplot(3,1,2)
plot(k2,f2);
axis([-3,3,0,3]);
subplot(3,1,3)
plot(k,y);
axis([-3,3,0,5])
图形如下:
2.已知系统的微分方程为
,求该系统的单位冲激响应并画出相应的波形。
代码如下:
clear
clc
t=0:
0.01:
5;
b=[0,1];
a=[1,6,9];
sys=tf(b,a);
y=impulse(sys,t);
subplot(2,1,1);
plot(t,y)
title('MATLAB计算解')
y1=2*exp(-t)-exp(-2*t);
subplot(2,1,2)
plot(t,y1);
title('理论解')
图形如下:
3.已知系统的微分方程为
,当外加激励信号为
时,系统的零状态响应并画出相关的信号波形。
代码如下:
T=0.001;
t1=0:
T:
5;
b=[3];
a=[1,5,6];
sys=tf(b,a);
x1=1*impulse(sys,t1);
t2=-1:
T:
11
x2=1*exp(-t2).*(t2>=0&t2<=10);
[y,k]=sconv(x1,x2,t1,t2,T);
subplot(3,1,1)
plot(t2,x2);
axis([min(t2),max(t2),min(x2),max(x2)+0.2]);
subplot(3,1,2)
plot(t1,x1);
axis([min(t1),max(t1),min(x1),max(x1)+0.2]);
subplot(3,1,3)
plot(k,y);
图形如下:
4.已知
和
如图3.1所示,求
,并且画出波形。
代码如下:
T=0.001
t1=0:
T:
3;
t2=0:
T:
4;
f1=1*(t1<3&t1>0);
f2=1*(t2<4&t2>0).*(t2/4);
[y,k]=sconv(f1,f2,t1,t2,T)
t3=-1:
T:
1;
f3=2*(t3<1&(t3+1)>0);
plot(t3,f3)
图形如下:
四、实验思考
通过实验我熟悉了各个函数功能并掌握各种变换有助于进一步了解信号的各种变化的方式和意义。
加深了对线性时不变系统中零状态响应概念的理解,掌握其MATLAB的求解方法。
加强了对卷积运算的理解,验证卷积的一些重要性质。
会求给定连续系统的单位冲击响应和阶跃响应
实验三连续时间系统的频域分析
一、实验目的
4.理解周期信号的傅里叶分解,掌握傅里叶系数的计算方法。
5.深刻理解和掌握非周期信号的傅里叶变换和其计算方法。
6.熟悉傅里叶变换的性质,并能应用其性质实现信号的幅度调制。
7.理解连续时间系统的频域分析原理和方法,掌握连续系统的频域响应求解方法,并画出相应的幅频和相频响应曲线。
二、实验原理
三、周期信号的傅里叶分解
三角函数形式
(1)
式中傅里叶系数
,
指数函数形式
(2)
式中傅里叶系数
(3)
MATLAB实现:
数值积分——quad()函数quadl()函数
y=quad(‘func’,a,b)//func为字符串,表示被积函数.m文件的文件名
y=quad(@myfun,a,b)//@表示函数句柄。
符号函数——int()函数
四、周期信号的频谱
幅度谱和相位谱——傅里叶系数直接获得。
4-1给定周期为4,脉冲宽度为2,幅值为0.5的矩形信号,计算傅里叶级数,绘制幅度谱和相位谱。
将其带入
,求N=10实的合成波形。
clc
clear
T=4;
width=2;
A=0.5;
t1=-T/2:
0.001:
T/2;
ft1=0.5*[abs(t1)t2=[t1-2*Tt1-Tt1t1+Tt1+2*T];
ft=repmat(ft1,1,5);
subplot(4,1,1);
plot(t2,ft);
xlabel(‘t’);
ylabel(‘时域波形’)
gridon;
w0=2*pi/T;
N=10;
K=-N:
N;
fork=-N:
N
factor=[‘exp(-j*t*’,num2str(w0),’*’,num2str(k),’)’];
f_t=[num2str(A),’*rectpuls(t,2)’];
Fn(k+1+N)=quad([f_t,’.*’,factor],-T/2,T/2)/T;
end
subplot(4,1,2)
stem(K*w0,abs(Fn));
xlabel(‘nw0’);
ylabel(‘幅度谱’);
gridon;
ph=angle(Fn);
subplot(4,1,3)
stem(K*w0,ph);
xlabel(‘nw0’);
ylabel(‘相位谱’);
gridon;
t=-2*T:
0.01:
2*T;
K=[-N:
N]’;
Ft=Fn*exp(j*w0*K*t);
subplot(4,1,4)
plot(t,Ft)
xlabel(‘t’);
ylabel(‘合成波形’)
gridon;
讲解
1.B=repmat(A,M,N)createsalargematrixBconsistingofanM-by-N
tilingofcopiesofA.ThesizeofBis[size(A,1)*M,size(A,2)*N].
Thestatementrepmat(A,N)createsanN-by-Ntiling.复制矩阵函数
2.T=Num2str(X)convertsthematrixXintoastringrepresentationT
withabout4digitsandanexponentifrequired.Thisisusefulfor
labelingplotswiththeTITLE,XLABEL,YLABEL,andTEXTcommands.数值到字符转换。
五、非周期信号的傅里叶变换和性质
傅里叶变换
——频谱密度函数(4)
傅里叶逆变换
(5)
Matlab实现:
符号函数syms定义的变量——fourier()函数,ifourier()函数。
4-2求单边函数
的傅里叶变换,画出其幅频特性和相频特性图。
clc
clear
symstwf;
f=exp(-2*t)*sym('Heaviside(t)');
F=fourier(f);
subplot(2,1,1);
ezplot(f,[0,2,0,1.2]);
subplot(2,1,2);
ezplot(abs(F),[-10:
10]);
讲解:
1.ezplot(FUN,[A,B])plotsFUN(X)overA2.ezplot(FUN2,[XMIN,XMAX,YMIN,YMAX])plotsFUN2(X,Y)=0over
XMIN3.HeavisideStepfunction.
Heaviside(X)is0forX<0,1forX>0,andNaNforX==0.
4-3求
的傅里叶逆变换。
clc
clear
symstw
F=1/(1+w^2);
f=ifourier(F,w,t);
ezplot(f);
讲解:
1.ezplot(FUN)plotsthefunctionFUN(X)overthedefaultdomain-2*PI2.ezplot()函数无法画出
函数。
调制
(6)
7)
4.连续系统的频域分析和频域响应
(8)
,
(9)
MATLAB实现:
freqs()函数
H=freqs(B,A,W)returnsthecomplexfrequencyresponsevectorHofthefilterB/A:
nb-1nb-2
B(s)b
(1)s+b
(2)s+...+b(nb)
H(s)=----=-------------------------------------
na-1na-2
A(s)a
(1)s+a
(2)s+...+a(na)
giventhenumeratoranddenominatorcoefficientsinvectorsBandA.ThefrequencyresponseisevaluatedatthepointsspecifiedinvectorW(inrad/s).ThemagnitudeandphasecanbegraphedbycallingFREQS(B,A,W)withnooutputarguments.
[H,W]=FREQS(B,A)automaticallypicksasetof200frequenciesWonwhichthefrequencyresponseiscomputed.FREQS(B,A,N)picksNfrequencies.
三、实验内容
1.求下列信号的傅里叶变换表达式并画图。
代码如下:
clc
clear
symstwf;
f=exp(-2*abs(t));
F=fourier(f);
subplot(2,1,1);
ezplot(f,[0,2]);
subplot(2,1,2);
ezplot(abs(F),[-10:
10])
图形如下:
2.求
的傅里叶逆变换式并且画图。
代码如下:
clc
clear
symstw
F=2*sin(w)/w;
f=ifourier(F,w,t);
ezplot(f);
图形如下:
4.画出N=30时,例4-1的傅里叶级数,绘制幅度谱和相位谱。
将其带入
,求N=30实的合成波形。
代码如下:
clc
clear
T=4;
width=2;
A=0.5;
t1=-T/2:
0.001:
T/2;
ft1=0.5*[abs(t1)t2=[t1-2*Tt1-Tt1t1+Tt1+2*T];
ft=repmat(ft1,1,5);
subplot(4,1,1);
plot(t2,ft);
xlabel('t');
ylabel('时域波形')
gridon;
w0=2*pi/T;
N=30;
K=-N:
N;
fork=-N:
N
factor=['exp(-j*t*',num2str(w0),'*',num2str(k),')'];
f_t=[num2str(A),'*rectpuls(t,2)'];
Fn(k+1+N)=quad([f_t,'.*',factor],-T/2,T/2)/T;
end
subplot(4,1,2)
stem(K*w0,abs(Fn));
xlabel('nw0');
ylabel('幅度谱');
gridon;
ph=angle(Fn);
subplot(4,1,3)
stem(K*w0,ph);
xlabel('nw0');
ylabel('相位谱');
gridon;
t=-2*T:
0.01:
2*T;
K=[-N:
N]';
Ft=Fn*exp(j*w0*K*t);
subplot(4,1,4)
plot(t,Ft)
xlabel('t');
ylabel('合成波形')
gridon;
图形如下:
四、实验思考
通过实验我熟悉了各个函数功能并掌握各种变换有助于进一步了解信号的各种变化的方式和意义。
理解周期信号的傅里叶分解,掌握傅里叶系数的计算方法。
深刻理解和掌握了非周期信号的傅里叶变换和其计算方法。
熟悉了傅里叶变换的性质,并能应用其性质实现信号的幅度调制。
理解了连续时间系统的频域分析原理和方法,掌握了连续系统的频域响应求解方法。
实验四连续时间系统的复频域分析
一、实验目的
1.深刻理解和掌握拉普拉斯变换的运算方法和其性质。
2.熟练掌握利用部分分式展开的方法求解拉普拉斯逆变换,并能用MATLAB实现。
3.掌握复频域系统函数
的意义,并能够熟练画出其频谱。
4.掌握利用复频域系统函数
的零、极点分布对连续时间系统进行复频域分析的原理和方法。
二、实验原理
1.拉普拉斯变换
(1)
MATLAB实现:
F=laplace(f)f=ilaplace(F)——F和f都是符号函数。
5-1用laplace和ilaplace求:
(1)
的拉普拉斯变换
(2)
的拉普拉斯逆变换
(1)clc
clear
symsat;
F=laplace(exp(-2*t)*cos(a*t))
F=(s+2)/(s^2+4*s+4+a^2)
(2)
clcclear
symss
F=1/[(s+1)*(s+2)];
f=ilaplace(F);
f=exp(-t)-exp(-2*t)
2.部分分式展开法求拉普拉斯逆变换
(2)
特征多项式
,特征方程
,极点的概念。
MATLAB实现:
[rpk]=residue(num,den)
r——系数向量
p——极点
k——常数项
B(s)R
(1)R
(2)R(n)
----=--------+--------+...+--------+K(s)
A(s)s-P
(1)s-P
(2)s-P(n)
。
重根情况
R(j)R(j+1)R(j+m-1)
--------+------------+...+------------
s-P(j)(s-P(j))^2(s-P(j))^m
3.系统传递函数和频域响应函数
(3)
(4)
4.系统传递函数零极点与系统稳定性
稳定——极点在左边平面。
MATLAB实现:
roots()函数p=roots(a),p为多项式系数向量。
pzmap函数pzmap(sys)sys系统模型syst=tf(b,a)b,a分别是H(s)分子分母多项式系数函数。
5-5求传递函数
的零极点分布图。
clc
clear
num=[1-1];
den=[122];
zs=roots(num);
ps=roots(den);
figure
(1);
plot(real(zs),imag(zs),'o',real(ps),imag(ps),'kx','markersize',12);
axis([-22-22]);
gridon
sys=tf(num,den);
figure
(2)
pzmap(sys);
axis([-22-22]);
讲解
1.函数real()和函数imag()计算一个复数实部和虚部。
2.figure画另一个图形
3.再分析plot函数
x=-pi:
pi/10:
pi;
y=tan(sin(x))-sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10