下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于fpga的fft处理器设计随着数字技术的迅速进展,数字信号处理已深化到各个学科领域。在数字信号处理中,许多算法如相关、滤波、谱估量、卷积等都可通过转化为离散傅立叶变换(dft)实现,从而为离散信号分析从理论上提供了变换工具。但dft计算量大,实现困难。迅速傅立叶(fft)的提出,大大削减了计算量,从根本上转变了傅立叶变换的地位,成为数字信号处理中的核心技术之一,广泛应用于雷达、观测、跟踪、高速图像处理、保密无线通信和数字通信等领域。目前,硬件实现fft算法的计划主要有:通用数字信号处理器()、fft专用器件和现场可编程门阵列()。dsp具有纯软件实现的灵便性,适用于流程复杂的算法,如通信系
2、统中信道的编译码、qam映射等算法。dsp完成fft运算需占用大量dsp的运算时光,使囫囵系统的数据吞吐率降低,同时也无法发挥dsp软件实现的灵便性。采纳fft专用器件,速度虽能够达到要求。但其外围复杂,可扩展性差,成本昂贵。随着fpga进展,其资源丰盛,易于组织流水和并行结构,将fft实时性要求与fpga器件设计的灵便性相结合,实现并行算法与硬件结构的优化配置,不仅可以提高处理速度,并且具有灵便性高。开发费用低、开发周期短、升级容易的特点。针对某ofdm系统中fft运算的实际需要,提出了基于fpga的设计来实现fft算法,并以16位长数据,64点fft为例,在软件上通过综合和。2 fft原理
3、及算法结构fft是离散傅立叶变换(dft)的迅速算法。对于n点离散的有限长时问序列x(n),其傅里叶变换为:完成n点的dft需要n2次复数乘法和n(n-1)次复数加法。点数大时,计算量也大,所以难以实现信号的实时处理。fft的基本思想是利用旋转因子wn的周期性、对称性、特别性以及周期n的可互换性,将长度为n点的序列dft运算逐次分为较短序列的dft运算,合并相同项,大大削减了计算量。fft算法分为两大类:一类是针对n=2的整数次幂的算法,如基2算法、基4算法、实因子算法和分裂算法等:另一类是n2的整数次幂算法,以winograd为代表的一类算法。硬件实现时,不仅要考虑算法运算量的大小,而且要考
4、虑算法的复杂性和模块化。控制容易、实现规整的算法在硬件系统中要优于仅降低运算量的算法。现有fft算法的fpga设计计划基本上都是针对于第一类算法,而其次类算法尽管有其重要的理论价值,但硬件不易实现。因为该设计点数不是太多,综合考虑fft处理器的面积和成本。所以采纳按时光抽取的基2迅速傅立叶算法(基2dit-fft)。对于长度为n=2m的序列x(n),其中m是整数,将x(n)按奇偶分成两组,即令:n=2r和n=2r+1,而r=0,1,n/2-1,于是:所以a(k)和b(k)可完整表示x(k)。依次类推,可向来向前追溯到2点的fft,这样囫囵n点的fft算法分解成log 2n级运算,每级有n2个基
5、2碟形运算。图1是n=8的dit-fft运算流图。3 fft处理器的结构设计fft实现的设计计划有挨次处理、级联处理、并行处理和阵列处理。挨次处理每次运算仅用一个蝶形单元,处理方式容易,运算速度较慢。级联处理、并行处理和阵列处理的速度较快,但占用资源较多。考虑到该设计运算点数较少,因此采纳改进的挨次处理计划,在原有挨次处理的基础上对fft处理过程中数据传输举行控制。使得该结构在继承原有挨次处理电路容易、占用资源较少优点同时又兼有级联处理运算速度较快的优点。采纳自顶向下的办法对处理器模块化,其结构框图2所示。4 模块设计与综合仿真囫囵fft处理器是由存储器、蝶形运算单元、旋转因子单元、控制单元和
6、数据控制单元组成,各个单元通过控制单元产生的控制和使能信号举行工作。41 蝶形运算单元蝶形运算单元是囫囵fft处理单元的重要部分,挺直影响囫囵fft单元性能。基2时光抽取的蝶形信号流程图3所示,p和q为数据序号,xm(p)和xm(q)是第m级蝶形运算的输入,xm+1(p)和xm+1(q)是该蝶形运算的输出,wrn为相应的旋转因子。由上式看出,一个基2蝶形运算要举行1次复乘、2次复加。为了提高运算速度采纳并行运算,采纳4个实数乘法器、3个实数加法器和3个实数减法器组成。设输入数据:x1=x1_r+jx1im,x2=2r+jx2im,旋转因子为wrn=c-jd,则输出y1=y1_r+jy1_im和
7、y2=y2_r+jy2im。实现蝶型运算单元4所示。数据格式挑选定点16位二进制补码。设计时必需考虑乘法器速度,将会挺直影响囫囵fft处理单元的运算速度,该设计的乘法器利用quartus开发软件中所提供的宏单元生成。乘法器的两输入均为16位,输出32位。由于乘法器中带有旋转因子项所以乘法运算后不应转变输入的幅值即乘法器的输出仍为16位,因此要对输出数据举行截取,截取其中16位作为加(减)法器的输入。42 存储单元在fft处理单元中存储器是必不行少的单元,蝶形运算数据的输入输出和中间结果的存储都要经过存储器,因此它们的频繁读写操作对囫囵fft处理速度影响较大。图2中存储器a和存储器b由ram和状
8、态机组成,各自分离具有数据、地址总线和触发时钟。存储器a接收外部输入数据,存储器b是中间结果单元,除第一级蝶形运算外每级数据的输入输出均经过该存储器。在两块存储器和蝶形运算模块之间加入两个数据控制器协作工作,可以在写入上一组中间结果的同时读取下一组蝶形运算数据,从而提高fft的处理速度。43 旋转因子单元旋转因子单元是用于存储fft运算所需的旋转因子wrn=exp(-j2rn)。在matlab中旋转因子分为实部和虚部产生,因为它们是小于1的小数,故在设计中需将其定点化。其过程是将旋转因子扩大214倍。取整数部分转化为16位定点数,以hex文件格式保存,利用quartus软件的megawizar
9、d工具设计。rom,并将hex文件同化在其中。按照旋转因子的对称性和周期性,在利用rom存储旋转因子时,可以只存储旋转因子表的一部分,通过地址的转变查询出每级蝶形运算所需的旋转因子。44 控制单元控制单元用于协调驱动各模块,在fft运算中具有关键作用。存储器a、旋转因子单元及数据控制器的读信号,存储器b的读写信号都是由控制单元产生。控制单元通过一个有限状态机(fsm)实现,用法两个内部计数器控制状态机的翻转。控制单元具有单独的输入时钟,可产生相应的控制信号。45 综合仿真选用公司的quartus软件作为开发平台,以stratix系列中的ep1s25型fpga为核心器件,采纳白顶向下的设计思路和
10、语言,实现对各个模块单元的设计、综合和仿真。为了简化设计,只在数据输入时钟下输入了一组64个复数,其余输入设为0,并且实部和虚部都限定在±l,±2,±3,±4,e5之内。为防止溢出先将输入数据乘以一定比例因子2-9,再乘以2 15转化为十六进制数。输出的结果5所示。需要注重的是:仿真结果乘以2 -6后才是实际结果。将仿真结果与matlab计算的结果相比较,数据基本全都,解释了设计正确,其误差主要来源于数据的截取和旋转因子的近似。5 结束语fft算法是数字信号处理中一种重要运算,广泛应用于雷达、观测、跟踪、高速图像处理、保密无线通信和数字通信等领域。这里研究了一种基于fpga的64点fft处理器的设计计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游酒店行业助理职位描述
- 胃肠内科护士工作总结
- 酒店管理工作中的团队建设
- 摄影行业拍摄技术培训总结
- 零售行业行政后勤工作总结
- 幼儿园工作总结开心快乐勇敢探索
- 航空港口行业技术工作总结
- 绿化工程行业销售工作总结
- 汽车维修电话接待工作总结
- 七月毕业五月申请雨露计划
- 系统集成类项目售后服务方案
- 小学班主任班级管理策略-高年级篇
- 西北工业大学非事业编制人员
- 托福口语课程托福考试介绍task
- 《质量和密度》复习课课件
- GM∕T 0018-2012 密码设备应用接口规范
- 《光纤通信》习题解答
- 天津公司股权转让协议
- 钢筋负温度焊接工艺要求
- 开发建设项目水土保持方案编制技术问题-广东省水土保持网
- 薄膜衰减片的仿真设计
评论
0/150
提交评论