加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于trellis结构的解释

(2012-04-20 20:47:06)
分类: 学习
   上一篇,详细的介绍了ploy2trellis函数的使用方法,各个参数的取值和意义。但对于结果trellis结构却更加的让人疑惑,这个结构到底是什么意思。
   其实这只是将多项式或者说是这个图表表示的信息用一种matlab能够理解的一种数据结构表示。这种做的目的是使变换的过程更加的快捷,节省时间复杂度(这种方法近似于查表发,下面将详细的介绍)。典型的用空间换取时间的方式。
   简单的说就是换了一种数据结构。
举例来说
根据上图,我们得到了ConstraintLength,CodeGeneratoe。
运行Ploy2trellis函数我们得到trellis结构。

 

 trellis=poly2trellis([5,4],[23,35,0;0,5,13])


trellis = 


     numInputSymbols: 4

    numOutputSymbols: 8

           numStates: 128

          nextStates: [128x4 double]

             outputs: [128x4 double]


numInputSymbols: 4     输入符号数是4。

是一个标量,表示两路输入共有4(2^k   k为输入的路数)种状态分别为00,01,10,11


numOutputSymbols: 8   输出符号数是8.

同样是一个标量,表示输出共有8(2^n   n为输出的路数)种状态分别为000,001,010,011,100,101,110,111


numStates: 128     状态数是128(2^7,7是寄存器的总个数) 状态是7为二进制数,不多说了。


下面是重点:


 nextStates: [128x4 double]   下一个状态

nextState是numStates-by-2k的矩阵。他表示所有当前状态和当前输入组合所产生的下一状态。相当于马尔科夫链的状态转移表。

行表示各种不同的当前状态,依次表示从全0状态到全1状态。

列表示各种不同的输入,依次表示从全0到全1的输入。


outputs: [128x4 double]   输出

outputs也是numStates-by-2k的矩阵。他表示所有当前状态和当前输入组合所产生的输出(8进制表示)。

行和列的意义的nextState相同。


这样二者的结合的矩阵表示出了所有的状态和输入的组合,计算时只需知道这两个状态即可以快速的查这两个表得到下一个状态和输出。


 

trellis.nextStates(1:5,:) 
 ans =

     0    64     8    72
       0  64     8    72 
       1  65  9    73
       2    66    10    74
上面我们列出了nextStates的1-5行,
(1,1)个元素表示在全0状态时,输入全0时的下一个状态还是全0,即所有的寄存器的结果还都是0.
64表示所有寄存器的状态分别是1,000,000(十进制的64)。
其他依次类推可以得到。
就说这么多了详细的介绍用doc poly2trellis命令自己查看吧,全英文。其上全是个人理解,如有错误欢迎大家指正


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有