ieee802_16_punct_ctc.m

来自「国外大学的同志作出来的好程序」· M 代码 · 共 37 行

M
37
字号
function [codedbits, zp_info_bits]=ieee802_16_punct_ctc(info_bits, coding_type, rate);
%
%
%ieee802_16_punct_ctc
%
if ~isempty(findstr(lower(coding_type), '802_16_ctc'))
    if ~isempty(findstr(lower(coding_type), 'arp'))
        interleaver_type='arp';
    else
        interleaver_type='random';
    end
end

[sys_bits, ctc_codedbits, zp_info_bits]=ieee802_16_ctc(info_bits, interleaver_type);
[punct_codedbits, punct_vec]=ieee802_16_ctc_rate(ctc_codedbits, rate);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rn=length(punct_vec);
tval=mod(length(sys_bits), Rn);
if tval
    sys_bits=[sys_bits; zeros(Rn-tval, 1)];
end

%reshape the systematic bits.
sys_bits_mat=reshape(sys_bits, Rn, length(sys_bits)/Rn);


if size(punct_codedbits, 1)==length(sys_bits)/Rn,
    codedbits=[sys_bits_mat; punct_codedbits.'];
    codedbits=codedbits(:);
else
    disp('[ieee802_16_punct_ctc]Error: The size of sys_bits and parity bits after puncturing is not right.')
    codedbits=[];
    return;
end

⌨️ 快捷键说明

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