首页 > 范文大全 > 正文

连续非周期信号频谱分析及Matlab实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇连续非周期信号频谱分析及Matlab实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 为了便于计算机辅助计算复杂的连续信号频谱,经常采用DFT方法。DFT不仅能反映信号的频域特征更便于用计算机处理。这里先对连续非周期信号做离散化处理,然后截短得到有限长序列,最后做DFT变换。针对常用信号DFT谱分析的原理及谱分析中的相关问题进行了较为深入的探讨,并结合实例用Matlab仿真软件进行了分析和验证。

关键词: DFT; 频谱分析matlab; 矩形窗; Hamming窗

中图分类号:TN911.72?34 文献标识码: A 文章编号: 1004?373X(2013)11?0053?04

0 引 言

频谱分析在数字信号处理中用途广泛:如滤波、检测等方面,这些都需要DFT(Discrete Fourier Transform)运算[1?3]。信号的Fourier变换建立了信号的时域与频域之间的一一对应关系,可以借助DFT来分析。有限长序列的DFT可以由数字方法直接计算,且DFT存在快速算法,便于用计算机处理[4?6]。本文介绍具体的连续非周期信号结合Matlab软件来分析其频谱。

1 连续非周期信号谱DFT分析

在已知连续信号数学解析式的情况下,非周期信号的频谱可以根据Fourier变换的定义进行解析计算。实际应用中的多数信号不存在数学解析式,信号的频谱无法利用傅里叶分析公式方法直接计算,一般需采用数值方法进行近似计算分析频谱,在进行数字计算时,需对计算的连续变量进行离散化。由于连续非周期信号[x(t)]的频谱函数[X(jω)]是连续函数,因此,需要对其进行离散化处理得到[x[n]]以近似分析相应的频谱。通过建立序列[x[n]]的离散Fourier变换[X[m]]与连续非周期信号[x(t)]的Fourier变换[X(jω)]之间的关系,可以利用DFT对连续非周期信号频谱进行近似分析,此近似分析过程中一般将会出现三种现象:混叠现象、泄漏现象和栅栏现象[7?8]。这些现象与应用中信号和DFT的参数选择有关。下面分别讨论近似过程中可能出现的问题及其解决方法。

2 DFT分析过程中出现的若干问题

2.1 混叠现象

由DFT计算出的频谱是信号[x(t)]的频谱[X(jω)]周期化的抽样值,如果连续信号不是带限信号,或者抽样频率不满足抽样定理,在连续信号离散化时,就会出现信号频谱的混叠。解决连续信号离散化过程中的频谱混叠主要有两种方法:对于带限连续信号,只要提高抽样频率使之满足时域抽样定理;对于非带限连续信号,可根据实际信号对其进行低通滤波,使之成为带限信号。工程实际中的连续信号一般都不是带限信号,连续信号在抽样前通常都经过一个模拟低通滤波器(称为抗混叠滤波器)进行低通滤波,以减少混叠误差,提高频谱分析精度。

2.2 泄漏现象

对连续非周期信号的采样序列[x[n]]进行DFT运算时,时间长度总是取有限值,在将信号截短即时域加窗处理的过程中,出现了分散的扩展谱线的现象,称为频谱泄漏。对离散序列的加窗实际上是将离散序列与窗函数相乘,加窗后信号的频谱是加窗前信号的频谱与窗函数频谱的卷积,造成截短后信号的频谱与截短前信号的频谱不同,所得的频谱在原来没有频谱的区间出现了频谱。原来比较尖锐的谱峰变得比较平缓,当两个不同频率的谱峰靠得比较近时,可能显现不出两个明显的峰值。特别是强信号谱的旁瓣可能淹没弱信号的主谱或误认为是另一假信号的主谱线。矩形窗的旁瓣幅度大,谱间干扰严重。频谱泄漏使频谱变模糊,分辨率(事实上通常规定DFT的频率分辨率为[fsN],[fs]为采样频率,[N]是指信号[x[n]]的有效长度)变差,泄漏程度与窗函数幅度谱主瓣宽度有关。窗型一定,窗口越长,主瓣越窄,频谱泄漏越小;窗口长度一定,矩形窗主瓣最窄,频谱泄漏最小,但其旁瓣的幅度最大。因此为了尽量减少泄漏现象,应选用旁瓣幅度小、主瓣窄,即“泄漏”小的窗函数。相对而言,布莱克曼窗的旁瓣幅度比矩形窗小,谱间干扰小,但其主瓣过渡带宽,分辨率差。采样频率或采样周期是在满足混叠误差前提下选取的,当采样频率或采样周期确定后,适当增加窗口长度有利于减小泄漏误差。

2.3 栅栏现象

DFT得到的频谱[X[m]]只能是连续非周期信号频谱[X(jω)]上的有限离散频点采样,由于[X[m]]是离散序列,因而无法反映抽样点之间的细节,就如同隔着百叶窗观察窗外的景色,这种现象称为栅栏现象。栅栏现象是利用DFT分析连续非周期信号频谱过程中无法克服的现象,有时频谱中的某些重要信息恰好就在抽样点之间,将被错过,而检测不出。为了改善栅栏现象,把被“栅栏”挡住的频谱分量检测出来,可在原记录序列后面补零,增加DFT的长度,即增加频域[X(jω)]上的采样点数N,改变离散谱线的分布,就可能检测出原来看不到的频谱分量。

3 利用DFT进行谱分析的参数选择

在利用DFT分析连续时间信号的频谱时,涉及频谱混叠、频率泄漏及栅栏现象。频率混叠与连续信号的时域抽样间隔有关,频率泄漏与信号的时域加窗截短的长度及窗型有关,栅栏现象与DFT的点数有关。在大多数情况下,一般已知待分析连续信号的最高频率,以及希望的DFT分析的频率分辨率。下面根据信号的Fourier变换的理论,讨论利用DFT进行谱分析的参数(抽样频率、持续时间、样点数等)选择的原则。

首先确定信号抽样频率[fs],[fs]应满足时域抽样定理,即[fs≥2fm,]其中[fm]为待分析的连续信号的最高频率,抽样间隔T应满足:

[T=1fs≤12fm] (1)

然后确定抽样信号的长度[N],[N]应满足频率分辨率[Δf]的要求,即:

[N≥cfsΔf] (2)

矩形窗时取[c=1],Hamming窗时取[c=2]。

根据谱线间隔[Δfd]确定DFT的点数[L],即:

[L≥fsΔfd] (3)

[L]一般取满足式(3)的2的整数幂次。

4 结合实例分析[9?10]

实例1:已知一连续信号为[x(t)=cos2πf0t+][cos2πf1t],其中[f0]=100 Hz,[f1]=130 Hz。现以频率[fs]=600 Hz对该信号进行抽样,试利用DFT分析其频谱。

由于抽样频率[fs]大于信号[x(t)]的最高频率[f1]的2倍,故抽样过程没有造成混叠,抽样后的序列[x[n]=x(t)t=nT=][cos2πf0nfs+cos2πf1nfs]。

由于[x[n]]为无限长序列,可采用矩形窗对其进行加窗截短处理。为了能够分辨这两个间隔为[Δf=f1-f0=]30 Hz的相邻谱峰,由式(2)可得矩形窗的长度[N]应满足[N]≥20。现应用Matlab软件进行频谱分析。分别取[N=]10和[N=]20时,由DFT计算出的频谱做对比,如图1所示。

由于[N]=10不满足式(2),所以由由图1(a)几乎分辨不出信号中两个频率分量。而由图1(b)可见,当信号的长度满足式(2)时,可清晰地分辨出信号中的两个不同频率分量。

实例2:已知一连续信号为[y(t)=cos2πf0t+][0.15cos2πf1t],其中[f0]=50Hz,[f1]=100 Hz。现以频率[fs]=400 Hz对该信号进行抽样,试利用DFT分析其频谱。采样频率满足抽样定理,所以采样后的频谱不会产生混叠现象,但由于信号[y(t)]中存在一个较弱的频率分量[f1],若采用矩形窗函数加窗,则由于其旁瓣泄漏较大,很难检测出信号[y(t)]幅度较小的频率分量[f1],因而采用Hamming窗函数,如图2所示。

图2 (c),图2(d)与图2(a),图2(b)相比,Hamming窗以增加主瓣宽度来降低旁瓣能量,检测出较弱的频率分量[f1]。在图2 (c),图2(d)中当采用同一种窗时,截取信号长度[N]=30个样点时,由于所取的数据点较少,频率分辨率低,由DFT计算出的频谱仍不能显示幅度较小的频率分量。当截取信号[N]=50个样点时,能够清楚地显示出幅度较小的频率分量。

栅栏现象是利用DFT分析连续频谱过程中无法克服的现象,有时频谱中的某些重要信息恰好就在抽样点之间。为了改善栅栏现象,以观察到频谱中更多的细节,常用的方法是在截短后的序列后补0,构成一个[L>N]的序列,序列补0后对应的频谱函数不变,但对序列进行[L]点的DFT时,两个相邻抽样点之间的谱线间隔[Δfd]就变为[fsL],因为抽样频率[fs]不变,[L>N],所以图1和图2是将[N]点截短信号补0后[L]=512点可减小频谱分析时的谱线间隔,从而所计算出频谱将会显示更多的细节。

图3分别给出[N]=20,[L]=32,64,128,256时,利用矩形窗计算出的实例1中的信号的频谱。

从图3中可以看出,随着补0的增加,可以更多地显示出频谱的信息,从而减少了栅栏现象。

需要说明一点通过补0只能提高信号频率的显示分辨率。换句话说,如果连续信号在离散化或时域加窗过程中,由于混叠或泄漏等过程已经造成信号频谱中信息的失真,则无论怎么补0也无法再恢复已损失的信息。

5 结 语

本文利用Matlab实现连续信号DFT频谱的计算。可见利用Matlab软件分析频谱方便、快捷,减少了计算量。对连续非周期信号先要离散化,然后截短处理,最后做DFT分析。在这些近似分析过程中可能会出现三种现象,避免及减少这些问题,只有合理选择DFT的一些参数,可以完全使分析结果在工程误差允许范围内。

参考文献

[1] 李莉.数字信号处理原理和算法实现[M].北京:清华大学出版社,2010.

[2] 汉泽西,姚英彪.用DFT分析正弦信号频谱时应注意的几个问题[J].西安石油学院学报,2003,18(2):67?70.

[3] 井敏英,郭佳林,李大伟,等.连续时间信号频谱分析研究及Matlab实现[J].大众科技,2011(4):42?43.

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

[5]林爱英,滕红丽,袁超,等.DFT在信号谱分析中的应用[J].安徽工业大学学报,20011,28(2):192?196.

[6] 吴镇扬.数字信号处理[M].2版.北京:高等教育出版社,2010.

[7] 陈后金.数字信号处理[M].2版.北京:高等教育出版社,2008.

[8] 黄寒华.关于滑动DFT算法中的频谱泄漏问题的探讨[J].现代电子技术,2007,30(24):202?204.

[9] 徐明远,刘增力.Matlab仿真在信号处理中的应用[M].西安:西安电子科技大学出版社,2007.

[10] 张登奇,杨慧银.信号的频谱分析及Matlab实现[J].湖南理工学院学报,2010,23(3):29?33.