EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。& C$ p, g. c. z: z/ D/ L, H
, l& h% t& a! E
! q% i! V1 }- C/ g图3.5 线性反馈移位寄存器 ; N! y6 |+ e, K# M* i5 V: s0 a
% t, }! l) b( r4 R1 h# Q. x2 W2 ?' a# C, @3 j% l4 p* G
MATLAB生成M序列伪随机码函数如下: % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数
" J/ W3 }, S# L( H5 }& K* w0 t% mseq=m_sequence(fbconnection); % mseq ; X3 Y* w+ @4 c7 M6 o- a
%m_sequence.m功能是生成伪随机序列* J# M- N% ^, I
%time:2016_1_13
1 o0 B8 o5 q8 g# A+ y; D7 I4 J%edit by:柴宁: u7 ~$ v, _, }8 V* O: [5 P) Y) l
function[mseq]=m_sequence(fbconnection)
9 m; U& U& X# [3 Y( S6 X$ qn=length(fbconnection);
1 ^: Y0 K* T `% w+ O) GN=2^n-1;8 @; s( T# z: [6 m
% register=[zeros(1,n-1) 1];: p$ k5 D- J% n5 z0 _6 F" z; [3 ^/ Y
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)];3 @% s* Q3 J( A1 g/ w! J
mseq(1)=register(n);
# K& o8 }& Z+ x- { j%m序列的第一个输出码元 5 `; Z: L% ?4 y! s% k) w) v: Z
for i=2:N
. N( U4 G* j; Q6 E2 V3 o( `% I7 t' Qnewregister(1)=mod(sum(fbconnection.*register),2); , B: {# x; E+ [. o9 @
for j=2:n,
! ?+ l1 R$ C) znewregister(j)=register(j-1);
. @. [" {8 o H' ?8 lend; + [( H% G$ ?4 r" p+ E0 Y7 ~( z: W
register=newregister; $ x _0 l: V# |
mseq(i)=register(n); 8 @$ ~& N4 O0 r! o
end
2 [$ U. A3 j) o0 W9 H! r" }
3 ~& ~5 N6 Q% c+ \6 a5 q5 @* I% e; ^) y" r" q$ U
) H- H, t( L- m! ]( c, X |