EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。
' {7 A# U1 m8 X" X5 w" q4 i1 ]0 ~) j0 ~9 N+ s& t- F1 ^2 e
' }. m: B6 E [4 ~' n- {
图3.5 线性反馈移位寄存器 1 I% R3 o, x3 X
: W5 a5 \8 e! {
( A; g1 n; N/ t" [) n! d# s8 w9 mMATLAB生成M序列伪随机码函数如下: % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数4 N N" r2 o2 \0 H+ S2 f" E
% mseq=m_sequence(fbconnection); % mseq
6 t. F# I5 O; I%m_sequence.m功能是生成伪随机序列 k, |( R' }" ]9 o. S$ Q
%time:2016_1_13% O$ j$ A: A7 ^# t1 {. @; b+ Q
%edit by:柴宁3 X$ C; d# ?( Y b7 w3 s: p
function[mseq]=m_sequence(fbconnection)/ W9 ^ E) C( J( ^
n=length(fbconnection); - G/ S0 `: L% d2 a4 z3 m1 t9 ?6 D
N=2^n-1;
2 j4 c$ ?; f5 z% register=[zeros(1,n-1) 1];
) X0 k3 ?* h% |# Lregister=[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)];
5 X$ a' t; a* Z+ P) z, D! w5 S3 hmseq(1)=register(n); 4 R6 p# w' r/ c3 ?1 b6 R; G
%m序列的第一个输出码元
# `( b) [' z7 O* \$ U3 z5 S" \8 T/ xfor i=2:N # k! r: L$ s2 Y' ~; r/ ?
newregister(1)=mod(sum(fbconnection.*register),2); - `7 ~8 _. u& X
for j=2:n,
6 |' l/ Z; l. G! h4 Lnewregister(j)=register(j-1); 8 Y- K$ @: S3 |) l% D M
end; * a3 q' R* j0 u; B
register=newregister; * L! G; q) q( `" `* H" F7 q; H
mseq(i)=register(n); 5 H3 y f9 R! i h
end # n/ E; m$ E+ _
; O9 N; I- C3 Z( l, K, T: w( G* D+ P# \. Q
1 f$ ?8 e5 H7 ?" T |