收藏 分销(赏)

实验一 离散时间信号的表示与运算.doc

上传人:xrp****65 文档编号:5957849 上传时间:2024-11-24 格式:DOC 页数:12 大小:265.50KB 下载积分:10 金币
下载 相关 举报
实验一 离散时间信号的表示与运算.doc_第1页
第1页 / 共12页
实验一 离散时间信号的表示与运算.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
实验一 离散时间信号的表示与运算 一 实验目的 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 文件编辑后保存,然后单击Debug→Run,运行“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('矩形序列') 文件编辑后保存,然后单击Debug→Run,运行“exlrectang.m”,将产生如下图所示序列。 实例4:产生正弦和余弦序列 将下列指令编辑到“exlsincos.m”文件中。 N=50; %采样50个点 A=1; %正余弦波的幅值为1 f=50; %信号频率为50Hz fs=500; %采样频率为500Hz n=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('余弦序列') 文件编辑后保存,然后单击Debug→Run,运行“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<=max(k1))==1))=a1; f2(find((k>=min(k2))&(k<=max(k2))==1))=a2; f=f1+f2; stem(k,f,'filled'); 运行结果如下图所示。 实例6:已知离散序列,利用MATLAB绘出其翻转信号,源程序如下: k1=-3:3; f1=2*3.^k; f=fliplr(f1); k=-fliplr(k1); stem(k,f); 运行结果如下图所示。 实例7: 已知离散信号,利用MATLAB绘出波形,源程序波形如下: a0=[-3,-2,-1,0,1,2,3]; k0=-3:3; k1=3; k=k0+k1; f=a0; stem(k,f,'filled'); 运行结果如下图所示。 实例8:已知两个离散序列,,利用MATLAB绘出原信号及其卷积,源程序如下: 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,f1); ylabel('f1(k)'); subplot(3,1,2); stem(k2,f2); ylabel('f2(k)'); subplot(3,1,3); stem(0:length(f)-1,f); xlabel('k'); ylabel('f(k)'); 运行结果如下图所示。 五 实验报告要求 1、简述实验目的和实验原理; 2、编程实现实验内容,要求附上详细的源程序和清晰的截图; 3、总结实验中的主要结论。 作业一 离散时间信号的表示与运算 题1:实现下面序列的相加和相乘 题2:实现序列的翻转。 题3:实现序列右移3位和左移2位。 题4:已知序列 计算它们的线性卷积和。 题5:已知两个离散序列,,利用MATLAB绘出原信号及其线性卷积和。 题1: a1=[-1,2,-3,1,4]; k1=-2:2; a2=[2,-3,2,-3]; k2=0:3; k=min([k1:k2]):max([k1,k2]); f1=zeros(1,length(k)); f2=zeros(1,length(k)); f1(find((k>=min(k1))&(k<=max(k1))==1))=a1; f2(find((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,f1); ylabel('f1(k)'); title('卷积'); subplot(3,1,2); stem(k2,f2); ylabel('f2(k)'); subplot(3,1,3); stem(0:length(f)-1,f); xlabel('k'); ylabel('f(k)'); title('f(k)=f1(k)*f2(k)');
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服