matlab生成m序列的方法

2021-10-06 16:19:49 字數 1693 閱讀 9482

2.2利用idi

nput

idinput

idinpu

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

m序列的週期等於2n−

12^n-1

2n−1

,n是m序列的級數,m序列由n級線性反饋移存器產生。

m序列具有均衡性,序列中「1」和「0」的數目基本相等,「1」的個數比「0」多1。

m序列的迴圈自相關函式是雙值電平。

m序列具有遊程分布的規律。

具體產生原理可參考相關資料(通訊原理第七版,樊昌信、曹麗娜),這裡只介紹matlab實現方法。

2.1.1生成m序列的函式:

function[mg]=m_generate(f)

n=length(f);%移位暫存器長度

n=2^n-1;%偽隨機碼的週期

register=[zeros(1,n-1) 1];

for i=1:n

newregister(1)=mod(sum(f.*register),2);

for j=2:n

newregister(j)=register(j-1);

endregister=newregister;

mg(i)=register(n);

end

2.1.2呼叫已編寫函式生成m序列
%***************************************

% 偽隨機序列產生

%***************************************

% 產生偽隨機序列,7階m序列,週期為127

% 利用primpoly(7,'all')指令,產生本原多項式:d^7+d^6+d^5+d^4+1,並呼叫編寫的m_generate()函式生成偽隨機序列

mg=m_generate([0 0 0 1 1 1 1 ]);

得到的變數"mg"就是週期為127的m序列。

注意:

先要利用 primpoly(7,『all』) 命令生成對應的本原多項式(可在命令窗生成),選擇其中乙個多項式將其係數矩陣新增到函式m_generate([0 0 0 1 1 1 1 ]);(如黃色標記的矩陣)。

生成其他階數的m序列則只需要將 primpoly(7,『all』) 命令中的數字『7』更換到需要的階數即可。

matlab中的idi

nput

idinput

idinpu

t函式可以成成多種不同的序列。也可以用來產生m序列:

order_number=7;%m序列的階數等於7

mg=idinput((2^(order_number)-1),'prbs')';%生成m序列

這種產生方法就很簡單了,改變階數就可以得到不同週期長度的m序列。

更多關於idi

nput

idinput

idinpu

t函式的使用可以到matlab中文官網查閱

在matlab中生成m序列

實驗環境為matlab2013b 1 首先編寫乙個mseq.m檔案,內容為 function mseq m sequence fbconnection n length fbconnection n 2 n 1 register zeros 1,n 1 1 移位暫存器的初始狀態 mseq 1 reg...

在matlab中生成m序列

實驗環境為matlab2013b 1 首先編寫乙個mseq.m檔案,內容為 function mseq m sequence fbconnection n length fbconnection n 2 n 1 register zeros 1,n 1 1 移位暫存器的初始狀態 mseq 1 reg...

matlab的m函式入門1

1.概述 2.及其解析function a myhilb n,m this is help document.自定義函式 myhilb,有兩個引數 n m nargin 和 nargout 是兩個獲取函式引數數目的 matlab函式,可以直接用 nargout nargin來表示 輸出和輸入的引數數...