元のルート多項式とレジスタの初期値がわかっている場合に LFSR を見つける簡単な例

リニア フィードバック シフト レジスタ (LFSR) は、疑似乱数のシーケンスを生成するための単純な構造です。ここに、四項式原始根多項式p ( x ) = 1 + x + 0 x 2 = 11 0 2 p(x) = 1 + x + 0x^2 = 110_2 があります。p ( x )=1+バツ+0x _2=11 02初期値S 0 = 100 S_0 = 100S0=100 . LFSR アクション プロシージャを使用して、疑似ランダム シーケンスを生成します。

LFSR のアクション プロセスは次のとおりです。
ここに画像の説明を挿入

初期値をレジスタにロードします。
各クロック サイクルについて:
a. レジスタ内の現在の値と元のルート多項式の非ゼロ項との排他的論理和 (XOR)。
b. 結果を 1 ビット右にシフトし、排他的論理和 (XOR) 演算の結果を最上位ビットに配置します。
ここで、LFSR のアクション プロセスについて詳しく説明します。

ロード初期値:S0=100 S_0=100S0=100 .
クロック サイクル 1:
a. XOR 演算:1 ⊕ 0 = 1 1 \oplus 0 = 110=1、ターゲットはレジスターの左から右への最初と 2 番目のビットです
b. 右にシフトし、最上位ビットを更新します:S 1 = 110 S_1 = 110S1=110 .
クロック サイクル 2:
a. XOR 演算:1 ⊕ 1 = 0 1 \oplus 1 = 011=0 .
b. 右にシフトして最上位ビットを更新:S 2 = 011 S_2 = 011S2=011 .
クロック サイクル 3:
a. XOR 演算:0 ⊕ 1 = 1 0 \oplus 1 = 101=1 .
b. 右にシフトして最上位ビットを更新:S 3 = 101 S_3 = 101S3=101 .
クロック サイクル 4:
a. XOR 演算:1 ⊕ 0 = 1 1 \oplus 0 = 110=1 .
b. 右にシフトして最上位ビットを更新:S 4 = 110 S_4 = 110S4=110 . このビットからサイクルに入ります
クロック サイクル 4 の後、レジスタの値は初期値操作の後、最初に計算された値に戻りますS 1 = 110 S_1 = 110S1=110 であるため、シーケンスの繰り返しが開始されます。したがって、LFSR によって生成される疑似ランダム シーケンスは、
100、110、011、101、110、…

おすすめ

転載: blog.csdn.net/Chahot/article/details/130121945