📄 woven.m
字号:
function [ y, test ] = woven(x, Lo, Go, Li, Gi);
global sim_consts;
% init
Leno = size(x, 2)/sim_consts.Lo + sim_consts.mo*sim_consts.enco.k ; % data length of out encoder
Leni = Leno*sim_consts.Lo/(sim_consts.Ro*sim_consts.Li) ; % data length of inner encoder
% outer encoding
out_uncoded_matrix = zeros(sim_consts.Lo, Leno);
out_uncoded_matrix(1: size(x,2)) = x( :); % write uncoded bits row-wise into a buffer consisting of Lo rows
out_coded_matrix = zeros(sim_consts.Lo, Leno/sim_consts.Ro);
for num = 1:sim_consts.Lo
out_coded_matrix(num, :) = convenc(out_uncoded_matrix(num, :), sim_consts.to); % out encoding
end
% inner encoding
inner_uncoded_matrix = zeros(sim_consts.Li, Leni); % write uncoded bits row-wise into a buffer consisting of Lo rows
inner_uncoded_matrix(1: sim_consts.Lo*Leno/sim_consts.Ro) = out_coded_matrix( :);
inner_coded_matrix = zeros(sim_consts.Li, Leni/sim_consts.Ri);
for num = 1:sim_consts.Li
inner_coded_matrix(num, :) = convenc(inner_uncoded_matrix(num, :), sim_consts.ti); % inner encoding
end
coded_bits = zeros(1, sim_consts.Li*Leni/sim_consts.Ri);
coded_bits = reshape(inner_coded_matrix, 1, sim_consts.Li*Leni/sim_consts.Ri); % inner coded bits
% antipodal modulation: +1/-1
y = 2*coded_bits - ones(size(coded_bits));
% x1 = extract(coded_bits,Gi,Li);
% x2 = reshape(out_coded_matrix,1,Leno*Lo/Ro);
% sum(xor(x1,x2));
test = out_coded_matrix(:);
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -