cp0201_puncture.m

来自「关于MB-OFDM的最新程序 包括卷积 凿孔交织 等」· M 代码 · 共 24 行

M
24
字号
function punctured_bits = cp0201_puncture(in_bits)
numbits=1024;
[bits]=cp0201_bits(numbits);
message=bits;
[encoded_sequence]=cp0201_convlenc(message)

in_bits=encoded_sequence
 punc_patt=[1 3 4 7 9 12 13 15];
   punc_patt_size = 15;

% Remainder bits are the bits in the end of the packet that are not integer multiple of the puncture window size
num_rem_bits = rem(length(in_bits), punc_patt_size);

puncture_table = reshape(in_bits(1:length(in_bits)-num_rem_bits), punc_patt_size, fix(length(in_bits)/punc_patt_size));
tx_table = puncture_table(punc_patt,:);

%puncture the remainder bits
rem_bits = in_bits(length(in_bits)-num_rem_bits+1:length(in_bits));
rem_punc_patt = find(punc_patt<=num_rem_bits);
rem_punc_bits = rem_bits(rem_punc_patt)';

punctured_bits = [tx_table(:)' rem_punc_bits'];

stem(punctured_bits)

⌨️ 快捷键说明

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