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

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

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

 
 
 

日志

 
 

《数字滤波器》更正-2-248页LMS算法的MATLAB仿真  

2012-11-24 23:00:47|  分类: 数字滤波技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

《数字滤波器的MATLAB与FPGA》的一名读者发现书中的一个问题,现将作者与读者之间的邮件记录发表如下,对问题的过程进行说明。
 
 12年11月15日,周四 问:

《数字滤波器的MATLAB与FPGA实现》这本书中247页的LMS算法仿真程序中里的:
for type=1:4
这句话里的type在整个程序里起到神马作用?对应于滤波器的哪个参数?
248页程序中的figure(2)部分,type==1和type2==2有神马本质上的区别么?
其实这两个问题是一个问题,请多指教,谢谢

答:

你好!首先感谢你购买了我写的书!
    那所谓的 神马type的意思是这样滴:
   整个程序要仿真四种信噪比snr条件下的LMS算法,type仅作为循环变量而已
          if type==1

           SNR=snr(1);d=s;

        elseif type==2

           SNR=snr(1); d=s;

        elseif type==3

           SNR=snr(2); d=sqrt(10^(-SNR/10))*noise;

        else

           SNR=snr(2); d=sqrt(10^(-SNR/10))*noise;

       end
     由于程序前面定义了snr=[3 -3]; (由于type只有4次循环,因此实际上只用到了SNR序列中的前面四个值。程序写得不严谨哈,这下自己也发现了,谢,有机会再版的话,一定修改下。)因此第一次循环,SNR=snr(1)=3;以此类推,每次循环时SNR的值不同。因此,每次循环其实是仿真不同信噪比条件下的LMS算法。
         所以,type只是一个循环变量而已,通过对type的判断,来产生不同信噪比的lms算法。本身不对应LMS算法中的参数。

问:

您好:
       您说:由于type只有4次循环,因此实际上只用到了SNR序列中的前面四个值。但是程序中,type==1和type==2中执行的都是 SNR=snr(1);d=s; type==1和type==2的时候程序有何不同么?
我认为应该在前面定义的时候如果是四次循环的话,可以设置为snr=[3 2 -2 -3]这个才是1*4的矩阵,可以有四个type,也就是四个信噪比。
     我在用verilog实现您的数字滤波器,因为verilog对于学生来说,更容易掌握,希望老师能出一些verilog的书,或者加到光盘里,这样我们在亚马逊当当搜这样的关键字如:verilog 数字滤波器的时候也能搜到。
     老师辛苦啦!

答:
你好!
     感谢你的问题,因为从你的信件中,发现我的书中的这段代码其实出现了一些小问题。说明我校对和编程时不够细致。其中的代码应该为
               if type==1

           SNR=snr(1);d=s;

        elseif type==2

           SNR=snr(2); d=s;

        elseif type==3

           SNR=snr(3); d=sqrt(10^(-SNR/10))*noise;

        else

           SNR=snr(4); d=sqrt(10^(-SNR/10))*noise;


        end
       snr=[3 2 -2 -3] 这样是可以的,也可以使程序更加严谨些。这个程序我主要关注了功能实现,在程序结构上确是比较粗糙的。
      由于我现在外出差,手上没有带源程序。不知光盘中的程序是否也出现了类似的问题。
      看来在校对时,确是还不够细致呀,汗!
      你能发现这个问题,看来你确实在用心看这本书,希望这本书能够对你有所帮助。
      VHDL 与Verilog HDL 两种语言有很多地方是相同的,语法都比较简单,主要在于编写程序时的思路。通常来讲,掌握了其中一种语言,才看另一种语言是比较容易的。如你所述的状态,自己用Verilog HDL将程序再重新编写一次,这是再好不过的学习方法了。由于我更熟悉VHDL,所以还是习惯用VHDL来编程写作。
    再次说明下,你的学习方法和态度都非常好,随着学习的深入,可能还会发现书中的一些问题,请随时发邮件给我。再次向你说声谢谢!发现书中的问题越多,则学习的收获就越大,则再版时这本书也能更加完善!
祝愉快!
                                                          杜勇
  评论这张
 
阅读(61)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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