偽亂數二進位數列

偽亂數二進位數列(英语:pseudorandom binary sequence,简称:PRBS),是一種特別的二進位數列a_0,\ldots, a_{N-1},若二進位數列的位元數為N,其中為1的數字有m個,則其其自相关函数:
:C(v)=\sum_{j=0}^{N-1} a_ja_{j+v}

只有以下二個值:

:C(v)=
\begin{cases}
m, \mbox{ if } v\equiv 0\;\; (\mbox{mod}N)\\
\\
mc, \mbox{ otherwise }
\end{cases}

其中

:c=\frac{m-1}{N-1}

稱為偽亂數二進位數列的占空比,類似連續時間信號的占空比。

偽亂數二進位數列稱為偽亂數,雖然它是決定性的,不過其a_j的數值和前後元素的數值無關,看似隨機的,因此稱為偽亂數。

偽亂數二進位數列可以延伸到無限長,方式是在N個元素都出現過之後,再從a_0,\ldots, a_{N-1}再出現一次……,這點和真正的由放射性衰減或白雜訊產生的數列不同,後者在本質上就是無限長的。偽亂數二進位數列比最大長度數列更普遍,後者是特別的N位元偽亂數二進位數列,是由線性移位暫存器所產生的。最大長度數列的占空比恆為50%,長度為k位元的暫存器,其數列長度為N = 2^k-1。偽亂數二進位數列可以用在電信、密碼學及模擬等應用。

實際的實現
後,做為新的位元]]

偽亂數二進位數列可以用线性反馈移位寄存器產生。

一些常見的的數列產生多項式為

PRBS7 = x^{7} + x^{6} + 1

PRBS15 = x^{15} + x^{14} + 1

PRBS23 = x^{23} + x^{18} + 1

PRBS31 = x^{31} + x^{28} + 1

以下是一個用 PRBS-7 產生偽亂數二進位數列的C語言程式

#include
#include
#include

int main(int argc, char* argv[]) {
uint8_t start = 0x02;
uint8_t a = start;
int i;
for(i = 1;; i++) {
int newbit = (((a >> 6) ^ (a >> 5)) & 1);
a = ((a

此例中,PRBS-7的週期為127位元。

相關條目
*
*
*

  • 比特误码率

*

參考資料
外部連結

评论 (0)

  • 还没有评论,来抢沙发吧。