数字信号处理FPGA实现.docxVIP

  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文档。上传文档
查看更多
数字信号处理的FPGA实现 学院: 班级: 小组成员: 第一题: 要求:用无符号DA分布式)算法实现3个系数{2,3,1}的FIR滤波器。 1、原理: 系数c[n]为已知常数, x[n]为变量 则 重新分布求和次序则有: 2、移位-加法器DA结构: 3、三阶FIR滤波器,设系数位宽为3,值为c[0]=2, c[1]=3, c[2]=1,则实现 f (c[n], xb[n]的LUT为: LUT查找表: 则结果应为: 4、代码清单: DAfilterFIR滤波器)、LUT查找表)、DAtesttestbench文件) 1)DAfilterFIR滤波器)代码: LIBRARY ieee。 USE ieee.std_logic_1164.ALL。 USE ieee.std_logic_arith.ALL。 PACKAGE da_package IS COMPONENT LUT ----元件例化 PORT (table_in : IN STD_LOGIC_VECTOR(2 DOWNTO 0。 table_out : OUT INTEGER RANGE 0 TO 6。 END COMPONENT。 END da_package。 LIBRARY work。 USE work.da_package.ALL。 -----使用包 LIBRARY ieee。 USE ieee.std_logic_1164.ALL。 USE ieee.std_logic_arith.ALL。 ENTITY DAfilter IS PORT (clk : IN STD_LOGIC。 x_in0, x_in1, x_in2 :IN STD_LOGIC_VECTOR(2 DOWNTO 0。 y : OUT INTEGER RANGE 0 TO 63。 END DAfilter。 ARCHITECTURE fpga OF DAfilter IS TYPE STATE_TYPE IS (s0, s1。 SIGNAL state : STATE_TYPE。 SIGNAL x0, x1, x2, table_in : STD_LOGIC_VECTOR(2 DOWNTO 0。 SIGNAL table_out : INTEGER RANGE 0 TO 7。 BEGIN table_in(0 = x0(0。 table_in(1 = x1(0。 table_in(2 = x2(0。 PROCESS VARIABLE p : INTEGER RANGE 0 TO 63。-- temp. register VARIABLE count : INTEGER RANGE 0 TO 3。 -- counts shifts BEGIN WAIT UNTIL clk = 1。 CASE state IS WHEN s0 = ---初始化状态 state = s1。 count := 0。 p := 0。 x0 = x_in0。 x1 = x_in1。 x2 = x_in2。 WHEN s1 = IF count = 3 THEN ---count=3结束滤波 y = p。 state = s0。 ELSE p := p / 2 + table_out * 4。----最终p=x(0*4/2/2+x(1*4/2+x(2*4。 x0(0 = x0(1。 ----向右移位 x0(1 = x0(2。 x1(0 = x1(1。 x1(1 = x1(2。 x2(0 = x2(1。 x2(1 = x2(2。 count := count + 1。 state = s1。 END IF。 END CASE。 END PROCESS。 LC_Table0: LUT PORT MAP(table_in = table_in, table_out = table_out。 END fpga。 2)LUT查找表)代码: LIBRARY ieee。 USE ieee.std_logic_1164.ALL。 USE ieee.std_logic_arith.ALL。 ENTITY LUT IS

文档评论(0)

139****4073 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档