实验一-离散时间信号分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 离散时间信号分析
一、实验目的
1. 初步掌握 Matlab 的使用,掌握编写M 文件和函数文件
2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。
3. 掌握生成及绘制数字信号波形的方法。
4. 掌握序列的基本运算及实现方法。
5. 研究信号采样时采样定理的应用问题。
二、实验原理
1.序列的基本概念
离散时间信号在数学上可用时间序列{x (n )}来表示,其中x (n )代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为-∞< n<+∞的整数,n 取其它值x (n )没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x a (t ) 进行等间隔采样,采样间隔为T ,得到{x (nT )} a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列
常用序列有:单位脉冲序列(单位抽样)δ (n )、单位阶跃序列u (n )、矩形序列R N (n ) 、
实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算
序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 y(n)=∑x (m )h (n −m )+∞m=−∞=x(n)*h(n) 上式的运算关系称为卷积运算,式中* 代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4 个步骤。
(1)反褶:先将x (n )和h (n )的变量n 换成m ,变成x (m )和h (m ),再将h (m )以纵 轴为对称轴反褶成h (-m )。
(2)移位:将h (-m )移位n ,得h (n- m )。当n 为正数时,右移n 位;当n 为负数时, 左移n 位。
(3)相乘:将h (n -m )和x (m )的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得y (n )。
三、主要实验仪器及材料
PC 机、Matlab7.0。
四、实验内容
1.知识准备
认真复习以上基础理论,理解本实验所用到的实验原理。
2.离散时间信号(序列)的产生
利用MATLAB 产生和绘制下列有限长序列:
(1)单位脉冲序列δ(n),单位阶跃序列u(n),矩形序列R8(n)
(2)在一幅图上绘出曲线x
1(t)=Asin(π
5
t+
π3);x2(t)=Acos(t-π
3
);x3(t)=2sin(3t)cos(2t-π
3
).
(3)绘出正弦衰减信号:x
2
(t)=Ae−αt sin(2πft),A=2,α=0.5,f=2Hz
(4)绘出谐波信号:x
3(t)=A
1
sin(2πft)+A
2
sin(2πf2t)+A
3
sin(2π
f3t);A
1=1,A
2
=0.5,A
3
=0.2,f=2Hz.
3.序列的运算
生成下列序列:
x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)
h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)
(1) 利用MATLAB 编程完成上述两序列的卷积,并绘制运算后序列的波形。(2)编写一个完成卷积的函数,输入是两个序列,输出是结果。
4.采样定理的研究
分别令采样周期Ts 为不同值,绘出不同采样周期下x(t) =sin(t)的频谱(直接用FFT函数),
观察频谱混叠现象,和防止混叠的采样周期。
5.上机实验并完成实验报告。请将实验报告保存为压缩文件(.rar,或.zip 格式),包括源程序(.M 文件)和文档(.doc),统一名为“xxx——实验x.rar”或“xxx——实验x.zip”
五、实验结果
1.1.1单位脉冲序列δ(n)
源程序:
function [x,n] =impseq(n0,n1,n2)
%产生x(n)=δ(n-n0);n1<=n0<=n2
if((n0
error('参数不满足n1<=n0<=n2')
end
n=n1:n2;
x=[(n-n0)==0];
%x=[zeros(1,n0-n1),1,zeros(1,(n2-n0))] stem(n,x);
n0=0;n1=-3;n2=3;
impseq(n0,n1,n2);
1.1.
2.单位阶跃序列u(n)
源程序:
function [x,n] =stepseq(n0,n1,n2)
%产生x(n)=u(n-n0);n1 if((n0 error('参数不满足n1 end n=n1:n2 x=[(n-n0)>=0] %x=[zeros(1,(n0-n1)),ones(1,(n2-n1))] stem(n,x); n0=0;n1=-3;n2=3; stepseq(n0,n1,n2); 1.1.3.矩形序列 源程序: function [ x,n ] = R( N,ns,nf ) %产生序列x(n)=u(n-n0)-u(n-n0-N)n=ns:nf;np=0; x=stepseq(np,ns,nf)-stepseq(N,ns,nf); %x=[0<=n<7] stem(n,x); N=8;ns=-2;nf=10; x=R(N,ns,nf) 1.2在同一图中绘制x 1(t),x 2 (t),x 3 (t) 源程序: function [x1,x2,x3,t ] = X1(A,a,b ) t=a:0.001:b;a if(a>=b) error('参数不满足a end x1=A.*sin(pi./5.*t+ pi./3); x2=A.*cos(t-pi./3); x3=2.*sin(3.*t).*cos(2.*t-pi./3); plot(t,x1,x2,x3)