《数字信号处理实验报告一离散信号及其matlab实验》由会员分享,可在线阅读,更多相关《数字信号处理实验报告一离散信号及其matlab实验(6页珍藏版)》请在金锄头文库上搜索。
1、1实验报告2012 年年 04 月月 06 日日课程名称:课程名称: 数字信号处理 实验名称:实验名称: 离散信号及其 MATLAB 实现 班级:班级: 学号学号: 姓名:姓名: 实验一实验一 离散信号及其离散信号及其 MATLABMATLAB 实验实验1、实验目的 (1)熟悉 MATLAB 的主要操作命令; (2)学会离散信号的表示方法及其基本运算; (3)掌握简单的绘图命令; (4)用 Matlab 编程并学会创建函数。2、实验内容 (1)序列的加、减、乘、除和乘方运算。输入 A=1 2 3 4 ,B=3 4 5 6, 起点 n=0,求 C=A+B,D=A-B,E=A.*B,F=A./B,
2、G=A.B,并用 stem 语句画出 A,B,C,D,E,F,G。 (2)用 MATLAB 实现下列序列:1 x(n)= 0n15n8 . 02 x(n)= 0n15nje)32.0(3 x(n)=3cos(0.125n+0.2)+2sin(0.25n+0.1) 0n15 (3)编写函数如 stepshift(n0,n1,n2)实现 u(n)的移动序列 u(n-n0), n1nn2,给出该函数的图形。设 n1=0,n2=9,n0=2 (4) x(n)=1,-1,3,5,起点 n=0,产生并绘出下列序列的样本:x1(n)=2x(n+2)-x(n-1)-2x(n)三、实验程序及实验图形 实验(1)
3、 1、 程序:n=0:3; A=1 2 3 4 ; %定义序列 A,即一行四列的矩阵 B=3 4 5 6; %定义序列 B C=A+B;D=A-B;E=A.*B;F=A./B;G=A.B; figure(1); subplot(2,2,1) %将图形界面分成 2 行 2 列,其中第一个显示下列图形 stem(n,A,r*); %绘制二维离散数据的火柴杆图,用红线和*号标出2xlabel(n); %x 轴标签为 n ylabel(A); %y 轴标签为 A grid on; %绘制网格 subplot(2,2,2) stem(n,B);xlabel(n);ylabel(B);grid on; s
4、ubplot(2,2,3) stem(n,C);xlabel(n);ylabel(C);grid on;title(序列的运算); subplot(2,2,4); stem(n,D);xlabel(n);ylabel(D);grid on; figure(2); subplot(3,1,1) stem(n,E);xlabel(n);ylabel(E);grid on;title(序列的运算); subplot(3,1,2) stem(n,F);xlabel(n);ylabel(F);grid on; subplot(3,1,3) stem(n,G);xlabel(n);ylabel(G);gr
5、id on;2、 运行结果012301234nA01230246nB01230510nC位 位 位 位 位0123-2-1.5-1-0.50nD图 1 A、B、C、D 的波形300.511.522.5302040nE位 位 位 位 位00.511.522.5300.51nF00.511.522.530200040006000nG图 2 E、F、G 的波形 3、 实验结果分析: 由图 1 和图 2 可知:序列的加、减、乘、除是在 n 上的对应点的加、减、乘、 除,.*、./、.也是矩阵的对应点相乘、除、乘方,对离散序列进行运算可 以看作是对两个行向量的运算。实验(2) 1、 程序:clear;
6、close all; %初始化 n=0:15; x1=(0.8).n; x2=exp(0.2+3j).*n); x3=3*cos(0.175*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi); % 定义 x1,x2.x3 figure(1); subplot(3,1,1); stem(n,x1); xlabel(n);ylabel(x1); grid on; title(序列的表示); %显示图形的名字 subplot(3,1,2); stem(n,x2); %画火柴图 xlabel(n);ylabel(x2); grid on; subplot(3,1,3);stem
7、(n,x3);xlabel(n);ylabel(x3);grid on;42、运行结果:05101500.51nx1位 位 位 位 位051015-20020nx2051015-505nx3图 3 序列的基本运算3、实验结果分析: 从图 3 上可以看出:离散序列可以看作是连续函数在一些等间隔点上的 采样,即在连续函数的基础上对图形进行离散化,使得原来可以取定义域内 任意值的自变量 t 转换成只能取定义域内的整数的自变量 n,如此进行抽样, 但该离散序列图形的包络和与之对应的连续函数的波形是一致的。实验(3) 1、 程序% 方法一 下标为 0-9 clear;close all; n1=0;n2
8、=9;n0=2; N=n2-n1+1; x=ones(1,N); %生成一个 1 行 N 列的单位矩阵 n,x1=stepshift(n0,n1,n2); %移位 figure(1); subplot(2,1,1); stem(n,x); xlabel(n);ylabel(x); title(阶跃序列) subplot(2,1,2); stem(n,x1); xlabel(n);ylabel(x1); title(阶跃序列的移位);52、运行结果:012345678900.51nx位 位 位 位012345678900.51nx1位 位 位 位 位 位 位图 4 序列的移位2、 实验结果分析:
9、 序列的移位就是原始序列按照给定的移动单位个数 n0 在 n 轴上左右移动, u(n+n0)表示沿着 n 的向右移动序列 u(n),u(n-n0) 表示沿着 n 的向右移动 序列 u(n)。实验(4) 1、 程序:clear; close all; n=0:3; x=1 -1 3 5; x11,n11=sigshift(x,n,+2) %产生序列 x(n+2),即 x(n)左移 2 个单位 figure(1); stem(n11,x11); x12,n12=sigshift(x,n,-1); %产生序列 x(n-1),即 x(n)右移 1 个单位 x13,n13=sigshift(x,n,0)
10、; %产生序列 x(n) x1,n=sigadd(2*x11,n11,(-1)*x12,n12,(-2)*x13,n13);%以上三个序列 %相加 figure(2) stem(n,x1); xlabel(n);ylabel(x1); title(序列相加);grid on;62、运行结果:-2-1.5-1-0.500.51-1012345-2-101234-15-10-5051015nx1位 位 位 位图 5 序列的复合运算 3、实验结果分析:由图 5 可知:序列的复合运算可看作是序列经过各种基本运算(如:移位, 幅度放大等)之后再在对应的 n 点上进行加、减、乘、除的过程。4、实验小结:通过本次实验,巩固了 MATLAB 软件的使用,熟悉 MATLAB 的主要操作命令 及主要的编程要点,学习了使用 MATLAB 表示离散信号的方法及对离散序列进行 基本操作的实现方法,同时还掌握了简单的绘图命令和基本图形绘制的个别函 数,并且复习了理论课中的很多基本知识,获得了使用计算机实现离散数据操 作的宝贵经验。