《信号与系统》实验指导书(定稿)
- 格式:doc
- 大小:2.93 MB
- 文档页数:25
信号与系统
实验指导书
(实验报告)
班级:
姓名:
信息与通信工程学院
前言
“信号与系统”是无线电技术、自动控制、通信工程、生物医学电子工程、信号图象处理、空间技术等专业的一门重要的专业基础课,也是国内各院校相应专业的主干课程。
当前,科学技术的发展趋势既高度综合又高度分化,这要求高等院校培养的大学生,既要有坚实的理论基础,又要有严格的工程技术训练,不断提高实验研究能力、分析计算能力、总结归纳能力和解决各种实际问题的能力。21世纪要求培养“创造型、开发型、应用型”人才,即要求培养智力高、能力强、素质好的人才。
由于该课程核心的基本概念、基本理论和分析方法都非常重要,而且系统性、理论性很强,为此在学习本课程时,开设必要的实验,对学生加深理解深入掌握基本理论和分析方法,培养学生分析问题和解决问题的能力,以及使抽象的概念和理论形象化、具体化,对增强学习的兴趣有极大的好处,做好本课程的实验,是学好本课程的重要教学辅助环节。
目录
实验一系统的卷积响应 (1)
实验二谐波特征及重构 (12)
实验三抽样定理 (16)
实验四无源和有源滤波器 (20)
实验一 系统的卷积响应
实验性质:提高性 实验级别:必做 开课单位:信息与通信工程学院 学 时:2
一、实验目的:深刻理解卷积运算,利用离散卷积实现连续卷积运算;深刻理解信号与系统的关系,学习MATLAB 语言实现信号通过系统的仿真方法。 二、实验设备: 计算机,MATLAB 软件 三、实验原理:
1、 离散卷积和:调用函数
∑∞
-∞
=-=
=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 ∆,如图1-1所示。
)(t P ∆
)(t P ∆ )(t h ∆
∆
1 t ∆
图1-1 系统框图
)()(t h t P ∆∆→
)()(lim )(lim )(0
t h t h t P t =→=∆→∆∆→∆δ
若输入为f(t):
LTI
∆∆-∆=
≈∑∞
-∞=∆∆)()()()(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 )(0
⎰∑∞
∞
-∞
-∞
=∆→∆∆→∆-=
∆∆-∆==τττd t h f k t h k f t y t y k )()()()(lim )(lim )(0
所以:
1212120
Δ()()*()()()lim (Δ)(Δ)Δs t f t f t f τf t τd τf k f t k ®==-=-òå
如果只求离散点上的f 值)(n f ∆
1
2
12(Δ)(Δ)(ΔΔ)ΔΔ
(Δ)[()Δ]k k f n f k f n k f k f n k ゥ
=-?
-
=
-=-邋
所以,可以用离散卷积和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]将与实际情况更相符合,但是,注意到,当n 大于某一数时,x[n]之值已经非常接近于0了。对于序列x[n] = 0.5n u[n],当n = 7时,x[7] = 0.0078,这已经是非常小了。所以,对于这个单边实指数序列,指定更长的n 的范围是没有必要的。当然,不同的无限长序列具有不同的特殊性,在指定n 的范围时,只要能够反映序列的主要特征就可以了。 4、 系统的响应:
设微分方程:
)()()(0
)
(0
t f b t y
a j M
j j i N
i i ∑∑===
]
[][01
2
1
0121b b b b b b a a a a a a M M M
N N N
----== 均为降幂顺序。