我是靠谱客的博主 玩命宝贝,最近开发中收集的这篇文章主要介绍利用N级移位寄存器产生M序列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.1问题描述

编程产生一组伪随机信号(M序列),它的幅值和长度可随意调整,将产生的M序列信号存入数据文件。

2.2 方法思路

伪随机信号PRBS亦称M序列可利用下图3-3-9所示的n级移位寄存器来产生。
在这里插入图片描述
本次采用的是7级移位寄存器,根据下表3-3-3可知N1取4,设采样时间为1,M序列的周期为2^7-1=127。
在这里插入图片描述
根据以下图3-3-10所示的流程图,即可产生M序列。
在这里插入图片描述

3.3 实验结果

在这里插入图片描述
在这里插入图片描述

2.4 实验代码(Matlab)

%%%采用伪随机信号发生器生成M序列
%%%状态递推公式为:Y(k)=Y(k-n)模二和Y(k-N1)
%%%本次选取7级移位寄存器即n=7,由课本上表3-3-3可知此时N1取4时,可以产生周期为2^7-1=127的M序列(采样时刻为1)
y=[1 1 0 1 1 0 1];%%%初始化7级移位寄存器,保证其初值不全为0
n=length(y);%%%获得移位寄存器的级数
T=2^n-1;%%%M序列的周期
%%%%%采用递推公式生成M序列
for i = 1:1:T
    Y(i)=y(7);%%%第n级的输出即是M序列的两种状态
    M(i)=mod(y(7)+y(4),2);%第n级与第N1级模二加结果,此时分别为74
    %%%%移位寄存器工作原理%%%
    y(7)=y(6);
    y(6)=y(5);
    y(5)=y(4);
    y(4)=y(3);
    y(3)=y(2);
    y(2)=y(1);
    y(1)= M(i)
end
figure
stairs(Y,'r'); %画出周期为127的M序列
title('周期为127的M序列');
ylim([-0.2 1.2])
%%%%%%利用M序列生成可以用于实际对象的伪随机信号X%%%%%%
a=1;%随机信号的幅值
for i=1:1:T
    if Y(i)==1
        X(i)=a;
    else
        X(i)=-a;
    end
end
figure
stairs(X,'b'); %画出伪随机信号
title('幅值为1的伪随机信号');
ylim([-1.2 1.2])
xlswrite('D:桌面M序列.xlsx',X','sheet1');

最后

以上就是玩命宝贝为你收集整理的利用N级移位寄存器产生M序列的全部内容,希望文章能够帮你解决利用N级移位寄存器产生M序列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部