2015年第8期 文章编号:1009—2552(2015)08—0153—03 DOI:10.13274/j.cnki.hdzj.2015 08.040 一种减少频谱泄露的幅值和相位自校正算法 张 英 ,刘纪苟 ,张仁杰 (1.上海理工大学光电信息与计算机工程学院,上海200093;2.德国晨阳技术有限公司,芬兰乡85464,德国) 摘要:频谱泄露是影响谐波检测和频谱分析的重要原因,而采样频率与信号频率不同步是造 成频谱泄露的根本原因。现提出一种幅值和相位自校正的算法,可通过自动校正减小异步采样 时DFT产生的幅值和相位的误差,降低频谱泄露造成的影响,对同步采样条件下的DFF没有影 响,并给出算法的实现步骤和仿真结果,证明了该算法能精确地得到信号的实际幅值和相位, 对于采样点数较少的信号也能给出较高的测量精度,而且该算法具有迭代特性,原理简单,是 频谱分析中的一种有效方法。 关键词:频谱泄露;异步采样;DFT;自校正;精确 中图分类号:TM714 文献标识码:A An amplitude and phase self-correction algorithm to reduce the spectrum leakage ZHANG Ying .LIU Ji-gou ..ZHANG Ren-jie (1・School of Optical-Electrical and Compu ̄r Engineering,University of Shanghai for Science&Technology, Shanghai 200093,China;2.Chenyang TeChnologies Grab H&Co.KG.,Finsing 85464,Germany) Abstract:Spectrum leakage is the important reason that impacts harmonic detection and spectrum analysis,the sampling frequency is not synchronized with the signal frequency is the root cause of spectrum leakage.This paper presents an amplitude and phase self-correction algorithm,which can automatically COITeCt error caused by DFF under asynchronous sampling condition and have no effect on the DFT under synchronous sampling condition,moreover shows implementation steps and simulation ’at the algorithm can not only accurately get the actual amplitude and results of the algorithm,proves thphase of the signal,but also give out a higher measurement accuracy for the signal sampling points fewer. This algorithm has iterative character and simple principle,:is an effective method in spectrum analysis. Key words:spectrl—aleakage;asynchronous—sampling;DFT;self-correction;accuracy 0 引言 周期信号的检测是众多工程技术领域涉及到的 泄露现象对功率谱估计及正弦分量的检测均带 来有害的影响。国内外学者提出了许多方法来减少 频谱泄露对测量精度的影响,目前普遍采用的有准 同步算法 ]、自适应调整采样频率法 I4 J、加窗插 非常重要的问题,为了提高检测精度,国内外进行了 很多研究。对周期信号进行频谱分析,是一种认识 和处理周期信号的重要方法。目前频谱分析和测量 当中广泛使用的是离散时间采样的FFT算法。在 信号离散化过程中,如果采样频率和信号频率不同 步,或被采样信号自身频率的微小变化以及外部干 扰的影响,造成周期采样信号的相位在始端和终端 不连续,就会造成频谱泄露…。 值算法 J、修正采样序列 j、频谱泄露相消算法… 等,但这些算法有些比较复杂,有些精度不高,有些 对数据窗或采样频率要求较高等。 收稿日期:2014—08—08 作者简介:张英(1990一),女,硕士研究生,研究方向为信号与信息 处理。 本文介绍的幅值和相位自校正的算法,通过计 算并减小DFr产生的误差,降低频谱泄露对测量结 果造成的影响,非常适合异步采样的情况下对信号 进行频谱分析,对于采样点数较少的周期信号也可 有效提高其频谱分析的精度。 1 频谱泄露及原因 在实际中遇到的序列 (n),其长度往往是有限 长,甚至是无限长,用DFT对其进行谱分析时,必须 将其截断为长度为Ⅳ的有限长序列: Y(n)= (n)×RⅣ(n) (1) 根据频率卷积定理: 1 y( )= 一x(‘1T )× ( ) (2) 其中,l l<2,rr/N叫做主瓣,其余部分叫做旁瓣。 因此, (n)截矩后的频谱发生了变化,不同于它以 前的频谱。 频谱泄露就是利用DFT求信号频谱时做了 截断,使频谱中各谱线之间相互影响,使测量结果 偏离实际值,同时在谱线两侧其他频率点上出现 一些幅值较小的假谱¨J。同步采样时,信号的频 率 为 /Ⅳ的整数倍,其中 为采样频率,Ⅳ为 采样点数,这个条件满足DFT的正交性,各次谐 波的分量都正好位于相应的频率分辨点上,泄露 为0,因而能通过DFT得到正确的频谱。异步采 样时,各次谐波分量不能正好落在频率分辨点上, 而是落在两个频率分辨点之间,DFF只能以临近 的频率分辨点的值来近似代替,且矩形窗记录的 不是整数个周期,这种情况在信号的周期延拓时 就会导致其边界点不连续,使信号附加了高频分 量…。本文介绍的自校正方法,对于异步采样的 信号,可以有效消除其高频分量的影响,对同步采 样的信号没有影响,可精确地测得信号的频率 分量。 2 自校正方法原理 如果正运算是一种近似估计的数据处理算法, 逆运算可以根据正运算的输出参数重建对应的数 据,则利用重建的数据再做一次相同的近似估计数 据处理,两次近似估计数据处理的结果做差,这样可 以得到这种近似估计运算的误差 J。DFT对于异步 采样的信号而言,就是一种近似估计频谱的算法,而 IDFr则可以根据频谱重建对应的时域信号,因此可 以用上述自校正的方法将DFT产生的误差修正掉。 自校正方法的原理框图如图1所示。 可以看到,序列 ( )经过DFTr后得到频谱 ’(n),对其进行IDFY,恢复出一个时域信号 一1 54一 图1 目校正算法原理框图 (n),将此时域信号再经过DFT,得到一个新的频 域信号 (n),这样经过一次自校验系统产生的 误差AX(n)=X (n)一X (/Z),系统的输出 (n)=X (n)一ax(n)=2:lc X (n)一 (凡)。 可以将此自校正的方法在系统中应用两次或以 上,下面以两次为例说明。信号经过两次自校正的 系统框图如图2所示。 图2迭代的目校正算法原理 该系统最后的输出参数Ym=3 一(Ym+ . ym.: ),其中, 是原始DFT后的频率分量。ym. 和ym. 分别是第一次和第二次自校正算法的输出 参数。上图中,第二次自校正的输人参数 比第 一次自校正的输人参数 精确。最后,经过第二次 自校正算出来的误差△ .。比只做一次自校正的误 差△ym. 更精确,比系统只经过初始DFT后产生的 误差精确得多 。 通常情况下,对于应用Ⅳ次自校验算法的系 统,其输出为: ym=( +1)Ym*一∑:一 Y2 (3) 其中,.,是自校验算法的迭代次数,ym. 为第J.次自 校验的输出参数 。将公式(3)分别应用于幅值相 位频率分量时为: I (n)I=(.,+1)I X (n)I一∑ (n) I(n=0,1,…N一1) (4) arg{ (n)} = (.,+ 1)arg{X (/2)} 一 ∑ : arg{x2J(n)}(n=0,1,…N一1) (5) 3 自校正算法的实现过程 由于长度为Ⅳ的有限长序列可以看做是周期 为Ⅳ的周期序列的一个周期,离散傅里叶变换实际 上是离散时间傅里叶级数在主值区间上的取值,因 此利用DFS计算周期序列的一个周期,就可以得到 有限长序列的离散傅里叶变换 J。利用傅里叶级 数展开式可以方便求出信号幅值和相位,每一次将 有限长序列进行DFS求信号幅值和相位,就等于进 行了一次DFT,而根据幅值和相位等频域信息进行 IDFS,就等于做了一次IDFT。 离散有限长序列 (n),n=0,1,…,N一1,可以 用三角形式的离散傅里叶级数表示: N/2( )= ao+ 2 ̄㈦行的仿真实验。 4.1 自校正次数实验 异步采样时,在外部条件不变的情况下,只改变 t乙. n 2盯 + ),后为谐波 (6) 自校正迭代的次数,得到幅值和相位的相对误差,如 表1所示。 表1 幅值和相位误差随着自校正次数增多变化情况 次数 其中, c :瓣, =t ( )(尼=1,2,…, N/2) (7) 并且, 2 N-ak= 删1 (n)COS 2霄 )( =0,1,2,…, N/2) (8) 6 : 2∑ ( in(2竹 )( =1,2…,2, N/2) (9) a ,6 分别为信号的正弦分量,余弦分量。 设时域信号 (t)=Asin(2 :l:t+ 。),则采样 序列 (n)=Asin(2 t 12+ o),fo为信号频 率,t s为采样频率 的倒数,即采样两点之间的时间。 ①对比 (n)的表达式和三角级数展开式,可以 发现2 ̄rfot 术n=2 ̄rkn/N,这里 (n)为基波信号, 所以 =1。将2 ̄fot n代入公式进行计算。同步 采样时,信号的频率 为 /Ⅳ的整数倍,2 t 为2 ̄n/N的整数倍,符合DFT公式的正交条件,此 时可精确计算频谱。异步采样时,DFT是近似估计 计算,于是将2"rrfot ¥n代人公式(8)和(9),求an 和 ,即可求出幅值c ,相位P ,这是经过一次 DFT的幅值和相位的近似值。 ②将c 和P 代人公式(7)合成时域信号 1(n)。 ③对 (n)再进行DFS展开,求出幅值c 和相 位P 。可知,由DFT产生的幅值误差为C 一C ,相 位误差为P:一P 。 ④根据公式(4)一(5)可以分别算出经过一次自 校验后的幅值c和相位P:C=2C。一C ,P=2P。一 P 。此时,一次自校验完成。 ⑤将C和P代入公式(7),合成时域信号 (n), 重复步骤③,④,⑤即可完成多次自校正的迭代。 4计算机仿真分析 用任意一种语言将该自校验算法编入程序,并 给定一个已知信号,在异步采样条件下,判断自校验 算法的误差。本文中是在LabVIEW 2012平台上进 可以看到自校正次数为0即只有原始DFq"时, 计算出的幅值和相位误差偏大,误差随着自校正迭 代次数的增多而逐步减小趋于零。 4.2点数实验 在自校正次数为2时,对自校正算法和DFT分 别进行采样点数实验,对比其幅值和相位的相对误 差,如图3所示。 幅值误差对比 相位误差对比 30 5 20 O 1O 5 .O 1O .。lO 15 2O 。2O .25 .30 .30 .40 —35 .50 —40 图3 目校正算法和D 算法对比 图4采样点数变化时,自校正算法和DFI"算法 幅值和相位误差对比可以看到随着采样点数的增 多,DFT和自校验算法的误差逐步减小,自校验算法 误差更小、误差消除的更快。 5 结束语 本文提出了一种减小频谱泄露的幅值和相位自 校正算法,可以有效减小异步采样时的频谱泄露现 象,DFT产生的误差可以通过自校正算法得到修正, 显著地提高了DFT的精度。本算法原理简单容易实 现,但计算量偏大,尤其是在自校正算法迭代次数较 多时,需多次进行DFT和IDFT,不过在计算机数据处 理能力Et渐强大和编程语言灵活多变的今天,完全可 以满足该算法的实时『生。该算法对单频正弦信号的 处理效果最好,对含直流偏置或多频信号处理的效果 次之,不过仍比DFT精确。该算法是周期信号频谱 分析中一种简单而有效的方法,具有一定实用价值。 (下转第159页) 一1 55—