LFSR——二進制下線性反饋移位寄存器與Berlekamp-Massey算法

LFSR——二進制下線性反饋移位寄存器與Berlekamp-Massey算法

轉載自:元暑期學校課件(侵刪)

線性反饋移位寄存器(LFSR)

給定一個線性反饋移位寄存器(LFSR)的n個初始值a0,a1,...,an1a_0,a_1,...,a_{n-1},不斷地加移位脈衝,n級LFSR就會輸出一序列
a0,a1,a2,... a_0, a_1,a_2,...
aiF2={0,1}a_i\in F_2=\{0,1\}.

其中ai+na_{i+n}滿足等式
ai+n=j=1ncjai+nj,cjF2. a_{i+n}=\sum^n_{j=1}c_ja_{i+n-j},c_j\in F_2.
我們把這樣的序列稱爲 (n級)線性反饋移位寄存器(LFSR)


特徵 多項式與聯接多項式

n級LFSR的**特徵多項式(Characteristic Polynomial)**爲
f(x)=xn+i=1ncixni, f (x) = x ^ n + \sum _ {i = 1} ^ {n} c_ix ^ {n-i},

其**聯接多項式(Reciprocal Polynomial/Joint Polynomial)**爲
f(x)=xnf(1x)=1+i=1ncixi. \overline{f} (x) = x^n f(\frac{1}{x})= 1 + \sum _ {i = 1} ^ {n} c_ix ^ i.

將滿足遞推關係式(2)的n級LFSR序列稱爲f(x)f(x)產生的序列

G(f):由f(x)f(x)產生的所有序列的全體組成的集合。


極小多項式

aF2F_2上的一個週期序列,存在F2F_2上唯一的首一多項式f(x)f(x)使得aG(h(x))\in G(h(x))當且僅當f(x)h(x)f(x)|h(x)。這個多項式f(x)f(x)稱作a的極小多項式


Berlekamp-Massey算法

Berlekamp-Massey算法(簡稱BM算法):在已知二元序列的情況下求解其極小多項式和階數。

(1) 設n0n_0是一個非負整數,滿足
a0=a1==an01=0,an00. a_0=a_1=\cdots=a_{n_0-1}=0,a_{n_0}\neq 0.

d0=d1==dn01=0,dn0=an0, d_0=d_1=\cdots=d_{n_0-1}=0,d_{n_0}=a_{n_0},

f1(x)=f2(x)==fn0(x)=1, f_1(x)=f_2(x)=\cdots=f_{n_0}(x)=1,

l1=l2==ln0=0. l_1=l_2=\cdots=l_{n_0}=0.


fn0+1(x)=1dn0xn0+1,ln0+1=n0+1. f_{n_0+1}(x)=1- d_{n_0}x^{n_0+1},l_{n_0+1}=n_0+1.
(2) 假設(fi(x),li),1inN(f_i(x),l_i),1\leq i\leq n \leq N 已經求得。而
l1=l2==ln0<ln0+1ln0+2ln l_1=l_2=\cdots=l_{n_0}<l_{n_0+1}\leq l_{n_0+2}\leq \cdots \leq l_n
根據fn(x)=1+cn,1x++cn,lnxlnf_n(x)=1+c_{n,1}x+\cdots+c_{n,l_n}x^{l_n},並計算
dn=an+cn,1an1++cn,lnanln. d_n = a_n + c_{n,1}a_{n-1}+\cdots+c_{n,l_n}a_{n-l_n}.
如果dn=0d_n=0,則取
fn+1(x)=fn(x),ln+1=ln; f_{n+1}(x)=f_n(x), l_{n+1}=l_n;
dn0d_n\neq 0,這時一定存在1m<n1\leq m< n,使
lm<lm+1=lm+2==ln, l_m<l_{m+1}=l_{m+2}=\cdots=l_n,

fn+1(x)=fn(x)dndm1xnmfm(x), f_{n+1}(x)=f_n(x)-d_nd_m^{-1}x^{n-m}f_m(x),

ln+1=max{ln,n+1ln}. l_{n+1}=max\{l_n,n+1-l_n\}.

求週期爲8的序列a(8)=00101101a^{(8)}=00101101的極小多項式和階數。

a0=0,a1=0,a2=1,a3=0,a4=1,a5=1,a6=0,a7=1a_0=0, a_1=0, a_2=1, a_3=0, a_4=1, a_5=1, a_6=0, a_7=1. 首先n0=2n_0=2,因此
d0=d1=0,d2=1, d_0=d_1=0,d_2=1,

f1(x)=f2(x)=1,f3(x)=1x3, f_1(x)=f_2(x)=1,f_3(x)=1-x^3,

l1=l2=1,l3=3. l_1=l_2=1,l_3=3.

計算d4=a4a1=10=10d_4=a_4-a_1=1-0=1\neq 0,這時l2<l3=l4l_2<l_3=l_4,因此m=2,
f5(x)=f4(x)d4d21x42f2(x)=1x3x2=1+x2+x3, f_5(x)=f_4(x)-d_4d_2^{-1}x^{4-2}f_2(x)=1-x^3-x^2=1+x^2+x^3,

l5=max{l4,4+1l4}=3. l_5=max\{l_4,4+1-l_4\}=3.

計算d5=a5+a3+a2=1+0+1=0d_5=a_5+a_3+a_2=1+0+1=0,因此
f6(x)=f4(x)=1+x2+x3,l6=l5=3. f_6(x)=f_4(x)=1+x^2+x^3,l_6=l_5=3.
計算d6=a6+a4+a3=0+1+0=10d_6=a_6+a_4+a_3=0+1+0=1\neq 0, 這時l2<l3=l4=l5l_2<l_3=l_4=l_5,因此m=2m=2
f7(x)=f6(x)d6d21x62f2(x)=1+x2+x3x4=1+x2+x3+x4 f_7(x)=f_6(x)-d_6d_2^{-1}x^{6-2}f_2(x)=1+x^2+x^3-x^4=1+x^2+x^3+x^4,

l7=max{l6,7l6}=4. l_7=max\{l_6,7-l_6\}=4.

計算d7=a7+a5+a4+a3=1+1+1+0=10d_7=a_7+a_5+a_4+a_3=1+1+1+0=1\neq0,這時l6<l7l_6<l_7,因此m=6m=6
f8(x)=f7(x)d7d61x76f6(x)=1+x2+x3+x4x(1+x2+x3)=1+x+x2 f_8(x)=f_7(x)-d_7d_6^{-1}x^{7-6}f_6(x)=1+x^2+x^3+x^4-x(1+x^2+x^3)=1+x+x^2,

l8=max{l7,8l7}=4. l_8=max\{l_7,8-l_7\}=4.

所以a(8)=00101101a^{(8)}=00101101的極小生成多項式爲1+x+x21+x+x^2,階數爲4。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章