recupera_trama_sdh.asv

来自「matlab在通信原理中的应用」· ASV 代码 · 共 97 行

ASV
97
字号
function [sys]=Recupera_Trama_SDH(u)

load('delay');
retraso=delay

%Inicializacion de Variables
[a b]=size(u);
i=0;
j=0;
c=(a/9)-2;

%Calculo de ubicacion de inicio de la trama
if 0<=retraso & retraso<=86;
    i=4;
    j=retraso*24+1;
elseif 87<=retraso & retraso<=173;
     i=5;
     j=(retraso-87)*24+1;
 elseif 174<=retraso & retraso<=260;
     i=6;
     j=(retraso-174)*24+1;
elseif 261<=retraso & retraso<=347;
     i=7;
     j=(retraso-261)*24+1;
elseif 348<=retraso & retraso<=434;
     i=8;
     j=(retraso-348)*24+1;
elseif 435<=retraso & retraso<=521;
     i=9;
     j=(retraso-435)*24+1;
 elseif 522<=retraso & retraso<=608;
     i=10;
     j=(retraso-522)*24+1;
 elseif 609<=retraso & retraso<=695;
     i=11;
     j=(retraso-609)*24+1;
 elseif 696<=retraso & retraso<=782;
     i=12;
     j=(retraso-696)*24+1;
else retraso==783;
     i=13;
     j=1;
end

%%%%% ==== Calculo de la salida: Payload Recuperado ==== %%%%%
h=0;
base=zeros(c,18792);

if retraso==0
    for k=1:c
        base(k,1:((87-retraso)*24))=u(i+h,j:2088);
        base(k,((87-retraso)*24+1):((174-retraso)*24))=u(i+1+h,1:2088);
        base(k,((174-retraso)*24+1):((261-retraso)*24))=u(i+2+h,1:2088);
        base(k,((261-retraso)*24+1):((348-retraso)*24))=u(i+3+h,1:2088);
        base(k,((348-retraso)*24+1):((435-retraso)*24))=u(i+4+h,1:2088);
        base(k,((435-retraso)*24+1):((522-retraso)*24))=u(i+5+h,1:2088);
        base(k,((522-retraso)*24+1):((609-retraso)*24))=u(i+6+h,1:2088);
        base(k,((609-retraso)*24+1):((696-retraso)*24))=u(i+7+h,1:2088);
        base(k,((696-retraso)*24+1):18792)=u(i+24+h,1:2088);
        h=h+9;
    end
    
elseif 1<=retraso & retraso<=86
    for k=1:c
        base(k,1:((87-retraso)*24))=u(i+h,j:2088);
        base(k,((87-retraso)*24+1):((174-retraso)*24))=u(i+1+h,1:2088);
        base(k,((174-retraso)*24+1):((261-retraso)*24))=u(i+2+h,1:2088);
        base(k,((261-retraso)*24+1):((348-retraso)*24))=u(i+3+h,1:2088);
        base(k,((348-retraso)*24+1):((435-retraso)*24))=u(i+4+h,1:2088);
        base(k,((435-retraso)*24+1):((522-retraso)*24))=u(i+5+h,1:2088);
        base(k,((522-retraso)*24+1):((609-retraso)*24))=u(i+6+h,1:2088);
        base(k,((609-retraso)*24+1):((696-retraso)*24))=u(i+7+h,1:2088);
        base(k,((696-retraso)*24+1):((783-retraso)*24))=u(i+8+h,1:2088);
        base(k,((783-retraso)*24+1):18792)=u(i+9+h,1:(j-1));
        h=h+9;
    end
    
elseif retraso==87
    for k=1:c
        base(k,1:((174-retraso)*24))=u(i+h,j:2088);
        base(k,((174-retraso)*24+1):((261-retraso)*24))=u(i+1+h,1:2088);
        base(k,((261-retraso)*24+1):((348-retraso)*24))=u(i+2+h,1:2088);
        base(k,((348-retraso)*24+1):((435-retraso)*24))=u(i+3+h,1:2088);
        base(k,((435-retraso)*24+1):((522-retraso)*24))=u(i+4+h,1:2088);
        base(k,((522-retraso)*24+1):((609-retraso)*24))=u(i+5+h,1:2088);
        base(k,((609-retraso)*24+1):((696-retraso)*24))=u(i+6+h,1:2088);
        base(k,((696-retraso)*24+1):((783-retraso)*24))=u(i+7+h,1:2088);
        base(k,((783-retraso)*24+1):18792)=u(i+8+h,1:2088);
        h=h+9;
    end


end

sys=base(:,:);

end

⌨️ 快捷键说明

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