codificacion_hdb3.m

来自「HDB3 codification, a matlab program that」· M 代码 · 共 48 行

M
48
字号
%CODIFICACION EN HDB3
function [X_HDB3] = codificacion_HDB3 (x)   %SE袮L DE ENTRADA A SER CODIFICADA, X_HDB3 SE袮L TOTAL CODIFICADA
estado=1;   % ES EL ESTADO INICIAL PARA COMENZAR LA CODIFICACION 
X_HDB3=[];  % VECTOR PARA ALMACENAR LOS NUEVOS VALORES DE LA SE袮L x
temp1=0;        %ALMACENAMIENTO DE VALORES PARA X_HDB3
contCeros=0;    %VARIABLE PARA MANTENER UNA CUENTA DE CEROS CONSECUTIVOS
violacion=0;    % ALMACENA EL VALOR DE BIT DE VIOLACION PARA PODER COMPARAR
for i=1:length(x)   %LASO FOR PARA CONTAR DESDE 1 HASTA LA LONGITUD DE x
  if x(i)==1        %COMPARA SI EL VALOR DE x(i) ES 1L O OL
            contCeros=0;    %SI ENTRA EN ESTE ENCERA EL VALOR DEL CONTADOR DE CEROS
            if estado==1    %COMPARA EN QUE ESTADO SE ENCUENTRA
            temp1=x(i);     %TOMA EL VALOR DE x(i)
            estado=-x(i);   %GUARDAEL ESTADO SIGUIENTE
            else
            temp1=-x(i);    %TOMA EL VALOR DE x(i)
            estado=x(i);    %GUARDAEL ESTADO SIGUIENTE
            end
  else
      contCeros=contCeros+1;    %SI ES UN CERO INCREMENTA EL CONTADOR DE CEROS
        if contCeros==4         %VERIFICA SI EXISTEN 4 CEROS CONSECUTIVOS, DEBIDO A QUE NO PUEDE HABER EN ESTE CODIGO
            contCeros=0;        %ENCERA ELCONTADOR DE CEROS
             aux=i+3;
                         
            
                if violacion==-estado && violacion==-1  %COMPARA SI LA VIOLACION ES IGUAL AL ESTADO Y SI LA VIOLACION ES -1
                    X_HDB3(i-3)=1;      %CAMBIA DE VALOR AL TERCER ULTIMO VAOLOR LEIDO
                    estado=-1;          %ASIGNA AL ESTOD DE -1
                    temp1=1;            %ASIGNA EL VALOR DE TEMP UNO
                    violacion=-1;       %GUARDA EL ESTADO DE VIOLACION DE -1
                    
                end
                if violacion==-estado && violacion==1 %COMPARA SI LA VIOLACION ES IGUAL AL ESTADO Y SI LA VIOLACION ES -1
                    X_HDB3(i-3)=-1;     %CAMBIA DE VALOR AL TERCER ULTIMO VAOLOR LEIDO
                    estado=1;           %ASIGNA AL ESTOD DE 1
                    temp1=-1;           %ASIGNA EL VALOR DE TEMP MENOS UNO
                    violacion=1         %GUARDA EL ESTADO DE VIOLACION DE 1
                else
                    temp1=-estado;      %SI NO EXISTE MAS DE DOS CEROS CONSECUTIVOS ASIGNA EL VALOR ESTADO AL TEMP 
                    violacion=temp1;    %VIOLACION ES IGUAL TEMP, ULTIMO VALOR LEIDO
                end
        else
            temp1=0;    %SI NO EXISTE MAS DE DOS CEROS CONSECUTIVOS ASIGNA EL VALOR CERO AL TEMP1
             
        end
 end
 X_HDB3(i)=temp1;       %CARGA EL VALOR DE TEMP, QUE SE PUEDE OBTENER DESPUES DE HABER PASADO POR LO ANTERIOR MENSIONADO
end

⌨️ 快捷键说明

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