数字信号处理实验二精选.docx
《数字信号处理实验二精选.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验二精选.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理实验二精选
实验二离散时间系统的时域分析
实验室名称:
实验时间:
姓名:
学号:
专业:
指导教师:
成绩
教师签名:
年月日
一、实验目的
1.利用MATLAB仿真简单的离散时间系统,研究其时域特性;
2.对线性时不变系统进行重点分析研究,掌握其特性。
二、实验内容
2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?
2.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]的影响是什么?
2.4修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信号作为输入信号(见程序P1.7),计算其输出信号。
你能用该系统对扫频信号的响应来解释习题Q2.1和习题Q2.2的结果吗?
2.7运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统吗?
2.12运行程序P2.4并比较输出序列y[n]和yd[n-10]。
这两个系列之间有什么关系?
该系统是时不变系统吗?
2.19运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。
2.20修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本:
2.23运行程序P2.6,计算输出序列y[n]和y2[n]以及差值信号d[n]。
Y[n]和y2[n]相等吗?
2.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]?
三、实验器材及软件
1.微型计算机1台
2.MATLAB7.0软件
四、实验原理
1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为
归纳上式可得
此式表示了一个因果M点平滑FIR滤波器。
2.对线性离散时间系统,若y1[n]和y2[n]分别是输入序列x1[n]和x2[n]的响应,则输入
的输出响应为
则系统称为线性系统。
3.对于离散时不变系统,若y1[n]是x1[n]的响应,则输入
x[n]=x1[n-n0]
的输出响应为
y[n]=y1[n-n0]
则称系统为时不变系统。
五、实验步骤
2.1首先利用MATLAB产生一个高频正弦信号和一个低频正弦信号,利用两个信号生成一个输入信号,接着利用filter函数生成输出信号,最后利用plot函数画出4
个信号,再对输出信号进行分析。
2.2在2.1的基础上编写num=ones[1-1],运行程序得出结论。
2.4分别用扫频信号通过2.1、2.2的系统,进行比较分析。
2.7分别计算出y1[n]和y2[n],得到yt[n];再利用filter函数求得y[n],计算差值输出,比较y[n]和yt[n]。
2.20根据impz函数的调用方式,得到
num=[0.9-0.450.350.002]den=[10.71-0.46-0.62],再调用impz函数,画出图像。
2.23首先产生序列x[n],把它作为四阶系统的输入,生成y[n]。
然后将同样的输入x[n]应用到第一级得到y1[n]。
接着用相同的方法得到y2[n]。
最后求得两者的差,并画出图像。
2.28分别用conv函数和filter函数求得输出,进行图像比较。
六、实验记录(数据、图表、波形、程序等)
2.1对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。
输入x[n]的哪个分量被该离散时间系统抑制?
%ProgramP2_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;
2.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]的影响是什么?
在M=2的基础上,线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]),则在MATLAB上,程序P2.1更改:
num可以直接表示为num=[1-1],通用的表达式为:
num=[1-ones(1,M-1)]。
得到图像为
2.4修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信号作为输入信号(见程序P1.7),计算其输出信号。
你能用该系统对扫频信号的响应来解释习题Q2.1和习题Q2.2的结果吗?
%扫频信号通过2.1系统:
clf;
n=0:
100;
s1=cos(2*pi*0.05*n);
s2=cos(2*pi*0.47*n);
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,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;
%扫频信号通过2.2系统:
clf;
n=0:
100;
s1=cos(2*pi*0.05*n);
s2=cos(2*pi*0.47*n);
a=pi/2/100;
b=0;
arg=a*n.*n+b*n;
x=cos(arg);
M=input('滤波器所需的长度=');
num=[1-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;
2.7运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?
该系统是线性系统吗?
%ProgramP2_3
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.12运行程序P2.4并比较输出序列y[n]和yd[n-10]。
这两个系列之间有什么关系?
该系统是时不变系统吗?
%ProgramP2_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];
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);
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',num2str(D),']的输出']);grid;
subplot(3,1,3)
stem(n,d);
xlabel('时间序号n');ylabel('振幅');
title('差值信号');grid;
2.19运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。
%ProgramP2_5
clf;
N=40;
num=[2.24032.49082.2403];
den=[1-0.40.75];
y=impz(num,den,N);
stem(y);
xlabel('时间序号n');ylabel('振幅');
title('冲激响应');grid;
2.20修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本:
clf;
N=45;
num=[0.9-0.450.350.002];
den=[10.71-0.46-0.62];
y=impz(num,den,N);
stem(y);
xlabel('时间序号n');ylabel('振幅');
title('冲激响应');grid;
2.23运行程序P2.6,计算输出序列y[n]和y2[n]以及差值信号d[n]。
Y[n]和y2[n]相等吗?
%ProgramP2_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)
xlabel('时间序号n');ylabel('振幅');
title('差值信号');grid;
2.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]?
%ProgramP2_7
clf;
h=[321-210-403];
x=[1-23-4321];
y=conv(h,x);
n=0:
14;
subplot(2,1,1);
stem(n,y);
xlabel('时间序号n');ylabel('振幅');
title('用卷积得到的输出');grid;
x1=[xzeros(1,8)];
y1=filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('时间序号n');ylabel('振幅');title('由滤波生成的输出');grid;
7、实验思考题及解答
2.1由图像可知,输出信号只保留了输入信号中的信号#1(低频)部分,抑制了高频分量,将其滤除,该滤波器为一个低通滤波器。
2.2由图可知,输入信号的系数改变,输出信号为输入信号的高频部分,低频部分受到了抑制,则滤波器为高通滤波器。
2.4当扫频正弦信号经过2.1的系统,根据其输入输出信号可以观察出,当输入信号的频率低时,输出信号的衰减小,随着频率增加,其衰减增大。
由于输入信号为f1=0.05和f2=0.47两信号的叠加,观察扫频信号,当n=10时,几乎无衰减,当n=94时,衰减很多,即s2高频信号受到了抑制,所以2.1的输出为低频信号。
当扫频正弦信号经过2.2的系统,根据其输入输出信号可以观察出,当输入信号的频率低时,输出信号的衰减大,随着频率增加,其衰减减小。
由于输入信号为f1=0.05和f2=0.47两信号的叠加,观察扫频信号,当n=94时,几乎无衰减,当n=10时,衰减很多,即s1低频信号受到了抑制,所以2.2的输出为高频信号。
2.7因为差值信号的数量级为10-15,是非常小的,所以两个序列应为相等的;根据线性系统的定义,该系统是线性系统。
2.12yd[n-10]是y[n]延时10个单位。
因为x[n]→y[n],x[n-10]→y[n-10],所以该系统是一个时不变系统。
2.23因为差值信号的数量级为10-14,非常小,所以两个信号是相等的。
2.28y[n]与y1[n]没有差别;
因为fliter函数产生的输出向量y的长度与输入序列x的长度相同,而conv函数输出向量的长度为冲激h与输入序列x的长度之和减一,两者的长度不等,所以要对x[n]补零,使得x1[n]的长度与conv输出向量的长度相等。