
% Interleaver
%
% Altera el orden de transmisión de los bits, para separar
% en el tiempo bits consecutivos a los efectos de que una
% ráfaga de interferencia no dañe varios bits de una
% misma palabra (cosa que los códigos de corrección de
% errores no podrían reparar).
%
function [fi] = interleaver(f,n_max_sim,N,n_cod_tipo)
%El número de filas es n_max_sim
y=n_max_sim;
%La profundidad es el número total de bits
p=N*n_max_sim*n_cod_tipo;
% x es el número de columnas
x=p/y;
na=length(f)/p;
a=1;
for k = 0:na-1,
% Escritura por filas
for i = 1:x,
for j = 1:y,
M(j,i)=f(a);
a=a+1;
end
end
% Lectura por columnas
b=1;
for j = 1:y,
for i = 1:x,
fi(k*p+b)=M(j,i);
b=b+1;
end
end
end
%
