• 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

  • 相关阅读:
    golang压力测试工具
    Gnome启动
    简单说说 Apipost 的几点使用体验
    发现一个很nice的API调试工具!
    马勒第一交响曲
    Python中使用tkinter创建透明图层、不规则组件、插入GIF动图等功能实现
    RESTful API Knife4j
    汇编语言与DOSBOX使用
    VPP初学笔记(一)
    Python3下如何对文件进行操作?
  • 原文地址:https://www.cnblogs.com/sddai/p/5444802.html
Copyright © 2020-2023  润新知