北京理工大学信号与系统实验报告文档格式.docx
- 文档编号:20279058
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:84
- 大小:715.24KB
北京理工大学信号与系统实验报告文档格式.docx
《北京理工大学信号与系统实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《北京理工大学信号与系统实验报告文档格式.docx(84页珍藏版)》请在冰豆网上搜索。
其中,function_name为被积函数名,a、b为积分区间。
对于符号对象表示的连续时间信号,MATLAB提供了diff函数和quad函数分别用于求微分和积分。
3.离散时间信号的MATLAB表示
离散时间信号仅在一些离散时刻有定义。
在MATLAB中离散时间信号需要使用两个向量来表示,其中一个向量用于表示离散的时间点,另一个向量表示在这些时间点上的值。
例如对于如下时间信号
采用MATLAB可以表示如下:
>
n=-3:
4;
x=[-32-121-123];
stem(n,x,'
filled'
);
xlabel('
n'
title('
x(n)'
Stem函数用于绘制离散时间信号波形,为了与我们表示离散时间信号的习惯相同,在绘图时一般需要添加‘filled’选项,以绘制实心的杆状图形。
上述命令绘制的信号时域波形如图3所示。
4.离散时间信号的时域运算
离散时间信号的相加相乘是将两个信号对应的时间点上的值相加或相乘,可以直接使用算术运算的运算符“+”和“*”来计算。
离散时间信号的位移,则可看作是将表示时间的向量平移,而表示对应时间点上的值的向量不变。
离散时间信号的反转,则可以看作是将表示时间的向量和表示对应时间点上的值的向量以零点为基准点,一纵轴为对称轴反折,向量的反折可以利用MATLAB的fliplr函数实现。
三、实验内容
(1)、利用MATLAB绘制下列连续时间信号的波形:
1、
t=0:
0.001:
10;
x=(1-exp(-0.5*t)).*(heaviside(t));
plot(t,x)
1
2
3
4
5
6
7
8
9
10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
2、
x=cos(pi*t).*(heaviside(t)-heaviside(t-2));
-1
-0.8
-0.6
-0.4
-0.2
3、
x=abs(t)/2.*cos(pi*t).*(heaviside(t+2)-heaviside(t-2));
4、
x=exp(-t).*sin(2*pi*t).*(heaviside(t)-heaviside(t-3));
(2)、利用MATLAB绘制下列离散时间信号的波形:
x=heaviside(n-3);
stem(n,x,'
)
x=(-1/2).^n.*heaviside(n);
)
x=n.*(heaviside(n)-heaviside(t-5));
1.5
2.5
3.5
x=sin(n*pi/2).*heaviside(n);
(3)、利用MATLAB生成并绘制连续周期矩形波信号,要求周期为2,峰值为3,显示三个周期波形。
6;
x=square(t*pi).*3;
-3
-2
(4)、已知信号
用MATLAB绘出下列信号的波形
x1=(-t+4).*(heaviside(t)-heaviside(t-4));
x2=sin(2*pi*t);
x3=x1+x2;
plot(t,x3)
x4=x1.*x2;
plot(t,x4)
-4
symst;
x1=(4-t)*(heaviside(t)-heaviside(t-4));
x1=(4+t)*(heaviside(-t)-heaviside(t+4));
x5=x1+x2;
ezplot(t,x5);
5)、已知离散时间信号x(n)波形(
),用MATLAB绘出x(n)、x(-n)、x(n+2)和x(n-2)的波形。
n=-3:
x=[0,1,2,3,3,3,3,0];
n1=-fliplr(n);
x1=fliplr(x);
n2=n+2;
n3=n-2;
subplot(221);
subplot(222);
stem(n1,x1,'
subplot(223);
stem(n2,x,'
subplot(224);
stem(n3,x,'
(6)、有MATLAB编程绘制下列信号的时域波形,观察信号是否为周期信号?
若是周期信号,周期是多少?
若不是周期信号,请说明原因。
x=1+cos(pi/4*t-pi/3)+2*cos(pi/2*t-pi/4)+cos(2*pi*t);
ezplot(x,[-20,20]);
-10
-8
-6
是周期信号T=8s
x=sin(t)+2*sin(pi*t);
-20
-15
-5
15
20
不是周期信号
n=1:
20;
x=2+3*sin(2*n/3*pi-pi/8);
是周期信号T=3s
x=cos(n*pi/6)+sin(n*pi/3)+cos(n*pi/2);
是周期信号T=12s
实验二LTI系统的时域分析
一、实验目的
1、掌握利用MATLAB对系统进行时域分析的方法。
2、掌握连续时间系统零状态响应、冲激响应和阶跃响应的求解方法。
3、掌握求解离散时间系统响应、单位抽样响应的方法。
4、加深对卷积积分和卷积和的理解。
掌握利用计算机进行卷积积分和卷积和计算的方法。
二、实验原理与方法
1、连续时间系统时域分析的MATLAB实现
(1)、连续时间系统的MATLAB表示
LTI连续系统通常可以由系统微分方程描述,设LTI因果系统的微分方程一般式为:
则在MATLAB里,可以建立系统模型如下:
b=[bM,bM-......b0];
a=[aN,aN-1......a0];
sys=tf(b,a);
其中,tf是用于创建系统模型的函数,向量a与b的元素是以微分方程求导的降幂次序来排列的,如果有缺项,应用0补齐。
(2)、连续时间系统的零状态响应
零状态响应是指系统的初始状态为零,仅由输入信号引起的响应。
MATLAB提供了一个用于求解零状态响应的函数lism,其调用格式如下:
lsim(sys,x,t)绘出输入信号及响应的波形,x和t表示输入信号数值向量和时间向量。
y=lsim(sys,x,t)这种调用格式不绘出波形,而是返回响应的数值向量。
(3)、连续时间系统的冲激响应与阶跃响应。
MATLAB提供了函数impluse来求指定时间范围内,由模型sys描述的连续时间系统的单位冲激响应。
其调用格式如下:
impulse(sys)在默认的时间范围内绘出系统冲激响应的时域波形。
impulse(sys,T)绘出系统在0-T范围内冲激响应的时域波形。
impulse(sys,ts:
tp:
te)绘出系统在ts-tp范围内,以tp为时间间隔取样的冲激响应的时域波形。
[y,t]=impulse(…)该调用格式不绘出单位冲激响应波形,而是返回单位冲激响应的数值向量及其对应的时间向量。
函数step用于求解单位阶跃响应,函数step同样也有如下几种调用格式:
step(sys)
step(sys,T)
step(sys,ts:
te)
[y,t]=step(…)
2、离散时间系统时域分析的MATLAB实现
(1)、离散时间系统的MATLAB表示。
LTI离散系统通常可以由系统差分方程描述,设描述系统的差分方程为:
则在MATLAB里,可以用如下两个向量来表示这个系统:
b=[b0,b1……,bM]
a=[a0,a1……,aN]
(2)、离散时间系统对任意输入的响应。
MATLAB提供求LTI离散系统响应的专用函数fliter,该函数用于求取差分方程描述的离散时间系统在指定时间范围内对输入序列所产生的响应,其调用格式如下:
y=filter(b,a,x)
其中,x为输入序列,y为输出序列,x,y所对应的时间区间必须相同。
(3)、离散时间系统的单位抽样响应。
MATLAB提供了函数impz来求指定时间范围内,由向量b和a描述的离散时间系统的单
位抽样响应。
impz(b,a)在默认的时间范围内绘出系统抽样响应的时域波形。
impz(b,a,T)绘出系统在0-N范围内冲激响应的时域波形。
impz(b,a,ns:
ne)绘出系统在ns-ne范围的冲激响应的时域波形。
[y,n]=impz(…)该调用格式不绘出单位冲激响应波形,而是返回单位冲激响应的数值向量及其对应的时间向量。
3、卷积和与卷积积分
(1)、离散时间序列的卷积和
卷积和是离散系统时域分析的基本方法之一,离散时间序列
和
的卷积和
定义如下:
MATLAB提供了函数conv来求两个离散序列的卷积和。
x=conv(x1,x2)
(2)、连续时间信号的卷积积分
卷积积分是连续系统时域分析的有效方法和工具之一,连续时间信号和的卷积积分定义如下:
用户可根据书上内容自定义一个用于计算卷积积分的通用函数sconv。
1、已知描述模拟低通、高通、带通和带阻滤波器的微分方程如下,试采用MATLAB绘出各系统的单位冲激响应和单位阶跃响应波形。
a=[1sqrt
(2)1];
b=[1];
sys=tf(b,a);
impulse(sys)
-0.1
ImpulseResponse
Time(seconds)
Amplitude
b=[100];
-1.6
-1.4
-1.2
a=[111];
b=[10];
12
b=[101];
2、已知某系统可以由微分方程描述
y(n)+y(n-1)+y(n-2)=x(n)
①请利用MATLAB绘出该系统冲激响应和阶跃响应的时域波形;
②根据冲激响应的时域波形分析系统的稳定性;
③如果系统的输入为,求系统的零状态响应;
a=[116];
step(sys)
14
0.05
0.15
0.25
0.35
StepResponse
是稳定系统
0.01:
x=exp(-t);
lsim(sys,x,t)
1.2
LinearSimulationResults
3、已知描述离散系统的差分方程如下,试采用MATLAB绘出各系统的单位抽样响应,并根据单位抽样响应的时域波形分析系统的稳定性。
1y(n)+3y(n-1)+2y(n-2)=x(n)
a=[132];
impz(b,a)
不是稳定系统
5、采用MATLAB计算如下两个序列的卷积,并绘出图形
x1=[1211];
x2=[11111];
x=conv(x1,x2)
x=
13455421
6、已知某LTI离散系统,其单位抽样响应h(n)=sin(0.5n),n>
=0,系统的输入为x(n)=sin(0.2n),n>
=0,计算当n=0,1,2,…,40时系统的零状态响应y(n),绘出x(n),h(n)和y(n)时域波形。
n=0:
40;
h=sin(0.5*n);
x=sin(0.2*n);
y=conv(h,x);
subplot(311);
stem(n,h,'
subplot(312);
subplot(313);
stem(y,'
程序运行结果如下:
7、已知两个连续信号,是采用MATLAB求这两个信号的卷积
Sconv.m
function[x,t]=sconv(x1,x2,t1,t2,dt)
x=conv(x1,x2);
x=x*dt;
t0=t1
(1)+t2
(1);
l=length(x1)+length(x2)-2;
t=t0:
dt:
(t0+l*dt);
end
dt=0.001;
t1=(-2):
2;
t2=(-1):
1;
x1=2.*(heaviside(t1+2)-heaviside(t1-2));
x2=heaviside(t2+1)-heaviside(t2-1);
plot(t1,x1);
xlabel('
t(s)'
title('
x_1(t)'
plot(t2,x2);
x_2(t)'
[x,t]=sconv(x1,x2,t1,t2,dt);
subplot(212);
plot(t,x);
x(t)=x_1(t)*x_2(t)
实验三信号频域分析
①深入理解信号频谱的概念,掌握信号的频域分析方法。
②观察典型周期信号和非周期信号的频谱,掌握其频谱特性。
1、连续周期信号的频谱分析
如果周期信号满足狄里赫利条件,就可以展开为傅里叶级数形式,即
(1)
(2)
式中,
表示基波周期,
为基波频率,
表示任一个基波周期内的积分。
式
(1)和式
(2)定义为周期信号复指数形式的傅里叶级数,系数
称为
的傅里叶系数。
周期信号的傅里叶级数还可以由三角函数的线性组合来表示,即
(3)
其中:
(4)
式(3)中同频率的正弦项和余弦项可以合并,从而得到三角函数形式的傅里叶级数,即
(5)
(6)
可见,任何满足狄里赫利条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。
一般来说周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中经常采用有限项级数来替代,所选项数越多就越逼近原信号。
2、连续非周期信号的频谱分析
对于非周期连续时间信号,吸纳后的傅里叶变换和傅里叶逆变换定义为
(7)
(8)
式(7)和式(8)把信号的时域特性和频域特性联系起来,确立了非周期信号
和频谱
之间的关系。
采用MATLAB可以方便地求取非周期连续时间信号的傅里叶变换,这里我们介绍常用的集中方法。
(1)、符号运算法
MATLAB的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier函数和ifourier函数,基本调用格式为
X=fourier(x)
X=ifourier(X)
默认的时域变量为t,频域变量为w。
(2)、数值积分法
除了采用符号运算的方法外,我们还可以利用MATLAB的quad函数,采用数值积分的方法来进行连续信号的频谱分析,quad函数是一个用来计算数值积分的函数。
利用quad函数可以计算非周期连续时间信号的频谱。
Quad函数的一般调用格式为:
y=quad(fun,a,b)
y=quad(fun,a,b,TOL,TRACE,p1,p2,…)
其中fun指定被积函数,可以采用inline命令来创建,也可以通过传递函数句柄的形式来指定,a、b表示定积分的下限和上限,TOL表示允许的相对或绝对积分误差,TRACE表示以被积函数的点绘图形式来跟踪该函数的返回值,如果TOL和TRACE为空矩阵,则使用缺省值,“p1,p2,…”表示被积函数出时间t之外所需的其他额外输入参数。
(3)、数值近似法
我们还可以利用MATLAB的数值计算的方法近似计算连续时间傅里叶变换。
傅里叶变换
可以由式(9)近似计算
(9)
当
为时限信号,且
足够小,式(9)可以演变为
(10)
而式(10)中求和部分又可以表示成一个行向量和一个列向量的乘积
(11)
式(11)可以很方便地利用MATLAB实现。
3、离散周期时间信号的频域分析
基波周期为N的周期序列
可以用N个成谐波关系的复指数序列的加权和表示,即
(12)
这里k=<
N>
表示求和仅需包括一个周期内的N项,周期序列在一个周期内的求和与起点无关。
将周期序列表示成式(12)的形式,成为离散傅里叶级数,而系数
则称为离散傅里叶系数。
离散傅里叶系数
可以由式(13)确定。
(13)
傅里叶系数
也称为
的频谱系数,而且可以证明
是以N为周期的离散频率序列。
这说明了周期的离散时间函数对应于频域为周期的离散频率。
这里,我们用周期N与傅里叶系数
的乘积来表示周期离散时间信号的频谱,即
(14)
可以利用MATLAB提供的函数fft用来计算,调用格式为
该函数返回
一个周期内的值,其中x表示
一个周期内的样本值。
4、离散非周期时间信号的频域分析
非周期序列
可以表示成一组复指数序列的连续和
(15)
(16)
式(16)称为
的离散时间傅里叶变换,式(15)和式(16)确立了非周期离散时间信号
及其离散时间傅里叶变换
是连续频率
的函数,称为频谱函数,且
是周期的连续频率函数,其周期为
可见,非周期离散时间函数对应于频域中是一个连续的周期的频率函数。
对于有限长的时间序列,式(16)可以表示为
(17)
式(17)可以方便地利用MATLAB实现。
1、已知x(t)是周期矩形脉冲信号。
①计算该信号的傅里叶级
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 信号 系统 实验 报告