Matlab 생성 M 시퀀스

1705 단어 MATLAB
저작권 고지: 본 문서는 CSDN 블로거 "laomai"의 오리지널 기사 원문 링크입니다.https://blog.csdn.net/laomai/article/details/24342493
코드를 많이 찾았는데 이 단계는 상세해서 바보가 조작할 수 있고 저장해서 준비할 수 있어요~
실험 환경은 matlab2013b
1、먼저 mseq를 작성합니다.m 파일, 내용:
function[mseq]=m_sequence(fbconnection) 
n=length(fbconnection); 
N=2^n-1;  
register=[zeros(1,n-1) 1];  %           
mseq(1)=register(n);        %m           
for i=2:N      
newregister(1)=mod(sum(fbconnection.*register),2);     
for j=2:n          
newregister(j)=register(j-1);     
end;      
register=newregister;     
mseq(i)=register(n); 
end    

2、matlab에서 이 파일 열기
3. matlab 명령줄 창에서 실행
primpoly(7,‘all’)
이 명령의 목적은 7 단계 M 서열의 모든 본원 다항식을 얻는 것이다. 다른 단계의 m 서열을 얻으려면 스스로 숫자 7을 수정하면 된다.
4、얻은 결과는
Primitive polynomial(s) =
D7+D1+1 D7+D3+1 D7+D3+D2+D1+1 D7+D4+1 D7+D4+D3+D2+1 D7+D5+D2+D1+1 D7+D5+D3+D1+1 D7+D5+D4+D3+1 D7+D5+D4+D3+D2+D1+1 D7+D6+1 D7+D6+D3+D1+1 D7+D6+D4+D1+1 D7+D6+D4+D2+1 D7+D6+D5+D2+1 D7+D6+D5+D3+D2+D1+1 D7+D6+D5+D4+1 D7+D6+D5+D4+D2+D1+1 D7+D6+D5+D4+D3+D2+1
ans =
131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253
5, mseq 입력 ([10 0 0 0 0 0 0 0 1])
6、127비트의 m 서열을 얻을 수 있다.
1000000111111101010 1001100111011101001 0110001101111011010 1101100100100011100 0010111110010101110 0110100010011110001 0100001100000
설명,
1 0 0 0 0 0 1 이 입력 매개 변수의 물리적 의미는 각 레지스터의 초기 상태이며, 수학적 의미는 선택한 원래 다항식 D7+D1+1의 D1에서 D7까지의 계수입니다.독자는 스스로 다른 본원 다항식을 선택하여 서로 다른 m 서열을 얻을 수 있다.
예를 들어 D7 + D3+1을 선택하면
mseq([0 0 1 0 0 0 0 1])에서 얻은 m 서열은
1000000100100110100 1111011100001111111 0001110110001010010 1111101010100001011 0111100111001010110 0110000011011010111 0100011001000

좋은 웹페이지 즐겨찾기