基于FPGA实现的FFT插值正弦波频率估计
对被噪声污染的正弦波信号进行频率估计是信号参数估计中的经典问题,目前国内外已提出不少方法。文献给出了在高斯白噪声中对正弦波信号频率进行最大似然估计算法,该算法能够达到卡拉美-罗限(CRB),但计算量大,实现困难。FFT频率估计方法具有速度快、便于实时处理的特性而得到了广泛应用。但FFT频率估计方法得到的是离散频率值,当信号频率与FFT离散频率不重合时,由于FFT的“栅栏”效应,信号的实际频率应位于两条谱线之间。显然仅仅利用FFT幅度最大值估计信号频率难以满足精度要求,因此各种插值算法应运而生。文献给出了Rife算法,在对输入信号进行一次FFT运算后,利用最大谱线及其相邻的一根次大谱线进行插值来确定真实频率位置。当信号的真实频率处于两相邻量化频率之间的中心区域时,Rife算法精度很高,但是在FFT量化频率附近的误差却较大。文献提出了一种修正Rife算法,通过对信号进行频移,使新信号的频率位于两个相邻量化频率点的中心区域,然后再利用Rife算法进行频率估计。文献提出了基于傅里叶系数插值迭代的频率估计方法,该方法能够有效提高精度,但需要多次串行迭代,不利于发挥FPGA并行处理的优势。本文分析了以上3种算法的特点,并以之为基础结合FPGA的并行处理优势,提出了一种利用信号FFT插值系数的幅度和相位信息来构造频率修正项的新算法。
1 基于FFT插值的正弦波频率估计法
1.1 算法原理
单一频率正弦信号表示为:
式中:A,f0,θ分别为正弦信号的幅度、频率和初相;fs为采样频率。目前基于FFT的正弦信号频率估计分为2个过程来实现:粗测频和精测频。粗测频通过直接观察FFT幅谱最大值点m来完成,受观测时长T的限制,误差范围为±l/(2T)。假设为信号频率的真实值,δ为信号频率与其FFT幅度最大处对应频率的相对偏差,m,与δ的关系如式(2)所示:
考虑到FPGA并行计算的特点,利用流水线结构同时计算多个Xm+p,Xm+p-1值,将串行迭代变为并行迭代,其运算步骤归纳如下:
本文提出的算法分为粗测频(步骤1)和精测频(步骤2,3),频率估计值为粗测结果与精测结果之和。
1.2 算法分析
本文算法与文献提到的算法主要区别在于步骤3。算法将正弦波信号所在频段[m-1,m+1]细化为5个子频段,如图1所示,并根据δ1值的大小判断信号谱线位置,使信号的频率位于某子频段的中心区域再进行频率估计。
该算法也可认为是对Rife算法的一种修正,通过适当增加运算量提高了估计精度。当p=O及p=1时,该算法退化为Rife算法。
相关文章
- 2023-11-02显微成像测量精密狭缝的重复精度
- 2024-08-23一种新型旋转滚筒表面温度测试仪
- 2024-10-31基于网络的计量管理模式研究
- 2022-07-08安邦信变频器在建筑大厦集中供热中的应用
- 2023-01-10基于SI473X的RDS功能设计与实现
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。