📄 interleaving.m
字号:
function [datos_interleaving] = interleaving(datos_convolucional,Ncpc,Tx);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %
%% Archivo: interleaving.m %
%% %
%% Descripci髇: Este proceso es para "barajar" los bits a %
%% transmitir y que dos bits consecutivos no se modulen a la %
%% misma frecuencia. Es otra forma de luchar contra el %
%% desvanecimiento selectivo en frecuencia y contra los errores a %
%% r醘agas %
%% %
%% Par醡etros: %
%% entrada-->Secuencia de bits a "barajar" %
%% %
%% Resultado: Devuelve la cadena de bits convenientemente mezclados %
%% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Necesito el tama駉 del bloque a usar para "barajar" la secuencia. Dicho valor
% se coge de la tabla 223 de la Norma.
% Como vemos, el valor del bloque usado depende del mapeo que queramos
% llevar a cabo
switch Ncpc
case 1 % Para BPSK
Ncbps=192;
case 2 % Para QPSK
Ncbps=384;
case 4 % Para 16-QAM
Ncbps=768;
case 6 % Para 64-QAM
Ncbps=1152;
end
s=ceil(Ncpc/2);
if Tx==1
% En las siguientes operaciones, hay que tener muy en cuentas los sub韓dices:
% k-->韓dice del bit codificado ANTES de la primera permutaci髇
% mk-->韓dice de ese bit ANTES de la segunda permutaci髇 y DESPU蒘 de la primera
% jk-->韓dice despu閟 de la SEGUNDA permutaci髇, justo antes del mapeo de la se馻l.
k = 0:Ncbps-1;
mk = ((Ncbps/12)*mod(k,12))+floor(k/12); % Primera Permutaci髇
jk = s*floor(mk/s)+mod(mk+Ncbps-floor(12*mk/Ncbps),s); % Segunda permutaci髇
% Ahora debo de ordenar los 韓dices para saber en qu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -