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

📄 conv_encode_siso_20.m

📁 A SISO 20M OFDM system based on IEEE802.11n standard, using Matlab.
💻 M
字号:
function coded_data = conv_encode_siso_20(source_data, Mode)

%----------------------------------------------------------------------
%         Convolutional Encoder
%
%       Mode    Data_rate    Coding_rate    BPSC    CBPS    DBPS
%        1         13(Mbps)     1/2          2       104      52
%        2       19.5           3/4          2       104      78
%        3         26           1/2          4       208     104
%        4         39           3/4          4       208     156
%        6       58.5           3/4          6       312     234
%        7         65           5/6          6       312     260
%
%       ex. coded_data = conv_encode_siso_20(source_data, Mode)
%----------------------------------------------------------------------

switch Mode
    case 1
        DBPS = 52;
    case 2
        DBPS = 78;
    case 3
        DBPS = 104;
    case 4
        DBPS = 156;
    case 6
        DBPS = 234;
    case 7
        DBPS = 260;
end

J=1;

source_data = [0,0,0,0,0,0,source_data];

for I=1:2:DBPS*2
    temp_data(I) = xor(source_data(0+J),xor(source_data(1+J),xor(source_data(3+J),xor(source_data(4+J),source_data(6+J)))));
    temp_data(I+1) = xor(source_data(0+J),xor(source_data(3+J),xor(source_data(4+J),xor(source_data(5+J),source_data(6+J)))));
    J=J+1;
end

if Mode == 1 || Mode == 3   % coding rate = 1/2
    coded_data = temp_data;
elseif Mode == 2 || Mode == 4 || Mode == 6  % coding rate = 3/4
    for I=1:DBPS/3
        coded_data((I-1)*4+1) = temp_data((I-1)*6+1);
        coded_data((I-1)*4+2) = temp_data((I-1)*6+2);
        coded_data((I-1)*4+3) = temp_data((I-1)*6+3);
        coded_data((I-1)*4+4) = temp_data((I-1)*6+6);
    end
elseif Mode == 7   % coding rate = 5/6
    for I=1:52
        coded_data((I-1)*6+1) = temp_data((I-1)*10+1);
        coded_data((I-1)*6+2) = temp_data((I-1)*10+2);
        coded_data((I-1)*6+3) = temp_data((I-1)*10+3);
        coded_data((I-1)*6+4) = temp_data((I-1)*10+6);
        coded_data((I-1)*6+5) = temp_data((I-1)*10+7);
        coded_data((I-1)*6+6) = temp_data((I-1)*10+10);
    end
end

⌨️ 快捷键说明

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