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

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

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

 
 
 

日志

 
 

PN码捕获算法问题  

2016-03-10 20:12:12|  分类: 锁相环技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

wainchow@163.com

《<数字调制解调技术的MATLAB与FPGA实现>Altera/Verilog版》第9章学习疑惑

P404 integrator.v文件的程序清单

代码原语句:

1、output signed [22:0]dout;  //相关积分器输出

2、if (addr <8'd247)

      if (pn) sum <= sum + {{8{din[14]}},din};

      else  sum <= sum - {{8{din[14]}},din};

理解由15位扩充到23位的作用:二进制数做循环累加,为了确保运算结果不溢出,需要扩充数据位存放运算结果。

疑惑:为什么需要扩充8位,而不是其它数值,这个23选择的原则是什么?

 

回复:一个PN码序列长31,每个码片采样8次,共248个点约等于2^8=256。因此扩充8位。相关问题,参见书中关于FPGA实现数字信号处理基础一章。

 

P405 PN_adjust.v文件的程序清单

代码原语句:

//中间支路平方和小于门限值,地址向前滑动4个采样点

  if (mid < gate)

     begin

        addrload <= 8'd11;

        lockedt <= 1'b0;

     end

//否则环路转入跟踪状态

疑问:上面代码中判断环路是否转入跟踪状态的条件与P395原理图9-14不同,二者中您是按什么做的选择,能否简单说说。

 

回复:9.5.2节有说明。通过仿真,可以说明采用中间支路判断跟踪状态更为方便准确。

 

P407 PN_adjust.v文件的程序清单

代码原语句:

if (addr_pn==8'd1)

   begin

      loadt <= 1'b1;

      //中间支路平方和小于门限值,地址向前滑动4个采样点

      if (mid < gate)

       begin

           addrload <= 8'd11;

           lockedt <= 1'b0;

       end

     //否则环路转入跟踪状态

      else

       if (pre < aft)

          begin

              addrload <= 8'd6;

                  lockedt <= 1'b1;

          end

       else

          if (pre > aft)             

             begin

                    addrload <= 8'd8;

                    lockedt <= 1'b1;

             end

          else

             begin

                    addrload <= 8'd7;

                    lockedt <= 1'b1;

             end

 P405 PN_adjust.v文件的程序清单

代码原语句:

//中间支路平方和小于门限值,地址向前滑动4个采样点

  if (mid < gate)

     begin

        addrload <= 8'd11;

        lockedt <= 1'b0;

     end

//否则环路转入跟踪状态

 

疑问:上面代码中环路是否转入跟踪状态的判断条件与P395图9-14不同  end

else

    loadt <= 1'b0;

上面这片段代码的整体作用理解,但具体到每个语句的参数不是很清楚。疑问:

1、为什么判断条件是 if (addr_pn==8'd1)?

2、if (mid < gate)

        begin

            addrload <= 8'd11;

            lockedt <= 1'b0;

         end

   为什么addrload <= 8'd11;语句的参数是8'd11,不是需要滑动4个采样点吗?

3、跟上一问题相同,addrload <= 8'd6;

                   addrload <= 8'd8;

                   addrload <= 8'd7;

   不明白上述三条语句右侧的参数值是怎样确定的。

 

回复: 上面这3个问题,如果用语言描述,很繁琐,要了解每个运算的时延。你只需通过仿真查看地址与PN码片的时序关系就可以了。设计时,也是通过仿真来设定具体的判决及地址调整时刻。

 

 

P408

图9-20 伪码同步电路滑动状态仿真波形图;

图9-21 伪码同步电路跟踪状态仿真波形图;

老师,我想通过仿真对捕获、跟踪过程有个直观的了解,能把上面两个仿真图的verilog HDL源码给我作参考吗?

 

回复:你可以运行光盘中的FPGA程序来查看仿真图。

 

返回作品读者交流区
        返回到我的作品目录

  评论这张
 
阅读(78)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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