sâmbătă, 4 august 2012

Coduri ciclice





2.9.1 Descrierea codurilor ciclice
            Codurile ciclice sunt coduri bloc in care cele n simboluri care formeaza un cuvant sunt considerate ca fiind coeficientii unui polinom de gradul n-1 si anume:
.
            Ca si in cazul codurilor grup simbolurile unui cuvant de cod respectiv coeficientii polinomului   pot fi reprezentati sub forma de matrice.
            Codurile ciclice au proprietatea  ca daca v este un cuvant cu sens atunci si orice permutare ciclica a simbolurilor sale este un cuvant cu sens :
Multimea tuturor cuvintelor cu sens formeaza un ideal iar multimea tuturor cuvintelor de bit formeaza o algebra . Multimea claselor de resturi modulo:
  are   elemente.
Din acestea alegem  carora le atribuim un sens si anume le atribuim sens elementelor generate de un polin 242c21c om   de gradul m numit polinom generator .
Polinomul g(x) trebuie sa fie divizor a lui p(x) iar h(x) poarta denumirea de polinom de control.


2.9.2 Codarea cuvintelor cu ajutorul polinomului generator g(x)
            In acest caz   trebuie sa fie un multiplu a lui  :   unde  este polinomul simbolurilor de informatie  Im+k
Polinomul generator este notat cu :    fiind in mod obligatoriu de grad m . Polinomul simbolurilor de control se noteaza cu :
dar      
sau    
sau    
            Cuvantul de cod fiind multiplu a lui   rezulta :  
adica polinomul simbolurilor de control se obtine prin divizarea polinomului cu polinomul generator  .
            Relatia de codare polinomiala  mai poate fi scrisa si sub forma matriciala   unde:
                                                                       k

      n

2.9.3 Codarea cu ajutorul matricii de control

            Polinomul de control   este: 
si este legat de polinomul generator prin relatia :
Cu ajutorul coeficientilor sai se formeaza matricea de control:
iar codarea se face dupa relatia bine cunoscuta :    si in plus avem: 

2.9.4 Decodarea codurilor ciclice

            Problema decodarii ciclice consta in gasirea unei corespondente intre cuvantul eronat receptionat  v'(x)  si cuvantul de eroare  ε(x), care reprezinta erorile introduse in canal.
            Daca, receptionand v'(x)  se poate calcula ε(x), atunci corectia se realizeaza cu relatia:              
            Corectorul se obtine prin insumarea simbolurilor de control receptionate c'(x). Cu simbolurile de control obtinute prin codificarea simbolurilor de informatie receptionate:
adica :
               fiind de grad mai mic decat m se poate scrie :
            Daca    conditia pe care un cuvant receptionat trebuie sa o indeplineasca ca sa fie cuvant de cod .
            Decodarea se poate face in mai multe moduri :
a)      Pe baza tabloului claselor de resturi la care pentru fiecare  ii
corespunde un   cu ajutorul caruia se face corectia pe baza relatiei :
b)      Recodarea cu ajutorul circuitelor de deplasare care realizeaza in mod automat cautarea lui E(x).
c)      Decodarea cu ajutorul registrelor de deplasare cu reactie care realizeaza aceeasi functie.
Explicam codarea si decodarea cu ajutorul registrelor de deplasare cu reactie:
RDR
Registrul de deplasare cu reactie este un circuit secvential liniar care poate functiona
autonom fara semnal din exterior numai cu semnal reactie:
             Sn-1                           Sn-2                                       S1                 S0

                                                                   ..
  gm =1                 gm-1                   gm-2         g2                     g1              g0=1
                                                                                                                    E

                                                                                                                                          
Starea registrului poate fi descrisa matricial:
Numarul de stari nenule este:                 n=2m-1

Convenim sa notam starea initiala a registrului starea:
In acest caz starile nenule ale registrului sunt:


Exemplificarea  codari si decodari cu RDR a codului ciclic o facem in cazul particular al unei probleme. Consideram un numar de 16 simboluri care se transmit pe un canal cu perturbatii care utilizeaza un cod ciclic corector de o eroare.

Sa se determine:
  a)parametri codului.

  b)sa se aleaga polinomul generator dintre polinoamele:
  c)sa se scrie matricea generatoare G si de control H.
  d)sa se scrie relatiile dintre bitii de control si cei de informatie.
  e)sa se faca codarea cu un RDR.
  f)sa se faca decodarea cu o schema ce utilizeaza un RDR.

   a)

   b)

   c)
   d)Schema de codare cu RDR:
                   
                                                           ...
                             gm-1                                                                                                  g1                       g0
  gm
            A                                                                                    C     2
  E        B                                                                                                 1

       in cazul nostru                                                                                I

         g3                                          g1                                  g0
              
                 A
S2                                     
           B                  2                   S1
                   C     
                               1
         E  i6i5i4i3c2c1c0                                                  I      i6i5i4i3
Codorul este format din RDR cu C0, C1, C2, comutatorul k si sumatoarele modulo2, S1 si S2. Pe primele 4 tacte comutatorul C este pe pozitia 1 in codor vor intra i6, i5, i4, i3, care se transmit in acelasi timp la iesire. In decursul ultimelor tacte  in registru (datorita faptului ca C®2) se introduce zero, starea finala fiind 000. La iesire vor aparea simbolurile de control c2, c1, c0, corespunzatoare iesirii sumatorului S1:
S1=St(C1)ÅSt(C0)
Avem tabelul care indica functionarea:

Tact
C
Intrare
St(C2)
St(C1)
St(C0)
Iesire
1
1
I6
I6
0
0
I6
2
1
I5
I5
I6
0
I5
3
1
I4
I6+I4
I5
I6
I4
4
1
I3
I3+I5+I6
I4+I6
I5
I3
5
2
C2
0
I3+I5+I6
I4+I6
C2=I4+I5+I6
6
2
C1
0
0
I3+I5+I6
C1=I3+I4+I6
7
2
C0
0
0
0
C0=I3+I5+I6
Acelasi lucru se poate obtine folosind relatiile matriciale care descriu starea RDR:
      
In timpul ultimelor 3 tacte C fiind in pozitia 2 simbolurile de la intrarea sumatorului S3 sunt simbolurile de control accesibile si la iesire:

2.9.5 Decodor cu registru de deplasare cu reactie
    Schema bloc este data in figura de mai jos. Unitatea de decodare contine un registru de deplasare numit principial (RP)si doi decodori DC1 si DC2.
In registrul principal se inmagazineaza cuvantul receptionat de lungime n. Aceasta inmagazinare trebuie sa dureze pana cand se receptioneaza toate simbolurile de control si se face calculul necesar.
Decodorul are un RDR identic cu cel de la codare, la celulele caruia este legat decodificatorul de erori D. Functia decodificatorului este de a recunoaste anumite stari ale registrului de deplasare cu reactie si de a emite 1 atunci cand registrul se gaseste in una din aceste stari. Acest simbol "1" se insumeaza modulo 2 cu simbolul eronat cand acesta se afla in ultima celula M0 a registrului principal efectuand in acest fel corectia erorii.

              
             Mn-1                               RP                                        M1          M0     
                      ............... .                                      E
     I     
         DC1
                                            
                                             .
                            gm-1                                 g1                       g0
      1
      2
                                      .....
                                gm-1                                                              g1                    g0
Continuam exemplul din problema propusa:          
j) Decodorul este format din registrul principal cu 7 celule RP, registrele DEC1 si DEC2 si un comutator C. Cuvantul receptionat v' este introdus in DEC1 cand comutatorul C este pe pozitia 1 si in DEC2 cand comutatorul C este pe pozitia 2; DECva asigura corectia cuvintelor  impare 1,3,5.iar DEC2 pe cele pare 2,4,6. . Semnalul de corectie se obtine la iesirile circuitelor SI1 si SI2 si se aplica celulei Mprin circuitul SAU.
Presupunem ca decodorul a receptionat cuvantul v'. In primele 7 tacte  simbolurile circuitului sant introduse in DEC1. In urmatoarele 7 tacte DEC1 determina pozitia eronata. Daca v'=v este corect  la sfarsitul primelor 7 tacte DECva ajunge la starea zero.
Pentru a vedea cum functioneaza sa presupunem ca:                                      receptionat  are simbolul eronat . 
 Schema decodorului:
v'                                                                                                                                              E
                                                                                                                                                 
                                                                                          D  SI1                                             v
                                                                                     0
                                                                                     0
                                                                                     1
                                                                                                                 SI2
                                                                    g1                     g0          A
                                                                      
                         S3                                       S1                     S0              DEC1
          1
          2                                               

                                                                                           DEC2
             
Dupa primele 7 tacte  in registrul principal de 7 celule a intrat cuvantul v' iar decodorul a ajuns in starea:  . Din acest moment DEC1determina pozitia e eronata iar din RP se ia pe rand simbolurile cuvantului de cod:
din M0 iese i6 st(M0)< i5
In continuare:
iar din M0 iese i5 ;st(M0) = i4

iar din M0 iese i4st(M0) = i3

                     
iar din M0 iese i3; st(M0)=         
Deci simbolul eronat se afla in M0 si RDR trece prin starea fixa:
Aceasta stare este recunoscuta de circuitul SI1 care formeaza impulsul de corectie aplicat celulei Mprin circuitul SAU. Impulsul de corectie este de asemenea folosit pentru aducerea pe zero a celulei C0 a DEC  prin bistabilul B. Circuitul SI2 inhiba formarea impulsului de corectie daca in decursul primelor 7 tacte a aparut starea:    T-1U

Niciun comentariu:

Trimiteți un comentariu