Codare digitală. Codare fizică

1. Cod binar simetric.

2. Structura codului.

3. Principii de conversie a codului paralel în serial

În timpul procesului de codificare, amplitudinea fiecărei probe cuantificate de nivelul AIM este reprezentată ca o secvență binară care conține T caractere (combinație de cod de m-biți). Pentru a determina structura unei combinații în cel mai simplu caz, trebuie să notați amplitudinea AIM în cod binar. numărarea țint, exprimată în pași de cuantizare.

În fig. Figura 5.1 prezintă diagrame de timp care explică procesul de codificare atunci când se utilizează un cod binar de cinci biți. Amplitudinea eșantioanelor care ajung la intrarea codificatorului, în acest caz, poate lua valori în intervalul # obiectiv = 0-31 pași de cuantizare condiționată, iar la ieșirea encoderului este generat un semnal digital cu PCM, care este o secvență de combinații de cod pe cinci biți.

După cum se arată mai sus, pentru transmisia de înaltă calitate a semnalelor telefonice cu cuantizare neuniformă, este necesar să se utilizeze un cod de opt biți (t=8, iar cu uniformă este de 12 biți (t=12). În practică, se folosesc următoarele tipuri de coduri binare: cod binar natural, cod binar simetric, cod binar reflex (cod Gray).

Codul binar simetric este utilizat în principal la codificarea semnalelor bipolare (de exemplu, semnalele telefonice). Structura codului și tabelul de coduri corespunzătoare acestui cod. Pentru toate eșantioanele pozitive, simbolul semnului are valoarea 1, iar pentru cele negative, 0. Pentru eșantioanele pozitive și negative de amplitudine egală, structurile combinațiilor de cod coincid complet (cu excepția bitului de semn), adică codul este simetric. De exemplu, semnalul pozitiv maxim corespunde codului 11111111, iar semnalul negativ maxim - 01111111. Valoarea absolută a pasului de cuantizare este 6=Ј/O rp/2 m ~ 1.

Codul binar natural este folosit în principal pentru codificarea semnalelor unipolare. Sunt afișate structura codului și tabelul de coduri corespunzătoare acestui cod (dacă t-b). Evident, numărul de combinații de structuri diferite este 256, semnalul minim corespunzător combinației 00000000, iar maximul -11111111. Valoarea absolută a pasului de cuantizare este 6 = £/ limită /2 t.

Folosind un cod binar natural, este posibilă codificarea semnalelor u-bipolare, oferindu-le mai întâi o polarizare. În acest caz, evident, amplitudinea probelor codificate se modifică, iar tranziția de la amplitudine de la* numărare N s> exprimat în pași de cuantizare, atunci când se utilizează un cod simetric la amplitudinea aceleiași probe I" când se utilizează un cod natural și invers se poate face după cum urmează:


|I„-128 la N a >\2$, s (# n _127 cu I n<128; Ян 1Я с +127 при Я с <0.

Codurile binare naturale și simetrice sunt cele mai simple. Atât pentru codurile naturale, cât și pentru cele simetrice, o eroare a unuia dintre simboluri poate duce la o distorsiune semnificativă a semnalului. Dacă, de exemplu, într-o combinație de cod de forma 11010011, a apărut o eroare în a cincea cifră, adică combinația 11000011 a fost acceptată, atunci amplitudinea eșantionului va fi mai mică decât valoarea adevărată cu 2 4 = 16 pași de cuantificare condiționată. Cele mai periculoase, evident, vor fi erorile din cifrele cele mai mari (P» P;b

Să luăm în considerare principiile construirii dispozitivelor de codificare și decodare, care pot fi liniare și neliniare.

Codarea liniară este codificarea unui semnal cuantificat uniform, iar codificarea neliniară este codificarea unui semnal cuantificat neuniform.

Orez. 5.1. Principii de conversie a codului paralel în serial (A)Și

Pe baza principiului de funcționare, codificatoarele sunt împărțite în codificatoare de tip numărare, encodere de tip cântărire matriceală etc. În DSP-uri se folosesc cel mai des codoare de tip cântărire, dintre care cel mai simplu este un encoder de cântărire pe biți (Fig. 5.20), ieșirile dintre care generează un cod binar natural. Principiul de funcționare al unor astfel de codificatoare este de a echilibra probele codificate cu suma curenților (tensiunilor) de referință cu anumite greutăți. Sistem Codificatorul liniar ponderat în biți conține opt celule (cu t=*8), asigurând formarea valorii cifrei corespunzătoare (1 sau 0). Fiecare celulă (cu excepția ultimei, care corespunde celei mai mici cifre de greutate) include un circuit de comparație CC (comparator) și un circuit de scădere (SC).

Dacă, de exemplu, intrarea codificatorului primește o probă cu o amplitudine ȘI obiectiv = 1746, apoi CCe generează P«-1 și un semnal cu amplitudine este primit la intrarea celei de-a șaptea celule H" Scop=1746-1286=466. La ieșirea lui CC7 obținem Pt-O și un semnal cu aceeași amplitudine #d IM = 466 va ajunge la intrarea celei de-a treia celule codificatoare. La ieșirea lui CCe obținem Re-1, iar intrarea următoarei celule va primi un semnal cu #^ it *=

466--326=146 etc. Ca rezultat, va fi generată o combinație de cod de forma 10101110 (prima cifră este cea mai semnificativă în greutate).

La codificarea semnalelor bipolare în encoder, este necesar să existe două circuite de generare de referință (PE) pentru codificarea probelor pozitive și negative.

În procesul de decodificare a semnalului, combinațiile de cod de m-biți sunt convertite în mostre AIM cu amplitudini corespunzătoare. Semnalul la ieșirea decodorului poate fi obținut ca urmare a însumării semnalelor de referință (C/ fl) ale acelor biți ai combinației de cod a căror valoare este 1. Deci, dacă combinația de cod 10101110 este recepționată la intrarea decodorului, atunci amplitudinea probei AIM la ieșirea decodorului #aim = 1286 + 325 + 86+45 + 23 = -1746.

Schema bloc a unui decodor liniar de tip cântărire este prezentată în Fig. 5.2K Sub influența semnalelor de control provenite de la echipamentul generator, următoarea combinație de cod de opt biți este scrisă în registrul de deplasare. După aceasta, sunt închise doar acele taste (Yn... Kl^) care corespund biților cu valoarea 1. Ca urmare, semnalele de referință corespunzătoare sunt recepționate de la generatorul de semnal de referință (FS) la intrarea sumator, în urma căruia se formează un AIM la ieșirea numărătoarei cu o anumită amplitudine.

Evident, dacă în timpul transmiterii unui semnal digital de-a lungul unei căi liniare apare o eroare în unul (sau mai mulți) biți ai combinației de cod, atunci amplitudinea eșantionului la ieșirea decodorului va diferi de valoarea adevărată. Dacă, de exemplu, în combinația 10101110 apare o eroare în P&, r* e* combinația 10001110 este recepționată la intrarea decodorului, atunci amplitudinea eșantionului la ieșirea decodorului este Raim = 12864-86 + 46 + 26^ 1426, adică 32& mai puțin decât amplitudinea reală de numărare egală cu 1746.

La construirea de codificatoare și decodore, este necesar să se utilizeze FE care formează un set de semnale de referință, iar raportul dintre valorile a două standarde adiacente este egal cu 2 (16,26,46,..., 1286). Ideea generală a construirii unor astfel de dispozitive este de a utiliza o sursă de semnal de referință foarte stabilă și un lanț de circuite cu un coeficient de transmisie /(=1/2). Astfel de circuite iau de obicei forma unei matrice implementate folosind rezistențe de precizie de două valori (RȘi 2R).

1DSP-urile moderne folosesc dispozitive de codificare și decodare neliniare (codecuri neliniare) care furnizează codificarea și decodificarea semnalelor cu o scară de cuantizare neuniformă într-un cod de opt biți (t-8). Următoarele metode pot fi utilizate pentru codificarea pe scară de cuantizare neuniformă:

compresia analogică, caracterizată prin compresia (compresia) intervalului dinamic al semnalului înainte de codificarea liniară și extinderea (extinderea) intervalului dinamic al semnalului după decodarea liniară;

codare neliniară, caracterizată prin codificarea semnalului în codificatoare neliniare care combină funcțiile de conversie analog-digitală și de compresor;

compresare digitală, caracterizată prin codificarea unui semnal într-un encoder liniar cu un număr mare de biți, urmată de procesarea digitală neliniară a rezultatului codificării.

În timpul comenzii analogice (Fig. 5.24), un compresor analogic (AK) și un expander (AE) sunt pornite la intrarea codificatorului liniar (LC) și, respectiv, la ieșirea decodorului liniar (LD), furnizând valoarea corespunzătoare. conversia neliniară a semnalului analogic (vezi Fig. 5.15).

Cel mai de jos nivel din ierarhia de codare este codarea fizică, care determină numărul de niveluri discrete de semnal (amplitudinea tensiunii, amplitudinea curentului, amplitudinea luminozității).

Codarea fizică are în vedere codificarea doar la cel mai de jos nivel al ierarhiei de codare - la nivel fizic și nu ia în considerare nivelurile superioare din ierarhia de codare, care includ codarea logică a diferitelor niveluri.

Din punct de vedere al codificării fizice, un semnal digital poate avea două, trei, patru, cinci, etc. niveluri de amplitudine a tensiunii, amplitudine a curentului, amplitudinea luminii.

Niciuna dintre versiunile tehnologiei Ethernet nu utilizează codificare binară directă a bitului 0 cu o tensiune de 0 volți și a bitului 1 cu o tensiune de +5 volți, deoarece această metodă duce la ambiguitate. Dacă o stație trimite șirul de biți 00010000, atunci cealaltă stație îl poate interpreta fie ca 10000, fie ca 01000, deoarece nu poate distinge „niciun semnal” de bitul 0. Prin urmare, mașina de recepție are nevoie de o modalitate de a determina în mod unic începutul, sfârșitul, și mijlocul fiecărui bit fără ajutorul unui temporizator extern. Codificarea stratului fizic a semnalului permite receptorului să se sincronizeze cu transmițătorul atunci când tensiunea se schimbă la mijlocul unei perioade de biți.

În unele cazuri, codarea fizică rezolvă problemele:

Codare logica

Al doilea nivel din ierarhia de codare este cel mai jos nivel de codificare logică cu diferite scopuri.

Împreună, codarea fizică și codarea logică formează un sistem de codare de nivel scăzut.

Formate de cod [ ]

Fiecare bit al cuvântului de cod este transmis sau înregistrat folosind semnale discrete, cum ar fi impulsuri. Modul în care codul sursă este reprezentat de anumite semnale este determinat de formatul codului. Sunt cunoscute un număr mare de formate, fiecare dintre ele având propriile avantaje și dezavantaje și este destinat utilizării în echipamente specifice.

Direcția căderii la transmiterea unui semnal unitar nu contează. Prin urmare, modificarea polarității semnalului codificat nu afectează rezultatul decodării. Poate fi transmis pe linii simetrice fără o componentă DC. Acest lucru facilitează, de asemenea, înregistrarea magnetică. Acest format este cunoscut și sub numele de Manchester 1. Este folosit în codul de adresă de timp SMPTE, care este utilizat pe scară largă pentru sincronizarea media audio și video.

Sisteme de codare pe două niveluri

NRZ (Non Return to Zero)

NRZ(Non Return to Zero, cu Engleză-  „fără a reveni la zero”) este un cod cu două niveluri. Zero logic corespunde nivelului inferior, cel logic corespunde nivelului superior. Tranzițiile informaționale au loc la limita intervalelor semnificative (moment semnificativ).

Opțiuni de reprezentare a codului NRZ

Există mai multe opțiuni pentru prezentarea codului:

  • Cod unipolar - unul logic este reprezentat de potenţialul superior, un zero logic este reprezentat de potenţialul zero;
  • Cod bipolar - unul logic este reprezentat de un potențial pozitiv, un zero logic este reprezentat de un potențial negativ.

Avantajele codului NRZ

  • Implementare simplă;
  • Viteză mare de transfer de date;
  • Un bit de pornire-oprire este utilizat pentru a sincroniza transmisia de octeți.

Dezavantajele codului NRZ

NRZI (Non Return to Zero Invertive)- cod potenţial cu inversare la unu, codul se formează prin inversarea stării când se primeşte unul logic la intrarea dispozitivului de codificare când se primeşte un zero logic, starea potenţialului nu se modifică; Această metodă este o metodă modificată Non Return to Zero (NRZ).

Deoarece codul nu este protejat de secvențe lungi de zerouri și unități logice, acest lucru poate duce la probleme de sincronizare. Prin urmare, înainte de transmitere, se recomandă pre-codificarea unei anumite secvențe de biți cu un cod care prevede codificarea (scrambler-ul este proiectat pentru a conferi proprietăți aleatorii secvenței de date transmise pentru a facilita selecția frecvenței de ceas de către receptor). Folosit în Fast Ethernet 100Base-FX și 100Base-T4.

Avantajele codului NRZI

  • Ușurință de implementare;
  • Metoda are o recunoaștere bună a erorilor (datorită prezenței a două potențiale puternic diferite);
  • Spectrul de semnal este situat în regiunea de joasă frecvență în raport cu rata de repetiție a intervalelor semnificative.

Dezavantajele codului NRZI

  • Metoda nu are proprietatea de auto-sincronizare. Chiar și cu un generator de ceas de înaltă precizie, receptorul poate face o greșeală atunci când alege momentul de captare a datelor, deoarece frecvențele celor două generatoare nu sunt niciodată complet identice. Prin urmare, la rate mari de date și secvențe lungi de unu sau zero, o nepotrivire mică a ceasului poate duce la o eroare a unui întreg ciclu de ceas și, în consecință, la citirea unei valori incorecte a bitului;
  • Al doilea dezavantaj serios al metodei este prezența unei componente de joasă frecvență, care se apropie de un semnal constant la transmiterea unor secvențe lungi de unu și zero (poate fi ocolită prin comprimarea datelor transmise). Din această cauză, multe linii de comunicație care nu asigură o conexiune galvanică directă între receptor și sursă nu acceptă acest tip de codare. Prin urmare, în rețele, codul NRZ este utilizat în principal sub forma diferitelor sale modificări, în care sunt eliminate atât autosincronizarea proastă a codului, cât și problemele cu componenta constantă.

Codarea Manchester

Codarea Manchester

Cu codificarea Manchester, fiecare măsură este împărțită în două părți. Informațiile sunt codificate de potențiale scăderi la mijlocul fiecărui ciclu de ceas. Există două variante de codificare Manchester:

La începutul fiecărui ciclu de ceas, poate apărea o scădere a semnalului superior dacă trebuie să reprezentați mai multe uni sau zerouri la rând. Deoarece semnalul se schimbă cel puțin o dată pe ciclu de transmisie a unui bit de date, codul Manchester are proprietăți de auto-sincronizare. Prezența obligatorie a unei tranziții în centrul bitului face ușoară izolarea semnalului de ceas. Discrepanța admisă în frecvențele de transmisie este de până la 25% (asta înseamnă că codul Manchester-2 este cel mai rezistent la desincronizare, se autosincronizează în fiecare bit de informație transmis).

Densitatea codului 1 bit/hertz. În spectrul unui semnal codificat de Manchester-2, există 2 frecvențe - frecvența de transmisie și jumătate din frecvența de transmisie (se formează când 0 și 1 sau 1 și 0 sunt în apropiere. La transmiterea unei secvențe ipotetice de numai 0 sau 1 , doar frecvența de transmisie va fi prezentă în spectru).

Avantajele codării Manchester

  • Nu există o componentă constantă (semnalul se modifică la fiecare ciclu de transfer de date)
  • Banda de frecvență în comparație cu codarea NRZ - armonica fundamentală la transmiterea unei secvențe de uni sau zerouri are o frecvență de N Hz, iar cu o secvență constantă (când se transmit alternante uni și zerouri) - N/2 Hz.
  • Se auto-sincronizează, adică nu necesită o codificare specială a pulsului de ceas, care ar ocupa o bandă de date și, prin urmare, este codul cel mai dens pe unitate de frecvență.
  • Capacitatea de a asigura izolare galvanică folosind un transformator, deoarece nu are o componentă constantă
  • Al doilea avantaj important este că nu este nevoie de sincronizarea biților (ca în codul NRZ) și, ca urmare, datele pot fi transmise într-un rând atâta timp cât se dorește, motiv pentru care densitatea datelor în fluxul general de cod. se apropie de 100% (de exemplu, pentru NRZ 1- 8-0 este egal cu 80%).

Codul Miller

Codul Miller (numit uneori cu trei frecvențe) este un cod bipolar cu două niveluri în care fiecare bit de informație este codificat printr-o combinație de doi biți (00, 01,10,11), iar tranzițiile de la o stare la alta sunt descrise de o grafic. Odată cu sosirea continuă a zerourilor logice sau a unurilor la codificator, polaritatea comută cu un interval T și trecerea de la transmiterea unora la transmiterea zerourilor cu un interval de 1,5T. Când secvența 101 ajunge la codificator, are loc un interval de 2T, din acest motiv această metodă de codificare se numește cu trei frecvențe.

Avantaje

  • Nu există redundanță în cod (nu există combinații speciale pentru sincronizare);
  • Capacitatea de a se autosincroniza (codul în sine conține principiul prin care se garantează sincronizarea);
  • Codul Miller are jumătate din lățimea de bandă față de codarea Manchester.

Defecte

  • Prezența unei componente constante, în timp ce componenta de joasă frecvență este, de asemenea, destul de mare, ceea ce este depășit în codul pătrat Miller modificat.

Sisteme de codare pe trei niveluri

RZ (revenire la zero)

Codul AMI utilizează următoarele reprezentări de biți:

  • biții 0 sunt reprezentați de tensiune zero (0 V)
  • biții 1 sunt reprezentați alternativ prin -U sau +U (V)

HDB3 (Ordinul al treilea bipolar de înaltă densitate)

Codul HDB3 (codul de ordinul trei bipolar de înaltă densitate) corectează orice 4 zerouri consecutive din secvența originală. Regula de formare a codului este următoarea: fiecare 4 zerouri sunt înlocuite cu 4 simboluri care conțin cel puțin un semnal V Pentru a suprima componenta DC, polaritatea semnalului V alternează în timpul înlocuirilor succesive. Există două metode de înlocuire:

  1. Dacă înainte de înlocuire codul sursă conținea un număr impar de unități, atunci se folosește secvența 000V
  2. Dacă înainte de înlocuire codul sursă conținea un număr par de uni, atunci se folosește secvența de 100V

Semnal V al unității de polaritate interzisă pentru un semnal dat

La fel ca AMI, numai codificarea secvențelor de patru zerouri este înlocuită cu codul -V/0, 0, 0, -V sau +V/0, 0, 0, +V - în funcție de faza anterioară a semnalului și numărul de unu din semnal, precedând o anumită secvență de zerouri.

MLT-3

Codare MLT-3

MLT-3 (Transmisie cu mai multe niveluri - 3) (transmisie pe mai multe niveluri în engleză)- o metodă de codare care utilizează trei niveluri de semnal. Metoda se bazează pe comutarea ciclică a nivelurilor -U, 0, +U. Unul corespunde unei tranziții de la un nivel de semnal la altul. La fel ca în metoda NRZI, atunci când este transmis un zero logic, semnalul nu se modifică. Metoda a fost dezvoltată de Cisco Systems pentru a fi utilizată în rețelele FDDI pe bază de cupru, cunoscute sub numele de CDDI. Folosit și în Fast Ethernet 100BASE-TX. Una corespunde unei tranziții de la un nivel de semnal la altul, iar schimbarea nivelului de semnal are loc secvenţial, ținând cont de tranziția anterioară. Când se transmite zero, semnalul nu se schimbă.

Avantajele codului MLT-3

  • În cazul celei mai frecvente comutări de nivel (o secvență lungă de unele), sunt necesare patru tranziții pentru a finaliza ciclul. Acest lucru permite ca frecvența purtătorului să fie redusă cu un factor de patru în raport cu frecvența ceasului, făcând MLT-3 o metodă convenabilă atunci când se utilizează fire de cupru ca mediu de transmisie.
  • Acest cod, ca și NRZI, necesită pre-codare. Folosit în Fast Ethernet 100Base-TX.

Cod ternar hibrid (Engleză)Rusă

Bit de intrare Statul anterior
la iesire
Bit de ieșire
0 +
0
0
1 +
0 +

4B3T

4B3T(4 Binare 3 Ternare, când 4 simboluri binare sunt transmise folosind 3 simboluri ternare) - semnalul de la ieșirea codificatorului, conform codului 4B3T, este pe trei niveluri, adică un semnal cu trei nivele de potențial este generat la ieșirea codificatorului. Codul este generat, de exemplu, conform tabelului de codificare MMS43. Tabel de codificare:

Tabel de codare MMS 43
Intrare Offset DC acumulat
1 2 3 4
0000 + 0 + (+2) 0−0 (−1)
0001 0 − + (+0)
0010 + − 0 (+0)
0011 0 0 + (+1) − − 0 (−2)
0100 − + 0 (+0)
0101 0 + + (+2) − 0 0 (−1)
0110 − + + (+1) − − + (−1)
0111 − 0 + (+0)
1000 + 0 0 (+1) 0 − − (−2)
1001 + − + (+1) − − − (−3)
1010 + + − (+1) + − − (−1)
1011 + 0 − (+0)
1100 + + + (+3) − + − (−1)
1101 0 + 0 (+1) − 0 − (−2)
1110 0 + − (+0)
1111 + + 0 (+2) 0 0 − (−1)

Tabel de decodare:

Ternar Binar Ternar Binar Ternar Binar
0 0 0 N / A − 0 0 0101 + − − 1010
+ 0 + 0000 − + + 0110 + 0 − 1011
0 − 0 0000 − − + 0110 + + + 1100
0 − + 0001 − 0 + 0111 − + − 1100
+ − 0 0010 + 0 0 1000 0 + 0 1101
0 0 + 0011 0 − − 1000 − 0 − 1101
− − 0 0011 + − + 1001 0 + − 1110
− + 0 0100 − − − 1001 + + 0 1111
0 + + 0101 + + − 1010 0 0 − 1111

Sisteme cu codare pe patru niveluri

2B1Q (cod potențial 2B1Q)

Avantajul metodei 2B1Q

  • Viteza semnalului acestei metode este de două ori mai mică decât cea a codurilor NRZ și AMI, iar spectrul semnalului este de două ori mai îngust. Prin urmare, folosind codul 2B1Q, puteți transfera date de două ori mai rapid pe aceeași linie.

Dezavantajele metodei 2B1Q

  • Implementarea acestei metode necesită un transmițător mai puternic și un receptor mai complex, care trebuie să facă distincția între cele patru niveluri.

Informații generale

După cum se știe, pentru a transmite informații, acestea sunt prezentate sub forma unui mesaj, cum ar fi text. În acest caz, mesajul este format dintr-un anumit set de simboluri (litere). Se numește setul de caractere din care este format un mesaj alfabetul primar. Alfabetul primar conține de obicei un număr mare de caractere, de exemplu, în limba rusă, alfabetul primar este de 33 de caractere (litere). Când un mesaj este transmis, acesta este afectat de interferență, ceea ce duce la o modificare a simbolurilor mesajului și, deoarece numărul simbolurilor este relativ mare și probabilitatea apariției lor este aceeași, este destul de dificil să restabiliți mesajul original. . Prin urmare, se face o tranziție de la alfabetul primar cu un număr mare de simboluri la alfabetul secundar cu un număr mic de simboluri. Deoarece numărul de caractere din alfabetul secundar este mai mic, devine mai ușor să reconstruiți mesajul original. Astfel, se poate spune că, alfabetul secundar Acesta este un set de caractere cu care sunt afișate caracterele alfabetului principal. Procesul de tranziție de la alfabetul primar la afișarea secundară este numit codificare. Setul de elemente și regula în conformitate cu care se realizează trecerea de la alfabetul primar la afișarea secundară se numește cod. În timpul procesului de codificare, fiecărui caracter al alfabetului primar îi corespunde un anumit set de simboluri ale alfabetului secundar. Secvența de caractere din alfabetul secundar corespunzătoare unui caracter din alfabetul primar se numește combinație de coduri. Pentru a restabili corect mesajul original codificat, este necesar ca combinațiile de coduri ale diferitelor caractere ale alfabetului primar să nu fie repetate.

Principalele sarcini de codare cresc imunitatea la zgomot a mesajelor transmise, elimină redundanța mesajelor codificate și protejează informațiile împotriva accesului neautorizat (în afara interceptării).

Codarea automată este efectuată într-un dispozitiv numit codificator, iar procesul de decodare inversă are loc în decodor. Se numește un dispozitiv care combină un encoder și un decodor codec.

Sistemul de transmitere a mesajelor de codificare este prezentat în figura 1.

Figura 1 - Schema bloc a unui sistem de transmisie cu codare de semnal

Sursa de mesaje (MS) generează un mesaj, care este convertit într-un semnal în convertorul mesaj-la-semnal (MSC1). Semnalul analogic de la PSS1 intră într-un convertor analog-digital (ADC) unde semnalul analogic este convertit în digital. Semnalul digital intră în codificatorul sursă. În codificatorul sursă, redundanța este eliminată din mesajul codificat, ceea ce permite creșterea vitezei de transmitere a informațiilor în canal. Secvența de cod Ai obținută la ieșirea codificatorului intră în codificatorul canalului. Codificatorul de canal efectuează codificare pentru a crește imunitatea semnalului la zgomot. Pentru această codificare se folosesc coduri de corecție (rezistente la zgomot). Secvența Bip obținută în codificatorul de canal intră în canalul de comunicație. Sub influența interferenței N(t) care acționează în canal, sunt posibile distorsiuni ale semnalului recepționat, manifestate prin modificări ale elementelor secvenței de cod. Secvența Bip’ primită de la canal intră în canalul codificatorului. Decodifică și corectează (corectează) erorile. Secvența Ai’ obținută la ieșire intră în decodorul sursă, în care se restabilește redundanța mesajului codificat. Semnalul merge apoi la un convertor digital-analogic (DAC), unde semnalul digital este convertit în analog. Semnalul intră apoi în convertorul semnal-la-mesaj (SMS2), unde este convertit într-o formă convenabilă pentru destinatar. Mesajul primit este perceput de destinatar (RS).

Parametrii codului

Baza codului (m) - corespunde numărului de elemente care alcătuiesc alfabetul secundar, corespunde sistemului numeric. De exemplu, în codul binar, caracterele pot lua două valori „0” și „1” sau „.” Și "-".

Adâncimea de biți a combinației de cod (n) — corespunde numărului de elemente care alcătuiesc combinația de coduri. De exemplu, pentru combinația de cod 100110, adâncimea de biți este 6.

Capacitate cod (N 0 ) — corespunde numărului de combinații de coduri posibile pentru o anumită bază și adâncime de biți:

N 0 = m n.

Acest indicator se aplică codurilor uniforme.

Numărul de mesaje de codatNA— corespunde numărului de caractere din alfabetul primar. De exemplu, pentru alfabetul rus Na = 33.

Pentru codurile de corectare se introduc următorii parametri.

Greutatea combinației de coduri (W) — corespunde numărului de elemente diferite de zero din combinația de coduri. De exemplu, pentru combinația de coduri 11011 greutatea este W = 4.

distanta Hamming (d ij) — arată câte cifre diferă o combinație de cod de alta. Acest parametru este definit ca ponderea combinației de coduri obținute ca rezultat al adunării modulo a două dintre cele două combinații luate în considerare

Distanța codului (d 0) este cea mai mică distanță Hamming pentru un anumit cod. Pentru a determina d 0, se determină distanța Hamming pentru toate perechile posibile de combinații de coduri, după care este selectată cea mai mică. De exemplu, pentru un cod format din trei combinații de coduri 100101, 011010, 100011, distanța codului va fi egală cu

Viteza relativă a codului (RLa)— arată numărul relativ de combinații de coduri permise.

Rk =Buturuga 2 N / A/ Buturuga 2 N 0 .

Redundanța codului (cLa) — arată numărul relativ de combinații de coduri interzise.

cLa = 1 – RLa.

Capacitatea de corectare a codului— este determinată de multiplicitatea erorilor detectate (q osh) și corectabile (q și osh), prin care înțelegem numărul garantat de erori detectate și corectate în combinațiile de coduri prin cod. De exemplu, dacă q o osh = 1, atunci codul este capabil să detecteze o eroare în orice bit al combinației acceptate, cu condiția să existe doar unul, iar dacă q și osh = 1, atunci codul poate corecta o eroare în orice fragment din combinația acceptată, cu condiția ca ea să fie una.

Clasificarea codurilor

Clasificarea generală a codurilor este prezentată în diagramă (Figura 2).

Binar- acestea sunt coduri a căror bază este egală cu două (m=2), exemple de astfel de coduri pot fi cod Morse, cod binar liniar.

Multi-poziție sunt coduri a căror bază este mai mare de doi (m>2).

Uniformă- acestea sunt coduri, ale căror combinații de coduri au aceeași adâncime de biți (n=const), exemple de astfel de coduri pot fi coduri ciclice, MTK-3.

Neuniformă- acestea sunt coduri ale căror combinații de coduri au adâncimi de biți diferite (n? const), exemple de astfel de coduri pot fi codul Shannon-Fano, codul Huffman, codul Morse.

Simplu- acestea sunt coduri în care toate combinațiile de coduri posibile sunt folosite pentru a transmite un mesaj (N 0 =N a). Astfel de coduri nu au capacitatea de a detecta și corecta erorile în combinațiile de coduri.

Figura 2 - Clasificarea codurilor

Redundant- acestea sunt coduri în care o parte din combinațiile de coduri este folosită pentru a transmite mesaje ( combinatii permise), iar combinațiile rămase nu sunt folosite pentru a transmite mesaje ( combinații interzise), adică pentru astfel de coduri N 0 >N a . Astfel de coduri sunt capabile să detecteze și să corecteze erorile în combinațiile de coduri.

Consecutiv- acestea sunt coduri ale căror biți de combinații de cod sunt transmise secvenţial unul după altul. Astfel de coduri sunt folosite pentru a transmite mesaje către canalele de comunicare (cod Morse, MTK-3, HDB-3).

Paralel- acestea sunt coduri ale căror biți de combinații de cod sunt transmise simultan. Astfel de coduri sunt folosite în tehnologia microprocesoarelor și pot include, de asemenea, coduri cu mai multe frecvențe utilizate în centralele telefonice coordonate.

La codificarea digitală a informațiilor discrete, se folosesc coduri de potențial și impuls.

În codurile potențiale, doar valoarea potențială a semnalului este folosită pentru a reprezenta cele și zerouri logice, iar picăturile sale, care formează impulsuri complete, nu sunt luate în considerare. Codurile de impulsuri vă permit să reprezentați date binare fie ca impulsuri cu o anumită polaritate, fie ca parte a unui impuls - o diferență de potențial într-o anumită direcție.

Cerințe pentru metodele de codare digitală

Atunci când utilizați impulsuri dreptunghiulare pentru a transmite informații discrete, este necesar să alegeți o metodă de codare care atinge simultan mai multe obiective:

La aceeași rată de biți, avea cea mai mică lățime de spectru a semnalului rezultat;

Sincronizare asigurată între emițător și receptor;

Posedă capacitatea de a recunoaște greșelile;

A avut un cost redus de implementare.

Un spectru mai restrâns de semnale permite uneia și aceleiași linii (cu aceeași lățime de bandă) să obțină o rată de transfer de date mai mare. În plus, spectrul semnalului este adesea necesar să nu aibă componentă DC, adică prezența unui curent continuu între emițător și receptor. În special, utilizarea diferitelor circuite de izolare galvanică a transformatorului împiedică trecerea curentului continuu.

Sincronizarea emițătorului și receptorului este necesară pentru ca receptorul să știe exact în ce moment este necesar să citească informații noi de pe linia de comunicație. Această problemă este mai dificil de rezolvat în rețele decât atunci când se schimbă date între dispozitive aflate în apropiere, de exemplu, între unitățile din interiorul unui computer sau între un computer și o imprimantă. La distanțe scurte, o schemă bazată pe o linie de comunicație separată a ceasului (Figura) funcționează bine, astfel încât informațiile să fie eliminate din linia de date numai în momentul în care sosește pulsul ceasului. În rețele, utilizarea acestei scheme provoacă dificultăți din cauza eterogenității caracteristicilor conductoarelor din cabluri. Pe distanțe lungi, viteza neuniformă de propagare a semnalului poate face ca pulsul de ceas să ajungă atât de târziu sau înaintea semnalului de date corespunzător încât bitul de date este sărit sau citit din nou. Un alt motiv pentru care rețelele refuză să folosească impulsuri de ceas este acela de a salva conductorii în cabluri scumpe.

Prin urmare, rețelele folosesc așa-numitele coduri de auto-sincronizare, ale căror semnale poartă instrucțiuni pentru transmițător, în ce moment în timp este necesar să recunoască următorul bit (sau mai mulți biți, dacă codul este concentrat pe mai mult de două stări de semnal). ). Orice schimbare bruscă a semnalului - așa-numita margine - poate servi ca un bun indiciu pentru sincronizarea receptorului cu transmițătorul.

Când se utilizează sinusoide ca semnal purtător, codul rezultat are proprietatea de auto-sincronizare, deoarece modificarea amplitudinii frecvenței purtătoare permite receptorului să determine momentul în care apare codul de intrare.

Recunoașterea și corectarea datelor distorsionate este dificil de realizat folosind mijloacele stratului fizic, așa că cel mai adesea această muncă este întreprinsă de protocoalele care se află mai sus: canal, rețea, transport sau aplicație. Pe de altă parte, recunoașterea erorilor la nivelul fizic economisește timp, deoarece receptorul nu așteaptă ca cadrul să fie complet plasat în buffer, ci îl renunță imediat când recunoaște biți eronați în cadrul cadru.

Cerințele pentru metodele de codificare sunt reciproc contradictorii, prin urmare fiecare dintre metodele de codare digitală populare discutate mai jos are propriile avantaje și dezavantaje în comparație cu altele.

Cod potențial fără a reveni la zero

În fig. 2.16 prezintă metoda de codificare potențială menționată anterior, numită și codificare fără revenire la zero (NonReturntoZero, NRZ). Numele de familie reflectă faptul că la transmiterea unei secvențe de unități, semnalul nu revine la zero în timpul ciclului de ceas (cum vom vedea mai jos, în alte metode de codificare are loc o revenire la zero în acest caz). Metoda NRZ este simplu de implementat, are o recunoaștere bună a erorilor (datorită a două potențiale puternic diferite), dar nu are proprietatea de auto-sincronizare. La transmiterea unei secvențe lungi de unu sau zero, semnalul pe linie nu se modifică, astfel încât receptorul nu poate determina din semnalul de intrare momentele în timp în care este necesară citirea din nou a datelor. Chiar și cu un generator de ceas de înaltă precizie, receptorul poate face o greșeală cu momentul colectării datelor, deoarece frecvențele celor două generatoare nu sunt niciodată complet identice. Prin urmare, la rate mari de date și secvențe lungi de unu sau zero, o nepotrivire mică a ceasului poate duce la o eroare a unui întreg ciclu de ceas și, în consecință, la citirea unei valori incorecte a biților.

Un alt dezavantaj serios al metodei NRZ este prezența unei componente de joasă frecvență care se apropie de zero atunci când transmit secvențe lungi de unu sau zero. Din această cauză, multe canale de comunicație care nu asigură o conexiune galvanică directă între receptor și sursă nu acceptă acest tip de codare. Drept urmare, codul NRZ nu este utilizat în rețele în forma sa pură. Cu toate acestea, sunt utilizate diversele sale modificări, care elimină atât autosincronizarea slabă a codului NRZ, cât și prezența unei componente constante. Atractivitatea codului NRZ, care merită îmbunătățirea acestuia, este frecvența fundamentală destul de scăzută fo, care este egală cu N/2 Hz, așa cum a fost arătat în secțiunea anterioară. În alte metode de codificare, cum ar fi Manchester, armonica fundamentală are o frecvență mai mare.

Metoda de codare bipolară cu inversare alternativă

Una dintre modificările metodei NRZ este metoda de codare bipolară cu inversare alternativă (Bipolar Alternate Mark Inversion, AMI). Această metodă (Fig. 2.16, b) utilizează trei niveluri potențiale - negativ, zero și pozitiv. Pentru a codifica un zero logic, se folosește un potențial zero, iar unul logic este codificat fie de un potențial pozitiv, fie de unul negativ, potențialul fiecărei unități noi fiind opus potențialului precedent.

Codul AMI elimină parțial DC și lipsa problemelor de auto-sincronizare inerente codului NRZ. Acest lucru se întâmplă la transmiterea unor secvențe lungi. În aceste cazuri, semnalul pe linie este o secvență de impulsuri multipolare cu același spectru ca și codul NRZ, care transmit alternativ zero și unu, adică fără componentă constantă și cu o armonică fundamentală de N/2 Hz ( unde N este rata de biți a transferului de date). Secvențele lungi de zerouri sunt, de asemenea, periculoase pentru codul AMI, precum și pentru codul NRZ - semnalul degenerează într-un potențial constant de amplitudine zero. Prin urmare, codul AMI necesită îmbunătățiri suplimentare, deși sarcina este simplificată - tot ce rămâne este să se ocupe de secvențe de zerouri.

În general, pentru diferite combinații de biți pe o linie, utilizarea codului AMI are ca rezultat un spectru de semnal mai îngust decât codul NRZ și, prin urmare, o capacitate de linie mai mare. De exemplu, la transmiterea alternantelor unu și zero, armonica fundamentală fo are o frecvență de N/4 Hz. Codul AMI oferă, de asemenea, unele capacități pentru recunoașterea semnalelor eronate. Astfel, o încălcare a alternanței stricte a polarității semnalului indică un impuls fals sau dispariția unui impuls corect din linie. Un semnal cu polaritate incorectă se numește încălcare a semnalului.

Codul AMI folosește nu două, ci trei niveluri de semnal pe linie. Stratul suplimentar necesită o creștere a puterii transmițătorului de aproximativ 3 dB pentru a oferi aceeași fidelitate a biților pe linie, ceea ce este un dezavantaj comun al codurilor cu stări multiple de semnal în comparație cu codurile care disting doar două stări.

Cod potențial cu inversare la unu

Există un cod similar cu AMI, dar cu doar două niveluri de semnal. La transmiterea unui zero, transmite potențialul care a fost setat în ciclul anterior (adică nu îl modifică), iar la transmiterea unui unu, potențialul este inversat la cel opus. Acest cod se numește un cod potențial cu inversare la unu

(NonReturntoZerowithonesInverted,NRZI). Acest cod este convenabil în cazurile în care utilizarea unui al treilea nivel de semnal este extrem de nedorită, de exemplu în cablurile optice, în care două stări de semnal sunt recunoscute în mod constant - lumină și întuneric. Două metode sunt utilizate pentru a îmbunătăți codurile potențiale precum AMI și NRZI. Prima metodă se bazează pe adăugarea de biți redundanți care conțin logici la codul sursă. Evident, în acest caz, secvențele lungi de zerouri sunt întrerupte și codul devine auto-sincronizant pentru orice date transmise. De asemenea, componenta constantă dispare, ceea ce înseamnă că spectrul semnalului se îngustează și mai mult. Dar această metodă reduce capacitatea utilă a liniei, deoarece unitățile redundante de informații despre utilizator nu sunt transportate. O altă metodă se bazează pe „amestecarea” preliminară a informațiilor inițiale, astfel încât probabilitatea de apariție a unor și zerouri pe linie să devină apropiată. Dispozitivele sau blocurile care efectuează o astfel de operație se numesc scramblere (scramble-dump, asamblare dezordonată). La codificare, se folosește un algoritm binecunoscut, astfel încât receptorul, după ce a primit date binare, le transmite unui decriptator, care restabilește secvența inițială de biți. În acest caz, biții în exces nu sunt transmiși pe linie. Ambele metode se referă mai degrabă la codificare logică decât fizică, deoarece nu determină forma semnalelor pe linie. Ele sunt studiate mai detaliat în secțiunea următoare.

Cod puls bipolar

Pe lângă codurile potențiale, codurile de impuls sunt, de asemenea, utilizate în rețele, atunci când datele sunt reprezentate de un impuls complet sau o parte din acesta - o margine. Cel mai simplu caz al acestei abordări este un cod de impuls bipolar, în care unul este reprezentat printr-un impuls de o polaritate, iar zero printr-o alta (Fig. 2.16, c). Fiecare puls durează o jumătate de bătaie. Un astfel de cod are proprietăți excelente de auto-sincronizare, dar o componentă constantă poate fi prezentă, de exemplu, atunci când se transmite o secvență lungă de unu sau zero. În plus, spectrul său este mai larg decât cel al codurilor potențiale. Astfel, la transmiterea tuturor zerourilor sau unuurilor, frecvența armonicii fundamentale a codului va fi egală cu N Hz, care este de două ori mai mare decât armonica fundamentală a codului NRZ și de patru ori mai mare decât armonica fundamentală a codului AMI. la transmiterea alternante a unora si zerourilor. Datorită spectrului prea larg, codul pulsului bipolar este rar folosit.

Codul Manchester

În rețelele locale, până de curând, cea mai comună metodă de codare a fost așa-numitul cod Manchester (Fig. 2.16, d). Este folosit în tehnologiile Ethernet și TokenRing.

Codul Manchester folosește o diferență de potențial, adică marginea unui impuls, pentru a codifica unii și zerourile. Cu codificarea Manchester, fiecare măsură este împărțită în două părți. Informațiile sunt codificate de potențiale scăderi care apar la mijlocul fiecărui ciclu de ceas. Unul este codificat de o margine de la un nivel de semnal scăzut la unul ridicat, iar un zero este codificat de o margine inversă. La începutul fiecărui ciclu de ceas, poate apărea o scădere a semnalului superior dacă trebuie să reprezentați mai multe uni sau zerouri la rând. Deoarece semnalul se schimbă cel puțin o dată pe ciclu de transmisie a unui bit de date, de ex. Codul Manchester are proprietăți bune de auto-sincronizare. Lățimea de bandă a codului Manchester este mai îngustă decât cea a pulsului bipolar. De asemenea, nu are o componentă constantă, iar armonica fundamentală în cel mai rău caz (când se transmite o secvență de uni sau zerouri) are o frecvență de N Hz, iar în cel mai bun caz (când se transmite alternant uni și zerouri) este egală. la N / 2 Hz, ca și în cazul codurilor AMI sau NRZ. În medie, lățimea de bandă a codului Manchester este de o ori și jumătate mai îngustă decât cea a codului de impuls bipolar, iar armonica fundamentală fluctuează în jurul valorii de 3N/4. Codul Manchester are un alt avantaj față de codul pulsului bipolar. Acesta din urmă utilizează trei niveluri de semnal pentru transmiterea datelor, în timp ce cel de la Manchester utilizează două.

Cod potențial 2B1 Q

În fig. Figura 2.16d prezintă un cod potențial cu patru nivele de semnal pentru codificarea datelor. Acesta este un cod 2B1Q, al cărui nume reflectă esența sa - fiecare doi biți (2B) sunt transmisi într-un ciclu de ceas de un semnal având patru stări (1Q). Perechea de biți 00 corespunde unui potențial de -2,5 V, perechea de biți 01 corespunde unui potențial de -0,833 V, perechea 11 corespunde unui potențial de +0,833 V, iar perechea 10 corespunde unui potențial de +2,5 V. Cu această codificare metoda, sunt necesare măsuri suplimentare pentru a combate secvențele lungi de perechi de biți identice, deoarece în acest caz semnalul se transformă într-o componentă constantă. Cu alternarea aleatorie a biților, spectrul semnalului este de două ori mai îngust decât cel al codului NRZ, deoarece la aceeași rată de biți durata ceasului este dublată. Astfel, folosind codul 2B1Q, puteți transfera date pe aceeași linie de două ori mai repede decât folosind codul AMI sau NRZI. Cu toate acestea, pentru a o implementa, puterea emițătorului trebuie să fie mai mare, astfel încât cele patru niveluri să fie clar distinse de receptor pe fundalul interferenței.

În timpul procesului de codificare, amplitudinea fiecărei probe cuantificate de nivelul AIM este reprezentată ca o secvență binară care conține simboluri (combinație de cod de biți). Pentru a determina structura unei combinații în cel mai simplu caz, trebuie să scrieți în cod binar amplitudinea eșantionului AIM ", exprimată în pași de cuantizare. În acest caz, puteți utiliza relația.

unde a = (0, 1) este starea bitului corespunzător al combinației; - greutatea bitului corespunzător în trepte de cuantificare condiționată.

De exemplu, dacă =5, a = 26, atunci combinația de coduri va avea structura 11010 (prima cifră este cea mai semnificativă în greutate), deci ak. Secvența de combinații de coduri de biți este un semnal în bandă de bază PCM, numit și digital.

În fig. Figura 5.16 prezintă diagrame de timp care explică procesul de codificare atunci când se utilizează un cod binar de cinci biți. Amplitudinea eșantioanelor primite la intrarea codificatorului, în acest caz, poate lua valori în intervalul = 0-31 pași convenționali de cuantizare, iar la ieșirea encoderului este generat un semnal digital cu PCM, care este o secvență de combinații de coduri pe cinci biți.

După cum se arată mai sus, pentru transmisia de înaltă calitate a semnalelor telefonice cu cuantizare neuniformă, este necesar să se utilizeze un cod de opt biți (=8, iar cu cuantizare uniformă, un cod de 12 biți (=12). În practică, următoarele se folosesc tipuri de coduri binare: cod binar natural, cod binar simetric, cod binar reflex (cod gri).

Codul binar simetric este utilizat în principal la codificarea semnalelor bipolare (de exemplu, semnalele telefonice). În fig. Figura 2.17 prezintă structura codului și tabelul de coduri corespunzător acestui cod. Pentru toate probele I pozitive simbolul semnului are valoarea 1, iar pentru probele I negative 0. Pentru probele pozitive și negative egale în amplitudine I, structurile combinațiilor de cod coincid complet I (cu excepția bitului de semn), adică codul este simetric. De exemplu, semnalul pozitiv maxim corespunde codului 11111111, iar semnalul negativ maxim corespunde cu 01111111. Valoarea absolută a etapei de cuantizare■ Codul binar natural este utilizat în principal I în codificarea semnalelor unipolare. În fig. Figura 2.18 prezintă structura codului și tabelul de coduri corespunzător acestui cod (la =8).

Orez. 2.17. Formirova n fără cod binar simetric

Evident, numărul de combinații de structuri diferite este 256, iar semnalul minim corespunde combinației 00000000, iar maximul este 11111111. Valoarea absolută a pasului de cuantizare

Folosind un cod binar natural, puteți codifica semnalele u-bipolare, oferindu-le mai întâi o părtinire, cum ar fi. prezentată în fig. 5.17. În acest caz, evident, amplitudinea probelor codificate se modifică, iar trecerea de la amplitudinea eșantionului, exprimată în trepte de cuantizare, când se folosește un cod simetric, la amplitudinea aceleiași probe când se utilizează un cod natural, și invers, se poate face după cum urmează (Fig. 2.17 și 2.18):



Codurile binare naturale și simetrice sunt cele mai simple. Atât pentru codurile naturale, cât și pentru cele simetrice, o eroare a unuia dintre simboluri poate duce la o distorsiune semnificativă a semnalului. Dacă, într-o combinație de coduri de forma 11010011, a apărut o eroare în a cincea cifră; adică, combinația 11000011 este acceptată, atunci amplitudinea eșantionului va fi mai mică decât valoarea adevărată cu = 16 pași de cuantificare condiționată. Să luăm în considerare principiile construirii dispozitivelor de codificare și decodare, care pot fi liniare și neliniare. Codarea liniară este codificarea unui semnal cuantificat uniform, iar codificarea neliniară este codificarea unui semnal cuantificat neuniform. Codul generat în encoder se numește paralel dacă semnalele incluse în grupul de cod de m-biți apar simultan la diferite ieșiri ale codificatorului, iar fiecare ieșire a codificatorului corespunde unui semnal de un anumit bit. Codul se numește secvenţial dacă toate semnalele sunt incluse în cod t-ori grup de coduri de rând, apar la o ieșire a codificatorului alternativ cu o schimbare de timp,

Orez. 2.18. Formarea codului binar natural

Codul paralel poate fi convertit în serial (Fig. 2.19, i) și invers (Fig. 2.19,6) folosind circuite logice care asigură o deplasare în timp a impulsurilor (de exemplu, registre de deplasare).

Orez. 2.19. Principii de conversie a pa- Fig. 2.20. Codificator liniar al codului de biți paralel în ponderare secvențială (a) și invers (b)


Scrierea și citirea informațiilor din registru se realizează sub controlul semnalelor provenite de la echipamentul generator.

Conform principiului de funcționare, codificatoarele sunt împărțite în codificatoare de tip numărare, encodere matrice, codificatoare de tip cântărire etc. În DSP-uri, cele mai des se folosesc codoare de tip cântărire, dintre care cel mai simplu este un encoder de cântărire pe biți (Fig. 2.20), ale căror ieşiri generează un cod binar natural. Principiul de funcționare al unor astfel de codificatoare este de a echilibra probele codificate cu suma curenților (tensiunilor) de referință cu anumite greutăți. Circuitul codificatorului liniar de ponderare pe biți conține opt celule (la =8) care asigură formarea valorii bitului corespunzător (1 sau 0). Fiecare celulă (cu excepția ultimei, care corespunde celei mai mici cifre de greutate) include un circuit de comparație CC (comparator) și un circuit de scădere (SC).

Circuitele de comparație oferă o comparație a amplitudinii semnalului AIM de intrare cu semnalele de referință, ale căror amplitudini corespund greutăților biților corespunzători (= =. Dacă amplitudinea semnalului la intrarea CC este egală cu sau depășește , atunci 1 (pulsul) se formează la ieșire, semnalul este scăzut, după care ajunge la intrarea celulei următoare Dacă amplitudinea semnalului la intrare este mai mică de , atunci se formează 0 (spațiu) la ieșire. semnalul trece fără nicio modificare a procesului de codificare a probei următoare. Astfel, procesul de codificare corespunde operației de cântărire (amplitudinea probei codificate în procesul de codificare este echilibrată de suma valorilor de referință ale acesteia. biți corespunzători).

Dacă, de exemplu, o probă cu amplitudine este primită la intrarea codificatorului, atunci ССб generează = 1 și un semnal cu amplitudine este primit la intrarea celei de-a șaptea celule. La ieșire obținem = 0 și un semnal cu aceeași amplitudine va fi trimis la intrarea celei de-a treia celule de codificator. La ieșirea lui CC 6 obținem = 1, iar intrarea următoarei celule va primi un semnal cu = 1 = etc. Ca rezultat, va fi generată o combinație de cod de forma 10101110 (prima cifră este cea mai mare). semnificativ).

La codificarea semnalelor bipolare în encoder, este necesar să existe două circuite de generare de referință (FE) pentru codificarea probelor pozitive și negative.

În procesul de decodificare a semnalului, combinațiile de cod de biți sunt convertite în mostre AIM cu amplitudini corespunzătoare. Semnalul la ieșirea decodorului poate fi obținut ca urmare a însumării semnalelor de referință () ale acelor biți ai combinației de cod a căror valoare este 1. Deci, dacă combinația de cod 10101110 este recepționată la intrarea decodorului, atunci amplitudinea Număr de AIM la ieșirea decodorului = 174δ


Orez. 2.21 Decodor liniar de greutate Fig. 2.22 Codificator de linie
tip variabil cu feedback

Schema bloc a unui decodor liniar de tip cântărire este prezentată în Fig. 2.21. Sub influența semnalelor de control provenite de la echipamentul generator, următoarea combinație de cod de opt biți este scrisă în registrul de deplasare. După aceasta, doar acele chei () sunt închise

corespund biților cu valoarea 1. Ca urmare, semnalele de referință corespunzătoare sunt recepționate de la generatorul de semnal de referință (SE) la intrarea sumatorului, în urma căreia se formează o citire AIM cu o anumită amplitudine la ieșirea sumatorului.

Evident, dacă în timpul transmiterii unui semnal digital de-a lungul unei căi liniare apare o eroare în unul (sau mai mulți) biți ai combinației de cod, atunci amplitudinea eșantionului la ieșirea decodorului va diferi de valoarea adevărată. Dacă, de exemplu, în combinația 10101110 apare o eroare în P6, adică combinația 10001110 este recepționată la intrarea decodorului, atunci amplitudinea eșantionului la ieșirea i a decodorului, adică este mai mică decât amplitudinea eșantionului real, egal cu Circuitul codificator de ponderare a biților considerat conține un număr mare de circuite de comparație, care sunt dispozitive relativ complexe. În practică, un codificator de tip I de ponderare este folosit mai des folosind un singur circuit de comparație și un circuit de feedback care conține un decodor (Fig. 5.22). Sub influența semnalului de control () provenit de la echipamentul generator, intrarea decodorului din circuitul de control în fiecare ciclu de ceas este furnizată secvenţial de la fiecare dintre ieșiri, începând de la bitul cel mai semnificativ. La ieșirea decodorului B este generat un semnal AIM de echilibrare () care

B intră în intrarea CC, unde este comparat cu semnalul AIM de intrare. B În funcție de rezultatul comparației, valoarea bitului curent se formează la ieșirea CC: 1 (at) sau O (at).

Orez. 2.23. Principiul generării semnalelor de referință

Acest semnal ajunge la ieșirea decodorului și prin circuitul de feedback la intrarea circuitului de comandă, iar când sosește 1, starea ieșirii corespunzătoare a circuitului de comandă rămâne neschimbată (1), iar când sosește O se schimbă și ea la 0. Ca urmare, după ciclurile de ceas la ieșirile circuitului de control se va forma o combinație pentru care (ținând cont de eroarea de cuantizare).

La construirea codificatoarelor și decodoarelor (a se vedea Fig. 5.20 și 5.21), este necesar să se utilizeze FE care formează un set de semnale de referință, iar raportul dintre valorile a două standarde adiacente este egal cu . Ideea generală a construirii unor astfel de dispozitive este de a utiliza o sursă de semnal de referință foarte stabilă și un lanț de circuite care au un coeficient de transmisie (Fig. 5.23). Astfel de circuite iau de obicei forma unei matrice implementate folosind rezistențe de precizie de două valori ().

DSP-urile moderne folosesc dispozitive de codificare și decodare neliniare (codecuri neliniare), care asigură codificarea și decodificarea semnalelor cu o scară de cuantizare neuniformă cu un cod de opt biți (=8). Următoarele metode pot fi utilizate pentru codificarea pe scară de cuantizare neuniformă:

compresare analogică, caracterizat prin compresia intervalului dinamic al semnalului înainte de codificare liniară și extinderea intervalului dinamic al semnalului după decodificare liniară;

codificare neliniară, caracterizat prin codificarea semnalului în codificatoare neliniare care combină funcțiile de conversie analog-digitală și de compresor;

compresare digitală, caracterizată prin codificarea unui semnal într-un codificator liniar cu un număr mare de biți, urmată de procesarea digitală neliniară a rezultatului codificării.

Cu compresia analogică (Fig. 2.24), un compresor analogic (AK) și un expander (AE) sunt pornite la intrarea codificatorului liniar (LC) și, respectiv, la ieșirea decodorului liniar (LD), furnizând valoarea corespunzătoare. conversia neliniară a semnalului analogic (vezi Fig. 2.15). Ca element de bază pentru construirea unui AK. și AE a semnalelor bipolare, poate fi utilizată o rețea cu două terminale (Fig. 2.25).

Orez. 2.24. Principiul analogic Fig. 2.25 Rețea de compresie neliniară cu două terminale pentru compresoare analogice

Cu ajutorul rezistențelor, se selectează modul de funcționare dorit și se egalizează parametrii circuitului pentru semnale pozitive și negative. Un dezavantaj semnificativ al acestei metode este că este foarte dificil să se obțină caracteristici de amplitudine complet reciproce ale compresorului și expandorului, drept urmare caracteristica amplitudinii totale a sistemului compresor-expansor va diferi de liniară (vezi Fig. 2.15). Acest lucru va duce inevitabil la distorsiuni neliniare ale semnalelor transmise. Compandingul analogic a fost folosit în primele etape ale dezvoltării DSP, dar nu este utilizat în prezent.

Cel mai adesea, DSP-urile moderne folosesc codecuri neliniare, pentru comoditatea implementării lor pe circuite digitale, este recomandabil să abandonați caracteristica de compresie netedă și să o înlocuiți cu o caracteristică segmentată, care este o aproximare întreruptă în bucăți a caracteristicii de compresie netedă.

În fig. Figura 2.26 prezintă caracteristica de compresie A segmentată pentru semnalele pozitive (pentru regiunea valorilor semnalelor negative are o formă similară). Formal, numărul total de segmente din caracteristica completă (pentru semnale negative și pozitive) este 16, dar cele patru segmente centrale (două fiecare în regiunile pozitive și negative) formează de fapt un singur segment, ceea ce face ca numărul real de segmente să fie egal cu 13. Prin urmare, această caracteristică se numește caracteristică de compresie. Fiecare dintre segmentele caracteristice (vezi Fig. 5.26) conține 16 pași de cuantizare, iar numărul lor total este de 256 (128 pentru fiecare polaritate a semnalului). În acest caz, se adoptă următoarea numerotare a segmentelor și pașii de cuantizare: N mîn interiorul fiecărui segment: =0,1,2,...,7 și =0, 1, 2,..., 15. Evident, în cadrul fiecărui segment, pasul de cuantizare se dovedește a fi constant, adică se realizează cuantizarea uniformă. afară, iar când treceți la un segment cu un număr de serie mare, pasul de cuantificare crește de 2 ori, deoarece panta segmentului este înjumătățită. Cel mai mic pas de cuantizare () corespunde primelor două segmente (=0, 1) și se dovedește a fi egal cu . Pentru a determina pasul de cuantizare în segmentul i, puteți utiliza relația

Astfel, pasul maxim de cuantizare (în al șaptelea segment), adică este de 64 de ori mai mare decât pasul minim.

Astfel, coeficientul de compresie, definit ca raportul dintre cel mai mare pas de cuantizare și cel mai mic, este egal cu , iar câștigul imunității la zgomot pentru semnale slabe este egal cu

Orez. 2.26. Caracteristicile tipului de compresare A= 87,6/13

În Fig. 2.27. Pentru semnalele slabe care nu se extind dincolo de zero și primul segment, așa cum se poate observa din Fig. 2.27, cuantificarea uniformă se realizează cu o etapă minimă de cuantificare care crește odată cu creșterea. Când treceți la al doilea segment, etapa de cuantizare crește de 2 ori, adică devine egală cu , ca urmare a căreia scade brusc, apoi în intervalul 2.27. un segment dat crește odată cu creșterea, deoarece în cadrul segmentului se realizează cuantificare uniformă. Acest tip de schimbare se observă și în timpul tranziției către toate segmentele ulterioare. După ce semnalul intră în zona de restricție, securitatea scade brusc din cauza supraîncărcării codificatorului.

Structura combinației de cod generată la ieșirea codificatorului cu caracteristica A= 87,6/13, are forma PXYZABCD, unde P este un simbol semn (1 pentru semnale pozitive, 0 pentru negative); XYZ - caractere de cod de număr de segment Nc\ ABCD - simboluri ale codului numărului de pas în cadrul segmentului (vezi Fig. 2.26). Dacă, de exemplu, o probă pozitivă la intrarea codificatorului are o amplitudine corespunzătoare celui de-al nouălea pas de cuantizare din al șaselea segment, atunci combinația 11101001 (P=l, XYZ=110, deoarece =6, ABCD = 1001, deoarece =9 ) va fi generat la ieșirea codificatorului).

Orez. 2.27. Dependența Fig. 2.28. Encoder neliniar

tip de cântărire

Circuitele și principiul de funcționare al codecurilor de ponderare neliniară sunt practic aceleași cu cele ale codecurilor liniare. Cea mai mare diferență constă în secvența includerii surselor de referință în timpul procesului de codificare a semnalului sursă.

Pentru a codifica un semnal de aceeași polaritate în generatorul de semnal de referință al codificatorului, este necesar să se genereze 11 semnale de referință. În fig. Figura 2.28 prezintă o diagramă bloc simplificată a unui encoder de tip cântărire neliniar, care conține un circuit de comparație (CC), un circuit de comutare și însumare a standardelor (SPSC), două circuite pentru generarea de semnale de referință ( și ) pentru probe pozitive și negative și un circuit logic de control (CLC). Codarea se realizează pe parcursul a opt cicluri, în fiecare dintre acestea fiind format unul dintre simbolurile combinației de coduri. În acest caz, se pot distinge următoarele trei etape:

formarea semnului simbol P (bara 1);

formarea codului numărului de segment XYZ (ciclurile 2-4);

generarea unui cod de număr de pas în cadrul segmentului ABCD (ciclurile 5-8).

În primul ciclu de ceas, se determină semnul următorului numărător primit la intrarea codificatorului. Dacă citirea este pozitivă, atunci P = 1 este generat și conectat la circuit, dar în caz contrar se formează P = 0 și PV 2 este conectat la circuit.

Codul numărului de segment este generat după cum urmează (Fig. 2.29).

În al doilea ciclu, ULS, cu ajutorul SSSE, asigură că semnalul de referință corespunzător limitei inferioare a celui de-al patrulea segment este furnizat la intrarea SS. Dacă amplitudinea eșantionului, atunci se ia o decizie cade într-unul dintre cele patru segmente superioare (=4 ... 7), se formează următorul simbol X =1, care este alimentat prin circuitul de feedback la intrarea ULS. Dacă, atunci se ia decizia ca eșantionul să se încadreze într-unul dintre cele patru segmente de ordin inferior (=0... 3), și este generat simbolul X = 0, care este trimis la intrarea ULS prin feedback. circuit.

În a treia ritm, se formează al treilea simbol al combinației (Y). În funcție de valoarea simbolului anterior (X), este specificat numărul segmentului în care se încadrează proba codificată. Dacă X = 1, atunci ULS, cu ajutorul SPSE, furnizează tensiunea de referință corespunzătoare limitei inferioare a celui de-al șaselea segment la intrarea CC (vezi Tabelul 5.1). Dacă , atunci se ia decizia ca proba să se încadreze în unul dintre cele mai înalte două segmente (=6 sau =7), și se formează următorul simbol Y=l, care este trimis la intrarea ULS prin circuitul de feedback. Dacă , atunci se ia decizia că eșantionul se încadrează în al patrulea sau al cincilea segment și se formează Y = 0 Dacă X = 0, atunci ULS cu ajutorul SPSE asigură că tensiunea de referință corespunzătoare limitei inferioare a. al doilea segment este alimentat la intrarea CC.

Dacă ,. apoi se ia decizia ca citirea să se încadreze în al doilea și al treilea segment și se formează Y=l. Dacă, atunci se ia decizia că eșantionul se încadrează într-unul dintre cele două segmente de ordin inferior și se formează Y = 0.

În al patrulea ciclu de codare, se formează simbolul Z, adică ultimul simbol din codul numărului de segment. În funcție de valorile simbolurilor anterioare (XY), se stabilește în final numărul segmentului corespunzător acestui număr. Deci, dacă X = 1 și Y = 0, atunci tensiunea de referință corespunzătoare limitei inferioare a celui de-al cincilea segment este activată. Dacă ==, atunci se ia decizia ca proba să cadă în al cincilea segment, se formează simbolul Z=l și tensiunea de referință = rămâne pornită până la sfârșitul procesului de codificare a acestei probe. Dacă , atunci se ia decizia ca eșantionul să se încadreze în al patrulea segment, se formează Z = 0 și până la sfârșitul procesului de codificare este pornit, corespunzătoare limitei inferioare a celui de-al patrulea segment.

Orez. 2.29. Algoritm de generare a codului numeric

segment

Ca urmare, după patru cicluri de codare, se vor forma patru simboluri de combinație (PXYZ) și una dintre cele opt tensiuni de referință corespunzătoare limitei inferioare a segmentului în care cade proba codificată va fi conectată la CC.

În celelalte patru cicluri de ceas, simbolurile combinației de cod ABCD sunt formate secvenţial, a căror valoare depinde de numărul etapei de cuantificare din segmentul corespunzător amplitudinii probei codificate. Deoarece cuantificarea uniformă este efectuată în cadrul oricărui segment, procesul de codificare este implementat, ca în codificatoarele de ponderare liniară, prin comutarea secvenţială a tensiunilor de referinţă corespunzătoare unui segment dat.

Deci, dacă la intrarea codificatorului este primită o probă pozitivă cu amplitudine, atunci după primele patru cicluri de ceas vor fi generate simbolurile PXYZ = 1110 și tensiunea de referință corespunzătoare limitei inferioare a celui de-al șaselea segment va fi conectată la CC. În al cincilea ciclu, la acest semnal de referință va fi adăugată tensiunea de referință maximă corespunzătoare simbolului cel mai semnificativ (A) din codul de număr al pasului de cuantificare pentru al șaselea segment. Deoarece , se formează simbolul A = 0 și în loc de "" ~~ în al șaselea ciclu, tensiunea de referință a următoarei cifre = = este conectată. Deoarece simbolul B = 1 se formează la ieșirea CC, tensiunea de referință nu se modifică și în următorul al șaptelea ciclu este conectată tensiunea de referință a următoarei descărcări.

Deoarece ==, se formează simbolul C = 0 și tensiunea de referință a acestui bit () este oprită.

În ultimul ciclu, tensiunea de referință a simbolului de ordin inferior (D) este conectată. Deoarece +-, se formează simbolul D = l și procesul de codificare a acestui eșantion se încheie. Astfel, combinația de coduri 11100101 va fi generată la ieșirea codificatorului.

După cum s-a menționat mai sus, în timpul procesului de codificare pot fi utilizate 11 semnale de referință, cu toate acestea, până la finalizarea procesului de codificare a oricărei mostre, nu vor fi incluse mai mult de cinci semnale de referință (unul dintre ele corespunde limitei inferioare a segmentului). , nu mai mult de patru - semnale de referință în cadrul segmentului corespunzător).

Orez. 2.30. Principiul compactării digitale

În cazul luat în considerare, doar trei semnale de referință vor fi pornite (512δ 0, 128 δ 0 și 32 δ 0). Trebuie avut în vedere că amplitudinea probei codificate nu poate fi întotdeauna echilibrată exact de semnalele de referință, ca 1 în exemplul luat în considerare. În cazul general, va apărea inevitabil o eroare de cuantizare £/ error.q, a cărei valoare maximă este egală cu jumătate din treapta de cuantizare în cadrul segmentului corespunzător, adică pentru segmentul zero și primul (pentru semnale slabe) și pentru al șaptelea. segment (semnal puternic).

Să luăm în considerare caracteristicile celei de-a treia metode de codare cu o scară de cuantizare neuniformă, adică compresia digitală.

Cu compresia digitală (Fig. 2.30), codarea liniară (uniformă) (LC) este efectuată cu un număr mare de biți (de exemplu, = 12), urmată de conversie digitală (comprimarea digitală a CC) folosind dispozitive logice într-un opt -bit cod neliniar având aceeași structură, ca atunci când se folosește un encoder neliniar cu o caracteristică de compresie de tip (vezi Fig. 5.26). Metoda de conversie a combinațiilor de cod liniar de 12 biți în combinații de cod neliniar de 8 biți este prezentată în tabel. 5.2. Prima cifră (P) rămâne neschimbată și poartă informații despre polaritatea semnalului. Semnificația caracterelor XYZ care definesc numărul segmentului Nc, corespunde numărului de zerouri (/) din combinația de 12 biți dintre simbolul P și simbolurile ABCD (de fapt, simbolurile XYZ reprezintă inversul codului natural al valorii binare de trei biți).

După ce caracterele XYZ sunt formate în codul de opt biți, caracterele ABCD sunt rescrise neschimbate, iar toate celelalte caractere din combinația de 12 biți sunt eliminate indiferent de valoarea lor, definind o eroare de cuantizare.

Tabelul 2.2

După ce caracterele XYZ sunt formate în codul de opt biți, caracterele ABCD sunt rescrise neschimbate, iar toate celelalte caractere din combinația de 12 biți sunt eliminate indiferent de valoarea lor, definind o eroare de cuantizare. La recepție, restabilirea semnalului AIM se realizează folosind un expandator digital (DE) și un decodor liniar (LD).

Decodificarea neliniară se realizează în mod similar cu cea liniară, ținând cont de caracteristicile notate ale codificării neliniare. Astfel, în procesul de decodificare neliniară, adică formarea unui eșantion AIM cu o anumită amplitudine, semnul eșantionului și numărul segmentului () sunt determinate din structura combinației de cod (PXYZABCD), după care se găsește valoarea ( ținând cont de faptul că semnalul decodificat Pentru a reduce eroarea de cuantizare se adaugă o tensiune egală cu jumătate din treapta de cuantizare din acest segment):

unde este tensiunea de referință corespunzătoare limitei inferioare a segmentului;

Etapa de cuantizare în fiecare segment.

Dacă, de exemplu, combinația de cod 01010110 este primită la intrarea decodorului (adică P = 0, =5, A = 0; B = 1; C = 1, D = 0), atunci va fi generată o probă AIM cu amplitudine la ieșirea decodorului +)_" =

Astfel, în decodor în acest caz se însumează tensiunile de referință.

Literatură:De bază 3 [8-21]

Adăuga. 6 [102-104]

Întrebări de control:

1.Cod binar simetric și natural

2.Codare neliniară. Caracteristici de tip A compacting = 87,6/13. Circuit codificator neliniar.

3. Modularea codului de impuls diferențial

4.Modulație Delta