信号系统实验报告.docx
《信号系统实验报告.docx》由会员分享,可在线阅读,更多相关《信号系统实验报告.docx(31页珍藏版)》请在冰豆网上搜索。
信号系统实验报告
电子工程系
信号与系统课程实验报告
2011-----2012学年第一学期
专业:
电子信息工程技术班级:
学号:
姓名:
指导教师:
实验一常用连续时间信号的实现
一、实验目的
(1)了解连续时间信号的特点;
(2)掌握连续时间信号表示的向量法和符号法;
(3)熟悉MATLABPlot函数等的应用。
二、实验原理
1、信号的定义
信号是随时间变化的物理量。
信号的本质是时间的函数。
2、信号的描述
1)时域法
时域法是将信号表示成时间的函数f(t)来对信号进行描述的方法。
信号的时间特性指的是信号的波形出现的先后,持续时间的长短,随时间变化的快慢和大小,周期的长短等。
2)频域(变换域)法
频域法是通过正交变换,将信号表示成其他变量的函数来对信号进行描述的方法。
一般常用的是傅立叶变换。
信号的频域特性包括频带的宽窄、频谱的分布等。
信号的频域特性与时域特性之间有着密切的关系。
3、信号的分类
按照特性的不同,信号有着不同的分类方法。
(1)确定性信号:
可以用一个确定的时间函数来表示的信号。
随机信号:
不可以用一个确定的时间函数来表示,只能用统计特性加以描述的信号。
(2)连续信号:
除若干不连续的时间点外,每个时间点在t上都有对应的数值信号。
离散信号:
只在某些不连续的点上有数值,其他时间点上信号没有定义的信号。
(3)周期信号:
存在T,使得等式f(t+T)=f(t)对于任意时间t都成立的信号。
非周期信号:
不存在使得等式f(t+T)=f(t)对于任意时间t都成立的信号。
绝对的周期信号是不存在的,一般只要在很长时间内慢走周期性就可以了。
(4)能量信号:
总能量有限的信号。
功率信号:
平均功率有限切非零的信号。
(5)奇信号:
满足等式f(t)=--f(--t)的信号。
偶信号:
满足等式f(t)=f(--t)的信号。
三、涉及的MATLAB函数
1、plot函数
功能:
在X轴和Y轴方向都按线性比例绘制二维图形。
调用格式:
Plot(x,y):
绘出相x对y的函数线性图。
Plot(x1,y1,x2,y2,…..):
会出多组x对y的线性曲线图。
2、ezplot函数
功能:
绘制符号函数在一定范围内的二维图形。
简易绘制函数曲线。
调用格式:
Ezplot(fun):
在[-2π,2π]区间内绘制函数。
Ezplot(fun,[min,max]):
在[min,max]区间内绘函数。
Ezplot(funx,funy):
定义同一曲面的函数,默认的区间是[0,2π]。
】
3、sym函数
功能:
定义信号为符号的变量。
调用格式:
sym(fun):
fun为所要定义的表达式。
4、subplot函数
功能:
产生多个绘图区间。
调用格式:
subplot(m,n,p):
产生m行n列的绘图区间的第n个绘图区间。
四、实验内容与方法
1、验证性实验
(1)数值法生成正弦信号
MATLAB程序:
t=-0:
0.001:
1;
y=sin(2*pi*t);
plot(t,y,'k');
xlabel('时间(t)');
ylabel('幅值(f)');
title('正弦交流信号');
运行结果
:
(2)单边衰减指数信号
MATLAB程序:
clear
t1=-1;t2=10;dt=0.1;
t=t1:
dt:
t2;
A1=1;%斜率
a1=0.5;%斜率
n=A1*exp(-a1*t);
plot(t,n);
axis([t1,t2,0,1]);
xlabel('时间(t)');
ylabel('幅值(f)');
title('单边衰减指数信号');
运行结果:
(3)周期方波信号
MATLAB程序:
t=(0:
0.0001:
1);
y=square(2*pi*15*t);%产生方波
plot(t,y);axis([0,1,-1.5,1.5,]);
title('周期方波');
xlabel('时间(t)');
ylabel('幅值(f)');
运行结果:
2、程序设计实验
(1)在MATLAB中输入程序5exp9(-x)cos3t+sin2t,验证实验结果。
MATLAB程序;
clear
t1=-1;t2=5;dt=0.1;
t=t1:
dt:
t2;
A1=5;%斜率
a1=1;%斜率
n=A1*exp(-a1*t);
plot(t,n);
axis([t1,t2,0,10]);
xlabel('时间');
ylabel('幅值(f)');
title('单边衰减指数信号');
运行结果:
五、实验总结
通过本次实验了解了连续时间信号的特点;并且掌握连续时间信号的表示方法,学会了使用MATLAB来操作函数,实现函数的功能。
实验二连续时间信号的时域基本运算
一、实验目的
(1)掌握连续时间信号时域运算的基本方法;
(2)掌握相关函数的调用格式及作用;
(3)掌握连续信号的基本运算。
二、实验原理
信号的基本运算包括信号的相加(减)和相乘(除).信号的时域变换包括信号的平移、翻转、倒相以及尺度变换。
(1)加减:
f(t)=f1(t)±f2(t)
(2)乘:
f(t)=f1(t)×f2(t)
(3)延时或平移:
f(t)→(t-t0)t0>0时右移;t0<0时左移
(4)翻转:
f(t)→f(-t)
(5)尺度变换:
f(t)→f(at)|a|>1时尺度缩小;|a|<1时尺度放大;a<0时,尺度翻转。
(6)标量乘法:
f(t)→af(t)
(7)倒相:
f(t)→-f(t)
(8)微分:
f(t)→df(t)/dt
(9)积分:
f(t)→∫t-∞f(t)d(t)
三、涉及的MATLAB函数及其运算
1、stepfun函数
功能:
产生一个阶跃信号。
调用格式:
Stepfun(t,t0)其中,t是时间区间,在该区间内阶跃信号一定会产生;t0是信号发生从0到1跳跃的时刻。
2、diff函数
调用格式:
diff(f):
求函数f对预设独立变数的一次微分值。
diff(f,’t’):
求函数f对独立变数t的一次微分值。
3、int函数
调用格式:
Int(f):
函数f对预设独立变数的积分值。
Int(f,’t’):
函数f对独立变数t的积分值。
4、heaviside函数
Heaviside(t):
产生没有移位的阶跃信号。
Heaviside(t-k):
产生向右平移K单位的阶跃信号。
四、实验内容与方法1、验证性实验
(1)移位
实现连续信号的移位,即f(t-t0),或者f(t+t0);常数t0>0。
MATLAB程序
clearall
t=0:
0.0001:
2
y=sin(2*pi*(t));
y1=sin(2*pi*(t-0.2));
plot(t,y,'-',t,y1,'--');
ylabel('f(t)');xlabel('t');title('信号的移位')
运行结果:
(2)翻转(信号的翻转就是将信号的波形以纵轴为对称轴翻转180度,将信号f(t)的自变量t替换为-t即可得到其翻转信号。
)
MATLAB程序:
clearall;
t=0:
0.02:
1;t1=-1:
0.02:
0;
g1=3*t;
g2=3*(-t1);
plot(t,g1,'--',t1,g2);
gridon;
xlabel('t');ylabel('g(t)');
title('信号的反折');
运行结果;
(3)尺度变换
将信号f(t)中的自变量t替换为at。
MATLAB程序:
clearall;
t=0:
0.001:
1;
a=2;
y=sin(2*pi*t);
y1=sin(2*a*pi);
subplot(211)
plot(t,y);
ylabel('y(t)');xlabel('t');
title('尺度变换');
subplot(212)
plot(t,y1);
ylabel('y1(t)');xlabel('t');
运行结果:
(4)综合
MATLAB程序
symst
f=sym('(t/2+1)*(heaviside(t+2)-heaviside(t-2))')
subplot(2,3,1);ezplot(f,[-3,3]);title('f');
y1=subs(f,t,t+2);subplot(2,3,2);ezplot(y1,[-5,1]);title('y1');
y2=subs(f,t,t-2);subplot(2,3,3);ezplot(y2,[-1,5]);title('y2');
y3=subs(f,t,-t);subplot(2,3,4);ezplot(y1,[-3,3]);title('y3');
y4=subs(f,t,2*t);subplot(2,3,5);ezplot(y1,[-2;2]);title('y4');
y5=-f;subplot(2,3,6);ezplot(y1,[-3,3]);title('y5');
表达式
f=
(t/2+1)*(heaviside(t+2)-heaviside(t-2))
运行结果:
2、程序设计实验
symst
f=sym('(-2*t/3+2/3)*(heaviside(t+2)-heaviside(t-1))')
subplot(2,4,1);ezplot(f,[-3,3]);title('f');
y1=subs(f,t,-t);subplot(2,4,2);ezplot(y1,[-3,3]);title('y1');
y2=subs(f,t,-t+2);subplot(2,4,3);ezplot(y2,[-1,5]);title('y2');
y3=subs(f,t,-t-2);subplot(2,4,4);ezplot(y1,[-2,4]);title('y3');
y4=subs(f,t,2*t);subplot(2,4,5);ezplot(y1,[-2,3]);title('y4');
y5=subs(f,t,1/2*t);subplot(2,4,6);ezplot(y1,[-2,4]);title('y5');
y6=subs(f,t,t-2);subplot(2,4,7);ezplot(y1,[-2,3]);title('y6');
y7=subs(f,t,-1/2*t+1);subplot(2,4,8);ezplot(y1,[-4,8]);title('y7
运行结果:
五、实验总结
-通过本次实验学会了连续时间信号时域运算的基本方法,掌握了stepfun函数,diff函数、int函数、heaviside函数调用格式以及作用,并且掌握了连续信号的基本运算。
实验三连续卷积信号的计算
一、实验目的
(1)熟悉卷积的定义和表示
(2)掌握利用计算机进行卷积运算的原理和方法;
(3)熟悉连续信号卷积运算函数conv的应用。
二、实验原理
1、卷积的定义
卷积积分可以表示为
2、卷积计算的几何算法
卷积积分的计算从几何上可以分为四个步骤:
翻转→平移→相乘→叠加。
3、卷积积分的应用
卷积积分是信号与系统时域分析的基本手段,主要用于求系统零状态响应,它避开了经典分析方法中求解微分方程时需要求系统初始值的问题。
设一个线性零状态系统,已知系统的单位冲激响应为h(t),当系统的激励信号为e(t)时,系统的零状态响应为
由于计算机技术的发展,通过编程的方法来计算卷积积分已经不再是冗繁的工作,并可以获得足够的精度。
因此,信号的时域卷积分析法在系统分析中得到了广泛的应用。
卷积积分的数值运算实际上可以用信号的分段求和来实现,即:
如果我们只求当t=nΔt(n为正整数,nΔt记为t)时r(t)的值,则由上式可以得到:
当Δt足够小时,r(t)就是e(t)和h(t)卷积积分的数值近似
三、涉及的MATLAB的函数
1、conv函数
功能:
实现信号的卷积运算
调用格式:
w=conv(u,v)*dt:
计算两个有线长度序列的卷积。
(调用格式:
w=conv(f1,f2)*dt,dt为采样周期,当f1,f2其中一个为冲击信号&(t)时,w=conv(f1,f2)
说明:
该函数假设两个序列都从零开始
2、stepfun函数
功能:
产生一个阶跃信号。
调用格式:
stepfun(t,t0)其中,t是时间区间,在该区间内阶跃信号一定会产生;t0是信号发生从0到1跳跃的时刻。
四、实验内容和方法
1.验证性性试验
1)函数卷积计算
若f2(t)=&(t),f1(t)=u(t),试利用给出的参考程序,计算f12(t)=f1(t)*f2(t),
f11(t)=f1(t)*f1(t),f22=f2(t)*f2(t)
MATLAB程序:
%连续函数卷积计算
a=1000;
t1=-5:
1/a:
5;
f1=stepfun(t1,0);
f2=stepfun(t1,-1/a)-stepfun(t1,1/a);
subplot(231);
plot(t1,f1);axis([-5,5,0,1.2]);%xlabel('时间(t)');
ylabel('f1(t)');title('单位阶跃信号')
subplot(232);plot(t1,f2);f12=conv(f1,f2);t=-10:
1/a:
10;
subplot(233);plot(t,f12);axis([-10,10,0,1.2]);title('f1*f2');f21=conv(f2,f1);
subplot(234);plot(t,f21);axis([-10,10,0,1.2]);title('f2*f1');
f11=conv(f1,f1)*1/a;f22=conv(f2,f2);
subplot(235);plot(t,f11);title('f1*f1')
subplot(236);plot(t,f22);title('f2*f2')
连续函数卷积计算结果如图
:
2)连续函数卷积计算
MATLAB程序:
%计算连续信号的卷积积分
%f:
函数的样值向量
%k:
对应时间向量
%s:
采用时间间隔
s=0.01;
k1=0:
s:
2;
k2=k1;
f1=3*k1;
f2=3*k2;
f=conv(f1,f2);
f=f*s;
k0=k1
(1)+k2
(1);
k3=k1(end)+k2(end);
k=k0:
s:
k3;
subplot(3,1,1);
plot(k1,f1);
title('f1(t)');
subplot(3,1,2);
plot(k2,f2);
title('f2(t)');
subplot(3,1,3);
plot(k,f);
title('f1(t)');
连续函数卷积计算结果如图:
2、程序设计实验
MATLAB程序:
%连续函数卷积计算
a=1000;
t1=-5:
1/a:
5;
f1=stepfun(t1,-1/a)-stepfun(t1,1/a);
f2=stepfun(t1,0);
f3=stepfun(t1,0)-stepfun(t1,4);
subplot(231);plot(t1,f1);axis([-5,5,0,1.2]);title('f1');
subplot(232);plot(t1,f2);axis([-5,5,0,1.2]);title('f2');
subplot(233);plot(t1,f3);axis([-10,10,0,1.2]);title('f3');
f4=conv(f1,f2+f3);t=-10:
1/a:
10;
subplot(234);plot(t,f4);axis([-10,10,0,3]);title('f1(t)*[f2(t)+f3(t)');
f5=conv(f1,f2)+conv(f1,f3);
subplot(235);plot(t,f5);axis([-10,10,0,3]);title('f1*f2+f1*f3');
运行结果;
五、实验总结
通过本次实验掌握了连续时间信号的卷积运算,熟悉了卷积的定义以及表示方法,原理。
学会了利用计算机MATLAB软件进行卷积运算。
实验四连续LT1系统的频域分析
一、实验目的
(1)掌握连续时间信号傅里叶变换和傅里叶逆变换的实现方法,以及傅里叶变换的时宜移性、傅里叶变换的频移特性的实现方法。
(2)了解傅里叶半环的特点及其应用;
(3)掌握函数和函数的调用格式及作用;
(4)掌握傅里叶变换的数值计算方法,以及绘制信号频谱图的方法。
二、实验原理
连续LTI系统的频率特性又称频率响应特性,是指系统在正弦信号激励下稳态响应随激励信号变化而变化的情况,又称系统函数H(w)。
零状态的线性系统函数H(w)定义为H(w)=Y(w)/X(w)。
式中,X(w)为系统激励信号的傅立叶变换,Y(w)为系统在零状态条件下输出响应信号的傅立叶变换。
系统函数H(w)反映了系统内在固有的特性,它取决于系统自身的结构,及组成系统的元器件参数,与外部激励无关,是描述系统特性的一个重要参数。
H(w)是w的复函数,可以表示为H(w)=|H(w)|ejt(w)
其中,|H(w)|随w变化的规律称为系统的幅频特性;t(w)随w变化规律称为系统的相频特性。
三、涉及的MATLAB函数
1、fourier函数
功能:
实现信号f(t)的傅立叶变换
调用格式:
F=fourier(f):
是符号函数f的傅里叶变换,默认返回函数F是关于w的函数。
F=fourier(f,v):
是符号函数f的傅里叶变换,返回函数F是关于v的函数。
F=fourier(f,u,v):
是关于u的函数f的傅里叶变换,返回函数F是关于v的函数。
2、ifourier函数
功能:
实现信号F(jw)的傅里叶逆变换。
调用格式:
f=ifourier(F):
是函数F的傅里叶变换,默认的独立变量为w,默认返回是关于x的函数。
f=ifourier(F,u):
返回函数f是u的函数,而不是默认的x函数。
f=ifourier(F,v,u):
是对关于v的函数F进行傅里叶变换,返回关于u的函数f0。
四、实验内容与方法
1、验证性试验
(1)傅立叶变换
已知连续信号f(t)=e-2|t|,通过程序完成信号f(t)的傅立叶变换。
MATLAB程序:
symst;
f=exp(-2*abs(t));
F=fourier(f);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
信号f(t)的傅立叶变换如下图
试画出信号f(t)=2/3e-3tu(t)的波形及其幅频特性曲线。
MATLAB程序:
symst
f=2/3*exp(-3*t)*heaviside(t);
F=fourier(f);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
信号f(t)=2/3e-3tu(t)的波形及其幅频特性曲线如下图
(2)傅立叶逆变换
已知f(jw)=1/(1+w2),求信号F(jw)的逆傅立叶变换。
MATLAB程序:
symstw
F=1/(1+w^2);
f=ifourier(F,t);
ezplot(f);
其结果如下图
2、程序设计试验
(a)f(t)=u(t+1)-u(t-1)傅立叶变换(b)f(t)=sin(t)/t傅立叶变换(c)f=1/(2+jw)傅立叶逆变换
(a)MATLAB程序:
symst
f=heaviside(t+1)-heaviside(t-1);
F=fourier(f);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
运行结果如下图
MATLAB程序
symst
f=sin(t)/t;
F=fourier(f);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
结果如下图
(b)MATLAB程序:
symstw
F=1/(2+j*w);
f=ifourier(F,t);
subplot(2,1,1);
ezplot(f);
subplot(2,1,2);
ezplot(abs(F));
运行结果:
五、实验总结
通过本次实验掌握了连续时间信号傅里叶变换与傅里叶你变换的实现方法,并且掌握了傅里叶变换的时移频移特性,了解了傅立叶变换的特点及其以应用,掌握了ifourier函数的调用格式及其功能,进一步熟悉了MATLAB,学会用MATLAB来实现各种信号的功能。
实验五离散时间信号的时域基本运算
一、实验目的
1、掌握离散时间信号时域运算的基本实现方法
2、熟悉相关函数的调用格式及作用。
3、掌握离散信号的基本运算。
4、掌握信号的分解,会将任意离散信号分解为单位脉冲信号的线性组合。
二、实验原理
信号的基本运算包括.信号的相加和相乘。
信号的时域变换包括信号的平移、反折、倒相以及尺度变换。
三、涉及的MATLAB函数
fliplr函数
功能:
实现矩阵行元素的左右翻转。
调用格式:
B=fliplr(A):
其中A主要指翻转的矩阵。
四、实验内容与方法
1、验证性试验
(1)、序列的翻转
MATLAB程序:
x1=1:
6;
k1=-3:
2;
subplot(1,2,1);
stem(k1,x1);
title('x1(k)');
k=-fliplr(k1);
f=fliplr(x1);
subplot(1,2,2);
stem(k,f,'filled');
title('x1(-k)');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5]);
运行结果:
(2)、序列的倒相
MATLAB程序:
x1=1:
6;
k1=-3:
2;
subplot(1,2,1);
stem(k1,x1);
title('x1(k)');
k=-k;
f=-x1;
subplot(1,2,2);
stem(k,f,'filled');
title('x1(k1)');
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])
运行结果:
(3)、序列的平移
MATLAB程序:
x1=-2:
2;
k1=-2:
2;
subplot(2,1,1);
stem(k1,x1);
title('x1(k)');
k0=2;
k=k1+k0;f=x1;
subplot(2,1,2);
stem(k,f,'filled');
title('x1(k-2)');
axis([min(k