新浪博客

关于扰码器(scrambler)的一些想法

2015-02-09 15:54阅读:
关于扰码器,前人有很多好的文章值得借鉴,但是由于每个新手的认知水平和知识背景的不同,有时候在理解上会存在一些困难。写这篇文章旨在帮助后面学习的新手理解scrambler,希望对读者有所帮助吧。
在数字系统中,数据信息中如果出现较长的连‘1’或连‘0’就会影响接收端对信息的接受,很容易导致接受端数据的不准确,为了解决这种问题,一般采用线性移位寄存器即:M序列解决这个问题,M序列的主要实现方式是在数据的发送端采用M序列与要传输数据做摸二相加运算(在代码上体现为异或运算),使发送出去的数据减少出现连‘1’或连‘0’的概率,产生一个伪随机的序列,在数据的接收端采用相应的decrambler来实现解扰,回复原来加扰之前的数据信息。这样做的目的就是减少在数据传输的发送和输出端数据的误码情况。
scrambler的类型大致分为两类:一类是如图1所示的输出信号不经过寄存器,另一类如图2所示,输入信号经过寄存器,对寄存器的每一状态有影响。
关于扰码器(scrambler)的一些想法
图1所示
本文以图2所示,5个寄存器为例,具体说明一下scrambler和descrambler的过程
关于扰码器(scrambler)的一些想法
图2所示
上图所示的scrambler的电路图对应的代数多项式位:X^5+X^3+1,在工程上一般没有特殊说明的情况下各个寄存器的初值为全1(切记不得全为0),串行的1bit的扰码器的过程是比较简单的,如图示,控制数据的转移就可以了。
并行算法:需要实现多bit的数据并行扰码时,例如8比特的数据并行处理。一种方法是,借助矩阵的运算,计算每位数据当前状态与第8个时刻时对应的代数关系进行处理,这种方法它的优点是在处理过程中速度快,缺点是不容易理解,尤其对于新手来说,不容易看懂矩阵关系的表示和状态的转移关系,不能用于数据位宽不定的情况。网上很多论文里都有写到,在这里不详细介绍。个人觉得实现并行最为简单有效的方法是把并行的每一时刻的8bit数据看做一串数据,然后按照串行处理,在一个时刻完成,体现在代码上就是按照function的形式写,一个时钟周期调用8次函数来完成,这种方法的优点就是比较简单,缺点我暂时也不晓得。适合新手上手学习操作。
descrambler:
扰码器解扰的过程是扰码的反过程,图1所示的解扰电路与加扰电路完全一致,解扰思路也相同于加扰,图2 所示的结构解扰和加扰的过程稍微有点不同,不过变化不大,例如图2的解扰电路如图3所示。过程不再赘述。
关于扰码器(scrambler)的一些想法
图3所示
关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法
关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法 关于扰码器(scrambler)的一些想法











我的更多文章

下载客户端阅读体验更佳

APP专享