实验一 离散时间信号与系统分析
1、实验目的
1、掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。
2、掌握离散时间信号与系统的时域分析方法和频率分析方法。
3、掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
4、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的 理解。
2、实验原理
1.离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第 n个数字,n代表时间的序列。注意: x(n)只 在 n 为 整 数 时 才 有 意 义, n 不 是 整 数 时 无 定 义, 但 不 能 认 为 是 0。
2.离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号xa(t)进行等间隔采样,采样间隔为T,得到一个有序的数字序列{xa(nT)}就是离散时间信号,简称序列。
3.采样是连续信号数字处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号信息不丢失的条件,而且可以加深对傅里叶变换、Z变换和序列傅里叶变换之间关系式的理解。
我们知道,对一个连续信号xa(t)进行理想采样的过程可用(2-1)表示。
其中
为
的理想采样,
为周期冲激脉冲,即
的傅里叶变换
为
(2-3)式表明
为
的周期延拓,其延拓周期为采样角频率
。其采样前后信号的频谱只有满足采样定理时,才不会发生频率混叠失真。
将(2-2)带入(2-1)式并进行傅里叶变换:
式中
就是采样后得到的序列
,即
的傅里叶变换
为
比较(2-5)和(2-4)可知
在数字计算机上观察分析各种序列的频域特性, 通常对X(ejω)在[0, 2π]上进行M点采样来观察分析。 对长度为N的有限长序列x(n), 有
式中
一个时域离散线性非移变系统的输入/输出关系为
上述卷积运算也可以在频域实现
三、实验内容
1. 自定义两个序列的编程实现2个序列的相加、相乘、移位、反褶、卷积等。
2.一个特定的线性和时不变系统,描述它的差分方程如下:
a. 确定系统的稳定性。提示:用zplane( )函数画出零点极点图,看是否极点全在单位圆内。
b. 在
之间求得并画出系统的脉冲响应,从脉冲响应确定系统的稳定性。提示:可以调用impz( )函数
c. 如果此系统的输入为
。在
间求出
的响应。提示:可以调用filter( )函数
3.已知系统用下面差分方程描述:
y(n)=x(n)+ay(n-1)
试在a=0.95和a=-0.5 两种情况下用傅立叶变换分析系统的频率特性。要求写出系统的传输函数,并打印|H(ejω)|~ω曲线。
4. 假设x(n)=δ(n),将x(n)以2(或4,6,8……….)为周期进行周期延拓,得到
,试分析它的频率特性,并画出它的幅频特性。
报告数据分析包括:
1、用Matlab编制两个序列的相加、相乘、移位、反褶、卷积等的程序; 画出画出两个序列运算以后的图形;对结果进行分析
2、用Matlab编制时域分析和频率分析的程序;
3、用Matlab软件画出时域波形、频率响应 ,对结果进行分析。
实验用MATLAB函数介绍
1. abs
功能: 求绝对值(复数的模)。
y=abs(x): 计算实数x的绝对值。当x为复数时得到x的模(幅度值)。
当x为向量时,计算其每个元素的模,返回模向量y。
2. angle
功能: 求相角。
Ph=angle(x): 计算复向量x的相角(rad)。Ph值介于-π和+π之间。
3. freqz:
计算数字滤波器H(z)的频率响应。
H=freqz(B, A, w): 计算由向量w指定的数字频率点上数字滤波器H(z)的频率响应H(ejω),结果存于H向量中。向量B和A分别为数字滤波器系统函数H(z)的分子和分母多项式系数。[H, w]=freqz(B, A, M, ′whole′): 计算出M个频率点上的频率响应, 存放在H向量中,M个频率存放在向量w中。freqz函数自动将这M个频点均匀设置在频率范围[0, 2π]上。
缺省whole时,M个频点均匀设置在频率范围[0, π]上。
调用参数B和A与系统函数的关系由下式给出:
缺省w和M时, freqz自动选取512个频率点计算。不带输出向量的freqz函数将自动绘出幅频和相频曲线。其他几种调用格式可用命令help查阅。
freqz函数用于计算模拟滤波器的频率响应函数,详细功能及调用格式用help命令查看。
例如,八阶梳状滤波器系统函数为
H(z)=B(z)=1-z-8
用下面的简单程序绘出H(z)的幅频与相频特性曲线如图2.1所示。
MATLAB函数:
Zeros(); ones(); length(); rand(); randn(); exp(); sin(); cos();filter(); abs(); angle(); sinc(); residuez(); real(); imag(); subplot(); stem(); plot(); title(); grid(); xlaber(); ylabel(); axis(); figure();