matlab 产生伪随机序列

function y=signalgenenator(oct_coe)
% oct_coe=23;%将g(x)改成八进制的给进去
coe_alg=de2bi(oct2dec(oct_coe));%
sta_con=coe_alg(end:-1:2);%反馈的连 接状态向量,舍去输出的反馈链接 
position=find(sta_con==1);%%得到抽头 位置 
order=length(sta_con);%寄存器阶数
period=2^order-1; 
reg=ones(1,order);%寄存器赋初值 
tem=xor(reg(position(1)),reg(position (2)));
mSequence=[];
for i=3:length(position)    
    tem=xor(reg(position(i)),tem);% 循环异或抽头有效的寄存器值 
end
for j=1:period;%m 序列的周期  
    for k=2:order;     
        reg(k-1)=reg(k);  
    end
    reg(order)=tem;  
    tem=xor(reg(position(1)),reg (position(2))); 
    for v=3:length(position)   
        tem=xor(reg(position(v)),tem);
    end
    mSequence(j)=tem;% 将每次循环异 或后的值作为 m 序列的输出 end mSequence
end
y= mSequence;

根据给的g(x)不同输出不同的m序列

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值