概述
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级模二加结果,此时分别为7和4
%%%%移位寄存器工作原理%%%
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序列所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复