欢迎来到天天文库
浏览记录
ID:36399913
大小:1.95 MB
页数:19页
时间:2019-05-09
《FPGA在数字信号处理系统方面的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FPGA在数字信号处理系统方面的应用1、课题简介2、课题总体设计思想3、课题各模块的实现课题简介本课题旨在研究用FPGA实现FFT算法,重点设计实现了FFT算法中的蝶形处理单元,并采用高效乘法器算法设计实现了蝶形处理单元中的旋转因子乘法器。课题的实现方案采用基—2FFT算法以及单元结构的设计思路,用VHDL语言完成了系统设计描述,中间数据缓存单元采用双口RAM,减少了访问RAM的时钟消耗。在QuartusⅡ这一软件环境下,经过编译、综合和下载,给出了仿真测试的结果。理论和仿真分析论证了该方案的有效性,从而证明了用
2、FPGA实现高速数字信号处理的可行性。课题总体设计思想FFT处理器的实现框图:课题总体设计思想FFT的硬件实现:对于按时间抽取的FFT,基本的蝶形运算如下:其中A、B表示输入的复数数据,C、D表示运算结果,为蝶形系数。可知,基-2FFT蝶形处理器的实现需要一个复数加法器、一个复数减法器和一个旋转因子乘法器。课题总体设计思想蝶形运算单元的实现框图:这里蝶形运算单元采用Cyclone系列器件进行仿真。其中,操作数A、B、C、D存放在RAM中,旋转因子存放在ROM中。课题各模块的实现1、旋转因子乘法器的实现旋转因子的复数乘法通
3、常由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+ZI=(C+S)*X-Z计算最后的乘积。这种算法使用了3次乘法、1次加法和2次减法,其代价是多使
4、用了一个表。由以上高效复数乘法器原理,可以设计实现旋转因子复数乘法器。课题各模块的实现对应的硬件的输入输出框图如下图所示:其中,旋转因子乘法器是由3个lpm_mult组件实例和3个lpm_add_sub模块来实现的。课题各模块的实现假如有8位二进制输入数据,系数就应该有8位,再加上符号,并且乘以时,量化成8位,旋转因子就变成了。我们给定输入值为50+45j,从理论上所计算的结果应为:(50+45j)*=(50+45j)(121+j39)/256=(4295+j7395)/256=16+j28由于使用高效乘法器算法计算复数
5、乘法,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。这和前面理论上算得的输出结果是完全相符的,从而证明了基于高
6、效乘法器所设计的旋转因子复数乘法器的正确性。课题各模块的实现2、蝶形运算单元的实现对应硬件实现的输入输出框图:其中该运算单元由上面所设计的旋转因子乘法器和QuartusII中的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+5
7、8jA-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的实部与虚部,即输入激
8、励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;在QuartusII中仿真得到的输出分别为Dre_out=36、Dim_out=58、Ere_out=4、Eim_out=2。这和前面理论上计算得到的结果是完全相
此文档下载收益归作者所有