Page 27 - 《应用声学》2020年第4期
P. 27
第 39 卷 第 4 期 温兵会等: 一种快速有效的正弦波信号频率估计方法 513
x(n) = A e j(2πnf 0 /f s +θ 0 ) + w(n),
0 引言
n = 0, 1, · · · , N − 1, (1)
正弦波信号的频率估计是数字信号处理领域
其中,f 0 = (k 0 + δ) · ∆f 为信号频率,∆f = f s /N
的一个值得研究的经典课题,在声呐、雷达等领域 为频率分辨率,δ 为数字频率偏差,取值范围在
应用广泛。采用离散傅里叶变换 (Discrete Fourier −0.5 ∼ 0.5 之间,f s 为采样频率,k 0 为数字频率;
transform, DFT) 谱估计方法估计正弦波信号的频 w(n)为高斯白噪声,均值为 0,方差为 σ ;A和θ 0 分
2
n
率是一种常用方法,由于快速傅里叶变换 (Fast 别为信号幅度和初相;N 为信号长度。
Fourier transform, FFT) 算法的高效性,该方法在 对式(1)所示的信号进行N 点DFT得到
工程上得到广泛应用 [1−3] 。利用 FFT 谱估计法进
sin(π(k − (k 0 + δ)))
行正弦波信号频率估计的方法很多,大体上可以 X(k) = A sin(π(k − (k 0 + δ))/N)
分为两类。一类是需要判别频率修正方向的算法, j(θ 0 −π(k−(k 0 +δ))(N−1)/N)
· e + W(k),
如 Rife 算法 [4−5] 、M-Rife 算法 [6] 和 I-Rife 算法 [7] 。
k = 0, 1, · · · , N − 1, (2)
Rife 算法是正弦信号频域频率估计的经典算法,通
过频谱插值对实际频率相对于谱线最大值频率的 式 (2) 中,W(k) 表示高斯白噪声的 DFT,在不考虑
偏移量进行估计,计算量小,但是存在两个问题:一 噪声的情况下信号傅里叶变换的幅值为
是当实际频率在谱线最大值频率附近时,频率估 |X(k)| = A sin(π(k − (k 0 + δ))) ,
sin(π(k − (k 0 + δ))/N)
计误差相对较大;二是,其频率估计精度易受噪声
的影响,低信噪比(Signal-to-noise ratio, SNR)时估 k = 0, 1, · · · , N − 1. (3)
计性能下降。M-Rife 算法解决了 Rife 算法的第一 当信号的真实频率不等于频率分辨率 ∆f 的整
个问题,但增加了运算量。I-Rife 算法解决了 Rife 数倍时,利用 FFT 估计频率存在频率偏差,数字频
算法的两个问题,但进一步增加了计算量。Rife 算 率偏差 δ 取值范围在 −0.5 ∼ 0.5 之间,信号的真实
法、M-Rife 算法和 I-Rife 算法存在的共同问题是需 频率位于谱线最大值与次大值对应的频率之间。
要判别频率修正方向,再计算频率偏差。另一类,基 假设信号经过 N 点 FFT 运算后,频谱幅度最
于 FFT 的频率估计方法,不需要判别频率修正方 |,对应的数字频率为 k 0 ,次大值为
大值为 |X k 0
向,直接计算频率偏差,如 Candan 算法 [8] 、Fang 算 |X k 0 +α |。Rife算法利用频谱幅度的最大值和次大值
法 [9] 和改进的 Fang算法 [10−12] 。Candan 算法计算 估计频率偏差,频率估计公式为 [4]
简单,但当信噪比较低时,容易出现插值方向错误,
ˆ
f 0 = (k 0 + δ)∆f
导致误差较大。Fang算法通过对信号在时域补等信 ( )
|X k 0 +α |
号长度的零,采用FFT频谱中最大谱线相邻的两根 = k 0 + α , (4)
|
|X k 0 +α | + |X k 0
谱线幅度估计频率偏差,提高了频率估计性能,但增
其中,频率修正方向 α = ±1。当|X k 0 +1 | > |X k 0 −1 |
加了计算量。改进的 Fang 算法在 Fang 算法基础上
时,α = +1;当|X k 0 +1 | < |X k 0 −1 |时,α = −1。
提高了频率估计性能,减少了计算量。Candan算法
Rife算法计算量小,但在频偏较小时,频率估计
和 Fang 算法及其改进算法存在的共同问题是涉及
误差增大,此外,低信噪比时估计性能下降;I-Rife
到非线性函数的计算,增加了算法的复杂度。为此,
算法 [7] 是对 Rife算法的改进,利用频谱细化技术计
本文提出了一种新的频率估计算法,在 N 点 FFT
算谱值 |X(k 0 ± 0.5)| 作为频率修正方向的判据,利
运算基础上,利用两点细化的频谱值估计频率偏移
用频移技术将被估计频率移至两相邻数字频率的
量,分析了频偏估计的偏差和算法的复杂度。相比
中心处,以确保 Rife算法能够准确估计频率。I-Rife
于I-Rife 和改进的 Fang 算法,本文不需要判别频率
算法在一定程度上克服了 Rife 算法的不足,但增
修正方向,降低了算法计算量和复杂度。
加了计算量;改进 Fang 算法 (I-Fang) [10] 利用 DFT
1 问题描述 计算 6 个频点的谱值来估计数字频率偏差,避免了
Fang 算法中对信号补等长度的零进行 2N 点 FFT
含有噪声的复正弦信号为 运算,减少了计算量,但利用 I-Fang 算法进行频率