序列的时域表示与运算
一、实验目的
1. 掌握离散时间信号的表示;
2. 掌握离散时间信号的基本运算(加、减、乘、反折、移位)的规则; 3. 能用MATLAB进行简单的编程;
4. 学习MATLAB函数的调用,实现序列的显示和运算。 二、实验内容与要求
请在实验报告中记录以下程序和结果
1.用MATLAB产生并画出下列序列的样本。
1) x1(n)m1[n2mn2m1],0n25
m0102) x2(n)n2[un5un6]10n200.5[un4un10] 3) x3(n)0.9cos(0.2n/3),0n20
4) x4(n)10cos(0.0008n2)wn,0n100,式中wn是在[-1,1]之间均匀分 布的随机序列;
2. 学习函数的调用。设x(n){1,2,3,4,5,6,7,6,5,4,3,2,1},求解并画出下面序列。
nn y1(n)2x(n5)3x(n4) y2(n)x(3n)x(n)x(n2) 3. 已知序列x[n]e(0.1j0.3)n10n10 ,在一个图形窗中分别画出该序
列的实部、虚部、幅值和相位图。
注:学习abs、angle、real、imag、subplot、title函数的使用。 4. 若线性时不变系统的单位样值响应为h(n)(0.6)nu(n),输入序列
x(n)u(n)u(n10),求系统的输出y(n),并画出其波形图。
实验程序及结果如下: 1.1
N=25; n=0:N; x=0;
for m=0:1:10
x=x+(m+1).*(impseq(2*m,0,N)-impseq(2*m+1,0,N)); end
stem(n,x); xlabel('t'); ylabel('y');
1.2
N=10; n=-5:N;
x=(n.^2).*(stepseq(-5,-5,N)-stepseq(6,-5,N))+10*stepseq(0,-5,N)+20*(0.5.^n).*(stepseq(4,-5,N)-stepseq(10,-5,N)); stem(n,x);
1.3
n=0:0.2:20;
x=0.9.^n.*cos(0.2*pi*n+pi/3); stem(n,x);
title('x=0.9^n*cos(0.2*pi*n+pi/3)'); xlabel('t'); ylabel('y');
1.4
n=0:0.5:100;
x=10*cos(0.0008*pi*n.^2)+(2*(rand)-1); stem(n,x);
title('x=10*cos(0.0008*pi*n.^2)'); xlabel('t'); ylabel('y');
2
n=-2:10;
x=[1:7,6:-1:1];
[x11,n11]=sigshift(x,n,5); [x12,n12]=sigshift(x,n,-4);
[x1,n1]=sigadd(2*x11,n11,-3*x12,n12); subplot(2,1,1); stem(n1,x1);
[x21,n21]=sigfold(x,n);
[x21,n21]=sigshift(x21,n21,3); [x22,n22]=sigshift(x,n,2);
[x22,n22]=sigmult(x,n,x22,n22); [x2,n2]=sigadd(x21,n21,x22,n22); subplot(2,1,2); stem(n2,x2);
3
n=-10:10;
x=exp((-0.1+j*0.3)*n); subplot(2,2,1); r=real(x); stem(n,r);
title('实部图'); i=imag(x);
subplot(2,2,2); stem(n,i);
title('虚部图'); a=abs(x);
subplot(2,2,3); stem(n,a);
title('幅值图'); g=angle(x); subplot(2,2,4); stem(n,g);
title('相位图');
4
N=10; n=0:N;
x=stepseq(0,0,N)-stepseq(10,0,N); h=(0.6.^n).*stepseq(0,0,N); y=conv(x,h);
ny=0:length(y)-1; stem(ny,y); xlabel('t'); ylabel('y');
实验总结:
通过这次实验的学习,我基本上掌握了离散时间信号的表示,以及离散时间信号的基本运算(加、减、乘、反折、移位)的规则,这些规则,能够让我们在编程以及运算的时候变得简单许多。这次的实验,还主要学习了MATLAB函数的调用,实现序列的显示和运算。通过这次的学习,使我能够用MATLAB进行简单的编程。另外,我们在进行变量和文件名的命名时,要注意以英文字母开头,由字母、数字和下划线组成,并且不要与MATLAB内置函数名称相同。总之,这次的实验让我对MATLAB有了更深一步的认识,也巩固了所学的知识,收获不浅。