EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。6 ?- M& m" ^: P
/ B! |; f K& T& [# V
' g/ f" K# D' V* H图3.5 线性反馈移位寄存器
* z m: w L3 g8 d7 X
* h; P( A3 u6 D5 @2 l) c
' J+ t$ I. Q+ y& SMATLAB生成M序列伪随机码函数如下: % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数& p; T% c. l" p' ]' l
% mseq=m_sequence(fbconnection); % mseq 8 p5 Y1 e5 t( I7 |) d* F; @
%m_sequence.m功能是生成伪随机序列. X$ v' z# {% I
%time:2016_1_13- a; c0 Q; B+ n% |6 P4 r
%edit by:柴宁 u% _- S6 o6 Z; f7 j
function[mseq]=m_sequence(fbconnection)
8 T8 D* Z* P: f! b3 K; A% w5 d0 B+ An=length(fbconnection); 1 Y. L1 Y& I4 n9 L% u
N=2^n-1;
- l5 q2 q' B) q# q5 B" N0 \% register=[zeros(1,n-1) 1];' L7 ^/ ]) P" M+ |0 ^- A4 e/ x
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)];$ c8 I; X5 W: z& f
mseq(1)=register(n); 7 i n$ | ~0 q9 k9 ?8 n
%m序列的第一个输出码元 ' ~2 Y# ^( y2 v
for i=2:N
' V$ D; t0 G+ S, K5 onewregister(1)=mod(sum(fbconnection.*register),2);
, O9 T& Z& |- M0 rfor j=2:n,
$ E( g6 ^1 j5 {- `2 g" mnewregister(j)=register(j-1);
& u; y4 }+ q6 W3 z2 @+ J) Eend; ( `1 h% F/ Q" \, ` v3 F
register=newregister; 6 T6 c! _- }5 L& E" D
mseq(i)=register(n); 5 |9 U7 j7 Q7 D/ o
end ; t* i- z( @* g& _+ S. ^5 n9 p7 v! a) T4 @
/ S6 W9 e F0 R* g9 A/ R# `
8 w) m) p) T3 k8 D. D+ Z* m. s' u, ^7 L. ?) P* z' I. r P, v
|