数字信号处理实验离散序列的基本运算.docx
《数字信号处理实验离散序列的基本运算.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验离散序列的基本运算.docx(12页珍藏版)》请在冰豆网上搜索。
数字信号处理实验离散序列的基本运算
课程名称
数字信号处理
实验课时
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.
三、序列相乘
四、序列反折
五、序列的尺度变换
小结
经本次实验我了解了序列的移位、序列的相加、序列相乘、序列反折及序列的尺度变换的实现方法,并通过绘出它们的图形掌握了各个函数的特点,此次实验编写让我对序列的基本应用有所认识
以下由实验教师填写
记事
评议
成绩评定
平时成绩_______实验报告成绩________综合成绩_________
指导教师签名: