Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57555
  • 博文数量: 30
  • 博客积分: 1211
  • 博客等级: 中尉
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 14:14
文章分类

全部博文(30)

文章存档

2011年(1)

2010年(22)

2009年(7)

我的朋友

分类: LINUX

2010-03-27 22:21:44

GnuRadio学习笔记

1、 trellis

1.1 fsm

FSM是Finite State Machine的缩写,即有限状态机,在trellis中用于描述卷积编码的状态图。
在GnuRadio中,为了加快编码的速度,将卷积码的状态图记录在fsm文件中,在GnuRadio源码中已经有一些写好的fsm文件,
位于gr-trellis/src/examples/fsm_files。下面以awgn1o2_8.fsm文件为例,解释fsm文件是如何描述一个卷积编码器的状态图。

  1 2 8 4
  2
  3 0       4
  4 0       4
  5 1       5
  6 1       5
  7 2       6
  8 2       6
  9 3       7
 10 3       7
 11
 12
 13 0       3
 14 3       0
 15 1       2
 16 2       1
 17 3       0
 18 0       3
 19 2       1
 20 1       2
 21
 22
 23 1/2 8-state code (Proakis pg. 493)
 24 GM1o2_8=[ 1+D+D^3   1+D+D^2+D^3] =[13 , 15] (decimal)

该文件可以分为四部分:

  • 第1行。第一个数描述输入比特,这里为2,也就是说输入为1比特,共两个状态;第二个数描述寄存器,这里为8,即共有3个寄存器,共8个状态;第三个数描述输出比特,这里为4,即输出2比特,共4个状态。即该fsm文件描述的是一个1进2出,约束长度为4的卷积编码器。

  • 第3到10行。这8行用于描述3个寄存器的8个状态之间如何转换。从上到下,每一行按照递增顺序表示一个状态,每一行的两列分别表示在当前状态下输入0和1之后,寄存器的下一个状态。以第6行为例,表示的是第4个状态,即011(000是第1个状态),当输入比特为0,寄存器的下一个状态将变为001,十进制为1,即第2个状态,当输入比特为1,寄存器的下一个状态将变为101,十进制为5,即第6个状态。

  • 第13到20行。这8行用于描述生成多项式,即寄存器处于8个不同状态时,输出的比特,其中每一列分别表示输入比特为0和为1的情况。这个文件描述的卷积编码器生成多项式为[ 1+D+D^3   1+D+D^2+D^3] =[13 , 15]。以第16行为例,寄存器处于第4个状态,即011,当输入比特为0,上半部分输出比特为1,下半部分输出比特为0,所以输出比特为10,十进制为2,当输入比特为1,上半部分输出比特为0,下半部分输出比特为1,所以输出比特为01,十进制为1。

  • 23和24行。这两行可以看作是注释,用于说明该fsm文件的作用,这里写出了生成多项式,还有参考的书籍(Digital Communications by John Proakis)。

阅读(1879) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~