本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。
伪随机码
伪随机序列的概念
伪随机序列应当具有类似随机序列的性质。在工程上常用二元 {0,1} 序列来产生伪随机(噪声)码, 它具有以下几个特点:
- 在随机序列的每一个周期内 0 和 1 出现的次数近似相等。
- 每一周期内, 长度为 $\boldsymbol{n}$ 的游程取值(相同码元的码元串)出现的次数比长度为 n+1 的游程次数多一倍。
- 随机序列的自相关类似于白噪声自相关函数的性质。
对伪随机码定义可写为
(1)凡自相关函数具有
$$ \rho_{x}(j)=\{\begin{array}{l} \sum_{i=1}^{n} \frac{x_{i}^{2}}{p}=1, \quad j=0 \\ \sum_{i=1}^{n} \frac{x_{i} x_{i+j}}{p}=-\frac{1}{p}, j \neq 0 \end{array}. $$
形式的码, 称为伪随机码, 又称为狭义伪随机码。
(2) 凡自相关函数具有
$$ \rho_{x}(j)=\{\begin{array}{ll} \sum_{i=1}^{n} x_{i}^{2} / p=1 & j=0 \\ \sum_{i=1}^{n} x_{i} x_{i+j} / p=a<1 & j \neq 0 \end{array}. $$
形式的码, 称为广义伪随机码。狭义伪随机码是广义伪随机码的特例。
伪随机序列的产生
可以用移位奇存器作为伪随机码产生器, 图1是一个4级移位寄存 器, 用它就可产生伪随机序列。图1中的反馈逻辑为
$$ a_{n}=a_{n-3} \oplus a_{n-4} $$
当移位寄存器的初始状态是 $a_{n-4}=1$, $a_{n-3}=0$, $a_{n-2}=0$, $a_{n-1}=0$ , 经过一 个时钟节拍后, 各级状态自左向右移到下一级, 末级输出一位数, 与此同时模二加法器输出加到移位寄存器第一级, 从而形成移位 寄存器的新状态, 下一个时钟节拍到来又继续上述过程, 末级输出序列就是伪随机序列。在这种条件下, 产生的伪随机序列是
这是一个周期长度p=15的伪随机序列。
当上图的初始状态是 0 状态时, 即 $a_{n-4}=a_{n-3}=a_{n-2}=a_{n-1}=0$ 移存器的输 出是一个0序列。
4 级移存器共有 16 个状态, 除去一个 0 状态外, 还有 15 个状态。 对于图1来说, 只要随机序列的周期达到最大值, 这时无论如何 改变移存器的初始状态, 其输出只改变序列的初相, 序列的排 序规律不会改变。
但如果改变图四级移存器的反馈逻辑, 其输出序列就会发生变化。
下图中的反馈逻辑是 $a_{n}=a_{n-2} \oplus a_{n-4}$ , 初始状态为 1111, 输出序列为111100111100111...
反馈逻辑是 $a_{n}=a_{n-2} \oplus a_{n-4}$ , 时, 给定不同的初始状态1111、 0001 、 1011 , 可以得到三个完全不同的输出序列 111100111100.., 000101000101..,101101101101。它们的周期分别是6、6和3。
由此, 我们可以得出以下几点结论:
(1)线性移位寄存器的输出序列是一个周期序列。
(2)当初始状态是0状态时, 线性移位寄存器的输出是一个0序列。
(3)级数相同的线性移位寄存器的输出序列与寄存器的反馈逻辑有关。
(4)序列周期 $p^{<}<\mathbf{2}^{n}-1$ (n级线性移位寄存器) 的同一个线性移存器的输 出还与起始状态有关。
(5) 序列周期 $p^{n}=2^{n}-1$ 的线性移位寄存器, 改变移位寄存起初始状态 只改变序列的起始相位, 而周期序列排序规律不变。
参考文献:
- Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
- Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
- 周炯槃. 通信原理(第3版)[M]. 北京:北京邮电大学出版社, 2008.
- 樊昌信, 曹丽娜. 通信原理(第7版) [M]. 北京:国防工业出版社, 2012.