数字信号处理实验二MATLAB
数字信号处理实验二
一﹑实验目的:
通过Matlab实现基本信号的表示和运算。理解信号的构成和性质。
二﹑实验要求与内容:
1.学习使用基眺螗熨膣本信号在Matlab中的基本表示方法。
2.了解本实验中的扩展函数的结构和组成,实现自己设计的扩展函数的编程。
(1)写一新的卷积函数conv_m,它可求出带下标的序列卷积。
3.掌握复杂信号的表示方法;并对复杂信号进行编程实现。
(1)产生下列序列并绘出离散图。
(a) x(n)=2δ(n+2)-δ(n-4) -5≤n≤5。
(b)x(n)=n[u(n)-u(n-10)]+10a[u(n-10)-u(n-20)]
0≤n≤20。
(c)x(n)=cos(0.04n)=0.2w(n) 0≤n≤50。其中w(n)是均值为零、方差为1的白噪声序列
4.掌握复序列x(n)的实部﹑虚部﹑幅值和相位离散图,并编程实现。
产生复信号:x(n)= -10≤n≤10。并画出复序列x(n)的实部、虚部、幅值、和相位离散图。
5.设线性时不变(LTI)系统的单位冲击响应为h(n)=(0.9)^(n)u(n);输入序列为x(n)=u(n)-u(n-10);求系统输出y(n)。
三、实验步骤
1.先在Matlab中建立保存三个构造函数并保存为.m格式。
建立单位采样序列保存
function[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
2.建立单位阶跃序列保存
function[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
3.编写新卷积函数conv_m保存。
function[y,yn] =conv_m(x,xn,h,hn)
yn1 = xn(1) +hn(1);
yn2 = xn(length(x)) +hn(length(h));
yn = [yn1:yn2];
y = conv(x,h);
4.对实验任务进行编程实现。
四、实验程序及实验结果
2、(1)
function[y,n]=conv_m[x,n1,h,n2]
y=conv(x,h);
n=(min(n1)+min(n2)):(max(n1)+max(n2))
A)n=[-5:5];
x=2*impseq(-2,-5,5)-impseq(4,-5,5);
subplot(2,2,1);stem(n,x);title('Sequencein Eample 3.a');
B)n=[0:20];
x1=n.*(stepseq(0,0,20)-stepseq(10,0,20));
x2=10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));
x=x1+x2;
subplot(2,2,2);stem(n,x);title('Sequencein Eample 3.b');
C)n=[0:50];
f=randn(1,51);
x=cos(0.04*pi.*n)+0.2*f;
subplot(2,2,3);stem(n,x);title('Sequencein Eample 3.c');
4、n=[-10:10];
x=exp((-0.1+j*0.3)*n);
subplot(2,2,1);
stem(n,real(x));
title('real x');xlabel('n');
subplot(2,2,2);
stem(n,imag(x));
title('imag x');xlabel('n');
subplot(2,2,3);
stem(n,abs(x));
title('abs x');xlabel('n');
subplot(2,2,4);
stem(n,angle(x));
title('angle x');xlabel('n')
例题
n=[-5:50];
u1=stepseq(0,-5,50);
u2=stepseq(10,-5,50);
x=u1-u2;
h=((0.9).^n).*u1;
figure(1)
subplot(3,1,1);stem(n,x);axis([-5,50,0,2])
title(' IputSequence ')
ylabel('x(n)')
subplot(3,1,2);stem(n,h);axis([-5,50,0,2])
ylabel('h(n)')
%outputresponse
[y,ny]=conv_m(x,n,h,n);
subplot(3,1,3);stem(ny,y);axis([-5,50,0,8])
gtext('ImpulseResponse')
xlabel('n'),ylabel('y(n)')
五、实验总结
学会了基本信号在Matlab中的基本表示方法,做实验时注意数字相乘和字母相乘需要加点,同时注意提前定义所有需要的基本扩展函数,做实验时需要仔细认真,注意中英文的切换问题,不能出现中文空格!