FPGA在数字信号处理系统方面的应用.ppt_第1页
FPGA在数字信号处理系统方面的应用.ppt_第2页
FPGA在数字信号处理系统方面的应用.ppt_第3页
FPGA在数字信号处理系统方面的应用.ppt_第4页
FPGA在数字信号处理系统方面的应用.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA在数字信号处理系统方面的应用,1、课题简介 2、课题总体设计思想 3、课题各模块的实现,课题简介,本课题旨在研究用FPGA实现FFT算法,重点设计实现了FFT算法中的蝶形处理单元,并采用高效乘法器算法设计实现了蝶形处理单元中的旋转因子乘法器。 课题的实现方案采用基2 FFT算法以及单元结构的设计思路,用VHDL语言完成了系统设计描述,中间数据缓存单元采用双口RAM,减少了访问RAM的时钟消耗。在Quartus 这一软件环境下,经过编译、综合和下载,给出了仿真测试的结果。理论和仿真分析论证了该方案的有效性,从而证明了用FPGA实现高速数字信号处理的可行性。,课题总体设计思想,FFT处理器的实现框图:,课题总体设计思想,FFT的硬件实现: 对于按时间抽取的FFT,基本的蝶形运算如下: 其中A、B表示输入的复数数据,C、D表示运算结果, 为蝶形系数。可知,基-2 FFT蝶形处理器的实现需要一个复数加法器、一个复数减法器和一个旋转因子乘法器。,课题总体设计思想,蝶形运算单元的实现框图: 这里蝶形运算单元采用Cyclone系列器件进行仿真。其中,操作数A、B、C、D存放在RAM中,旋转因子存放在ROM中。,课题各模块的实现,1、旋转因子乘法器的实现 旋转因子的复数乘法通常由4次实数乘法和6次实数加减法运算实现,但经过运算的简化,可以只用3次实数乘法和3次实数加减法运算实现复数乘法器。 高效复数乘法器的具体算法如下所述: 设复数旋转因子乘法R+jI=(X+jY)(C+jS),因为C和S可以预先计算的,并可以储存在一个表中。所以我们可以储存下面的三个系数: C、C+S、C-S,课题各模块的实现,有了这3个预先计算的因子,我们可以首先计算E=X-Y和Z=C*E=C*(X-Y),然后用 R=(C-S)*Y+Z I=(C+S)*X-Z 计算最后的乘积。 这种算法使用了3次乘法、1次加法和2次减法,其代价是多使用了一个表。由以上高效复数乘法器原理,可以设计实现旋转因子复数乘法器。,课题各模块的实现,对应的硬件的输入输出框图如下图所示: 其中,旋转因子乘法器是由3个lpm_mult组件实例和3个lpm_add_sub模块来实现的。,课题各模块的实现,假如有8位二进制输入数据,系数就应该有8位,再加上符号,并且乘以 时,量化成8位,旋转因子就变成了 。我们给定输入值为50+45j,从理论上所计算的结果应为: (50+45j)* =(50+45j)(121+j39)256 =(4295+j7395)256=16+j28 由于使用高效乘法器算法计算复数乘法,3个因子分别为: C=12l,C+S=160,C-S=82,课题各模块的实现,输入值为50+45j,旋转因子 时的仿真波形如下图所示:,课题各模块的实现,其中clk 是时钟信号,x_in 和y_in分别是输入数据的实部与虚部,这里输入为50+45j,所以所加输入激励为x_in=50、y_in=45。c_in、cas_in、css_in 就是所计算得出的因子C、C+S、C-S,这里C=121、C+S=160、C-S=82,仿真得到的输出分别为r_out=16、i_out=28。 这和前面理论上算得的输出结果是完全相符的,从而证明了基于高效乘法器所设计的旋转因子复数乘法器的正确性。,课题各模块的实现,2、蝶形运算单元的实现 对应硬件实现的输入输出框图: 其中该运算单元由上面所设计的旋转因子乘法器和Quartus II中的lpm_add_sub模块设计实现。,课题各模块的实现,现在计算一下输入分别为A=20+30j、B=50+45j,旋转因子C+jS=256* =121+j39时蝶形运算理论上得到的计算结果: A+B =(20+30j)+(50+45j)(12l+j39)256 =(20+30j)+(4295+7395j)256 =(20+30j)+(16+28j)=36+58j A-B =(20+30j)-(50+45j)(121+j39)256 =(20+30j)-(4295+7395j)256 =(20+30j)-(16+28j)=4+2j,课题各模块的实现,对输入值为A=20+30j、B=50+45j、旋转因子C+jS=256* =121+j39时进行仿真,可得到仿真波形如下:,课题各模块的实现,其中clk 为时钟信号,Are_in 和Aim_in是输入A=20+30j的实部与虚部,即输入激励Are_in=20、Aim_in=30;Bre_in 和Bim_in是输入B=50+45j的实部与虚部,即输入激励Bre_in=50、Bim_in=45;c_in、cas_in、css_in是计算得出的C、C+S、C-S,这里C=121、C+S=160、C-S=82;在Quartus II中仿真得到的输出分别为Dre_out =36、Dim_out=58、 Ere_out=4、 Eim_out=2。 这和前面理论上计算得到的结果是完全相符的,从而说明基于VHDL语言设计的蝶形处理单元的正确性。,课题各模块的实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论