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

  • 相关阅读:
    c# 三种取整方法 向上取整 向下取整 四舍五入
    Lambda表达式对DataRow处理
    Dapper数据库字段和model属性映射
    union limit
    北邮五十题
    搜索____深搜 学易错点
    动态规划____有重叠子问题的搜索,都可以转为记忆化搜索
    64位 __int 与 long long写法
    做做 卡特兰数 与 卡米歇尔数
    vector 有点麻烦啊 能简单点么?
  • 原文地址:https://www.cnblogs.com/sddai/p/5444802.html
Copyright © 2011-2022 走看看