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來表示 輸出和輸入的引數數...