数字信号处理实验2.docx
《数字信号处理实验2.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验2.docx(14页珍藏版)》请在冰豆网上搜索。
![数字信号处理实验2.docx](https://file1.bdocx.com/fileroot1/2023-2/25/c7d1a34e-71b7-4656-a699-7e031748f80f/c7d1a34e-71b7-4656-a699-7e031748f80f1.gif)
数字信号处理实验2
实验二离散时间系统的时域分析
实验室名称:
计算机基础实验室(信息学院2202)实验时间:
2015年9月24日
姓名:
王凤琼学号:
20131060114专业:
电子信息工程指导教师:
柏正尧
成绩
教师签名:
年月日
一、实验目的
1.通过MATLAB仿真一些简单的离散时间系统,并研究它们的时域特性。
2.了解滑动平均系统的特性,仿真滑动平均系统,与理论课相结合,分析系统特性。
3.运用MATLAB程序得出线性时不变离散时间系统的冲激响应。
4.熟悉相应的MATLAB命令,如filter,impz。
5.实验与理论相结合,能达到对理论的更好理解。
二、实验内容
1.滑动平均系统的仿真;
2.线性和非线性系统的仿真;
3.线性时不变离散时间系统的仿真;
Q2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?
Q2.2若线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]),对输入x[n]=s1[n]+s2[n]有什么影响?
Q2.4修改程序P2.1,用一个长度为101,最低频率为0,最高频率为0.5的扫频正弦信号作为输入信号,计算其输出信号。
Q2.7运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统吗?
Q2.12采用三个不同的延时变量D的值运行程序P2.4并比较输出序列y[n]和yd[n-10]。
这两个序列之间有什么关系?
该系统是时不变系统吗?
Q2.19运行程序P2.5,生成2.15所给离散时间系统的冲激响应。
y[n]-0.4y[n-1]+0.75y[n-2]=2.2403x[n]+2.4908x[n-1]+2.2403x[n-2]
Q2.20修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本:
y[n]+0.71y[n-1]-0.46y[n-2]-0.62y[n-3]=0.9x[n]-0.45x[n-1]+0.35x[n2]+0.002x[n-3]
Q2.23运行程序p2.6,计算输出序列y[n]和y2[n]以及差值信号d[n],y[n]和y2[n]相等
Q2.28运行程序p2.7,对序列h[n]和y[n]求卷积,生成y[n],并用FIR
滤波器h[n]对输入x[n]滤波,求得y1[n]。
y[n]和y1[n]有差别吗?
为什么要使用对x[n]补零后得到的x1[n]作为输入来产生y1[n]?
计算线性时不变离散时间系统的冲激响应,运用MATLAB命令y=impz(num,den,N),得出冲激响应的前N个样本。
三、实验器材及软件
1.微型计算机1台
2.MATLAB7.0软件
四、实验原理
1.若y1[n]和y2[n]分别是因果离散时间系统输入信号u1[n]和u2[n]的响应,则当
u1[n]=u2[n]n2.对于离散时不变系统,若y1[n]是x1[n]的响应,则输入x[n]=x1[n=n0]的输出响应为y[n]=y1[n-n0]。
3.描述因果线性时不变离散时间系统,可用命令filter进行仿真。
计算冲激响应可用函数impz表示计算冲击响应钱N个样本可用y=impz(num,den,N)来表示。
五、实验步骤
按照课本上的例题书写程序。
六实验记录(数据、图表、波形、程序等)
Q2.1
clf;
n=0:
100;
s1=cos(2*pi*0.05*n);
s2=cos(2*pi*0.47*n);
x=s1+s2;
M=input('滤波器所需的长度=');
num=ones(1,M);
y=filter(num,1,x)/M;
subplot(2,2,1);
plot(n,s1);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('信号#1');
subplot(2,2,2);
plot(n,s2);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('信号#2');
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;
Q2.2
clf;
n=0:
100;
s1=cos(2*pi*0.05*n);
s2=cos(2*pi*0.47*n);
x=s1+s2;
M=input('滤波器所需的长度=');
num=[1,-ones(1,M-1)];
y=filter(num,1,x)/M;
subplot(2,2,1);
plot(n,s1);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('信号#1');
subplot(2,2,2);
plot(n,s2);
axis([0,100,-2,2]);
xlabel('时间序号n');ylabel('振幅');
title('信号#2');
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;
Q2.4
clf;
n=0:
100;
a=pi/2/100;
b=0;arg=a*n.*n+b*n;x=cos(arg);
M=input('滤波器所需的长度=');
num=ones(1,M);
y=filter(num,1,x)/M;
subplot(2,1,1);
stem(n,x);
axis([0,100,-2,2]);
xlabel('时间序号n');
ylabel('振幅');
title('输入信号');
subplot(2,1,2);
plot(n,y);
axis([0,100,-2,2]);
xlabel('时间序号n');
ylabel('振幅');
title('输出信号');
axis;
Q2.7
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)
ylabel('振幅');
title('加权输出:
a\cdotx_{1}[n]+b\cdotx_{2}[n]');
subplot(3,1,3)
stem(n,d);
xlabel('时间序号n');ylabel('振幅');
title('差信号');
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=[00];%设置初始条件
y=filter(num,den,x,ic);
yd=filter(num,den,xd,ic);
d=y-yd(1+D:
41+D);%计算差值输出
d[n]subplot(3,1,1)stem(n,y);
ylabel('振幅');
title('输出y[n]');
grid;
subplot(3,1,2)stem(n,yd(1:
41));
ylabel('振幅');
title('由于延时输入的输出');
grid;
subplot(3,1,3);
stem(n,d);
ylabel('振幅');
xlabel('时间序号n');
title('差信号');
grid;
Q2.19%p2.5%计算冲激响应clf;
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
y=impz(num,den,N);
stem(y);
ylabel('振幅');
xlabel('时间序号n');
title('冲激响应');
Q2.20
clf;
N=40;
num=[0.9-0.450.350.002];
den=[10.71-0.46-0.62];
y=impz(num,den,N);
stem(y);
ylabel('振幅');
xlabel('时间序号n');
title('冲激响应');
Q2.23
%p2.6
%级联实现
clf;
x=[1zeros(1,40)];
n=0:
40;
den=[11.62.281.3250.68];
num=[0.06-0.190.27-0.260.12];
y=filter(num,den,x);
num1=[0.3-0.20.4];den1=[10.90.8];
num2=[0.2-0.50.3];den2=[10.70.85];
y1=filter(num1,den1,x);%级联第一级输出
y2=filter(num2,den2,y1);
d=y-y2;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('四阶实现的输出');grid;
subplot(3,1,2)
stem(n,y2);
ylabel('振幅');
title('级联实现的输出');grid;
subplot(3,1,3);
stem(n,d);
ylabel('振幅');
xlabel('时间序号n');
title('差信号');grid;
Q2.28
%p2.7
clf;
h=[321-210-403];%冲激
x=[1-23-4321];
y=conv(h,x);
n=0:
14;
subplot(2,1,1);
stem(n,y);
ylabel('振幅');
xlabel('时间序号n');
title('用卷积得到的输出');
x1=[xzeros(1,8)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y);
ylabel('振幅');
xlabel('时间序号n');
title('由滤波生成的输出');
七、实验思考题及解答
Q2.1
对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?
答:
由图一可以看出,输出信号只保留了输入信号x[n]的s1[n]部分,即低频正弦部分,输入x[n]的s2[n]高频分量被抑制,可知该离散时间系统为低通滤波系统。
Q2.2
若线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]),对输入x[n]=s1[n]+s2[n]的影响是什么?
答:
线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1])可以修改程序中的num=ones(1,M)为num=[1,-ones(1,M-1)]。
看程序运行结果,可以看出输出信号保留了输入信号x[n]的高频部分,低频部分被抑制了。
该系统将由低通滤波器变为高通滤波器。
它会让s2信号的高频成分通过,而把s1信号的低频成分滤除。
Q2.7
运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统吗?
答:
根据线性系统的定义,若x1[n]y1[n],x2[n]y2[n],得出a*x1[n]+b*x2[n]a*y1[n]+b*y2[n],故该系统是线性系统。
由图得到,两个序列是相等的,满足y[n]=yt[n],所以该系统是线性的。
Q2.12
运行程序p2.4,并比较输出序列y[n]和yd[n-10],这两个序列之间有什么关系?
该系统是时不变系统吗?
答:
yd[n-10]是y[n]延时10个样本的序列,该系统是时不变系统。
Q2.23
运行程序p2.6,计算输出序列y[n]和y2[n]以及差值信号d[n],y[n]和y2[n]相等吗?
答:
相等。
Q2.28
运行程序p2.7,对序列h[n]、x[n]求卷积,生成y[n],并用滤波器h[n]对输入x[n]滤波,求得y1[n]。
y[n]和y1[n]有差别吗?
为什么要使用x[n]补零后得到的x1[n]作为输入来产生y1[n]?
答:
由图可以看出y[n]和y1[n]没有差别,序列h[n]、x[n]的卷积得到的y[n]的长度是h[n]和x[n]的长度之和减去1,为15,用滤波器h[n]对输入x[n]滤波得y1[n]长度与x[n]相同,所以要对x[n]补零后得到的x1[n]作为输入来产生y1[n]。
八、实验结果分析与总结
通过本次实验,我知道了滑动平均滤波器的使用,线性和非线性系统的判断,以及线性时不变离散时间系统的冲激响应的计算。
了解了一些函数的使用,impz和filter。
通过实验,我发现一些理论课中比较难理解的部分得到很好的理解,例如滑动平均滤波器,通过图像的显示,直观的看出是它如何进行滤波的。