信号与系统实验报告汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统实验报告汇总
%定义函数文件,函数名为Heaviside,
输入变量为x,输出变量为y
function y= Heaviside(t)
y=(t>0); %定义函数体,即函数所执行指令
%此处定义t>0时y=1,t<=0
时y=0,注意与实际的阶跃信号定义的区别。 方法二:数值计算法
在MATLAB 中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )函数,它是用数值计算法表示的单位阶跃函数()u t 。其调用格式为:
stepfun(t,t0)
其中,t 是以向量形式表示的变量,t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。有趣的是它同时还可以表示单位阶跃序列()u k ,这只要将自变量以及取样间隔设定为整数即可。 符号函数
符号函数的定义为:1
sgn()1
t t t >⎧=⎨
-<⎩
在MATLAB 中有专门用于表示符号函数的函数sign() ,由于单位阶跃信号
(t)和符号函数两者
之间存在以下关系:1122()sgn()
t t ε=+,因此,利用这
个函数就可以很容易地生成单位阶跃信号。
2.离散时间信号
离散时间信号又叫离散时间序列,一般用()f k 表示,其中变量k 为整数,代表离散的采样时间点(采样次数)。
在MATLAB 中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,而只能采用数值计算法表示,由于MATLAB 中元素的个数是有限的,因此,MATLAB 无法表示无限序列;另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot()函数。 单位序列
()k δ
单位序列()k δ)的定义为1
0()0
k k k δ=⎧=⎨
≠⎩
单位阶跃序列()u k
单位阶跃序列()u k 的定义为1
()0
k u k k ≥⎧=⎨
<⎩
3.卷积积分
两个信号的卷积定义为:
1212()()()()()y t f t f t f f t d τττ
∞-∞
=*∆-⎰
MATLAB 中是利用conv 函数来实现卷积的。
功能:实现两个函数1
()f t 和2
()f t 的卷积。
格式:g=conv(f1,f2)
说明:f1=f 1(t),f2=f 2(t) 表示两个函数,g=g(t)表示两个函数的卷积结果。
三、实验内容
1.分别用MATLAB 的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形: ⑴ 2()(2)()t
f t e u t -=- ⑵ []()cos()()(4)2t f t u t u t π=--
(1) t=-1:0.01:10;
t1=-1:0.01:-0.01; t2=0:0.01:10;
f1=[zeros(1,length(t1)),ones(1,length(t2))]; f=(2-exp(-2*t)).*f1; plot(t,f)
axis([-1,10,0,2.1])
syms t;
f=sym('(2-exp(-2*t))*heaviside(t)'); ezplot(f,[-1,10]);
(2)
t=-2:0.01:8;
f=0.*(t<0)+cos(pi*t/2).*(t>0&t<4)+0.*(t>4);
plot(t,f)
syms t;
f=sym('cos(pi*t/2)*[heaviside(t)-heaviside(t-4)] '); ezplot(f,[-2,8]);
2.分别用MATLAB 表示并绘出下列离散时间信号的波形: ⑵
[]
()()(8)f t k u k u k =-- ⑶ ()sin()()4k f k u k π
=
(2) t=0:8; t1=-10:15;
f=[zeros(1,10),t,zeros(1,7)]; stem(t1,f) axis([-10,15,0,10]);
(3) t=0:50;
t1=-10:50;
f=[zeros(1,10),sin(t*pi/4)]; stem(t1,f)
axis([-10,50,-2,2])
3.已知两信号1
()(1)()f t u t u t =+-,2
()()(1)f t u t u t =--,求卷积
积分1
2
()()()g t f t f t =*,并与例题比较。
t1=-1:0.01:0; t2=0:0.01:1; t3=-1:0.01:1; f1=ones(size(t1)); f2=ones(size(t2)); g=conv(f1,f2);
subplot(3,1,1),plot(t1,f1); subplot(3,1,2),plot(t2,f2); subplot(3,1,3),plot(t3,g);
与例题相比较,g(t)的定义域不同,最大值对应的横坐标也不同。
4.已知{}{}1
2
()1,1,1,2,()1,2,3,4,5f k f k ==,求两序列的卷积
和 。
N=4; M=5;
L=N+M-1; f1=[1,1,1,2]; f2=[1,2,3,4,5]; g=conv(f1,f2); kf1=0:N-1; kf2=0:M-1; kg=0:L-1;
subplot(1,3,1),stem(kf1,f1,'*k');xlabel('k'); ylabel('f1(k)');grid on
subplot(1,3,2),stem(kf2,f2,'*k');xlabel('k'); ylabel('f2(k)');grid on
subplot(1,3,3);stem(kg,g,'*k');xlabel('k'); ylabel('g(k)');grid on