注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

构建数字通信技术理论与实践之间的桥梁

孤云出岫去留一无所系 朗镜悬空静躁两不相干 菜根谭.明.洪应明

 
 
 

日志

 
 

周问题回复:20170814~20170820  

2017-08-20 16:27:06|  分类: 周问题回复 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
jianjunli9979@163.com
杜老师:
       您好。数字滤波器matlab与FPGA实现一书141页,分布式结构FPGA实现FirDistributed.vhd。
       问题一:程序中用的是ROM,而书本上说是用matlab仿真计算出存储表中的数据,并以RAM核中存储数据格式写入COE文件中,这里应该是ROM吧?
       问题二:COE文件中有256个十进制数据,这个与P144页中参数文件主要内容如下:CEST default_data_radix=16.存在矛盾。LUT查找表里的数据为何是256个,这个地方不明白?
       matlab代码E4-9_RAM. M:  N=16;    B=12;   L=13;  LUT=zeros(1,2^(N/2));%这里是不是由于对称系数,所以滤波器长度变为8,LUT查找表数据为2^8个?滤波器的系数不是16个吗,怎么数据为256,与滤波器系数宽度12位无关吗?
       问题三:长度为16的对称系数滤波器,合并后有8个12bit数据相加,为保证数据不溢出,需15bit数据存储,为何需要15位?我看了Distributde Memory Generator里面output options,如书上选择Registered,IP symbol输出端口qspo[14:0],望杜老师解析一下。
       问题四:书上142页, t2Addr<=Addr;  CountSum<=Addr;第一句t2Addr在程序中后面就没出现过,不知道有啥用处?还是第二句代码应该是CountSum<=t2Addr?
       由于自己对分布式算法理解不彻底,问题有点多,敬请杜老师详细解答,您辛苦了。

回复:
     1)您的理解是对的。我在改版中会修改过来。
     2) CEST default_data_radix=16应该修改为CEST default_data_radix=10;滤波器的系数是16个,对称的,合并后只有8个系数有效。根据分布式算法,因此LUT查找表数据为2^8个。滤波器系数的位宽与存储数据的有效位有关,实例中为15比特。这个要再仔细理解一下分布式算法原理即可。
     3)  长度为16的对称系数滤波器,合并后有8个12bit数据相加,为保证数据不溢出,需15bit数据存储,为何需要15位?这个与上一个问题是相关联的。长度为16,对称,合并后有效数据只有8个。8个12比特数据相加,最大增加8倍,当然要增加3比特(2^3=8)数据才能保证不溢出了。
      4)  t2Addr<=Addr。没有用处,应当删除。
      祝愉快!

  评论这张
 
阅读(18)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017