EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。: _( y0 T3 Q+ h) E
0 y8 `! S& s2 k9 @; ?8 ~! h
, y7 |3 s+ @4 E( i) v9 g+ E) w& A图3.5 线性反馈移位寄存器
/ Z% u: W) } Q/ ^6 @) y4 n
/ ?5 n' Z5 D# F) X, f% m
: T7 p. w. o i5 E/ zMATLAB生成M序列伪随机码函数如下: % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数0 J' `4 P* t f2 r; f
% mseq=m_sequence(fbconnection); % mseq
5 F/ D, ^$ j/ ]* s4 B9 j% m4 d2 c%m_sequence.m功能是生成伪随机序列2 s/ d6 K8 G# m s
%time:2016_1_136 Z: c1 v& q% A9 d }
%edit by:柴宁
! m) N2 [5 v/ T' P( C. b! nfunction[mseq]=m_sequence(fbconnection)0 n+ i) x( C+ j1 L9 U; ~
n=length(fbconnection);
; H7 ~4 ?) J$ g& ~$ I- d v3 CN=2^n-1;" B1 K$ J: f2 Q4 N
% register=[zeros(1,n-1) 1];% q n! N; r. M1 i: F7 `4 j
register=[1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1];%移位寄存器的初始状态 ,[r(i),r(i-1),r(i-2),...r(0)];( I. ~2 F, ^. n1 h
mseq(1)=register(n);
. \( n$ _/ [/ d Q%m序列的第一个输出码元 : j3 y( |+ f j! }6 D) o
for i=2:N
/ @& j/ J9 \4 A) xnewregister(1)=mod(sum(fbconnection.*register),2); Q6 @, E9 \2 |
for j=2:n,
; M2 I3 ]* j9 A! c* jnewregister(j)=register(j-1);
9 z* h6 W- f9 n# _9 R' F& fend;
! |1 E) P2 K3 k- u* h1 nregister=newregister;
9 \7 n- N4 p# m: K7 Z) Wmseq(i)=register(n);
: n. L) m' P: x- Mend 3 }+ g* T; l+ h
5 e6 ~1 L6 O! C1 x
w1 w+ Q6 y% {+ ?$ l3 e) I& \5 g
|