线性移位寄存器序列(m序列)之MATLAB实现

您所在的位置:网站首页 阶跃序列matlab 线性移位寄存器序列(m序列)之MATLAB实现

线性移位寄存器序列(m序列)之MATLAB实现

2023-06-09 08:25| 来源: 网络整理| 查看: 265

移位寄存器的结构

n n n级线性移位寄存器的结构如下图 在这里插入图片描述 当生成多项式 g ( x ) g(x) g(x)为本原多项式时,产生的序列为m序列。例如 g ( x ) = x 5 + x 2 + 1 g(x)=x^5+x^2+1 g(x)=x5+x2+1的本原多项式,初态为10000的5级m序列,其周期为 2 5 − 1 = 31 2^5-1=31 25−1=31,结构如下图所示。 在这里插入图片描述

代码

m序列的性质在此不多赘述,感兴趣的可查阅相关资料,MATLAB生成m序列的代码

function mCode = mCodeGen(polynomial,reg) % m序列产生器函数 % polynomial为本原多项式次数,如对x^5+x^2+1,polynomial = [5 2 0] % reg为置寄存器初始值,也相当于PN码的初始相位,如初态为[1 0 0 0 0]时,寄存器初始状态如上图所示 ntap = length(polynomial); grade = polynomial(1); % 延时级数 mlen = 2^grade-1; % m序列一个周期的长度 mCode = zeros(1,mlen); tap = grade+1-polynomial(1:ntap-1); % 抽头位置 % 产生一个周期的PN码 % 寄存器为 0 0 0 0 1 右边输出 for i = 1:mlen mCode(i)=reg(1); m = mod(sum(reg(tap)),2); reg(1:grade-1) = reg(2:grade); reg(grade) = m; end end


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3