资源描述
数字信号处理实验报告
实验一 离散时间信号的时域表示
一、实验目的
1、熟悉Matlab命令,掌握离散时间信号-序列的时域表示方法。
2、掌握用Matlab描绘二维图像的方法。
3、掌握用Matlab对序列进行基本的运算和时域变换的方法。
二、实验内容
(1)参考示例程序,产生一个有延迟的单位抽样序列:d (n-11),,绘出序列的图形。
>> n =[5:15];
x=(n>=11)-(n>=12);
stem(n,x);
>>
(2)参考示例程序,产生一个向前时移7个时刻的单位阶跃序列:u(n+7),,绘出序列的图形。
>> n =[-10:10];
x=(n>=-7);
stem(n,x);
(3)产生一个指数为[-0.1+(pi/6)*i]n的复指数序列,并绘出序列的实部、虚部、幅度和相位的波形。
>> n =[-10:10];
x=exp((-0.1+(pi/6)*i).*n);
subplot(221);
stem(n,real(x));
subplot(222);
stem(n,imag(x));
subplot(223);
stem(n,abs(x));
subplot(224);
stem(n,angle(x));
(4)已知x(n)={1,2,3,4,5,6,7, 6,5,4,3,2,1},,参考示例程序,绘出下列序列的波形。
a.x1(n)=2x(n-5)-3x(n+4)
b.x2(n)=x(3-n)+x(n)x(n-2)
A.>> n=-2:10;
n01=5;n02=-4;n03=3;n04=2;
x=[1 2 3 4 5 6 7 6 5 4 3 2 1];
n1=n+n01;
n2=n+n02;
n3=n+n03;
n4=n+n04;
n5=-fliplr(n3);%x(3-n)ÐòÁÐλÖõĕ´ÕÛ
nn1=min([n1,n2]):max([n1,n2]);
N1=length(nn1);
y=zeros(1,N1);y1=y;y2=y;
y(find((nn1>=min(n))&(nn1<=max(n))))=x;
y1(find((nn1>=min(n1))&(nn1<=max(n1))))=x;%y1=x(n-5)
y2(find((nn1>=min(n2))&(nn1<=max(n2))))=x;%y2=x(n+4)
x1=2*y1-3*y2;
figure(1);
subplot(2,2,1),stem(nn1,y);
title('x(n)');
axis([min(nn1),max(nn1),1.2*min(y),1.2*max(y)]);
subplot(2,2,2),stem(nn1,y1);
title('x(n-5)');
axis([min(nn1),max(nn1),1.2*min(y1),1.2*max(y1)]);
subplot(2,2,3),stem(nn1,y2);
title('x(n+4)');
axis([min(nn1),max(nn1),1.2*min(y2),1.2*max(y2)]);
subplot(2,2,4),stem(nn1,x1);
title('2x(n-5)-3x(n+4)');
axis([min(nn1),max(nn1),1.3*min(x1),1.3*max(x1)]);
B.n=-2:10;
n01=5;n02=-4;n03=3;n04=2;
x=[1 2 3 4 5 6 7 6 5 4 3 2 1];
n1=n+n01;
n2=n+n02;
n3=n-n03;
n4=n+n04;
n5=-fliplr(n3);%x(3-n)序列位置的反折
nn2=min([n4,n5]):max([n4,n5]);
N2=length(nn2);
z=zeros(1,N2);z1=z;z2=z;
z(find((nn2>=min(n))&(nn2<=max(n))))=x;
z1(find((nn2>=min(n4))&(nn2<=max(n4))))=x;%z1=x(n-2)
z2(find((nn2>=min(n5))&(nn2<=max(n5))))=x;%z2=x(3-n)
x2=z2+z.*z1;
figure(2);
subplot(2,2,1),stem(nn2,z);
title('x(n)');
axis([min(nn2),max(nn2),1.2*min(z),1.2*max(z)]);
subplot(2,2,2),stem(nn2,z1);
title('x(n-2)');
axis([min(nn2),max(nn2),1.2*min(z1),1.2*max(z1)]);
subplot(2,2,3),stem(nn2,z2);
title('x(3-n)');
axis([min(nn2),max(nn2),1.2*min(z2),1.2*max(z2)]);
subplot(2,2,4),stem(nn2,x1);
title('x(3-n)+x(n)*x(n-2)');
四、思考
(1)代数运算符号^和.^的区别是?
^,.^都是求幂,^是对矩阵,.^对数组。数组运算是指数组对应元素之间的运算,也称点运算.矩阵的乘法、乘方和除法有特殊的数学含义,并不是数组对应元素的运算,所以数组乘法、乘方和除法的运算符前特别加了一个点。
展开阅读全文