基于FPGA实现的FFT插值正弦波频率估计

发布者:trendsetter10最新更新时间:2010-03-29 来源: 中国工程物理研究院关键字:FPGA  FFT插值  正弦波  频率估计  噪声污染  Rife 手机看文章 扫描二维码
随时随地手机看文章

  对被噪声污染的正弦波信号进行频率估计是信号参数估计中的经典问题,目前国内外已提出不少方法。文献给出了在高斯白噪声中对正弦波信号频率进行最大似然估计算法,该算法能够达到卡拉美-罗限(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),频率估计值为粗测结果与精测结果之和。[page]

  1.2 算法分析

  本文算法与文献提到的算法主要区别在于步骤3。算法将正弦波信号所在频段[m-1,m+1]细化为5个子频段,如图1所示,并根据δ1值的大小判断信号谱线位置,使信号的频率位于某子频段的中心区域再进行频率估计。

子频段划分示意图

  该算法也可认为是对Rife算法的一种修正,通过适当增加运算量提高了估计精度。当p=O及p=1时,该算法退化为Rife算法。

  与MRife算法相比:MRife算法是通过对原始信号进行平移,然后对平移后的信号做FFT,重新用Rife算法计算δ。从式(3)可以发现“信号平移+FFT”与Xm+p时域运算是一致的,所不同的是,由于计算单个Xm+p只需N次复数乘法和N次复数加法,运算量比“信号平移+FFT”小,因此本文算法可同时计算多个Xm+p,Xm+p-1,以提高估计精度。

  2 算法硬件实现

  本文算法充分利用了FPGA并行计算的优点,在FPGA实现时采用流水线模式,经过固有时间后,每个时钟周期可以输出一个指定操作的结果,提高了算法的运算速度。

  从前面的分析可知,整个测频算法主要包括粗测频和精测频2个部分:首先对信号作FFT运算并进行谱峰搜索得到峰值位置;再通过插值FFT运算得到频率偏差δ1,δ2;粗测频部分可以直接调用相关FPGA的FFT库函数完成。从式(3)可知精测频部分需要大量计算三角函数,本文采用查表法来实现。整个算法流程如图2所示。

算法流程[page]

  3 仿真分析

  信噪比定义为:公式,σ为噪声均方误差。对正弦波信号,在相位、幅度和频率3个参数均是未知的情况下,频率估计的方差下限为:

公式

  式中N为样本数。在仿真中设fs=167 MHz,N=512,因此两条谱线间的频率差为△f=fs/N。现取fi=45.5△f+(i-1)△f/20(i=l,2,…,21)的正弦波,即对应FFT后峰值位置与信号真实峰值偏差δ为[-0.5,0.5]。对每个频率fi的取值分别作l 000次Monte Carlo试验,计算δl,δ2的均方根误差(RMSE),定义比率R=RMSE/CRB,仿真结果如图3、图4所示。RSN取-20 dB~0 dB,步长为0.5 dB,分别做1 000次Monte Carlo试验,计算新算法的归一化频率估计均方误差,仿真结果如图5所示。

仿真结果

仿真结果

  仿真结果表明δ2不随被估计信号的频率分布而产生波动;当RSN>-14 dB时,新算法频率估计值的方差在整个频段都接近卡拉美-罗限,具有稳定的性能。

  4 结论

  本文在分析Rife,MRife和傅里叶系数插值迭代3种算法的基础上,将串行迭代变为并行迭代,由此得出了一种快速频率估计算法,并分析了新算法与前3种算法的异同。计算机仿真结果证实新算法能够快速、高精度估计单频信号的频率,便于工程实现,适合应用在雷达、电子对抗等对处理实时性要求非常高的领域。

关键字:FPGA  FFT插值  正弦波  频率估计  噪声污染  Rife 引用地址:基于FPGA实现的FFT插值正弦波频率估计

上一篇:基于FPGA的超声波气体流量计中AGC的实现
下一篇:喜迎15周年,合众达寄语未来

推荐阅读最新更新时间:2024-05-02 21:02

MSS+ACE+FPGA=灵活的控制系统
  爱特公司(Actel) 日前推出了世界首个智能型混合信号FPGA器件SmartFusion并已投入批量生产。SmartFusion的FPGA架构包括基于ARM Cortex-M3硬核处理器的完整微控制器子系统(MSS),以及可编程Flash模拟模块(ACE)。SmartFusion器件能让嵌入式产品设计人员使用单芯片便能轻易构建所需要的系统,获得全部所需功能,而且无需牺牲产品性能。      SmartFusion提供了构建高度灵活的smartgrid传感器所需的资源,并具有更大的灵活性和更小的封装尺寸。片上集成嵌入式ARM处理器,意味着ARM Cortex-M3处理器在广泛的应用中的快速发展,SmartFusion的用户不但
[嵌入式]
MSS+ACE+<font color='red'>FPGA</font>=灵活的控制系统
迈吉伦科技实现业界降低成本及快速上市的梦
迈吉伦科技在经过市场需求、技术升级以及降低 IC Design 业者成本等全方位考虑后,决定与 S 2C 成为事业伙伴,今后 S 2C 全系列产品包括: TAI Logic Modules ,TAI Logic Accessories ;以及 ESL( 电子系统层级 ) 设计相关软件工具: TAI Player, TAI Compiler, TAI Browser 等 … ,将透过迈吉伦科技坚强的销售及研发团队,带领进入台湾 FPGA Prototyping 市场,让台湾 IC Design 业界真正达到降低研发成本以及加快上市时程的决胜关键,并提供最新及最快的技术
[嵌入式]
FPGA在智能压力传感器系统中的应用
0 引 言 传统气体压力测量仪器的传感器部分与数据采集系统是分离的,抗干扰的能力较差,并且通常被测对象的压力变化较快。因此不仅要求系统具有较快的数据吞吐速率,而且要能够适应复杂多变的工业环境,具有较好抗干扰性能、自我检测和数据传输的功能。 在此,利用FPGA具有扩展灵活,可实现片上系统(SoC),同时具有多种IP核可供使用等优点,设计了能够控制多路模拟开关、A/D转换、快速数据处理与传输、误差校正、温度补偿的智能传感器系统;同时将传感器与数据采集处理控制系统集成在一起,使系统更加紧凑,提高了系统适应工业现场的能力。 1 系统性能及元器件 1.1 智能传感器系统性能要求 传感器压力测量范围:0~5 MPa;系统精度:±0.
[测试测量]
<font color='red'>FPGA</font>在智能压力传感器系统中的应用
基于FPGA频率特性测试仪的设计
在电子测量中,经常需要对电路网络的阻抗特性和传输特性进行测量,其中传输特性包括增益和衰减特性、幅频特性、相频特性等。用来测量这些特性的仪器称为频率特性测试仪,简称扫频仪。目前市场上频率特性测试仪有模拟式和数字式两种,它们都存在体积大、价格贵、操作复杂的缺点,在实际应用中用户很难接受。本文采用了现场可编程门阵列(FPGA)及外围测量电路设计了一种简易便携式的频率特性测试仪,其性能上能满足大部分系统要求的频率响应特性的测量,具有较高的实用价值。 1 系统总体设计 本系统以FPGA以核心,由扫频信号源、测幅电路、测相电路、有效值检测、整形电路、LCD触摸屏等模块构成。系统总体结构框图如图1所示。系统工作时,由扫频信号源输出频率可
[测试测量]
基于<font color='red'>FPGA</font>的<font color='red'>频率</font>特性测试仪的设计
基于ARM的CRC算法和基于FPGA的算法性能比较
CRC是一种实际通信中应用很广泛的线性分组码,具有很强的检错能力,但没有纠错能力。在应用的时候可以根据不同的场合选择硬件电路或者软件算法来实现,硬件实现的原理是根据特定的CRC多项式对输入信号和上一次校验结果进行移位异或操作,得到本次CRC校验结果;软件则可以采用多种不同算法进行计算,相应的时间复杂度会有所差别 题目分析:本题目的设计意图在于使用FPGA中硬件资源对某些流程固定的软件算法进行加速,即algorithm-hardware codesign,是软硬协同设计中更为具体的一种形式,本题目中的CRC算法只是其中一种实例。这种由硬件电路实现的软件算法通常能够很大程度上的降低计算时间,代价仅是FPGA内部所消耗的一些逻辑、存储资
[单片机]
基于ARM的CRC算法和基于<font color='red'>FPGA</font>的算法性能比较
STM32 正弦波输出
STM32是可以输出正弦波的!怎么做?要输出正弦波,需要好几个外设配合:Timer、DAC、DMA。TImer用来设置正弦波的频率的;DAC顾名思义将数字量转换成模拟量,在这里就是转化成电压信号;DMA直接控制DAC输出,而不用麻烦芯片内核。 下面讲讲它们之间如何配合工作。首先要配置定时器的频率,并设置定时器为输出触发。然后配置DAC的触发源为定时器触发,并打开DAC的MDA功能。接下去轮到DMA的工作了,设置DMA的操作对象为DAC。按上面配置好后,三个外设就可以正常工作了:定时器每次计数值递增,就触发DAC工作,然后DMA就控制DAC输出相对应的电压值,在一个定时周期内,DAC输出电压值输出按正弦波的变化,这样就产生了正弦波!
[单片机]
STM32 <font color='red'>正弦波</font>输出
ML2036产生程控增益正弦波的应用电路
4 应用电路 ML2036简单易用,可以很方便的产生程控正弦波信号,图4所示是ML2036产生程控增益正弦波的硬件原理设计,图中的U3(AD5262)是程控数字电位器,具有256个节点,正负双电源供电,可以处理正负双向交流信号,过零正弦波峰峰值(±2.5V)分辨率可以达到VREF/256=10mW,再经过运放把峰峰值放大为20V。单片机AT89C2051用普通I/0口即可模拟ML2036和数字电位器AD5262的数字接口,从而对输出正弦波进行频率和幅度的控制。再把单片机串口收发信号经232电平转换后接到PC机串口,就构成幅度和频率都可以连续程控的过零正弦波信号发生器。
[模拟电子]
ML2036产生程控增益<font color='red'>正弦波</font>的应用电路
FPGA将成为传统DSP的有力挑战
宽带革命     市场环境的变化将会改变未来几年内DSP实现的方式。最显著地,宽带革命将带来最大的挑战。 宽带革命是由传统上分别属于不同领域的许多技术的融合所引发。其中包括计算、电信/无线、视频、图像和网络等。图1突出了由这一融合而新产生的一些新应用。     此类新兴应用需要处理的模拟和数字数据量呈指数型增长。这又进一步加大了对更快的DSP的需求。虽然摩尔定律仍适用于目前最快的DSP,但在所需要的性能水平与实际DSP器件所提供性能水平间的差距仍在不断增大(参看图2)。因此很明显,DSP要满足宽带革命所提出的挑战必须寻求新的数据处理方法。     此外,今天快速变化的市场上,产品上市时
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved