1、xxxx 大学实验报告 学生姓名 xxx 学 号xxxxxxx 年级班级xxxxxxx 实验项目xxxxxxxx 实验时间xxxxxxxxx 实验二 一、实验目的: 1. 充分熟悉复指数函数 find、sigshift、sigfold 函数的使用; 2. 熟悉序列的加、减、乘、除、移位、折叠的计算; 3. 能够画出结果的图形。 二、实验步骤: 1. 用 help 查找 find、sigshift、sigfold 函数的使用情况; 2. 编辑并生成函数 sigadd.m(序列相加) function y,n = sigadd(x1,n1,x2,n2) % 实现 y(n) = x1(n)+x2(n
2、) % y,n = sigadd(x1,n1,x2,n2) % y = 在包含n1 和 n2 的n点上求序列和 % x1 = 在 n1上的第一序列 % x2 = 在 n2上的第二序列(n2 可与 n1不等) n = min(min(n1),min(n2):max(max(n1),max(n2); % y(n)的长度 y1 = zeros(1,length(n); y2 = y1; % 初始化 y1(find(n=min(n1) % 具有 y 的长度的 x2 y = y1 .* y2; % 序列相乘 4. 编辑并生成函数 sigshift.m(序列移位) function y,n = sigsh
3、ift(x,m,n0) % 实现 y(n) = x(n-n0) % y,n = sigshift(x,m,n0) n = m+n0; y = x; 5. 编辑并生成函数 sigfold.m(序列折叠) function y,n = sigfold(x,n) % 实现 y(n) = x(-n) % y,n = sigfold(x,n) y = fliplr(x); n = -fliplr(n); 6. 编辑并生成实现两序列相乘和相加程序 clc; clear; x1=0,1,2,3,4,3,2,1,0;n1=-2:6; x2=2,2,0,0,0,-2,-2; n2=2:8; y1,n=sigmu
4、lt(x1,n1,x2,n2); y2,n=sigadd(x1,n1,x2,n2); subplot(2,2,1);stem(n1,x1);title(序列 x1) xlabel(n);ylabel(x1(n); subplot(2,2,2);stem(n2,x2);title(序列 x2) xlabel(n);ylabel(x2(n); subplot(2,2,3);stem(n,y1);title(两序列相乘) xlabel(n);ylabel(y1(n); subplot(2,2,4);stem(n,y2);title(两序列相加) xlabel(n);ylabel(y2(n); 运行以
5、上程序得到的图形: 体会:相加或相乘时,两序列尺度要保持一致。 7. 改变坐标尺度重新画图,使图形更加直观; 8. 在命令窗口打出 x1,x2,y1,y2 的值,并贴近实验报告; 9. 编辑并生成实现序列移位和折叠程序 x1=0,1,2,3,4,3,2,1,0;n1=-2:6; y1,n2=sigshift(x1,n1,2); y2,n3=sigfold(x1,n1); subplot(3,1,1);stem(n1,x1);title(序列 x1) xlabel(n);ylabel(x1(n); subplot(3,1,2);stem(n2,y1);title(序列移位) xlabel(n);
6、ylabel(y1(n); subplot(3,1,3);stem(n3,y2);title(序列折叠) xlabel(n);ylabel(y2(n); 运行以上程序得到的图形: 体会:折叠和移位要注意坐标尺度,注意移位和折叠的顺序对最终结果的影响。 10.在命令窗口打出 y1,y2,n2,n3 的值,并贴近实验报告; 11.画出 y3=2x1(2-n), y4=x1(3n)的图形,在命令窗口打出 y3,y4 的值, 并贴近实验报告; 运行以下程序得到 y3: x1=0,1,2,3,4,3,2,1,0;n1=-2:6; y1,n2=sigfold(x1,n1); y2,n3=sigshift(
7、x1,n2,-2); y3=2*y2; subplot(2,2,1);stem(n1,x1);title(序列 x1) xlabel(n);ylabel(x1(n); subplot(2,2,2);stem(n2,y1);title(序列折叠) xlabel(n);ylabel(y1(n); subplot(2,2,3);stem(n3,y2);title(序列移位) xlabel(n);ylabel(y2(n); subplot(2,2,4);stem(n3,y3);title(序列 y3) xlabel(n);ylabel(y3(n); 体会:要能够灵活运用移位和折叠,先移位后折叠,先折叠
8、后移位得到的结果 会不同,这就要注意确定好采用变化的方式,是先移位还是先折叠,之后把握 好移位或折叠后坐标尺度的变化即可。当然,此程序也可改为先移位后折叠的 方式,只要把最关键的两句程序改为y1,n2=sigshift(x1,n1,2); y2,n3 =sigfold(x1,n2);再改一下标题 title 即可。 运行以下程序得到 y4: x1=0,1,2,3,4,3,2,1,0; n1=-2:6; n2=n1/3; n3=fix(-2/3):fix(6/3); n3 m=find(n1/3=fix(n1/3); m y4=x1(m) subplot(3,1,1);stem(n1,x1);t
9、itle(序列 x1) xlabel(n);ylabel(x1(n); subplot(3,1,2);stem(n2,x1);title(变化后) xlabel(n);ylabel(x1(n); subplot(3,1,3);stem(n3,y4);title(序列 y4) xlabel(n);ylabel(y4(n); 体会:此段程序最关键在于 n3=fix(-2/3):fix(6/3); n3 m=find(n1/3=fix(n1/3); m 这几句程序的掌握,即选出除三后为整的 n3 及 第几项满足除后为整的条件的值。 y3,y4 的值: 实验三 一、实验目的: 4. 充分熟悉复指数函数
10、 exp 的使用; 5. 熟悉复指数函数的实部、虚部、振幅、相位的计算; 6. 能够画出复指数函数实部、虚部、振幅、相位的图形。 二、实验步骤: 10. 用 help 查找 exp 函数的使用情况; 11. 编辑并生成函数 exp.m(单位脉冲序列) n=0:1:20; alpha=-0.1+0.5j; x=exp(alpha*n); subplot(2,2,1); stem(n,real(x); title(实部); xlabel(n) subplot(2,2,3); stem(n,imag(x); title(虚部); xlabel(n) subplot(2,2,2); stem(n,ab
11、s(x); title(振幅); xlabel(n) subplot(2,2,4); stem(n,(180/pi)*angle(x); title(相位); xlabel(n) 12. 先运行 exp.m, 画出图形,分析图形的结果。 13. 当 alpha=-0.1+0.5j 时,计算 x 的共轭对称分量和共轭反对称分量,也分实部、 虚部、振幅、相位分别画图。 共轭对称分量 共轭反对称分量 14. 再改变 alpha=1.5, alpha=-2, 画出图形,分析图形的结果。 体会:当 alpha 不含虚部时,复指数序列的虚部为零,相位也为零,而实部与 振幅相等。 15.思考题:试用公式表示 x=exp(alpha*n)的实部、虚部、振幅、相位。 X= e(a+bj)n =eanebnj=ean(cos(bn)+jsin(bn) 则 eancos(bn)为实部,e anjsin(bn)为虚部,e an为振幅,bn 为相 位。