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

📄 scramble_code.m

📁 扰码的产生MATLAB程序。用于移动通信等领域的扩频加扰
💻 M
字号:
function[out]=scramble_code(code_num);
%产生S2短扰码,长度为1~256,code_num为1~16777215的数。
n=zeros(1,24);
bin=de2bi(code_num);
n(1:length(bin))=bin;
%形成序列a,长度为255;
a(1)=mod(2*n(1)+1,4);
for i=2:8,
    a(i)=mod(2*n(i),4);
end;
for i=9:255,
    a(i)=mod(3*a(i-3)+a(i-5)+3*a(i-6)+2*a(i-7)+3*a(i-8),4);
end;
%形成序列b,长度为255
for i=1:8,
    b(i)=mod(n(i+8),2);
end;
for i=9:255,
    b(i)=mod(b(i-1)+b(i-3)+b(i-7)+b(i-8),2);
end;
%形成序列d,长度为255
for i=1:8,
    d(i)=mod(n(16+i),2);
end;
for i=9:255,
    d(i)=mod(d(i-1)+d(i-3)+d(i-4)+d(i-8),2);
end;
%形成序列z=a+2b+2d,长度为256;
for i=1:255,
    z(i)=mod(a(i)+2*b(i)+2*d(i),4);
end;
z(256)=z(1);
%映射为s1,s2,
for i=1:256,
    if z(i)==0,
        s1(i)=1;s2(i)=1;
    elseif z(i)==1,
        s1(i)=-1;s2(i)=1;
    elseif z(i)==2,
        s1(i)=-1;s2(i)=-1;
    else
        s1(i)=1;s2(i)=-1;
    end;
end;
%最后输出复数;
for i=1:256,
    if (mod(i,2)~=0),
        out(i)=( s1(i)+sqrt(-1)*(-1)^(i-1)*s2(i) )/sqrt(2);  %2003年4月23日加/sqrt(2);
    else
        out(i)=( s1(i)+sqrt(-1)*(-1)^(i-1)*s2(i-1) )/sqrt(2);
    end;
end;

⌨️ 快捷键说明

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