实验一-离散时间信号分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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((n0n2)|(n1>n2))

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((n0n2)|(n1>n2))

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)

相关文档
最新文档