matlab 产生伪随机序列

本文介绍了一个基于特定多项式生成m序列的算法实现。通过将给定的八进制系数转换为二进制,并确定寄存器的反馈连接状态,算法能够生成具有特定周期的m序列。通过调整输入的g(x),可以输出不同的m序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值