⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frequence_hopping1.m

📁 m序列发生器
💻 M
字号:
function [ code1] = frequence_hopping1( )
n = 6;                     %寄存器阶数
taps = [6 1];                  %抽头位置,本原多项式,可以自己设置(需要查表,因为仅有有限个)
R=1;                               %时钟参数 ,可以自己设置
init= [1 1 0 1 0 0];                      %寄存器初始状态,可以自己设置
contr=[0 1 5];                  %控制级向量,用三个不相临的控制级,(第一个数字表示起始控制级,后面两个表示相对第一个的递增级数,即选第0级,也选第2级和第4级)可以自己设置
u = [0 0 0];     %用户向量组  修改为单用户
[h,l]=size(u);
p=2^n-1;                             %周期长度
m=ms1(n,taps,init,p);              %由f(x)=x^6+x^5+1产生的m序列
a=m;                                 %a表示控制序列
s=size(m);                         %监控m序列的规模,调试用,对程序无影响,可删除  
for i=1:h
    for j=1:p
        w1=j+contr(1);             %当前循环应当处理的序列序号
        w2=j+contr(2);
        w3=j+contr(3);
        while w3>p 
           w3=rem(w3,p);
        end
         while w2>p 
           w2=rem(w2,p);
        end
         while w1>p 
           w1=rem(w1,p);
        end
            W(i,j) = 4*xor(a(w1),u(i,1))+2*xor(a(w2),u(i,2))+xor(a(w3),u(i,3));         %xor即模2和,rem(x,p)是求以63为周期后的位置,用三个不相临的控制级,即非连续抽头
     
        if R~=1               %不同的时钟比值不会等于1,若相等为L-G模型
            for x=1:R         %移R位
                numb=a(p);    %末尾先存入临时变量
                a(2:p) = a(1:p-1);     % 移位运算
                a(1)= numb;     % 原来的最后一位给第一位 
            end
        end
    end
end
code1=W(1,:);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -