線性移位寄存器(LFSR)


線性移位寄存器(LFSR)

定義

  • 一個n級寄存器是一個由n個存儲單元b1,b2,……,bn和一個計算單元f(b1,b2,……,bn)構成的裝置,
    bn+1=f(b1,b2,……,bn)

若f為線性函數
f(b1,b2,……,bn)=t1b1+t1b2+……+tn*bn
稱為線性反饋寄存器,即為LFSR

其中ti=0,1,ti的作用相當於一個開關,用斷開和閉合來表示0和1.

例n=3,f(b1,b2,b3)=b1+b3,則輸入101,
則輸出為:101001110100111010011……
周期T=7=2^3-1

LFSR周期

  • 寄存器上始終存儲着n個元素,該n個元素稱為一個狀態,初始時刻的狀態為:
  • S1=(b1,b2,……,bn)
    第i時刻的狀態為:
    Si=(bi,bi+1,……,bi+n-1)
    在n級條件下,最多有2n個狀態,而在線性運算下,全0不會轉入其他狀態,故LFSR序列的最長周期為:2n-1

m序列

定義:

  • 當n級LFSR序列{bi}的周期T=2^n-1時,稱{bi}為n級m序列。
    注:如何選擇合適的反饋函數LFSR使得序列周期達到最大(m序列),是研究重點。

m序列的產生

  • 特征多項式
    • 若LFSR序列{bi}滿足bn+1=t1b1+t2b2+……—+tnbn,令p(x)=1-t1x+t2x2+……+tnxn (t0=1)稱p(x)為LFSR的特征多項式

Th

  • LFSR序列{bi}為n級m序列的充要條件是其特征多項式p(x)是本原多項式。
    注1:本原多項式概念略。
    注2:n次本原多項式的個數:

Matlab中調用本原多項式的命令:

primpoly(n,'all')

常用本原多項式

x^2+x+1
x^3+x+1
x^4+x+1
x^5+x^2+1
x^6+x+1
x^7+x^3+1
x^8+x^4+x^3+x^2+1
x^9+x^4+1
x^10+x^3+1
x^11+x^2+1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM