m序列的原理以及verilog實現

2021-08-08 14:26:52 字數 1775 閱讀 9774

m序列是最長線性反饋移位暫存器序列的簡稱。它是由帶線性反饋的移存器產生的週期最長的序列。一般來說,乙個n級線性反饋移存器可能產生的最長週期等於(2^n -1)。

m序列是一種典型的偽隨機序列。在通訊領域有著廣泛的應用,如擴頻通訊、衛星通訊的分碼多重進接(cdma),數字資料中的加密、加擾、同步、誤位元速率測量等領域。

線性反饋移位暫存器原理方框圖

它給出了狀態ak和前面n個狀態的關係。

它決定了移存器的反饋連線和序列的結構。式中x^i僅指明其係數(1或0)代表ci的值,x本身的取值並無實際意義。

它表示反饋移存器的輸出序列。

若乙個n次多項式f(x)滿足下列條件:

1)f(x)為既約的;

2)f(x)可整除(x^m +1),m=2^n -1;

3)f(x)除不盡(x^q +1),q

為什麼要理解本原多項式?因為乙個線性反饋移存器能產生m序列的充要條件:反饋移存器的特徵多項式為本原多項式。常用的本原多項式由查表得到。

本原多項式表

m_sequence.v(以x8+x4+x3+x2+1為例) tips:**實現依據原理方框圖和特徵多項式。

module m_sequence(

input sclk,

input rst_n,

output wire m_seq

);parameter poly = 8'b10001110;//由本原多項式得到

reg [7:0] shift_reg;

always@(posedge sclk or negedge rst_n)

begin

if(rst_n == 0)begin

shift_reg <= 8'b11111111;//初值不可為全零

endelse begin

shift_reg[7] <= (shift_reg[0] & poly[7])^

(shift_reg[1] & poly[6])^

(shift_reg[2] & poly[5])^

(shift_reg[3] & poly[4])^

(shift_reg[4] & poly[3])^

(shift_reg[5] & poly[2])^

(shift_reg[6] & poly[1])^

(shift_reg[7] & poly[0]);

shift_reg[6:0] <= shift_reg[7:1];

endendassign m_seq = shift_reg[0];

endmodule

**截圖:

注:從圖中黃線處開始得到新值,黃線前面是初始化的值。

m序列的學習心得

參考文件 m序列是最長線性反饋移位暫存器序列的簡稱,是由帶線性反饋的移存器產生的週期最長的序列,是一種偽隨機序列 目前廣泛應用的偽隨機雜訊序列都是由週期性數字序列經過濾波等處理後得出的 二進位制運算一般分為以下幾種 二進位制加法,二進位制減法,二進位制乘法與二進位制除法。二進位制加法,0 0 0,0...

matlab生成m序列的方法

2.2利用idi nput idinput idinpu t函式引言m序列屬於偽隨機序列的一種。在通訊領域應用較為廣泛。由於其具有很好的偽雜訊特性,因此在保密通訊中,可以將其應用在高可靠性的保密通道中。另外,雷達領域也有廣泛應用,偽隨機相位編碼脈衝 連續波雷達中用到的調製訊號正是m序列。m序列的週期...

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

線性反饋移位暫存器 lfsr 是產生m序列的原型,m序列有強自相關性和低互相關性 體現在雙極性化後,相關運算後的峰均比 其序列長度為 2 n 1,每乙個序列元素都對應乙個暫存器組的狀態。生成m序列的關鍵因素有 階數 同時決定了反饋邏輯 種子 暫存器初始狀態 這裡規定 移位操作是從msb向lsb移位,...