数字信号处理第二章实验报告.docx
《数字信号处理第二章实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理第二章实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
实验报告
课程:
数字信号处理
专业班级:
学生姓名:
学号:
年月日
2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?
%程序P2_1
%一个M点滑动平均滤波器的仿真
%产生输入信号
n=0:
100;
s1=cos(2*pi*0.05*n);%一个低频正弦
s2=cos(2*pi*0.47*n);%一个高频正弦
x=s1+s2;
%M点滑动平均滤波器的实现
M=input('滤波器所需的长度=');
num=ones(1,M);
y=filter(num,1,x)/M;
clf;
subplot(2,2,1);
plot(n,s1);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('低频正弦');
subplot(2,2,2);
plot(n,s2);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('高频正弦');
subplot(2,2,3);
plot(n,x);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输入信号');
subplot(2,2,4);
plot(n,y);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输出信号');
axis;
图形显示如下:
答:
输入部分的高频成分成分被抑制了。
2.3对滤波器长度M和正弦信号s1[n]和s2[n]的频率取其他值,运行程序P2.1,算出结果。
n=0:
100;
s1=cos(2*pi*0.02*n);
s2=cos(2*pi*0.46*n);
x=s1+s2;
%M点滑动平均滤波器的实现
M=input('滤波器所需的长度=');
num=ones(1,M);
y=filter(num,1,x)/M;
clf;
figure,
subplot(2,2,1);
plot(n,s1);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('低频正弦');
subplot(2,2,2);
plot(n,s2);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('高频正弦');
subplot(2,2,3);
plot(n,x);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输入信号');
subplot(2,2,4);
plot(n,y);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输出信号');
axis;
num=[1,-ones(1,M-1)];
y=filter(num,1,x)/M;
figure,
subplot(2,2,1);
plot(n,s1);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('低频正弦');
subplot(2,2,2);
plot(n,s2);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('高频正弦');
subplot(2,2,3);
plot(n,x);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输入信号');
subplot(2,2,4);
plot(n,y);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('输出信号');
axis;
图形显示如下:
答:
运行结果如下图,可以看出输出信号保留了输入信号x[n]的高频分量,即保留了s2[n]分量,低频部分s1[n]被抑制了。
2.5用不同频率的正弦信号作为输入信号,计算每个输入信号的输出信号。
输出信号是如何受到输入信号频率的影响的?
从数学上对你的结论加以证明。
%程序P2_2
%产生一个正弦输入信号
clf;
n=0:
200;
f=input('Pleaseinputthevalueoff:
')
x=cos(2*pi*f*n);
%计算输出信号
x1=[x00];%x1[n]=x[n+1]
x2=[0x0];%x2[n]=x[n]
x3=[00x];%x3[n]=x[n-1]
y=x2.*x2-x1.*x3;
y=y(2:
202);
%画出输入和输出信号
subplot(2,1,1)
plot(n,x)
xlabel('时间序列n');ylabel('振幅');
title('输入信号')
subplot(2,1,2)
plot(n,y)
xlabel('时间信号n');ylabel('振幅');
title('输出信号');
分别取F=0.05,F=0.47,F=0.5以及F=0,仿真结果如下所示:
证明:
设输入信号为,则以及则
答:
从图形中可以看出,输入频率越大,输出信号值越小。
最后都逐渐趋于0。
2.7运行程序P2.3,对由加权输入得到的y[n]在与相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统么?
clf;
n=0:
40;
a=2;b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.24032.49082.2403];
den=[1-0.40.75];
ic=[00];
y1=filter(num,den,x1,ic);
y2=filter(num,den,x2,ic);
y=filter(num,den,x,ic);
yt=a*y1+b*y2;
d=y-yt;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('加权输入:
a\cdotx_{1}[n]+b\cdotx_{2}[n]的输出');
subplot(3,1,2)
stem(n,yt);
ylabel('这幅');
title('加权输出:
a\cdoty_{1}[n]+b\cdoty_{2}[n]');
subplot(3,1,3)
stem(n,d);
xlabel('时间序号n');ylabel('振幅');
title('差信号');
图形显示如下:
答:
该仿真结果说明这两个序列相等,该系统是线性系统。
2.9当初始条件非零时重做习题Q2.7。
令ic=[1020];则仿真结论如下所示:
答:
该仿真结果说明这两个序列不相等,该系统不是线性系统。
2.11假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n]和y[n]。
比较y[n]和yt[n]。
这两个序列是否相等?
该系统是线性系统吗?
n=0:
40;
a=2;b=-3;
x11=[0cos(2*pi*0.1*n)0];x12=[00cos(2*pi*0.1*n)];
x21=[0cos(2*pi*0.4*n)0];x22=[00cos(2*pi*0.4*n)];
y1=x11.*x12;y2=x21.*x22;
yt=a*y1+b*y2;
y=(a*x11+b*x21).*(a*x12+b*x22);
d=y-yt;
subplot(3,1,1)
stem([0n0],y);
ylabel('振幅');
title('加权输入:
a\cdotx_{1}[n]+b\cdotx_{2}[n]的输出');
subplot(3,1,2)
stem([0n0],yt);
ylabel('这幅');
title('加权输出:
a\cdoty_{1}[n]+b\cdoty_{2}[n]');
subplot(3,1,3)
stem([0n0],d);
xlabel('时间序号n');ylabel('振幅');
title('差信号');
图形显示如下:
答:
这两个序列不相等,该系统不是线性系统。
2.13采用三个不同的延时变量D的值重做习题Q2.12。
D=2;D=6;D=12;显示图形如下:
答:
该系统是时不变系统,满足y[n-D]=yd[n]。
2.15在非零的初始条件下重做习题Q2.12,该系统是时不变系统吗?
clf;
n=0:
40;D=10;a=3.0;b=-2;
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xd=[zeros(1,D)x];
num=[2.24032.49082.2403];
den=[1-0.40.75];
ic=[510];
y=filter(num,den,x,ic);
yd=filter(num,den,xd,ic);
d=y-yd(1+D:
41+D);
subplot(3,1,1)
stem(n,y);
ylabel('Õñ·ù');
title('Êä³öy[n]');grid;
subplot(3,1,2)
stem(n,yd(1:
41));
ylabel('Õñ·ù');
title('ÓÉÓÚÑÓʱÊäÈëx[n-10]µÄÊä³ö');grid;
subplot(3,1,3)
stem(n,d);
xlabel('ʱ¼äÐòºÅn');ylabel('Õñ·ù');
title('²îÖµÐźÅ');
grid;
图形显示如下:
答:
该仿真结果说明该系统是时变系统。
2.17考虑另一个系统:
y[n]=nx[n]+x[n-1],修改程序P2.4,以仿真上面的系统并确定该系统是否为时不变系统。
clf;
n=0:
40;D=10;a=3.0;b=-2;
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
xd=[zeros(1,D)x];
nd=0:
length(xd)-1;
y=(n.*x)+[0x(1:
40)];
yd=(nd.*xd)+[0xd(1:
length(xd)-1)];
d=y-yd(1+D