📄 interleave_siso_20.m
字号:
function dout=interleave_siso_20(din, Mode)
%----------------------------------------------------------------------
% interleaver
%
% 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. inter_dat = interleave_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
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
cbps = dbps/rate;
cbpss = cbps/Nss;
Coded_add = [0:cbpss-1];
for i=1:cbpss
first_inter(i) = Nrow*(mod(Coded_add(i), Ncol)) + floor(Coded_add(i)/Ncol);
end
s=max((bpsc/2), 1);
for i=1:cbpss
second_inter(i) = (s * floor(first_inter(i)/s)) + mod( (first_inter(i) + cbpss - floor((Ncol * first_inter(i)) / cbpss)), s);
end
for iss = 0:Nss-1
for i=1:cbpss
last_inter(iss+1, i) = mod(second_inter(i) - (mod(iss*2,3) + 3*floor(iss/3)) * Nrot * bpsc,cbpss);
end
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 + -