中北大学《信号与系统》实验报告汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统实验报告
班级:
姓名:
信息与通信工程学院
实验一 系统的卷积响应
实验性质:提高性 实验级别:必做
开课单位:信息与通信工程学院 学 时:2
一、实验目的:深刻理解卷积运算,利用离散卷积实现连续卷积运算;深刻理解信号与系统的关系,学习MATLAB 语言实现信号通过系统的仿真方法。
二、实验设备:
计算机,MATLAB 软件
三、实验原理:
1、 离散卷积和:
调用函数:conv ()
∑∞
-∞=-=
=i i k f i f f f conv S )()(1)2,1(为离散卷积和, 其中,f1(k), f2 (k) 为离散序列,K=…-2, -1, 0 , 1, 2, …。但是,conv 函数只给出纵轴的序列值的大小,而不能给出卷积的X 轴序号。为得到该值,进行以下分析:
对任意输入:设)(1k f 非零区间n1~n2,长度L1=n2-n1+1;)(2k f 非零区间m1~m2,长度L2=m2-m1+1。则:)(*)()(21k f k f k s =非零区间从n1+m1开始,长度为L=L1+L2-1,所以S (K )的非零区间为:n1+m1~ n1+m1+L-1。
2、 连续卷积和离散卷积的关系:
计算机本身不能直接处理连续信号,只能由离散信号进行近似:
设一系统(LTI )输入为)(t P ∆,输出为)(t h ∆,如图所示。
)t
)()(t h t P ∆∆→
)()(lim )(lim )(0
0t h t h t P t =→=∆→∆∆→∆δ 若输入为f(t):
∆∆-∆=
≈∑∞
-∞=∆∆)()()()(k t P k f t f t f k 得输出: ∆∆-∆=
∑∞-∞=∆∆)()()(k t h k f t y k
当0→∆时:⎰∑∞
∞
-∞-∞=∆→∆∆→∆-=∆∆-∆==ττδτd t f k t P k f t f t f k )()()()(lim )(lim )(00
⎰∑∞∞-∞-∞=∆→∆∆→∆-=∆∆-∆==τττd t h f k t h k f t y t y k )()()()(lim )(lim )(00
所以:
∆
∆-∆=-==∑⎰→∆)()(lim )()()(*)()(2102121k t f k f d t f f t f t f t s τ
ττ 如果只求离散点上的f 值)(n f ∆
]
)[()()()()(2121∑∑∞-∞
=∞-∞
=∆-∆∆=∆∆-∆∆=
∆k k k n f k f k n f k f n f
所以,可以用离散卷积和CONV ()求连续卷积,只需∆足够小以及在卷积和的基础上乘以∆。
3、 连续卷积坐标的确定:
设)(1t f 非零值坐标范围:t1~t2,间隔P
)(2t f 非零值坐标范围:tt1~tt2,间隔P
)(*)()(21t f t f t s =非零值坐标:t1+tt1~t2+tt2+1
根据给定的两个连续时间信号x(t) = t[u(t)-u(t-1)]和h(t) = u(t)-u(t-1),编写程序,完成这
两个信号的卷积运算,并绘制它们的波形图。范例程序如下:
先编写单位阶跃函数u(t)
function y=u(t)
y=(t>=0);
% Program1
% This program computes the convolution of two continuou-time signals
clear;close all;
t0 = -2; t1 = 4; dt = 0.01;
t = t0:dt:t1;
x = u(t)-u(t-1);
h = t.*(u(t)-u(t-1));
y = dt*conv(x,h); % Compute the convolution of x(t) and h(t)
subplot(221)
plot(t,x), grid on, title('Signal x(t)'), axis([t0,t1,-0.2,1.2])
subplot(222)
plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2])
subplot(212)
t = 2*t0:dt:2*t1; % Again specify the time range to be suitable to the
% convolution of x and h.
plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,0.6]),
xlabel('Time t sec')
在有些时候,做卷积和运算的两个序列中,可能有一个序列或者两个序列都非常长,甚至是无限长,MATLAB处理这样的序列时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限长序列,通常都是满足绝对可和或绝对可积条件的信号。因此,对信号采取这种截短处理尽管存在误差,但是通过选择合理的信号长度,这种误差是能够减小到可以接受的程度的。若这样的一个无限长序列可以用一个数学表达式表示的话,那么,它的长度可以由编程者通过指定时间变量n的范围来确定。
例如,对于一个单边实指数序列x[n] = 0.5n u[n],通过指定n的范围为0 ≤n ≤100,则对应的x[n]的长度为101点,虽然指定更宽的n的范围,x[n]将与实际情况更相符合,