分类: 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,也就是说输入为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)。