小m序列產生 簡單易用的偽隨機序列

2022-04-05 19:10:27 字數 1597 閱讀 6772

線性反饋移位暫存器(lfsr)是產生m序列的原型,m序列有強自相關性和低互相關性(體現在雙極性化後,相關運算後的峰均比),其序列長度為(2^n)-1,每乙個序列元素都對應乙個暫存器組的狀態。

生成m序列的關鍵因素有:階數(同時決定了反饋邏輯),種子(暫存器初始狀態)。

這裡規定:移位操作是從msb向lsb移位,msb被反饋值覆蓋,lsb作為輸出並被相鄰高位覆蓋(對應verilog語法中reg)。或者,移位從大下標到小下標進行(如c中長度為6的陣列stat,stat[5]被反饋值覆蓋,stat[0]作為輸出並被stat[1]覆蓋)。

一、階數。

重要的概念是本原多項式(primitive polynomial),本原多項式可以幫助我們確定反饋邏輯。

本原多項式表:(8進製表示即將2進製表示從lsb起每3個bit劃分為乙個數碼)

舉例說明:6階本原多項式為:

,通過以下的對映規則可以確定反饋邏輯:

(1)說明:多項式從冪次最高位到冪次最低位,共有7位,而暫存器有6個。對於n階本原多項式,必含有

和項。(2)多項式中,

項不是反饋邏輯的輸入,其餘項對應到暫存器/陣列的對應下標,作為反饋邏輯輸入。

多項式和lfsr的對應關係:

再舉一例:12階本原多項式為:

,對應lfsr為:

二、種子。

種子是暫存器組的初始狀態,注意種子不能是全0,否則狀態會停留在全0.

三、關於m序列的相關性。

相關運算之前,對m序列做了雙極性處理(1-->+1,0-->-1)。

1、自相關性。(6階,種子0x32)

這個自相關結果的峰均比為7875,約合38.96db.(相關運算的輸出訊號以電壓平方為單位,所以用了10倍log10?)

這兩個序列相關性非常高,其實0x39序列就是就是把0x32序列的第一位放到末位,其餘完全一樣。

種子為0x32和0x19互相關:(這兩個狀態為遠離的狀態,0x32的後31個狀態是0x19)

按暫存器狀態來看,序列產生過程共有63個狀態,0x32和0x19狀態相隔31個狀態。得到的相關峰幅度很接近。

下面是6階0x32和12階0x555的互相關:

它的頻譜長這個模樣:

看到互相關的頻譜比較平坦。

m序列產生器(FPGA學習)

摘自 altera fpga 系統設計實用教程 清華大學出版社 偽隨機數在密碼鄰域的應用無處不在,是很多密碼演算法和密碼協議的基礎,常見偽隨機數發生器基於線性反饋移位暫存器的偽隨機數發生器,簡稱lfsr linear feedback shift register 乙個反饋移位暫存器fsr由移位暫存...

小M的簡單題 easy

小m的簡單題 easy 時間限制 3s 記憶體限制 128mb 題目描述 小m是某知名高中的學生,有一天,他請他的n個同學吃蘋果,同學們排成一行,且手中已經有一些蘋果。為了表示他的大方,有時他會給l到r的同學x個蘋果,但為了了解分配的情況,有時他會詢問l到r的同學中擁有的蘋果數小於x的人的個數。現在...

小M和天平(簡單DP)

題目大意 小m想知道某件物品的重量,但是擺在他面前的只有乙個天平 沒有游標 和一堆石子,石子可以放左邊也可以放右邊。他現在知道每個石子的重量。問能不能根據上述條件,能不能測出所問的重量。資料範圍 多組資料,第一行乙個數n,表示石子個數。1 n 100 接下來第二行n個數,表示石子的重量。1 wi 1...