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

📄 deinterleave_siso_20.m

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

%----------------------------------------------------------------------
%         deinterleaver
%
%       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. deinter_dat = deinterleave_siso_20(din,Mode)
%----------------------------------------------------------------------

switch Mode
    case 1
        rate = 1/2;
        bpsc = 2;
        dbps = 52;
    case 2
        rate = 3/4;
        bpsc = 2;
        dbps = 78;
    case 3
        rate = 1/2;
        bpsc = 4;
        dbps = 104;
    case 4
        rate = 3/4;
        bpsc = 4;
        dbps = 156;
    case 6
        rate = 3/4;
        bpsc = 6;
        dbps = 234;
    case 7
        rate = 5/6;
        bpsc = 6;
        dbps = 260;
end

cbps = dbps/rate;
Nss = 1;          % No. of space stream
Nrot = 11;        % 40MHz:29      20MHz:11
Ncol = 13;        % 40MHz:18      20MHz:13
Nrow = 4*bpsc;    % 40MHz:6*bpsc  20MHz:4*bpsc

cbpss = cbps/Nss;
Coded_add = [0:cbpss-1];

for iss = 0:Nss-1
    for i=1:cbpss
        first_inter(iss+1, i) = mod(Coded_add(i) + (mod(iss*2,3) + 3*floor(iss/3)) * Nrot * bpsc,cbpss);
    end
end

s=max((bpsc/2),1);

for i=1:cbpss
    second_inter(:, i) = s * floor(first_inter(:, i)/s) + mod( (first_inter(:, i) + floor(Ncol * first_inter(:, i) ./ cbpss )) , s);
end

for i=1:cbpss
    last_inter(:, i) = Ncol * second_inter(:, i) -(cbpss-1).*floor(second_inter(:, i)/Nrow);
end

for iss = 1:Nss
    for i=1:cbpss
        dout(iss, i, :) = din(iss, last_inter(iss, i)+1, :);
    end
end

⌨️ 快捷键说明

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