dsp课程设计指导书

更新时间:2024-06-15 01:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理

课程设计

指 导 书

信息与通信工程学院

一、数字信号处理课程设计目的

通过课程设计,主要达到以下目的:

1、使学生进一步掌握数字信号处理课程的基本理论、基本方法和基本技术。 2、使学生熟练掌握MATLAB,利用MATLAB加深对数字信号处理理论知识的理解。 3、使学生掌握利用MATLAB进行信号频谱分析和(IIR/FIR)数字滤波器设计的技术,为以后的工程设计打下良好基础。

二、数字信号处理课程设计说明及要求

1、课程设计选题方面,学生可以从老师的命题中任选一题进行课程设计;也可自已命题,但必须要经过指导教师审查同意后方可进行设计。

2、课程设计要求学生写出详细的设计报告,包括设计源程序及设计结果和数据波形等内容。

3、要求学生能熟练掌握MATLAB软件的使用方法。

4、要求学生能独立写出文理通顺的、有理论根据的、实事求是的、科学严谨的课程设计报告。

三、数字信号处理课程设计过程

课程设计包括理论和实践两个方面。学生对设计任务进行分析、设计、制作与调试等工作是课程设计的实践部分;撰写课程设计的总结报告,即将分析、设计、制作和调试过程进行全面总结,是把实践内容提升到理论高度的过程,是课程设计的理论部分。通过课程设计报告,可以培养技术归纳能力、论文撰写能力和工作总结能力。课程设计大致包括以下几个环节:

1、选择题目:根据自己掌握的知识和具备的能力,选择合适的题目。 2、明确任务:根据选择的题目,进一步明确设计任务或技术指标。 3、理论分析:从理论方面分析和解决设计任务。 4、技术实现:从实践方面达到或实现理论分析。

5、得出结论:列出程序结果或数据波形,得出设计结论。

6、设计总结:结合以上设计环节,写出设计报告,总结经验方法,得出设计结论和概括成果意义等等,并指出存在的问题或努力的方向。

四、数字信号处理课程设计题目 (彭)

组次 1 2 3 4 5 6 7 8

题 目 信号频谱分析时域加窗的研究及MATLAB实现 语音信号的数字滤波-FIR数字低通滤波器的设计 语音信号的数字滤波-IIR数字低通滤波器的设计 基于MATLAB的语音信号加回声技术的实现 基于MATLAB的抗工频干扰数字陷波器的设计 基于MATLAB的语音信号去噪及实现 DFT的快速算法分析及MATLAB实现 信号的频谱分析及MATLAB实现 设计 条件 实习 要求 上课 节数 2节 2节 2节 2节 2节 2节 2节 2节 考核环节 与措施 设计报告 设计报告 设计报告 设计报告 设计报告 设计报告 设计报告 设计报告 四、数字信号处理课程设计题目(张)

组次 题 目 设计 条件 实习 要求 上课 节数 2节 考核环节 与措施 设计报告 1 离散系统的时域分析及MATLAB实现 2 离散系统的频域分析及MATLAB实现 2节 设计报告 3 序列的Z变换与DFT的关系研究 2节 设计报告 4 DFT的快速算法分析及MATLAB实现 2节 设计报告 5 信号的频谱分析及MATLAB实现 2节 设计报告 6 直接型数字滤波器的结构分析与实现 2节 设计报告 7 级联型数字滤波器的结构分析与实现 2节 设计报告 8 并联型数字滤波器的结构分析与实现 2节 设计报告 9 IIR数字滤波器设计及MATLAB实现 2节 设计报告 10 FIR数字滤波器设计及MATLAB实现 2节 设计报告 11 时域采样理论研究及MATLAB实现 2节 设计报告 12 频域采样理论研究及MATLAB实现 2节 设计报告 13 卷积运算及算法实现 2节 设计报告 14 离散系统的零极点对频率响应的影响分析 2节 设计报告 15 基于MATLAB的音频信号处理技术实现 2节 设计报告 16

基于MATLAB的噪声抑制技术实现 2节 设计报告 五、对课程设计报告的要求

课程设计报告的封面一律按照范文规定的模版格式,课程设计报告的内容主要包括设计题目、设计要求、设计原理、技术实现、设计结果、数据波形、收获与体会和参考文献等项目。这些项目多少与格式不作统一限制,但要求用A4纸打印。电子文档以学生的一卡通学号姓名为文件名(如:12345678910张三),发送到 sypeng0109@sina.com 邮箱。

六、参考资料

[1] 陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用(第2版)[M].北京:电子

工业出版社, 2004

[2] 高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008 [3] 刘顺兰,吴 杰.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2008 [4] 吴湘淇.信号、系统与信号处理(上、下)[M].北京:电子工业出版社,2000 [5] 张志勇.精通MATLAB6.5[M].北京:北京航空航天大学出版社,2003 [6] 门爱东,杨 波,全子一.数字信号处理[M].北京:人民邮电出版社, 2003 [7] 吴湘淇.信号与系统(第3版)[M].北京:电子工业出版社, 2009

[8] 吴湘淇,肖熙,郝晓莉.信号、系统与信号处理的软硬件实现[M].北京:电子工业出版

社, 2002

[9] 万建伟,王 玲.信号处理仿真技术[M].长沙:国防科技大学出版社, 2008

[10] John G. Proakis,Dimitris G. Manolakis. 数字信号处理[M].方艳梅,刘永清译.北

京:电子工业出版社, 2007

[11] Sanjit K Mitra. 数字信号处理实验指导书[M].孙洪等译.北京:电子工业出版

社,2006

[12] 陈后金,薛健. 数字信号处理. 高等教育出版社,2008.

[13] 陈怀深.数字信号处理教程-MATLAB释义与实现[M].北京:电子工业出版社,2004.

另外:请同学们根据自己的选题,确定好关键词,在网上搜索一些参考内容,也可在校园网图书馆中的数字资源搜索下载自己需要的参考文章。

附:课程设计报告范文

《数字信号处理》

课程设计报告

FIR数字滤波器设计及MATLAB实现

专 业: 通信工程 班 级: 通信09-1BF 组 次: 第10组 姓 名: 张 三 学 号: 14062300513

FIR数字滤波器设计及MATLAB实现

一、设计目的

MATLAB是一种以数值计算和数据图示为主的计算机软件,并包含适应多个学科的专业软件包,以及完善程序开发功能。在MATLAB中设计并实现FIR数字滤波器,就是MATLAB软件在信号处理中的应用。通过这次课程设计,以期我们能更加熟悉MATLAB的功能,掌握MATLAB程序设计,为以后的毕业设计奠定一定的基础。

二、设计任务

用窗函数法设计线性相位FIR低通滤波器,该滤波器的通带截止频率wc??/4,单位脉冲响应h(n)的长度M=21,并绘出h(n)及其幅度响应特性曲线。

三、设计原理

① 窗函数设计法的基本原理:为了用H(e)??h(n)en?0jwM?1?jnw逼近理想的频率响应

Hd(e)?jwn????hd(n)e??jnw,获取有限长序列h(n)的最有效方法是用一个有限长的窗口函数

序列w(n)来截取无限长序列hd(n),即: h(n)=w(n)hd(n) 其中:

?j?w?iw?e?w?wcHd(e)????0?wc?w??

hd(n)?sinwc(n??)1wc?j?wjnwdw()= eH?de?2?wc?(n??)?? ② 在MATLAB信号处理工具箱中为用户提供了Boxcar(矩形),Bartlet(巴特利特),

Hanning(汉宁)等函数,这些函数可通过“help signal﹨signal”获取。由于这些窗函数调用格式相同,下面仅以矩形函数为例说明其调用格式。

格式:w=boxcar(M)

功能:返回M点矩形窗序列。

窗的长度M又称为窗函数设计FIR数字滤波器的阶数。根据卷积理论可知,

H(e)=

因此,H(jw12?????Hd(e)W(ej?j(w??))d?

ejw)逼近程度的好坏完全取决于窗函数的频率特性。表(1)给出了部分窗函数

的频率特性。

表(1) 在相同条件下,部分窗函数的频率特性

名称 Boxcar (矩形) Bartlet (巴特利特) Hanning (汉宁) Hamming(哈明) Blackman(布莱克曼)

主 瓣 带 宽 4?/M 8?/M 8?/M 8?/M 12?/M 过 渡 带 宽 1.8?/M 4.2?/M 6.2?/M 6.6?/M 11?/M 最 小 阻 带 衰 减 21dB 25dB 44dB 51dB 74dB 四、设计过程

在这里我假设低通滤波响应的频率响应为

H(ediw?j?w??e?w?wc )????0?wc?w??中心点??(N?1)/2=(21-1)/2=10 ;

w??/4

c相应的单位脉冲响应hd(n)为

hd(n)?sinwc(n??)1wc?j?wjnw()dw= eH?de?2?wc?(n??)sin??/4(n?10)?

?(n?10)?? =

对于滤波器窗函数序列的形状及长度的选择很关键,一般希望窗函数满足以下两项要求:

⑴ 窗函数主瓣尽可能地窄,以获取较陡的过渡带。

⑵ 尽量减少窗谱的最大旁瓣的相对幅度。也就是能尽量集中于主瓣,这样使肩峰和波纹减少,就可增大阻带的衰减。

但是这两项是不能同时都满足的。当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加;当选用最小的旁瓣幅度时,虽能得到平坦的幅度响应和较小的阻带波纹,但过渡带会加宽,也即主瓣会加宽。因此,对于这个设计,我决定采用矩形窗设计。

h(n)?hd(n)w(n) 0?n?N?1 而对于矩形窗

??10?n?20 w(n)?RN(n)? ?

??0其他

WR(e)?WR(w)ejw?10jw

WR(w)?sin(21w/2)

sin(w/2)sin??/4(n?10)??(n?10) h(n)?hd(n)w(n)=

20RN(n)

FIR滤波器的系统函数H(z)

H(z)??h(n)z=?n?0n?0?n20sin??/4(n?10)??(n?10)RN(n)z?n

MATLAB源程序为:

M=21;wc=pi/4; %理想低通滤波器参数 n=0:M-1;r=(M-1)/2; nr=n-r+eps*((n-r)==0);

hdn=sin(wc*nr)/pi./nr; %计算理想低通单位脉冲响应hd(n)

if rem(M,2)~=0,hdn(r+1)=wc/pi;end; %M为奇数时,处理n=r点的0/0型 wn1=boxcar(M); %矩形窗 hn1=hdn.*wn1'; %加窗 subplot(2,1,1);stem(n,hn1,'.');line([0,20],[0,0]); xlabel('n'),ylabel('h(n)'),title('矩形窗设计的h(n)'); hw1=fft(hn1,512);w1=2*[0:511]/512; %求频谱 subplot(2,1,2),plot(w1,20*log10(abs(hw1)))

xlabel('w/pi'),ylabel('幅度(dB)');title('幅度特性(dB)');

程序运行结果如下图:

结论:

通过这次课程设计,我们可总结得知窗函数设计FIR滤波器的步骤: ①根据技术要求确定待求滤波器的单位取样响应。

②由过渡带及阻带衰减的要求,选择窗函数的形式,并估计窗口长度N。 ③计算滤波器的单位取样响应。 ④验算技术指标是否满足要求。

而在用窗函数设计FIR数字滤波器的时候,我们应该特别注意窗函数序列的形状及长度的选择。即设计窗函数的时候,窗函数形式的选择最为关键。

五、收获与体会

因为这次课程设计,我重新温习了有关FIR滤波器的这部分内容,以前遗留下的很多疑问再通过这次作业,有一部分已得到解决。用MATLAB设计滤波器,使我对MATLAB这个软件有了更深层次的了解,相信如果以后还要用MATLAB这个软件的话,特别是写有关数字信号处理方面的程序,应该不是问题。

这是我第二次写课程设计报告,虽说写的不怎么样,但我还较满意。因为我享受了过程,几天忙着找资料,有很努力的去做,想想如果把这种认真放到做别的事情,就算最后没成功也会很高兴,比起不努力去做总是会有成效的。

《数字信号处理》

课程设计报告

信号的频谱分析及MATLAB实现

专 业: 通信工程 班 级: 通信09-2BF 组 次: 第5组 姓 名: 杨慧银 学 号: 14062300513

信号的频谱分析及MATLAB实现

张登奇,杨慧银

(湖南理工学院 信息与通信工程学院,湖南 岳阳 414006)

摘 要:DFT是在时域和频域上都已离散的傅里叶变换,适于数值计算且有快速算法,是利用计算机实现信号频谱分析的常用数学工具。文章介绍了利用DFT分析信号频谱的基本流程,重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施,实例列举了MATLAB环境下频谱分析的实现程序。通过与理论分析的对比,解释了利用DFT分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应,并提出了相应的改进方法。

关键词:MATLAB;频谱分析;离散傅里叶变换;频谱混叠;频谱泄漏;栅栏效应

引 言

信号的频谱分析就是利用傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的目的

[1]

。不同信号的傅里叶分析理论与方法,在有关专业书中都

有介绍,但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难。DFT是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。下面以连续时间信号为例,介绍利用DFT分析信号频谱的基本流程,重点阐述频谱分析过程中可能存在的误差,实例列出MATLAB环境下频谱分析的实现程序。

1 分析流程

实际信号一般没有解析表达式,不能直接利用傅里叶分析公式计算频谱,虽然可以采用数值积分方法进行频谱分析,但因数据量大、速度慢而无应用价值。DFT在时域和频域均实现了离散化,适合数值计算且有快速算法,是利用计算机分析信号频谱的首选工具。由于DFT要求信号时域离散且数量有限,如果是时域连续信号则必须先进行时域采样,即使是离散信号,如果序列很长或采样点数太多,计算机存储和DFT计算都很困难,通常采用加窗方法截取部分数据进行DFT运算。对于有限长序列,因其频谱是连续的,DFT只能描述其有限个频点数据,故存在所谓栅栏效应。总之,用DFT分析实际信号的频谱,其结果必然是近似的。即使是对所有离散信号进行DFT变换,也只能用有限个频谱数据近似表示连续频谱;如果对离散信号进行了加窗处理,则会因截断效应产生吉伯斯现象;倘若是连续信号,则还会出现频谱混叠。但如果合理选择参数,分析误差完全可以控制在允许范围内,利用DFT分析信号的频谱在工程上是完全可行的

[2]

。分析信号频谱的基本流程如图1所示。

LPFx(t)x'(t)A/Dx(n)w(n)图1 信号频谱分析的基本流程 2 分析误差

利用DFT(实际是用FFT)对连续或离散信号进行频谱分析时,如果信号连续一般要进行采样和截

DFTxw(n)X(k) 断,即使信号离散也往往需要进行加窗截断。用有限的离散数据进行DFT变换,得到有限个DFT数据值,与原信号的频谱肯定不同,这种不同就是分析误差。下面按信号频谱分析的基本流程,分别介绍误差形成的原因及减小分析误差的主要措施,为实际分析过程中适当选择参数提供理论依据。 2.1 混叠现象

对连续信号进行频谱分析时,先要对信号进行采样,理论上要求采样频率fs必须大于两倍信号的最高频率

[3]

。在满足采样定理条件下,采样序列的数字频谱能准确反映连续信号的模拟频谱,否则会

发生频谱混叠现象。严格地讲,实际信号的持续时间有限、频谱无限,为了尽可能减少频谱混叠,信号在采样之前一般都要进行预滤波处理。预滤波也不可能是理想低通,所以频谱混叠不可避免。在实际工作中,为了减小频谱混叠的影响,可通过适当提高防混叠滤波器的指标和适当增大采样频率来实现,采样频率常取信号最高频率的2.5~3倍。各类连续信号采样频率的选取原则与方法可参考文[2]。 2.2 截断效应

利用计算机对离散序列或连续信号的采样序列进行DFT运算时,往往要进行截断,即将离散序列进行加窗处理。对离散序列的加窗实际上是将离散序列与窗函数相乘,加窗后信号的频谱是加窗前信号的频谱与窗函数频谱的卷积,造成截断后信号的频谱与截断前信号的频谱不同,这就是所谓截断效应。截断效应对频谱分析的影响主要表现在两个方面:

1.频谱泄漏 原序列经截断后,频谱会向两边展宽,通常称这种展宽为泄漏。频谱泄漏使频谱变模糊,分辨率变差,泄漏程度和窗函数幅度谱主瓣宽度有关。窗型一定,窗口越长,主瓣越窄,频谱泄漏越小。窗口长度一定,矩形窗主瓣最窄,频谱泄漏最小,但其旁瓣的幅度最大。

2.谱间干扰 对原序列截断,频谱不仅会向附近展宽,还会形成许多旁瓣,引起不同频率间的干扰,简称谱间干扰。特别是强信号谱的旁瓣可能湮没弱信号的主谱或误认为是另一假信号的主谱线。矩形窗的旁瓣幅度大,谱间干扰严重。相对而言,布莱克曼窗的旁瓣幅度比矩形窗小,谱间干扰小,但其主瓣过渡带宽,分辨率差。

采样频率或采样周期是在满足混叠误差前提下选取的,当采样频率或采样周期确定后,适当增加窗口长度有利于减小截断效应。工程上,可用试探法确定窗口长度M ,即将M加倍,分别进行DFT运算,直到相邻两个长度的计算结果接近,取长度较小的M ,这样既可满足截断效应要求,又可使存储单元最小且运算速度最快。如对频率分辨率F0有要求,则窗口长度M可取fs或大于且接近该值的2的整

F0数幂。在窗口长度一定情况下,如果希望引起频谱扩展的过渡带窄,可选矩形窗,但其旁瓣大,谱间干扰严重。若选用布莱克曼窗,旁瓣幅度小,谱间干扰相对较小,但主瓣过渡带更宽,分辨率会进一步下降

[4]

2.3 栅栏效应

对加窗后的序列进行DFT运算时,DFT长度必须大于或等于加窗序列的长度,否则会作自动截短处理。实际的DFT运算一般采用FFT算法,其长度取大于或等于加窗序列的2的整数幂,不足进行补零处理,得到的DFT值是对加窗序列的连续谱进行等间隔取样的结果。这就好比通过一个有很多缝隙的栅栏去观察一个连续频谱,很多地方会被栅栏挡住,故称栅栏效应。在加窗序列的尾部补零可使频谱的取样点更密,相当于加密了栅栏的缝隙,使原来看不到的谱分量可能看得到,减小了栅栏效应,但由于被观察的连续谱并没有发生变化,故频率分辨率并没有提高,最多只能说可视分辨率提高了信号的长度来实现。

[5]

。要提高信

号的频率分辨率,选择主瓣窄的截断窗有一定的改善,但谱间干扰会更严重,根本上只能通过增加原始

3 分析实例

对信号进行频谱分析时,由于信号不同,傅里叶分析的频率单位也可能不同,频率轴有不同的定标方式。为了便于对不同信号的傅里叶分析进行对比,这里统一采用无纲量的归一化频率单位,即模拟频率对采样频率归一化;模拟角频率对采样角频率归一化;数字频率对2π归一化;DFT的k值对总点数归一化。同时,为了便于与理论值进行对比,理解误差的形成和大小,这里以确定信号的幅度谱分析为例进行分析说明。假设信号为:x(t)?eu(t),分析过程:首先利用CTFT公式计算其模拟频谱的理论

?t值;然后对其进行等间隔理想采样,得到x(n)序列,利用DTFT公式计算采样序列的数字连续频谱理论值,通过与模拟频谱的理论值对比,理解混叠误差形成的原因及减小误差的措施;接下来是对x(n)序列进行加窗处理,得到有限长加窗序列xw(n),再次利用DTFT公式计算加窗后序列xw(n)的数字连续频谱,并与加窗前x(n)的数字连续频谱进行对比,理解截断误差形成的原因及减小误差的措施;最后是对加窗序列进行DFT运算,得到加窗后序列xw(n)的DFT值,它是对xw(n)数字连续频谱进行等间隔采样的采样值,通过对比,理解栅栏效应及DFT点数对栅栏效应的影响。利用MATLAB实现上述分析过程的程序如下:

clc;close all;clear;

%CTFT程序,以x(t)=exp(-t) t>=0 为例 %利用数值运算计算并绘制连续信号波形 L=4, %定义信号波形显示时间长度 fs=4,T=1/fs; %定义采样频率和采样周期

t_num=linspace(0,L,100);%取若干时点,点数决定作图精度 xt_num=exp(-1*t_num);%计算信号在各时点的数值 subplot(3,2,1);plot(t_num,xt_num),%绘信号波形 xlabel('时间(秒)'),ylabel('x(t)'),%加标签 grid,title('(a) 信号时域波形'),%加网格和标题 %利用符号运算和数值运算计算连续信号幅度谱的理论值 syms t W %定义时间和角频率符号对象 xt=exp(-1*t)*heaviside(t),%连续信号解析式 XW=fourier(xt,t,W),%用完整调用格式计算其傅氏变换 %在0两边取若干归一化频点,点数决定作图精度 w1=[linspace(-0.5,0,50),linspace(0,1.5,150)];

XW_num=subs(XW,W,w1*2*pi*fs);%利用置换函数求频谱数值解 mag1=abs(XW_num);%计算各频点频谱的幅值

subplot(3,2,2);plot(w1,mag1),%绘制归一化频率幅值谱线 xlabel('频率(*2*pi*fs)rad/s'),ylabel('幅度'),%加标签 grid,title('(b) 连续信号幅频理论值'),%加网格和标题 %DTFT程序,以x(n)=exp(-nT) n>=0 为例 %利用数值运算计算并绘制离散信号图形 N=L*fs+1;n_num=0:N-1;%生成信号波形采样点

xn_num=exp(-1*n_num*T);%计算信号理想采样后的序列值 subplot(3,2,3);stem(n_num,xn_num,'b.'),%绘序列图形 xlabel('n'),ylabel('x(n)'),%加标签

grid,title('(c) 理想采样图形'),%加网格和标题 %利用符号运算和数值运算计算离散信号幅度谱的理论值 syms n z w %定义符号对象 xn=exp(-n*T), %定义离散信号

Xz=ztrans(xn,n,z),%用完整调用格式计算其Z变换 %利用复合函数计算序列傅里叶变换的解析解 Z=exp(j*w);Hejw=compose(Xz,Z,z,w); Hejw_num=subs(Hejw,w,w1*2*pi);%求频谱数值解

mag2=abs(Hejw_num);%计算各频点频谱的幅度 subplot(3,2,4);plot(w1,mag2*T),%绘制频谱幅度曲线 xlabel('频率(*2*pi)rad'),ylabel('幅度'),%加标签 grid,title('(d) 离散信号幅频理论值'),%加网格和标题 %序列加窗图示及频谱幅值绘制

%利用数值运算计算并绘制加窗后序列xw(n)的图形 M=8;win=(window(@rectwin,M))';%定义窗点和窗型 xwn=xn_num.*[win,zeros(1,N-M)];%给离散信号加窗 subplot(3,2,5);stem(n_num,xwn,'b.'),%加窗序列图示 xlabel('n'),ylabel('xw(n)'),%加标签

grid,title('(e) 加窗序列图形'),%加网格和标题 %利用符号运算和数值运算计算加窗序列的频谱幅值 %先求加窗序列的Z变换,注意表达式长度限制问题 Xwz=0;for n=0:(M-1);Xwz = Xwz+xwn(n+1)*z^(-n); end %利用复合函数计算加窗序列傅里叶变换的解析解 Zw=exp(j*w);HejwM=compose(Xwz,Zw,z,w); HejwM_num=subs(HejwM,w,w1*2*pi);%求频谱数值解 mag3=abs(HejwM_num);%计算各频点频谱的幅度 subplot(3,2,6);plot(w1,mag3*T),%绘频谱幅度曲线 %利用DFT计算加窗序列xw(n)的离散谱幅值

Ndft=16, Xk=fft(xwn,Ndft);%定义DFT点数和DFT运算 Xk0=fftshift(Xk)*T;%将DFT值0对称和幅值加权处理 if mod(Ndft,2)==0; N1=Ndft; else N1=Ndft-1; end; k=[0:(Ndft-1)]-N1/2;wk=k/Ndft;%0对称取值并归一化 hold on;stem(wk,abs(Xk0),'r.'),%绘制DFT图形 legend('幅谱','DFT',0),%加响应图例,位置自动最佳 xlabel('归一化频率'),ylabel('幅度'),%加标签 grid,title('( f ) 加窗序列幅谱及其DFT幅值'), plot(w1,mag1,'k:'),%与连续信号幅谱的理论值比较

该程序过程清晰、容易理解,程序运行结果如图2所示。图2(a)是信号的时域波形,图2(b)是对应的幅度谱图。由于在归一化频率为0.5的地方还有较大幅度,所以对信号进行理想采样后存在较大的混叠失真,表现在图2(d)中归一化频率为-0.5~0.5范围内的波形与图2(b)的波形明显不同。图2(e)是理想采样序列加矩形窗得到的图形,对应的幅度谱线如图2(f)中实线所示。该谱线与图2(d)相比有明显的不同(如波动现象),这是加窗截断的结果。窗口长度越短截断效应会越明显。对加窗序列进行DFT运算,只要DFT点数大于等于窗口长度,算出的DFT值就是对加窗序列的连续频谱在一个周期内进行的等间隔采样的采样值。在图2(f)中表现为DFT幅值在加窗序列连续幅谱的谱线上,是连续频谱曲线上的有限个数据点,即所谓栅栏效应。图2(f)中用虚线画出了连续信号的幅谱理论值,与DFT的幅值对比,存在一定误差,但只要采样频率足够高,时窗长度足够长,FFT点数足够大,得到的DFT值越逼近实际频谱。

4 结束语

利用傅里叶分析方法可以对各类信号进行频谱分析,DFT在时域和频域均实现了离散,适合数值运

算且有快速算法,解决了利用计算机分析信号频谱的难题。在实际分析过程中,对连续信号先要进行采样,会出现频谱混叠现象。对离散信号一般要进行加窗处理,会出现频谱泄漏和谱间干扰等截断效应。对加窗序列进行DFT运算,只能得到该序列连续谱的等间隔取样数据,故存在栅栏效应。理解了各种误差形成的原因和可能产生的不良后果,合理选择分析参数,完全可以使分析结果在工程误差允许范围内。 参考文献:

[1] 吴湘淇.信号与系统(第3版)[M].北京:电子工业出版社, 2009

[2] 吴湘淇,肖熙,郝晓莉.信号、系统与信号处理的软硬件实现[M].北京:电子工业出版社, 2002:45-78

[3] John G. Proakis,Dimitris G. Manolakis. 数字信号处理[M].方艳梅,刘永清译.北京:电子工业出版社, 2006:282-295

[4] 万建伟,王 玲.信号处理仿真技术[M].长沙:国防科技大学出版社, 2008:77-88

[5] 赵彦斌,张永瑞.信号谱分析中参数选择对频率分辨率的影响[J].电子科技, 2005,194(11):6-9

[6] 栗学丽,刘 琚.“数字信号处理”教学中易混淆的问题讨论[J].电气电子教学学报,2009,31(4):39-41 [7] 汉泽西,姚英彪.用DFT分析正弦信号频谱时应注意的几个问题[J].西安石油学院学报,2003,18(2):67-70 [8] 张志勇.精通MATLAB6.5[M].北京:北京航空航天大学出版社,2003

[9] 高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008:95-105 [10] 刘顺兰,吴 杰.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2008:137-145

图2 频谱分析图解说明

本文来源:https://www.bwwdw.com/article/33y3.html

Top