实验一 离散时间信号的表示与运算.doc_第1页
实验一 离散时间信号的表示与运算.doc_第2页
实验一 离散时间信号的表示与运算.doc_第3页
实验一 离散时间信号的表示与运算.doc_第4页
实验一 离散时间信号的表示与运算.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 离散时间信号的表示与运算一 实验目的1、熟悉MATLAB的绘图函数;2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法;3、掌握离散时间信号基本运算的MATLAB实现;4、掌握离散时间信号线性卷积和运算的MATLAB实现。二 实验设备1、计算机2、MATLAB R2007a仿真软件三 实验原理1)序列相加和相乘 设有序列和,它们相加和相乘如下: 注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。如果不相同,在运算前应采用zeros函数将序列左右补零使其长度相等并且位置相对应。在MATLAB中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。2)序列翻转 设有序列:,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。MATLAB中,翻转运算用fliplr函数实现。设序列用样值向量x和位置向量nx表述,翻转后的序列用样值向量y和位置向量ny描述。3)序列的移位移位序列的移位序列可表示为:,其中,时代表序列右移个单位;时代表序列左移个单位。在移位过程中,序列值未发生任何变化,只是位置向量的增减。MATLAB中没有固定函数实现移位运算。设序列用样值向量x和位置向量nx描述移位后的序列用样值向量y和位置向量ny描述。4)序列的线性卷积和线性卷积和运算是离散时间信号的一种重要运算,两个有限长序列的线性卷积可以用conv函数实现。设x(n)和y(n)分别用样值向量x和y表示,线性卷积g(n)用样值向量g表示,则调用方式为,conv函数并未考虑到位置向量,默认所有的序列都从n=0开始。如果把位置向量考虑在内,则需要对位置向量作额外处理。设x(n)和y(n)的位置向量分别是nx:ns1,nf1和ny:ns2,nf2表示,线性卷积的位置向量用ng:ns3,nf3表示。四 实验内容1、上机实验前,认真阅读实验原理,掌握离散时间信号表示和运算的方法;2、掌握离散时间信号表示及运算的MATLAB实现。实例1:产生单位采样序列 在MATLAB中,函数zeros(1,N)产生一个N个令的列向量,利用它可以实现在有限的区间上的单位采样序列。按照前面所述的方法,将下列文件输入到Command Window窗口中。n=0:49; %定义横轴坐标x=zeros(1,50); %matlab中数组下标从1开始x(1)=1; stem(n,x); %绘制离散序列数据title(单位采用信号序列)按回车键,将产生如下图所示的序列。实例2:产生单位阶跃序列 在MATLAB中,函数ones(1,N)产生一个N个1的行向量,利用它可以实现在有限区间上的单位阶跃序列。按照前面所述方法,将下列指令编辑到“exlstep.m”文件中。n=0:49; %定义横轴坐标x=ones(1,50); %matlab中数组下标从1开始x(1)=1; stem(n,x); %绘制离散序列数据title(单位阶跃信号序列3文件编辑后保存,然后单击DebugRun,运行“exlstep.m”,将产生如下图所示序列。 实例3:产生矩形阶跃序列 在MATLAB中,函数sign(x)产生在x大于0时其值为1;在等于0时其值为0,在x小于0时其值为-1。利用它可以实现窗长度为N的矩形序列。按照前面所述方法,将下列指令编辑到“exlrectang.m”文件中。N=10;n=0:49; %定义横轴坐标x=sign(sign(N-1-n)+1); stem(n,x); %绘制离散序列数据title(矩形序列)文件编辑后保存,然后单击DebugRun,运行“exlrectang.m”,将产生如下图所示序列。实例4:产生正弦和余弦序列 将下列指令编辑到“exlsincos.m”文件中。N=50; %采样50个点A=1; %正余弦波的幅值为1f=50; %信号频率为50Hzfs=500; %采样频率为500Hzn=0:N-1; x=A*sin(2*pi*f*n/fs); %获得采样点的值 y=A*cos(2*pi*f*n/fs); subplot(1,2,1); %子图分割函数,参数一表示列,参数二表示行,stem(n,x); %参数三表示绘图序号 title(正弦序列)subplot(1,2,2);stem(n,y);title(余弦序列)文件编辑后保存,然后单击DebugRun,运行“exlsincos.m”,将产生如下图所示序列。实例5:已知两个离散序列,用MATLAB绘出的波形。源程序如下:a1=-3,-2,-1,0,1,2,3;k1=-3:3;a2=-2,-1,0,1,2;k2=-2:2;k=min(k1:k2):max(k1,k2);f1=zeros(1,length(k);f2=zeros(1,length(k);f1(find(k=min(k1)&(k=min(k2)&(k=min(k1)&(k=min(k2)&(k=max(k2)=1)=a2;f3=f1+f2;f4=f1.*f2;subplot(2,1,1);stem(k,f3,filled);title(相加);subplot(2,1,2);stem(k,f4,filled);title(相乘);题2:k1=-2:5;f1=1,2,3,4,5,6,7,8;f=fliplr(f1);k=-fliplr(k1);stem(k,f);title(翻转);题3:a0=1,2,3,4,5,5,5,5;k0=-2:5;k1=3;k2=-2;m1=k0+k1;m2=k0+k2;f=a0;subplot(2,1,1);stem(m1,f,filled);title(右移);subplot(2,1,2);stem(m2,f,filled);title(左移);题4:x1=1,1,1,1,1,1;n1=-2:3;x2=1,1,1,1,1,1,1;n2=-1:5;n3=min(n1)+min(n2);x=conv(x1,x2);subplot(3,1,1);stem(n1,x1);ylabel(x1(n);title(卷积);subplot(3,1,2);stem(n2,x2);ylabel(x2(n);subplot(3,1,3);stem(n3:length(x)-1+n3,x);xlabel(n);ylabel(x(n);title(x(n)=x1(n)*x2(n);题5:f1=1,3,3,3;k1=0:3;f2=1,2,3,3,4;k2=0:4;f=conv(f1,f2);subplot(3,1,1);stem(k1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论