数字信号处理研讨完整报告.docx

上传人:b****3 文档编号:4795987 上传时间:2022-12-09 格式:DOCX 页数:15 大小:214.41KB
下载 相关 举报
数字信号处理研讨完整报告.docx_第1页
第1页 / 共15页
数字信号处理研讨完整报告.docx_第2页
第2页 / 共15页
数字信号处理研讨完整报告.docx_第3页
第3页 / 共15页
数字信号处理研讨完整报告.docx_第4页
第4页 / 共15页
数字信号处理研讨完整报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数字信号处理研讨完整报告.docx

《数字信号处理研讨完整报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理研讨完整报告.docx(15页珍藏版)》请在冰豆网上搜索。

数字信号处理研讨完整报告.docx

数字信号处理研讨完整报告

《数字信号处理》课程研究性学习报告

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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1