数字信号处理研讨完整报告.docx
《数字信号处理研讨完整报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理研讨完整报告.docx(15页珍藏版)》请在冰豆网上搜索。
数字信号处理研讨完整报告
《数字信号处理》课程研究性学习报告
DSP基本概念和技能的训练
姓名
学号
同组成员
指导教师
时间
DSP基本概念和技能研究性学习报告
【目的】
(1)掌握离散信号和系统时域、频域和z域分析中的基本方法和概念;
(2)学会用计算机进行离散信号和系统时域、频域和z域分析。
(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
【研讨内容】
问题一
(1)阅读教材1.9节及MATLAB中的Help,学会MATLAB函数filter的使用方法;
(2)利用filter函数,求出下列系统的单位脉冲响应,并判断系统是否稳定。
讨论实验所获得的结果。
【题目目的】
1.掌握LTI系统单位脉冲响应的基本概念、系统稳定性与单位脉冲响应的关系;
2.学会filter函数的使用方法及用filter函数计算系统单位脉冲响应;
3.体验有限字长对系统特性的影响。
【仿真结果】
【结果分析】
h1[k]满足绝对可和,且其极点全部在单位圆内,因而第一个系统稳定,而h2[k]趋于一个常数,有一个极点在单位圆外,因而第二个系统不稳定。
【仿真程序】
b1=1;
a1=[1,-1.845,0.850586];
k=0:
100;
x=[1,zeros(1,100)];
h1=filter(b1,a1,x);
subplot(2,1,1);
plot(k,h1);
xlabel('k');ylabel('h1[k]');
b2=1;
a2=[1,-1.85,0.85];
k=0:
100;
x=[1,zeros(1,100)];
h2=filter(b2,a2,x);
subplot(2,1,2);
plot(k,h2);
xlabel('k');ylabel('h2[k]');
figure
subplot(2,1,1)
zplane(b1,a1);
title('h1[k]');
subplot(2,1,2)
zplane(b2,a2);
title('h2[k]');
【问题探究】
已知LTI系统的系统函数
,有哪些计算系统单位脉冲响应方法,比较这些方法的优缺点。
除以上方法外,还可用系统提供的函数impz(b,a,k)。
此方法更简单。
问题二
(1)阅读教材1.9节及MATLAB中的Help,学会MATLAB函数freqz的使用方法;
(2)利用MATLAB语句
x=firls(511,[00.40.4041],[1100])
产生一个长度为512的序列x[k],用plot函数画出序列x[k]的波形,用freqz函数画出该序列的幅度频谱。
观察所得结果,你认为序列x[k]有何特征?
答:
x[k]关于x=256对称
(3)已知序列
,分别画出
时序列y[k]的幅度频谱。
解释所得到的结果。
答:
的频谱为两个
和
的两个幅值为1/2的冲激信号,由离散Fourier变换的卷积特性知,信号时域的乘积对应于频谱的卷积,也即是说y[k]的频谱是x[k]频谱分别向左向右平移
长度后,幅值除以2的图样。
【题目目的】
1.学会用MATLAB函数freqz计算序列频谱;
2.掌握序列频谱的基本特性及分析方法。
【温磬提示】
只需知道MATLAB语句
x=firls(511,[00.40.4041],[1100]
产生一个长度为512的序列x[k],该序列满足
不需知道其他细节。
用函数freqz计算该序列的频谱,在画幅度频谱时,建议用
为横坐标,称其为归一化频率。
【仿真结果】
【问题探究】
有部分的计算结果可能与理论分析的结果不一致,分析出现该现象的原因,给出解决问题方法并进行仿真实验。
答:
实验结果与理论分析不一致,是因为计算机采用数值计算方法,在-2
到2
之间抽样1024个点来近似连续信号,然而在-0.4
和0.4
出信号突变,产生吉布斯现象,进而影响后面频谱处理。
原先以为减小抽样间隔,增加点数可以减小误差,但是吉布斯现象在分段点处依然明显,仍然无法解决。
后来想到用sinc(0.4*pi*k)模拟原信号,发现结果也不理想,误差和本题几乎一样大,所以,对不起,老师,没有找到解决误差的办法。
【仿真程序】
(2)
x=firls(511,[00.40.4041],[1100]);
k=0:
511;
b=[1];
plot(k,x)
axis([0512-0.10.4])
title('x[k]')
figure
w=linspace(-pi,pi,1024);
(linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。
其中x1、x2、N分别为起始值、终止值、元素个数。
若缺省N,默认点数为100。
h=freqz([x],b,w);
plot(w/pi,abs(h));求整数的绝对值
title('x[k]的幅度频谱');
(3)
x=firls(511,[00.40.4041],[1100]);
k=0:
511;
c=0.4*pi;
b=[1]
y=x.*cos(c*k);
w=linspace(-pi,pi,1024);
h=freqz([y],b,w);
plot(w/pi,abs(h));
title('0.4pi的幅度响应');
c=0.8*pi;
y=x.*cos(c*k);
h=freqz([y],b,w);
figure
plot(w/pi,abs(h));
title('0.8pi的幅度响应');
c=0.9*pi;
y=x.*cos(c*k);
h=freqz([y],b,w);
figure
plot(w/pi,abs(h));
title('0.9pi的幅度响应');
c=pi;
y=x.*cos(c*k);
h=freqz([y],b,w);
figure
plot(w/pi,abs(h));
title('pi的幅度响应');
问题三
已知一因果稳定系统的H(z)为
(1)试求出与H(z)有相同幅度响应的最小相位系统Hmin(z)和最大相位系统Hmax(z);
Hmin(z)=
Hmax(z)=
(2)利用freqz和angle函数,画出并比较H(z)、Hmin(z)和Hmax(z)的相位响应;
(3)利用grpdelay函数,画出系统H(z)、Hmin(z)和Hmax(z)的群延迟;
(4)在教材中对最小相位系统给出了如下结论
H(z)=Hmin(z)Ha(z)
Ha(z)是一个稳定的全通系统。
对最大相位系统能否得到一个类似的结论?
给出你的结论
答:
不可以。
全通系统是指在全频带范围内,信号的幅值不会改变,也就是全频带内幅值增益恒等于1,且零极点关于单位圆镜像对称的稳定系统。
一般全通滤波器用于移相,也就是说,对输入信号的相位进行改变,理想情况是相移与频率成正比,相当于一个时间延时系统。
证明:
假设
其中Ho(z)为零点全在单位圆外的部分,HI(z)为零点全在单位圆内的部分。
所以,
其中
是最大相位系统,
的零极点也关于单位圆镜像对称且幅度响应恒为1,但是由于分母
表示极点全在单位圆外,不是一个稳定系统,所以更不是一个全通系统。
所以证明任意一个实系数因果稳定系统
不可以表示为一个最大相位系统和一个全通系统的级联。
【题目目的】
1.掌握全通滤波器的基本特征和特性;
2.学会计算具有相同幅度响应的最小相位系统Hmin(z)和最大相位系统Hmax(z)。
3.了解最小相位系统Hmin(z)和最大相位系统Hmax(z)的相位特征。
【温磬提示】
在比较系统的相位响应时,为便于比较的进行,建议把不同系统相位响应画在同一个坐标系中,可用unwrap函数解决某些系统相位响应不连续的问题。
【仿真结果】
【结果分析】
幅度响应相同的系统相位响应可以不同,存在最大、最小相位系统。
【问题探究】
手算时,如何找出最小相位系统Hmin(z)和最大相位系统Hmax(z)?
用计算机自动求解时,如何找出最小相位系统Hmin(z)和最大相位系统Hmax(z)?
你所用的算法是一样的吗?
答:
先算出分子的两个根,然后半段哪个零点在单位圆外,再根据课本上所介绍的方法算出最小,最大相位系统的分子表达式,由得到的Hmin(z)Hmax(z)从而画出幅度相应和相位响应。
【仿真程序】
p=[120.99];
r=roots(p);
B1=[1,2,0.9];
A=[1,1.55,0.6];
w=0:
0.01:
pi;
H1=freqz(B1,A,w);
Hf1=angle(H1);
b1=[1.1,1];
b2=[1,0.9];
B2=conv(b1,b2);
H2=freqz(B2,A,w);
Hf2=angle(H2);
s1=[1,1.1];
s2=[0.9,1];
B3=conv(s1,s2);
H3=freqz(B3,A,w);
Hf3=angle(H3);
plot(w/pi,unwrap(Hf1),'r',w/pi,unwrap(Hf2),'g',w/pi,unwrap(Hf3),'b');
legend('red--H','green--Hmin','blue--Hmax',0)
群延迟
b=[120.99];
A=[1,1.55,0.6];
w=0:
0.01,pi;
[gd1,w]=grpdelay(b,A);
b1=[1.1,1];
b2=[1,0.9];
B2=conv(b1,b2);
[gd2,w]=grpdelay(B2,A);
s1=[1,1.1];
s2=[0.9,1];
B3=conv(s1,s2);
[gd3,w]=grpdelay(B3,A);
plot(w/pi,gd1,'r',w/pi,gd2,'g',w/pi,gd3,'b')
title('grpdelay');
问题四
一个长度为5的FIR滤波器,其脉冲响应满足h[0]=h[4],h[1]=h[3],系统输入信号为三个角频率分别为0.1πrad,0.4πrad,0.7πrad的余弦序列的和。
若要求系统只能使频率为0.4πrad的余弦序列通过,试求出系统的单位脉冲激响应h[k],画出该系统的幅度和相位响应,用MATLAB验证系统的滤波效果。
【题目目的】
1.学会最简单的FIR滤波器设计;
2.了解滤波器的特性对系统输出的影响。
【FIR滤波器的设计过程】
【仿真结果】
【结果分析】
系统的相位响应对输出有何影响?
编程验证输你的结论。
假设该DF是一个具有如下形式的长度为5的FIR系统h[0]=h[4]=a,h[1]=h[3]=b,h[3]=c
解:
系统的频率响应为
群延迟,
由题意,知
=0
解上述方程组得,a=-0.434,b=0.315,c=0.102
满足要求的FIRDF的差分方程为
y[k]=x[k]*h[k]
=x[k]*(a*d[k]+b*d[k-1]+c*d[k-2]+b*d[k-3]+a*d[k-4])
=a*x[k]+b*x[k-1]+c*x[k-2]+b*x[k-1]+a*x[k-2]
【仿真结果】
【结果分析】
系统的相位响应对输出有何影响?
编程验证输出信号的延迟量。
信号延时为2个单位,在图上出现平移。
【问题探究】
分析瞬态响应产生的原因,探讨减小瞬态响应的方法,提出解决问题的方案,并进行仿真实验。
提示:
产生瞬态响应的原因是在计算系统响应的过程中,需要用到x[-1]、x[-2]等处的输入信号的值。
系统在计算时大多采用了一个最简单的方案,即假设这些样本点的值均为零。
这种假设有时会产生偏离预期效果的瞬态响应。
为减小瞬态响应的影响,可对k=-1,-2,…等处信号的进行延拓,如对称延拓、周期延拓等、边界值延拓等(可对不同延拓方式所得结果进行分析和比较)。
在新版本的MATLAB中,卷积函数提供了如下的选项
conv(a,b,'valid')
我们称MATLAB完成的上述卷积为V型卷积。
1.通过读HELP和实验,研究V型卷积和常规卷积的关系;V型卷积只卷积序列重叠部分。
2.能用V型卷积计算常规卷积吗?
可以,但有时需要进行延拓。
3.研究如何利用非零值边界延拓和V型卷积,减小输出信号中的瞬态响应。
设计方案并实验验证。
对不起,老师,探究不出来。
【仿真程序】
%Computethecoefficientsoffilter
W1=0.1*pi;W2=0.4*pi;W3=0.7*pi;
A=[2*cos(2*W1),2*cos(W1),1;2*cos(2*W2),2*cos(W2),1;2*cos(2*W3),2*cos(W3),1];c=[0;1;0];
h=A\c;h=[h;h
(2);h
(1)];
%Generatethetwosinusoidalsequences
N=100;k=0:
N-1;
x1=cos(W1*k);x2=cos(W2*k);x3=cos(W3*k);
%Generatethefilteroutputsequence
y=filter(h,1,x1+x2+x3);
plot(k,y,'r',k,x2,'b--',k,x1+x2+x3,'k:
');
axis([020-24]);
ylabel('Amplitude');xlabel('Timeindexk');
legend('y[k]','x2[k]','x1[k]+x2[k]+x3[k]');