学习交流

当前位置 /首页/母婴教育/学习交流/列表

数字信号处理实验二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))

3、

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');

数字信号处理实验二MATLAB

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')

数字信号处理实验二MATLAB 第2张

例题

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 第3张

五、实验总结

学会了基本信号在Matlab中的基本表示方法,做实验时注意数字相乘和字母相乘需要加点,同时注意提前定义所有需要的基本扩展函数,做实验时需要仔细认真,注意中英文的切换问题,不能出现中文空格

TAG标签:MATLAB 信号处理 #