mapping.m

来自「MIMO-有关差分编码,用matlab书写,」· M 代码 · 共 71 行

M
71
字号
function mapping_sequence =Maping(bit_sequence)
bit_sequence_length = length(bit_sequence);
transformbit = [0 0 0 0];
    mapping_sequence = ones(1,bit_sequence_length/2);
    for k=1:bit_sequence_length/4
       transformbit = bit_sequence(4*k-3:4*k);
        if transformbit== [0 0 0 0]
            mapping_sequence(2*k-1) = (1+j)/2;
            mapping_sequence(2*k) =0;
        end
        if transformbit== [0 0 0 1]
            mapping_sequence(2*k-1) =j/sqrt(2);
            mapping_sequence(2*k) =0;
        end
         if transformbit== [0 0 1 0]
            mapping_sequence(2*k-1) =(-1+j)/2;
            mapping_sequence(2*k) = 0;
        end
         if transformbit== [0 0 1 1]
            mapping_sequence(2*k-1) =-1/sqrt(2);
            mapping_sequence(2*k) = 0;
        end
         if transformbit== [0 1 0 0]
            mapping_sequence(2*k-1) =(-1-j)/2;
            mapping_sequence(2*k) =0;
        end
         if transformbit== [0 1 0 1]
            mapping_sequence(2*k-1) =-j/sqrt(2);
            mapping_sequence(2*k) =0;
        end
         if transformbit== [0 1 1 0]
            mapping_sequence(2*k-1) =(-1+j)/2;
            mapping_sequence(2*k) = 0;
        end
         if transformbit== [0 1 1 1]
            mapping_sequence(2*k-1) =1/sqrt(2);
            mapping_sequence(2*k) =0;
        end
         if transformbit== [1 0 0 0]
            mapping_sequence(2*k-1) = 0;
            mapping_sequence(2*k) = exp(3j*pi/8)/sqrt(2);
        end
         if transformbit== [1 0 0 1]
            mapping_sequence(2*k-1) = 0;
            mapping_sequence(2*k) =exp(5j*pi/8)/sqrt(2);
        end
         if transformbit== [1 0 1 0]
            mapping_sequence(2*k-1) =0;
            mapping_sequence(2*k) =exp(7j*pi/8)/sqrt(2);
        end
         if transformbit== [1 0 1 1]
            mapping_sequence(2*k-1) =0;
            mapping_sequence(2*k) =exp(9j*pi/8)/sqrt(2);
        end
         if transformbit== [1 1 0 0]
            mapping_sequence(2*k-1) =0;
            mapping_sequence(2*k) =exp(11j*pi/8)/sqrt(2);
        end
         if transformbit== [1 1 0 1]
            mapping_sequence(2*k-1) = 0;
            mapping_sequence(2*k) =exp(13j*pi/8)/sqrt(2);
        end
        if transformbit== [1 1 1 0]
            mapping_sequence(2*k-1) =0;
            mapping_sequence(2*k) =exp(15j*pi/8)/sqrt(2);
        end
        if transformbit== [1 1 1 1]
            mapping_sequence(2*k-1) =0;
            mapping_sequence(2*k) =exp(j*pi/8)/sqrt(2);
        end
    end

⌨️ 快捷键说明

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