⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recupera_trama_tu3.asv

📁 Matlab实现SONET/SDH光通信系统simulink仿真程序源代码
💻 ASV
字号:
function [sys]=Recupera_Trama_TU3(un)

[aa bb]=size(un);
%%%%%%%%%%%%%%
u=zeros(aa,680);
%%%%%%%%%%%%%%
u(:,:)=un(:,9:688);
retraso=un(1,689);
%%%%%%%%%%%%%%

%Inicializacion de Variables
i=0;
j=0;
c=(aa/9)-2;

%Calculo de ubicacion de inicio de la trama
if 0<=retraso & retraso<=84;
    i=4;
    j=retraso*8+1;
elseif 85<=retraso & retraso<=169;
     i=5;
     j=(retraso-85)*8+1;
 elseif 170<=retraso & retraso<=254;
     i=6;
     j=(retraso-170)*8+1;
elseif 255<=retraso & retraso<=339;
     i=7;
     j=(retraso-255)*8+1;
elseif 340<=retraso & retraso<=424;
     i=8;
     j=(retraso-340)*8+1;
elseif 425<=retraso & retraso<=509;
     i=9;
     j=(retraso-425)*8+1;
 elseif 510<=retraso & retraso<=594;
     i=10;
     j=(retraso-510)*8+1;
 elseif 595<=retraso & retraso<=679;
     i=11;
     j=(retraso-595)*8+1;
 elseif 680<=retraso & retraso<=764;
     i=12;
     j=(retraso-680)*8+1;
else retraso==765;
     i=13;
     j=1;
end

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

if retraso==0
    for k=1:c
        base(k,1:((85-retraso)*8))=u(i+h,j:680);
        base(k,((85-retraso)*8+1):((170-retraso)*8))=u(i+1+h,1:696);
        base(k,((170-retraso)*8+1):((255-retraso)*8))=u(i+2+h,1:696);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+3+h,1:696);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+4+h,1:696);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+5+h,1:696);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+6+h,1:696);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+7+h,1:696);
        base(k,((680-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end
    
elseif 1<=retraso & retraso<=84
    for k=1:c
        base(k,1:((85-retraso)*8))=u(i+h,j:680);
        base(k,((85-retraso)*8+1):((170-retraso)*8))=u(i+1+h,1:680);
        base(k,((170-retraso)*8+1):((255-retraso)*8))=u(i+2+h,1:680);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+3+h,1:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+4+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+5+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+6+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+7+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+8+h,1:680);
        base(k,((765-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end
    
elseif retraso==85
    for k=1:c
        base(k,1:((170-retraso)*8))=u(i+h,j:680);
        base(k,((170-retraso)*8+1):((255-retraso)*8))=u(i+1+h,1:680);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+2+h,1:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+3+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+4+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+5+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+6+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+7+h,1:680);
        base(k,((765-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 86<=retraso & retraso<=169
    for k=1:c
        base(k,1:((170-retraso)*8))=u(i+h,j:680);
        base(k,((170-retraso)*8+1):((255-retraso)*8))=u(i+1+h,1:680);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+2+h,1:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+3+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+4+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+5+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+6+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+7+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+8+h,1:680);
        base(k,((850-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end
 
elseif retraso==170
    for k=1:c
        base(k,1:((255-retraso)*8))=u(i+h,j:680);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+1+h,1:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+2+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+3+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+4+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+5+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+6+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+7+h,1:680);
        base(k,((850-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 171<=retraso & retraso<=254
    for k=1:c
        base(k,1:((255-retraso)*8))=u(i+h,j:680);
        base(k,((255-retraso)*8+1):((340-retraso)*8))=u(i+1+h,1:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+2+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+3+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+4+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+5+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+6+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+7+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+8+h,1:680);
        base(k,((935-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

elseif retraso==255
    for k=1:c
        base(k,1:((340-retraso)*8))=u(i+h,j:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+1+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+2+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+3+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+4+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+5+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+6+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+7+h,1:680);
        base(k,((935-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 256<=retraso & retraso<=339
    for k=1:c
        base(k,1:((340-retraso)*8))=u(i+h,j:680);
        base(k,((340-retraso)*8+1):((425-retraso)*8))=u(i+1+h,1:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+2+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+3+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+4+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+5+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+6+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+7+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+8+h,1:680);
        base(k,((1020-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

 elseif retraso==340
    for k=1:c
        base(k,1:((425-retraso)*8))=u(i+h,j:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+1+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+2+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+3+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+4+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+5+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+6+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+7+h,1:680);
        base(k,((1020-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 341<=retraso & retraso<=424
    for k=1:c
        base(k,1:((425-retraso)*8))=u(i+h,j:680);
        base(k,((425-retraso)*8+1):((510-retraso)*8))=u(i+1+h,1:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+2+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+3+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+4+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+5+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+6+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+7+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+8+h,1:680);
        base(k,((1105-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

elseif retraso==425
    for k=1:c
        base(k,1:((510-retraso)*8))=u(i+h,j:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+1+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+2+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+3+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+4+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+5+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+6+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+7+h,1:680);
        base(k,((1105-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 426<=retraso & retraso<=509
    for k=1:c
        base(k,1:((510-retraso)*8))=u(i+h,j:680);
        base(k,((510-retraso)*8+1):((595-retraso)*8))=u(i+1+h,1:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+2+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+3+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+4+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+5+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+6+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+7+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+8+h,1:680);
        base(k,((1190-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

elseif retraso==510
    for k=1:c
        base(k,1:((595-retraso)*8))=u(i+h,j:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+1+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+2+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+3+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+4+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+5+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+6+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+7+h,1:680);
        base(k,((1190-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

elseif 511<=retraso & retraso<=594
    for k=1:c
        base(k,1:((595-retraso)*8))=u(i+h,j:680);
        base(k,((595-retraso)*8+1):((680-retraso)*8))=u(i+1+h,1:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+2+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+3+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+4+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+5+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+6+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+7+h,1:680);
        base(k,((1190-retraso)*8+1):((1275-retraso)*8))=u(i+8+h,1:680);
        base(k,((1275-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

elseif retraso==595
    for k=1:c
        base(k,1:((680-retraso)*8))=u(i+h,j:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+1+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+2+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+3+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+4+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+5+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+6+h,1:680);
        base(k,((1190-retraso)*8+1):((1275-retraso)*8))=u(i+7+h,1:680);
        base(k,((1275-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end

 elseif 596<=retraso & retraso<=679
    for k=1:c
        base(k,1:((680-retraso)*8))=u(i+h,j:680);
        base(k,((680-retraso)*8+1):((765-retraso)*8))=u(i+1+h,1:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+2+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+3+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+4+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+5+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+6+h,1:680);
        base(k,((1190-retraso)*8+1):((1275-retraso)*8))=u(i+7+h,1:680);
        base(k,((1275-retraso)*8+1):((1360-retraso)*8))=u(i+8+h,1:680);
        base(k,((1360-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end

 elseif retraso==680
    for k=1:c
        base(k,1:((765-retraso)*8))=u(i+h,j:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+1+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+2+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+3+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+4+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+5+h,1:680);
        base(k,((1190-retraso)*8+1):((1275-retraso)*8))=u(i+6+h,1:680);
        base(k,((1275-retraso)*8+1):((1360-retraso)*8))=u(i+7+h,1:680);
        base(k,((1360-retraso)*8+1):6120)=u(i+8+h,1:680);
        h=h+9;
    end
   
elseif 681<=retraso & retraso<=764
    for k=1:c
        base(k,1:((765-retraso)*8))=u(i+h,j:680);
        base(k,((765-retraso)*8+1):((850-retraso)*8))=u(i+1+h,1:680);
        base(k,((850-retraso)*8+1):((935-retraso)*8))=u(i+2+h,1:680);
        base(k,((935-retraso)*8+1):((1020-retraso)*8))=u(i+3+h,1:680);
        base(k,((1020-retraso)*8+1):((1105-retraso)*8))=u(i+4+h,1:680);
        base(k,((1105-retraso)*8+1):((1190-retraso)*8))=u(i+5+h,1:680);
        base(k,((1190-retraso)*8+1):((1275-retraso)*8))=u(i+6+h,1:680);
        base(k,((1275-retraso)*8+1):((1360-retraso)*8))=u(i+7+h,1:680);
        base(k,((1360-retraso)*8+1):((1445-retraso)*8))=u(i+8+h,1:680);
        base(k,((1445-retraso)*8+1):6120)=u(i+9+h,1:(j-1));
        h=h+9;
    end
    
elseif retraso==783
    for k=1:c
        base(k,1:((870-retraso)*8))=u(i+h,j:696);
        base(k,((870-retraso)*8+1):((957-retraso)*8))=u(i+1+h,1:696);
        base(k,((957-retraso)*8+1):((1044-retraso)*8))=u(i+2+h,1:696);
        base(k,((1044-retraso)*8+1):((1131-retraso)*8))=u(i+3+h,1:696);
        base(k,((1131-retraso)*8+1):((1218-retraso)*8))=u(i+4+h,1:696);
        base(k,((1218-retraso)*8+1):((1305-retraso)*8))=u(i+5+h,1:696);
        base(k,((1305-retraso)*8+1):((1392-retraso)*8))=u(i+6+h,1:696);
        base(k,((1392-retraso)*8+1):((1479-retraso)*8))=u(i+7+h,1:696);
        base(k,((1479-retraso)*8+1):6264)=u(i+8+h,1:696);
        h=h+9;
    end
    
end

sys=base(:,:);

end

⌨️ 快捷键说明

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