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

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

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

 
 
 

日志

 
 

周问题回复:20180107  

2018-01-07 22:53:51|  分类: 周问题回复 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
lxe3272@126.com
尊敬的杜老师:
您好!
我最近一直在学习您的《数字调制解调技术的MATLAB与FPGA实现》Altera/Verilog版的,想要实现基于Gardner的内插位同步算法,实现OOK基带的位同步,想请教您一些问题。
您给出的p358代码里面,我修改了两条支路为一条,实现了最简单的ook基带位同步。发端发prbs,速率为37.5M,dac和adc为150Mbps,四倍采样,然后做位同步,收端和发端不是同一个时钟,
有相差也有频差,下面两个图分别是matlab和modelsim的位同步仿真,他们的输入都是ADC实时采集下来的数据,在分析结果时,遇到了一些问题,
(1)第一个图分数间隔u不收敛,是不是说明我的收端时钟和发端时钟之间有频差,如果只有相差的话,u是不是最后会收敛于定值?
(2)在计算误码率时,matlab仿真基本上没有错,而verilog仿真在u跳变左右的地方或出现很多误码,如下图,两个仿真的输入是相同的,matlab的u跳变的地方只有一个点,而verilog会有一段时间的不确定值
,是不是这个导致了误码,这个是正常的吗?因为matlab仿真是理想的情况,而verilog是流水线结构,有时延的影响?
(3)gardner位同步算法可以纠正相差,那可以纠正频差吗?下图中我采集到的16383个码元,verilog仿真结果就错了100多个,误码率很大,这种情况下肯定是不行的,如果要避免这种情况,有什么好的办法吗?
周问题回复:20180107 - cameion - 构建数字通信技术理论与实践之间的桥梁
 
周问题回复:20180107 - cameion - 构建数字通信技术理论与实践之间的桥梁
 
感谢您百忙之中抽出时间帮我答疑解惑,希望早日收到的您的回复!

回复:
1)关于这个现象,请查看书中p356,图8-26,你的matlab仿真图与书中图是一样的。这个是正常的情况。我在书中没有讲明这是什么原因,因为读者如果理解了gardner算法原理后,就可以解释这个现象。具体来讲,当存在频差时,u值是锯齿形状,也就是说你的仿真结果是正确的。因为,u值是反映的是内插的估值点,存在频差时,相位差会呈线性增加,因此会出现仿真的样子。你再观察下U值跳变时插值的估值点是否正确就可以更好的理解了。
2)fpga出现这样大的抖动,好像有些过分,可能是有效字长的原因,或流水的原因。书中实例的代码已考虑了流水结构对算法的影响,也就是说能够和MATALB程序很好的对应。你可以再仔细调整一下时序。
3)最后的方法,可先直接仿真测试书中实例,理解各种现象,再修改成工程中的参数调试。
祝愉快!
  评论这张
 
阅读(9)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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