EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。
1 q* V3 O$ J5 K; B7 u3 p6 [- R
! c- w# S4 M3 [
+ }7 ~. M3 n7 B& W9 m8 V- T( V图3.5 线性反馈移位寄存器
* e) U6 Q4 U' `( n t9 F' z3 n
1 P/ D g3 t4 G! v" @! l' [" M
" Y; m( S# j' W& OMATLAB生成M序列伪随机码函数如下: % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数
1 ^: y% c0 H4 D% mseq=m_sequence(fbconnection); % mseq 8 I0 ] h9 [$ `9 I6 W7 o* a
%m_sequence.m功能是生成伪随机序列
5 P& F% ^8 I0 M, O5 m6 s%time:2016_1_13
( X. `4 x" f; C; U! a%edit by:柴宁
0 D4 ?8 S- Z# Z8 [. Mfunction[mseq]=m_sequence(fbconnection)- W3 m. O6 G! ^. X. c* N6 p
n=length(fbconnection);
6 a5 p, I6 Y) ~9 M! \# VN=2^n-1;, S w- \4 r4 H. u9 u* t7 {$ m+ |
% register=[zeros(1,n-1) 1];. ?9 n6 g) R; \; q1 z
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)];
0 T0 w$ w# J3 v, M" d) Hmseq(1)=register(n);
. F/ j* l0 A1 n& m" I4 J5 Q%m序列的第一个输出码元
% f# s6 R0 v' ~4 w+ qfor i=2:N
0 v9 C1 V1 \; @1 Pnewregister(1)=mod(sum(fbconnection.*register),2); 8 t" ~( S. D3 @
for j=2:n, , f; L1 W- G/ ], R# ]( _( i( D; ?
newregister(j)=register(j-1); , @& o+ ^# @( o# m
end; J' v9 ?# V0 S) e# O) {
register=newregister; 9 h! w% M% c( [. E- P8 ?
mseq(i)=register(n);
1 s$ o; s" c! n+ T$ lend 2 q1 o6 e) R( @) l# \& Z; b9 ~" T
" H8 v$ B" L: \& T9 _; _: @0 J! ^ p: b, F5 V+ O8 y
* }1 S$ f) B$ }* q6 ^% | |