HDB3

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

High-Density Bipolar 3 (HDB3), ou Modified AMI Code, est un système de codage de circuit PRI et de circuit E-carrier utilisé en Amérique du Sud, en Afrique, en Europe et en Australie.

L'accès PRI en amérique du nord est basé sur un circuit T1.

Deux méthodes sont utilisées :

  • AMI (Alternate Mark Inversion) ;
  • B8ZS (Binary 8 with zero substitution).

Exemple de codage en C int main(void){ int code[T]={1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0}; int P[T]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int N[T]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int volt=-1; int viol=-1; int nbzero=0; int n=0; int incremente;

puts("Entrez votre n (HdBn)) >=2"); do{ scanf("%i",&n); } while(n<2);

for(incremente=0;incremente<T;incremente++){ if(code[incremente]==1){ if(volt==-1){ P[incremente]=1; volt=1; } else{ N[incremente]=1; volt=-1; } nbzero=0; } else{ nbzero++; if(nbzero==n+1){ hdbn(incremente,code,P,N,&volt,&viol,n); nbzero=0; } } }

for(incremente=0;incremente<T;incremente++){ printf("%i ",P[incremente]-1*N[incremente]); }

printf("\n");

return 0; }

int reset(int P[T],int N[T]){ int volt; int i; for(i=0;i<T;i++){ P[i]=0; N[i]=0 } volt=-1; return volt; }

int hdbn(int incremente, int code[T], int P[T], int N[T], int* volt, int* viol, int n){ if(*viol==1){ if(*volt==1){ N[incremente-n]=1; N[incremente]=1; *volt=-1; *viol=-1; } else{ N[incremente]=1; *volt=-1; *viol=-1; } } else{ if(*volt==1){ P[incremente]=1; *viol=1; *volt=1; } else{ P[incremente-n]=1; P[incremente]=1; *viol=1; *volt=1; } } }