www.gusucode.com > ​MIMO_OFDM系统的matlab仿真程序以及GUI界面的实现源码程序 > CH9/rx_deinterleave.m

    

function out_bits = rx_deinterleave(in_bits, SimulationParameters)

global SimulationConstants;

interleaver_depth = SimulationParameters.FFTPoints * get_bits_per_symbol(SimulationParameters.ModulationType);

num_symbols = length(in_bits)/interleaver_depth;

single_deintlvr_patt = rx_gen_deintlvr_patt(interleaver_depth,SimulationParameters);

deintlvr_patt = interleaver_depth*ones(interleaver_depth, num_symbols);
deintlvr_patt = deintlvr_patt*diag(0:num_symbols-1);
deintlvr_patt = deintlvr_patt+repmat(single_deintlvr_patt', 1, num_symbols);
deintlvr_patt = deintlvr_patt(:);

out_bits(deintlvr_patt) = in_bits;