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

📄 kasami.asv

📁 cmda仿真程序
💻 ASV
字号:
% Kasami codes

%option indicates sequence format

function[codes] = kasami(option)

blarge = 1;4
m=8; % m has to be even
N = 2^m -1;

code3 = zeros(1, N);  %2 codes for xor with circular shift
code2 = zeros(1, N);
code1 = BasicSeqK(m);

if blarge == 0
    s = 2^(m/2) + 1; %decimation index
    lim = 2^(m/2); % no of sequences
    codes = zeros(lim, N);
    codes(1, 1:N) = code1;

    %decimation process for creating code2
    k = 0;

    for i=1:N
        ind = mod(1 + k*s, N);
        if ind == 0;
            ind = N;
        end
        code2(i) = code1(ind);
        k = k + 1;
    end

    for i=2:lim
        codes(i,1:N) = xor(code1,code2); %generating codes
        circshift(code2, [0,-1]); %left shift
    end
    codes;
else
    % LARGE KASAMI SEQUENCE SET  
    d1 = 2.^(m/2)+1;  % decimation index1
    d2 = 2.^((m+2)/2)+1;    % decimation index2
    k = 0;

    %decimation process for creating code2

    for i=1:N
        ind = mod(1 + k*d1, N);
        if ind == 0;
            ind = N;
        end
        code2(i) = code1(ind);
        k = k + 1;
    end

    %decimation process for creating code3

    k = 0;
    for i=1:N
        ind = mod(1 + k*d2, N);
        if ind == 0;
            ind = N;
        end
        code3(i) = code1(ind);
        k = k + 1;
    end

    lim = 2.^(m/2)*(2^m + 1); % the number of codes
    codes = zeros(lim, N);

    codes(1, 1:N) = code1; 
    codes(2, 1:N) = code3; 
   
    k_seq1 = code1; % add by hzh at 061219
   
    
    codesp3 = code3;
    codesp2 = code2;

    lim1 = 2^m - 1;

    for i=3:lim1+2
        codes(i,1:N) = xor(code1, code3);
        code3 = circshift(code3, [0, -1]);
    end

    lim2 = 2^(m/2)- 1;

    for j=i+1:lim2+i
        codes(j,1:N) = xor(code1, code2);
        code2 = circshift(code2, [0, -1]);
    end

    code2 = codesp2;
    code3 = codesp3;

    for i=j+1:lim2+j
        codes(i,1:N) = xor(code3, code2);
        code2 = circshift(code2, [0, -1]);
    end

    for k = 3 : lim1+2
        code2 = codesp2;
        for j=1:lim2
            i = i+1;
            codes(i, 1:N) = xor(codes(k, 1:N), code2);
            code2 = circshift(code2, [0, -1]);
        end
    end
end

%converting 0 to -1

if option == 1
    d=1:lim;
    codes(d,1:N) = 2*(codes(d,1:N)-1)+1;
end

⌨️ 快捷键说明

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