8点流水线型fft的verilog_hdl实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8 点流水线型FFT 的Verilog HDL 实现 梁志明 华南理工大学 calaok@ (一)算法介绍 采用图中的结构,x0(0)~x0(7)为输入数据,位宽为 16 位;输出数据的位宽为 32 位,倒 序输出。 图3 8 点FFT 算法图 (二)系统设计 图 4 系统总框图 1、系统总框图如图 4 所示,总共包括一下几个模块: 1. 。 对应三阶运算,共采用三个运算子模块: 第一阶运算模块:对应蝶形算子只有 W0 (W0=1), 第二阶运算模块:对应蝶形算子有 W0 、W2(W2=-j), 第三阶运算模块:对应蝶形算子有 W0 、W1 、W2 、W3。 2. 针对各阶运算, : 第一阶控制模块; 第二阶控制模块; 第三阶控制模块 。 2、各个运算模块分析。 1.第一阶运算模块: 控制模块的作用是 控制每个阶段的操 作 模块功能:完成 FFT 第一阶蝶形运算。 模块设计: 此时蝶形算子只有 W0,故蝶形运算结果为 C=A+B,D=A-B。因此,只需要对输入 数据做加减法即可。 考虑资源复用,这里定义一个 16 位的 加法器和减法器, 。 2.第二阶运算模块 模块功能:完成 FFT 第二阶蝶形运算。 模块设计: 第二阶运算有蝶形算子 W0 、W2。对于 W2 蝶形运算结果为 C=A+jB,D=A-jB,因 此, 对于 W0 算子,这里定义了一个 17 位有符号数加法器和减法器处理。 对于 W2 算子,对于运算结果的实部, 可;针对虚部,对于结 果 C,只需将 B 扩展成 18 位,对于结果 D 只用取 B 的补码,计算过程流程如下图。 相当于多路开关 图 6 第二阶运算模块 3.第三阶运算模块 这个部分是因为有 负数的出现 模块功能:完成 FFT 第三阶蝶形运算。 模块设计: 第三阶运算模块:对应蝶形算子有 W0 、W1 、W2 、W3。采用设计要求中提示的通用 蝶形运算方法: Rc=Ra+Rb* +(Ib-Rb)sin Ic=Ia+Ib* +(Ib-Rb)sin 这个是蝶形运算的 通用公式 Rd=Ra-[Rb*cosaddsin+(Ib-Rb)sin] Id=Ia-[Ib*cossubsin+(Ib-Rb)sin] 其中, cosadd sin = cos(2πp / N) + sin(2πp / N) cossubsin = cos(2πp / N) ?sin(2πp / N) sin = sin(2πp / N) ;这里,N=8。 根据上述公式,在进行一次蝶形运算时,只需首先确定 cosaddsin,cossubsin,sin,然 后计算出(Ib-Rb)sin,Rb*cosaddsin,Ib*cossubsin,最后将结果相加减即可。 (三)仿真结果分析 1、数据输入 图 7 数据输入 (1)输入数据是两组连续 8 个的串行数据: A=[1 2 3 4 4 3 2 1]; B=[-5 -5 5 5 -5 -5 5 5]; 数据在系统时钟的上升沿被采集。 2、最后蝶形算子运算波形 这里P的取值有0, 1,2,3 图 8 最后蝶形算子运算波形 (1)蝶形算子运算公式为: R =R +R ???cos(2πp/N)+sin(2πp/N)??? +(I -R )sin(2πp/N) c a b b b I =I +I ???cos(2πp/N)-sin(2πp/N)??? (I )sin(2πp/N) c a b + b-R b R =R {R ???cos(2πp/N)+sin(2πp/N)??? +(I -R )sin(2πp/N)} d - b b b a I =I {I ???cos(2πp/N)-sin(2πp/N)??? (I )sin(2πp/N)} d - b + b-R a b 输入信号对应:Imul_Ra-Ra Imul_Ia-Ia Imul_Rb-Rb Imul_Ib-Ib 输入a和b,输出是c 和d Imulc_Rout-Rc Imulc_Iout-Ic Imuld_Rout-Rd Imuld_Iout-Id 波形上的输入信号为实际大小的有符号数,由于在 3、输出信号波形 图 9 输出信号波形 输出结果最后经过了排序, 。输 出数据为经过位数扩展后的数据, (1)当输入数据为 A=[1 2 3 4 4 3 2 1]时,MATLAB 运算的数据为: 20.0000 -5.8284 - 2.4142i 0 -0.1716 - 0.4142i 0 -0.1716 + 0.4142i 0 -5.8284 + 2.4142i 硬件运算的结果为: 10240 -2984-1236i 0 -88-212i 0 -88+212i 0 -2984+1236i (2)当输入数据为 B=[-5 -5 5 5 -5 -5 5

文档评论(0)

LF20190802 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档