精品--
课程名称 实验项目名称 和编号 数字信号处理 实验课时 4学时 离散序列的基本运算 同组者 姓 名 实验学会运用MATLAB产生常用离散信号,并掌握程序的编写方法,运用find和fliplr子函数,验证型目实验,综合型实验 的 实验环境 MATLAB 实验 离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、尺度变换内等。 容 在MATLAB中,离散序列的相加、相乘等运算是两个向量之间的运算是两个向量之间的运算,因和此参加运算的两个序列向量必须具有相同的维数,否则应进行相应的处理。 原理 --精品
精品--
一、序列的移位 x(n)=x(n-m) 1. n1=-10;n2=10;k0=0;k1=-6;k2=4; n=n1:n2; x0=[n>=k0]; x1=[(n-k1)>=0]; x2=[(n-k2)>=0]; subplot(3,1,1),stem(n,x0,'filled','k'); axis([n1,n2,1.1*min(x0),1.1*max(x0)]); ylabel('u(n)'); subplot(3,1,2),stem(n,x1,'filled','k'); axis([n1,n2,1.1*min(x1),1.1*max(x1)]); ylabel('u(n+6)'); subplot(3,1,3),stem(n,x2,'filled','k'); axis([n1,n2,1.1*min(x2),1.1*max(x2)]); ylabel('u(n-4)'); 实验步 骤 2. n=-2:10;n0=2;n1=-2; x=2*sin(2*pi*n/10); 方 x1=2*sin(2*pi*(n-n0)/10); 法 x2=2*sin(2*pi*(n-n1)/10); subplot(3,1,1),stem(n,x,'filled','k'); 关ylabel('x(n)'); 键subplot(3,1,2),stem(n,x1,'filled','k'); 代ylabel('x(n-2)'); 码 subplot(3,1,3),stem(n,x2,'filled','k'); ylabel('x(n+2)'); 二、序列的相加 1. n1=0;n2=10;n01=2;n02=4; n=n1:n2; x1=[(n-n01)==0]; x2=[(n-n02)==0]; x3=x1+x2; subplot(3,1,1);stem(n,x1,'filled','k'); axis([n1,n2,1.1*min(x1),1.1*max(x1)]); ylabel('δ(n-2)'); subplot(3,1,2);stem(n,x2,'filled','k'); --精品
精品--
axis([n1,n2,1.1*min(x2),1.1*max(x2)]); ylabel('δ(n-4)'); subplot(3,1,3);stem(n,x3,'filled','k'); axis([n1,n2,1.1*min(x3),1.1*max(x3)]); ylabel('δ(n-2)+δ(n-4)'); 2. n1=-4:6;n01=-2; x1=[(n1-n01)>=0]; n2=-5:8;n02=4; x2=[(n2-n02)>=0]; n=min([n1,n2]):max([n1,n2]); N=length(n); y1=zeros(1,N); y2=zeros(1,N); y1(find((n>=min(n1))&(n<=max(n1))))=x1; y2(find((n>=min(n2))&(n<=max(n2))))=x2; x=y1+y2; subplot(3,1,1); stem(n1,x1,'filled','k'); ylabel('x1(n)'); axis([min(n),max(n),1.1*min(x),1.1*max(x)]); subplot(3,1,2); stem(n2,x2,'filled','k'); ylabel('x2(n)'); axis([min(n),max(n),1.1*min(x),1.1*max(x)]); subplot(3,1,3); stem(n,x,'filled','k'); ylabel('x(n)'); axis([min(n),max(n),1.1*min(x),1.1*max(x)]); --精品
精品--
三、序列相乘 n1=-4:10; x1=3*exp(-0.25*n); n2=-2:6;n02=-1; x2=[(n2-n02)>=0]; n=min([n1,n2]):max([n1,n2]); N=length(n); y1=zeros(1,N); y2=zeros(1,N); y1(find((n>=min(n1))&(n<=max(n1))))=x1; (接y2(find((n>=min(n2))&(n<=max(n2))))=x2; x=y1.*y2; 上subplot(3,1,1),stem(n1,x1,'filled','k'); ylabel('x1(n)'); 页axis([min(n),max(n),1.1*min(x1),1.1*max(x1)]); subplot(3,1,2),stem(n2,x2,'filled','k'); ) ylabel('x2(n)'); axis([min(n),max(n),1.1*min(x2),1.1*max(x2)]); 实subplot(3,1,3),stem(n,x,'filled','k'); 验ylabel('x(n)'); 步axis([min(n),max(n),1.1*min(x),1.1*max(x)]); 骤 方 四、序列反折 法 n=-4:4; x=exp(-0.3*n); 关x1=fliplr(x); 键n1=-fliplr(n); 代subplot(1,2,1),stem(n,x,'filled','k'); 码 title('x(n)'); subplot(1,2,2),stem(n1,x1,'filled','k'); title('x(-n)'); 五、序列的尺度变换 n=0:40;tn=n./20; x=sin(2*pi*tn); x1=sin(2*pi*tn*2); x2=sin(2*pi*tn/2); --精品
精品--
subplot(3,1,1),stem(tn,x,'filled','k'); ylabel('x(n)'); axis([0,2,1.1*min(x),1.1*max(x)]); subplot(3,1,2),stem(tn,x1,'filled','k'); ylabel('x(2n)'); axis([0,2,1.1*min(x),1.1*max(x)]); subplot(3,1,3),stem(tn,x2,'filled','k'); ylabel('x(n/2)'); axis([0,2,1.1*min(x),1.1*max(x)]); 三、流程图 测试记录 一、序列的移位 分 析 结 论 x(n)=x(n-m) --精品
精品--
1. --精品
精品--
2. 二、序列的相加 --精品
精品--
1. --精品
精品--
2. 三、序列相乘 --精品
精品--
四、序列反折 --精品
精品--
五、序列的尺度变换 --精品
精品--
小 经本次实验我了解了序列的移位、序列的相加、序列相乘、序列反折及序列的尺度变换的实现方法,结 并通过绘出它们的图形掌握了各个函数的特点,此次实验编写让我对序列的基本应用有所认识 以下由实验教师填写 记 事 评 议 --精品
精品--
成绩评定
平时成绩_______ 实验报告成绩________ 综合成绩 _________ 指导教师签名: --精品