利用FFT IP Core实现FFT算法

发布者:甜美瞬间最新更新时间:2012-02-11 来源: elecfans关键字:FFT  IP 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:结合工程实践,介绍了一种利用FFT IP Core实现FFT的方法,设计能同时对两路实数序列进行256点FFT运算,并对转换结果进行求模平方运算,且对数据具有连续处理的能力。设计采用低成本的FPGA实现,具有成本低、性能高、灵活性强、速度快等特点,而且通过工程应用证明了设计是正确可行的。

    由于FFT(快速傅里叶变换)的问世,促进了数字信号处理这门学科的成熟,它可应用于傅里叶变换理论所能涉及的任何领域。FFT传统实现
方法无非是软件(软件编程)和硬件(专用芯片ASIC)两种,FPGA的出现使人们在FFT的实现方面又多了一种选择。FPGA同时具有软件编程的灵活性和ASIC电路的快速性等优点,适合高速数字信号处理。大多数FPGA厂商都提供了可配置的逻辑核(Core)实现各种算法功能,其中包括FFT IP Core(知识产权核)。使用这些资源允许设计师将更多的时间和精力放在改善增加系统功能上,这无疑将大大减少设计风险及缩短开发周期。
    本设计采用了Altera公司的FFT IP Core实现FFT功能,可同时实现两路256点实数数据的FFT转换,并对转换结果进行求模平方运算,设计对数据具有连续处理的能力。FPGA芯片选用的是有史以来成本最低的Altera公司的Cyclone系列的芯片,FFT内核是Altera MegaCore FFT-V2.0.0,整个设计成本低、性能好,已经成功地应用到雷达产品中。

2  算法原理和FFT Core介绍
    设计用到的算法包括同时计算两个实函数的FFT算法和CORDIC算法。
2.1  同时计算两个实函数的FFT算法
    DFT(离散傅里叶变换)的定义为:
 
式(1)中,都假定时间函数x(n)是一个复函数。但是在许多FFT的实际应用中,时间函数往往是实函数。下面介绍的算法可以有效地减少实数序列FFT的计算工作量,从而提高计算速度。该方法可归纳为如下几个步骤:
①函数h(n)和g(n)是两个实函数,n=0,1,…,N-1;
②将其中的一个作为实部而另一个作为虚部,构成复函数z(n)为:
  z(n)=h(n)+jg(n),  n=0,1,…,N-1;
③计算z(n)的N点DFT得:
 
式中,Zr(k)和Zi(k)分别是Z(k)的实部和虚部;
④从z(k)中分析出H(k)和G(k):
 
式中,H(k)和G(k)分别是h(n)和g(n)的DFT。
    详细的推导过程参见文献[2]。

2.2 CORDIC算法原理
  CORDIC(The Coordinate Rotational Digital Computer)算法是一种循环迭代算法,其基本思想是用一系列与运算基数相关角度的不断偏摆从而逼近所需旋转的角度。从广义上讲它是一个数值性计算逼近的方法,由于这些固定的角度与计算基数有关,运算只有移位和加减。可用该算法来计算的函数包括乘、除、平方根、正弦、余弦正切、向量旋转(即复数乘法)以及指数运算等。CORDIC的基本原理如下。
    向量x+jy,旋转角度θ到向量x\'+jy\',假设的方向用δ表示,旋转的角度为θi,并且θi满足关系:tanθi=2i。则由文献[3]的推导可知:
 
假设x[0]=b,y[0]=a,z[0]=0,则有:
 
式中, 为畸变因子,对于字长一定的运算,它为一常数,如字长为16位时,K=1.6667。δi表示每一次旋转的方向,当y[i]≥0时,其值为1;当y[i]≤0时,其值为-1。

2.3 FFT Core简介
    FFT-V2.0.0是Altera公司2004年2月新发布的FFT知识产权核,它是一个高性能、高度参数化的快速傅里叶变换(FFT)处理器,支持Cyclone、
Stratix II、Stratix GX、Stratix系列FPGA器件。该FFT Core功能是执行高性能的正向复数FFT或反向的FFT(IFFT),采用基2/4频域抽取(DIF)的FFT算法,其转换长度为2m,这里6≤m≤14。在其内部,FFT采用块浮点结构,以在最大信噪比(SNR)和最小资源需求之间获得最大的收益。FFT Core接收一个长度为N的、二进制补码格式、顺序输入的复数序列作为输入,输出转换域的、顺序的复数数据序列。同时,一个累加块指数被输出,表示块浮点的量化因子。FFT Core的转换方向事先由一个输入端口为每个数据转换块指定。
   FFT Core可以设置两种不同的引擎结构:四输出(Quad-output FFT engine)和单输出(Single-output FFT engine)。对于要求转换时间尽量小的
应用,四输出引擎结构是最佳的选择;对于要求资源尽量少的应用,单输出引擎结构比较合适。为了增加整个FFT Core的吞吐量,可以采用多并行引擎结构。
    FFT Core支持3种I/O数据流结构:连续(streaming)、缓冲突发(Buffered Burst)、突发(Burst)。连续I/O数据流结构允许处理连续输入数据,输出连续复数数据流,而不中断输入和输出数据;缓冲突发I/O数据流结构与连续结构相比,需要更少的存储资源,但是,这是以减少平均吞吐
量为代价的;突发数据流结构的操作与缓冲突发方式基本上一致,但突发方式则需要更少的存储资源,这也是以降低吞吐量为代价的。

3  硬件设计
 
图1整体原理图
    设计的整体原理图如图1所示。输入和输出缓冲器分别存储预处理数据和FFT转换结果;FFT运算器负责FFT运算;控制器为输入和输出缓冲器提供读写地址,并控制FFT运算的时序和缓冲器的读写操作;后处理单元从单路复数输入频谱数据中分离出两路实数输入频谱数据;求模运算器实现CORDIC算法,求取转换结果的平方根。设计的输入为两路实数序列,一路作为实部,另一路作为虚部,由连续的256点的数据段组成;输出是间断的256点数据段,各数据段的前128点为第一路的频谱数据,后128点是第二路的频谱数据。根据FFT频谱关于中心点对称的结果,只截取前半段频谱数据并不会丢失任何信息。
    整个系统的工作时序为:
①数据以5MHz的速率输入到输入缓冲器;
②FFT运算器以40MHz的速率从输入缓冲器中取数进行运算;
③FFT运算结束时,将转换结果存入到输出缓冲器中;
④输出缓冲器数据以20MHz的速率被送到后处理单元进行转变;
⑤数据被送到求模运算器,进行CORDIC运算,输出;
⑥当③结束时,FFT运算器又回到起始状态,等待处理下一组数据,从而使运算周而复始地进行。整个设计由控制器严格控制。
    输入和输出缓冲器由FPGA内部的RAM实现,这些都相对简单。下面重点介绍。FFT运算器、控制器、后处理单元和求模运算器。[page]
 
3.1  FFT 运算器
    FFT运算器采用FFT Core实现,其引擎结构为双Single-output,I/O数据流采用突发(Burst)方式。FFT Core采用Atlantic Interface协议,输入
接口视为主接收器,输出接口视为主发送器。具体接口定义如表1所示。

表1 FFT Core接口信号定义
信号 方向 描述
clk 输入 FFT系统时钟信号
reset 输入 FFT高有效同步复位信号
master_sink_dav 输入 主接收器数据有效信号
master_sink_ena 输出 主接收器写使能信号
master_sink_sop 输入 输入数据包起始位指示信号
inv_i 输入 转换方向控制信号
date_real_in[M-1...0] 输入 输入实部数据
data_imag_in[M-1...0] 输入 输入虚部数据
fft_real_out[M-1...0] 输出 输出实部数据
fft_imag_out[M-1...0] 输出 输出虚部数据
exponent_out[5...0] 输出 有符号数据块指数
master_source_dav 输入 子接收器接收有效指示信号
master_source_cna 输出 主发送器使能信号
master_source_sop 输出 输出数据包起始位
master_source_eop 输出 输出数据包结束位

     具体的工作流程:系统复位后,数据源将master_sink_dav置位,表示有采样数据等待输入;作为回应,FFT Core将master_sink_ena置位,表示可以接收输入数据;数据源加载第一个复数数据,同时master_sink_sop置位,表示输入数据块的起始;下一个时钟,master_sink_sop被清零,输入数据按照自然顺序被加入。输入数据达到256点时,系统自然启动FFT运算。通过inv_i信号的置位/清零可以改变单个数据块的FFT转换方向,inv_i信号必须和master_sink_sop信号严格同步。当FFT转换结束时,子接收器已经将master_source_dav信号置位,表示子接收器可以接收FFT的转换结果;同时,master_source_ena信号置位,FFTCore按照自然顺序输出运算结果;在输出过程中,
master_source_sop和master_source_eop信号被置位,表示输出数据块的起始和结束。详细的描述参见文献[4]。

3.2 控制器与后处理单元
    控制器大体可分为三个部分:输入缓冲控制(c_i)、FFT运算控制(c_f)、输出缓冲控制(c_o)。c_i为输入缓冲器提供读/写地址和相应的读/写
控制信号;c_f为FFT运算器提供控制信号,严格控制FFT Core的工作时序;c_o为输出缓冲器提供读/写地址及读/写控制信号。控制器通过VHDL语言编程的状态机方式可以轻易实现。
    后处理单元其实是式(2)和式(3)的硬件实现,具体的原理如图2所示。
 
图2后处理单元原理图
    图中标识“mux”、“+”、“-”、“1/2”分别表示选择器、加法器、减法器和除法器,dr、di、dnr、dni分别与式(1)和式(2)中的Zr(k)、
Zi(k)、Zr(N-k)、Zi(N-k)相对应。当sel等于0时,提取第一路实序列的频谱数据G(k),实现式(1)功能;当sel等于1时,提取第二路实序列的频谱数据,实现式(2)功能。

3.3 求模运算器
    由于工程只要求求平方根,不涉及角度的计算,因此,CORDIC的角度计算部分没有给出,但这并不会影响到幅度的计算。整个CORDIC采用全流水线结构,设计总共有16级流水线单元,各流水线单元结构相似。CORDIC流水线结构如图3所示。
 
图3 CORDIC流水线原理图
    该结果并不是最终结果,还要加一级幅度校正,以去除畸变因子的影响。

4  结束语
    设计的输入和输出工作频率相对较低,因而很容易满足,关键是FFT Core的性能指标。根据工程需要,输入数据速率采用5MHz,FFT Core工作在40MHz,输出转换结果采用20MHz时钟,在此条件下对设计进行硬件测试,结果证明设计功能正确、工作稳定、性能优越。另外,经软件时序仿真可知,FFT Core最高工作频率可达到117.52MHz,通过提高运算时钟,还可获得更快的运算能力。
    设计选用Altera公司的FFT Core,成功地在FPGA中实现了两路连续256点实数序列FFT的算法,其设计成本低、性能好,已经成功地应用到
雷达产品中。由于FFT Core的可塑性很强,通过改动参数设置,就可轻易地使设计适应于不同的产品。

关键字:FFT  IP 引用地址:利用FFT IP Core实现FFT算法

上一篇:高效FIR滤波器的设计与仿真-基于FPGA
下一篇:des算法原理

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

一个iCam应用 让IP摄像头变成安防设备
如果你有一个网络摄像头,你可能不知道该怎么处理它。也许你的电脑摄像头很不错,但你却很少用,就像你抽屉里的网络摄像机一样,很快就被遗忘。有个专门为家居安全设计的很棒的应用程序,可以让覆盖灰尘的旧摄像头重新散发活力。 让废旧摄像头重新焕发活力 这个程序是iCam,可支持iOS和Android系统,也可以在OSX或者Windows系统运行。只要4.99美元你就可以利用已有的设备来作为家居安全装置。 这款运营程序的使用和安装都很简单。除了移动版本,你需要一些硬件设备。一旦加载成功,你只需要把旧网络摄像机作为源头进行简单的安装。如果你有很多个摄像头,你可以全部安装它们。 你可以为摄像头设置运动监测,这样如果有事发
[安防电子]
一个iCam应用 让<font color='red'>IP</font>摄像头变成安防设备
IP厂力旺营运表现不佳董事长致歉 期待12英寸晶圆贡献大幅
        科技消息(文/雷明正)硅智财(IP)厂力旺今(9)日举办财报会,对于过去5年营运表现不佳,股价一度创下4年新低,今年还大跌超过5成,董事长徐清祥一开始就先向法人道歉,「过去一段时间大家都注意到股价表现不佳,各位股东都辛苦了。」,并强调过去建构的新技术、新平台和新应用会开始发酵,12英寸晶圆权利金也逐渐增加,未来营运还是很有信心。         徐清祥指出,营收不佳主要是8英寸制程客户在面临市场价格压力之下,经常会把一线代工厂转到成本较低的二线代工厂影响接单;其次,一线代工厂8英寸晶圆价格逐年下降,加上先进制程导入技术并没有如预期那么快。不过他也说,2014年前权利金都有大于30%的成长,虽营收不如预期,但代工
[手机便携]
晨星半导体获 MIPS 处理器IP授权
美普思科技公司(MIPS Technologies, Inc., 纳斯达克代码:MIPS)宣布,全球领先的数字电视IC供应商晨星半导体(MStar Semiconductor)获得其多线程MIPS32TM 34Kf™ Pro可合成处理器内核授权,用来开发新一代设备。34Kf内核包括一个浮点单元,可为图形密集型功能提供增强的性能,对连网数字电视及Java、JavaScript、Adobe® Flash® 播放器和Android™.等技术非常关键。晨星是一家长期的MIPSTM授权客户,之前曾获得MIPS32 M4KTM与4KEcTM内核的授权。 全球显示市场领先研究机构DisplaySearch在 2009 年第四季度发
[嵌入式]
基于IP设计的8位SoC微微器ET44M210
1 概述 当前,使用8位单片机作为控制核心的应用仍然是主流。主要原因是,有相当数量的应用项目只需要使用8位单片机就完全能满足技术要求。8位单片机的低成本、易开发、技术资源丰富等优点,使得其它高位单片机无法与其匹配,因此,无论是芯片制造商还是系统应用开发人员,对8位单片机的现状和发展都给予了极大的关注。 8位嵌入式微处理器发展的一个重要特点是片上系统SoC(System on Chip)化。SoC化的技术含义就是在一个芯片上广泛使用知识产权IP(Intellectual Property),从而加速了嵌入式系统的研制和开发过程。从设计上来说,SoC是一个通用设计复用达到高生产率的软、硬件协同设计;从方法学的角度来说,SoC在
[单片机]
基于<font color='red'>IP</font>设计的8位SoC微微器ET44M210
Lynxi 购买Arteris FlexNoC互连IP用于高性能神经网络处理芯片
美国加利福尼亚州坎贝尔市2019年3月5日消息——Arteris IP是经过实际验证的创新性片上网络(NoC)互连知识产权(IP)产品的全球领先供应商,今天宣布,Lynxi科技已购买Arteris 的FlexNoC互连IP,用于该公司高性能神经网络处理芯片。 Lynxi科技是一家从事技术的初创企业,总部设在北京,其员工是世界著名的清华大学的技术界领袖。 Arteris IP总裁兼首席执行官K.Charles Janac说:“Lynxi团队选择Flexnoc 互连IP作为其深度学习人工智能芯片的片上网络(NoC)通信主干部件,对此Arteris IP感到兴奋。”他表示,“鉴于Lynxi科技是借助使用人工智能算法的
[物联网]
新型LCD驱动电路IP核的总体设计
  本文介绍了LCD的通用驱动电路IP核设计,采用自顶向下的设计方法将其划分为几个主要模块,分别介绍各个模块的功能,用VHDL语言对其进行描述,用FPGA实现并通过了仿真验证。该IP核具有良好的移植性,可驱动不同规模的LCD电路。    引言   LCD因具有工作电压低、功耗小、显示信息量大、寿命长、易集成、方便携带和电磁辐射污染小等优点,在显示技术中异军突起,被广泛应用于手机、PDA产品、手持式仪器仪表等便携式电子产品与设备中。   LCD驱动电路是液晶显示系统的重要组成部分,是一种计算机(或MCU)和液晶屏之间的接口电路,其主要功能是通过调制输出到液晶显示器件电极上的电位信号的相位、峰值、频率等参数来建立交流驱动电场。由于L
[电源管理]
新型LCD驱动电路<font color='red'>IP</font>核的总体设计
基于IP多播视频系统的设计与实现
本文着重介绍了流媒技术及其底层传输技术——IP多播。基于校园网设计并实现了一个可供网络现场直播、视频点播等服务的视频通信系统,系统中结合了多播技术中节约带宽、减轻服务器负载的优势,并采用了Real公司RealSystem流媒体系统,在客户端/服务器模式下完成。 1 流媒体技术 所谓流媒体是指采用流式传输方式在Internet播放媒体文件,即将整个音频、视频等连续媒体文件经过压缩后,由服务器向用户计算机连续和实时传送。用户只需经过几秒或几十秒的启动延时即可进行播放和观看,剩余部分将在后台继续下载,边下载边播放。实现流式传输有两种方法:实时流式传输(Real times treaming)和顺序流式传输(Progressive
[模拟电子]
基于<font color='red'>IP</font>多播视频系统的设计与实现
Sondrel 专为下一代多通道汽车片上系统部署 Arteris IP
面向ADAS 应用的高性能计算 IP 平台设计的关键动力,即是 FlexNoC 的超强可配性与优越表现 Sondrel 与 Arteris IP(纳斯达克:AIP),是一家领先的系统 IP 供应商,其主要业务由片上网络 (NoC) 互联与 IP 部署软件组成,可实现片上系统 (SoC) 加速创建。今日,Sondrel 宣布将在下一代高级驾驶辅助系统 (ADAS) 架构中采用 FlexNoC 互联 IP。这一选定与片上互联的超强可配性与优越表现脱不开关系。该产品可完全满足 SFA 350A 多通道汽车 IP 平台的要求。FlexNoC 支持匹配 IP 块性能的片上网络设计,可确保流入、流出及流经片上系统的数据速度始终无误。纵使客
[汽车电子]
Sondrel 专为下一代多通道汽车片上系统部署 Arteris <font color='red'>IP</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

更多精选电路图
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved