zoukankan      html  css  js  c++  java
  • Matlab生成M序列的伪随机码

         伪随机编码中较常用的是m序列,它是线性反馈移位寄存器序列的一种,其特点是在相同寄存器级数的情况下输出序列周期最长。线性反馈移位寄存器的工作原理是,给定所有寄存器一个初始值,当移位脉冲到来时,将最后一级寄存器的值输出,同时将第 i级的寄存器内容存储到第 i+1 级中,此外将每一级的寄存器输出按照一定的线性运算规则计算出一个值,并将该值存入第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以组成一个序列,称之为移位寄存器序列[71]。

    图3.5 线性反馈移位寄存器

    MATLAB生成M序列伪随机码函数如下:

    % 在MATLAB命令窗口输入以下: % fbconnection=[0 1 1 0 1 0 0 0 0 0 0 0 0 0 0

    % 1];本原多项式系数:[d0,d1,d2...di];其中di为本原多项式前的系数
    % mseq=m_sequence(fbconnection); % mseq 
    %m_sequence.m功能是生成伪随机序列
    %time:2016_1_13
    %edit by:柴宁
    function[mseq]=m_sequence(fbconnection)
    n=length(fbconnection); 
    N=2^n-1;
    % register=[zeros(1,n-1) 1];
    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)];
    mseq(1)=register(n); 
    %m序列的第一个输出码元 
    for i=2:N 
    newregister(1)=mod(sum(fbconnection.*register),2); 
    for j=2:n, 
    newregister(j)=register(j-1); 
    end; 
    register=newregister; 
    mseq(i)=register(n); 
    end

  • 相关阅读:
    mysql:基础管理、体系结构、升级降级
    Linux网络基础
    mysql 忘记本地密码
    seq命令的用法
    mysql03-SQL应用
    SolidWorks 如何改变封闭草图的背景颜色
    新版 AD 无法选中某些部件(如 Via,Pad)的问题
    安装 dot net 时出现严重错误 0x80070643 安装时发生严重错误 1603 ndp48
    IO 口扩展
    自动波特率检测
  • 原文地址:https://www.cnblogs.com/sddai/p/5444802.html
Copyright © 2011-2022 走看看