Codarea Semnalului Vocal In Sistemul G.s.m

1. INTRODUCERE

O temă des cercetată în telefonia mobilă este eficiența spectrală, care deobicei are înțelesul de densitatea spectrului alocat. Cel mai influient factor în determinarea eficienței spectrale este dimensiunea celulei. Micro-celulele reutilizează spectrul alocat peste o arie geografică mai mică si acestea sint un sistem care gestionează mai eficient spectrul. Pentru o dimensiune a celulei stabilă și o alocare de bandă dată, există un set de sub-sisteme, cum ar fi sistemele care codează vorbirea, codoarele de canal, intercaloarele, modulatoarele care au un rol important în determinarea numărului de utilizatori pe care îi poate gestiona. Prin reducera vitezei (ratei de bit) la codarea semnalului vocal sau prin reducerea capacității de codare necesară, pot fi mărite eficiența spectrală și numărul de utilizatori.

Pentru codoarele semnalului vocal în telefonia mobilă Pan-Europeană CCITT a stabilit ca viteza de transmisie să fie de 16kb/s. Această valoare corespunde unui număr minim de canale codate și a fost considerată pragul minim al vitezei de codare care poate asigura o calitate mulțumitoare a semnalului vocal cît mai apropiată de semnalul original. Pe de altă parte, această viteză este ușor de implementat în structurile monolitice (în cipuri). Pe aceleași principii au fost proiectate pentru sistemul de telefonie mobilă Pan-Europenă, codorul semnalului vocal, excitatorul cu puls regulat (RPE), codorul cu predicție liniară, excitatorul multi-impuls (MPE) și codoarele sub-bandă (SBC).

Următoarea fază pentru sistemul GSM la care se mai lucrează încă este aceea de a obține așa numita viteză la jumătate, care să redea o calitate a vorbirii bună la o viteză de 8kb/s. Cel mai bun este codorul cu predicție liniară (CELP).

În sistemele radio mobile pot fi utilizate alte coduri pentru codarea semnalului vocal. Cînd lățimea de bandă a micro-celulelor sau a pico-celulelor devine liberă, se pot utiliza coduri mai simple:

– modulația delta (DM)

– modulația în puls (PCM)

– modulația diferențială (DPCM).

Aceste coduri sînt ieftin de implementat, au întîrzieri minime și consum

mic din puterea semnalului. Utilizînd modulația delta adaptivă (ADM) la viteze de cod de 32kb/s se obține o calitate mai bună a semnalului vocal. Sistemul care folosește ADM consumă mai puțină putere din puterea semnalului și conferă o siguranța mai mare a transmisiei.

Codarea vorbirii este vitală în determinarea vitezei (ratei de bit) și în reconstituirea calitativă a semnalului vocal. De aceea vom trata cu deosebit interes în această lucrare:

– modulația delta (DM)

– modulația în puls (PCM)

– modulația diferențială (DPCM)

care au fost tratate pe larg de Javant & Hall, Flanagan, precum și de Rabiner și Schafer.

Ne vom îndrepta atenția în special asupra codării la viteza de 4 – 16kb/s, care sînt vitezele folosite acum în telefonia mobilă. Dintre codurile simple care se potrivesc celulelor mici vom descrie modulația delta.

CAP .I.

TEHNICI ȘI ALGORITMI DE CODARE

TEHNICI DE CODARE

Tehnica de codare utilizează trei clase de bază:

– generatorul de forme de undă

– sursă de coduri

– coduri hibride.

Generatorul de coduri acceptă semnale vocale analogice și le codează în

semnale digitale prioritare pentru transmisie.

Decodoarele realizează procesul de recuperare al semnalului de la emisie. În absența erorilor, semnalele recuperate la recepție au forme asemănătoare cu cele de la emisie. Principiul decodoarelor este acela de a obține o replică a semnalului original pentru a se obține o calitate excelentă a semnalului vocal. În practică procesul de codare introduce zgomot de cuantizare, care este o distorsiune a formei de unda. Acesta este de obicei mic și nu afectează calitatea semnalului vocal.

Codoarele sînt de o complexitate scăzută, ceea ce le face să aibă un cost de implementare suficient de mic. Ele pot să codeze și alte semnale, cum ar fi:

– semnale de ton

– alte semnale în banda vocală

– semnale muzicale (cu cîteva limitări, deoarece nu se poate transmite toată banda semnalului muzical pe un canal de transmisiuni vocale).

Cel mai simplu codor este codorul cu modulație în impuls (PCM), unde semnalul vocal este eșantionat la viteza Nyquist. Fiecare eșantion este reprezentat printr-un număr binar în care este inclusă și cuantizarea zgomotului.

Modulația logaritmică a impulsului a fost standardizată de CCITT să lucreze la viteza de 64kb/s. Eșantioanele sînt compresate aproximativ logaritmic și codate binar cu prioritate în transmisie. La recepție, decodorul binar este urmat de un expander logaritmic, care are rolul de a recupera semnalul vocal.

Fig. 1: Diagrama de bază pentru transmisii PCM

Vibrațiile cvasi-periodice ale corzilor vocale și mișcările articulațiilor vocale (limba și fălcile) provoacă eșantioane în semnalul vocal care trebuie

corelate foarte bine. Semnalele avocale tind să fie relativ necorelate. În conversații, se vorbește aproximativ 40% din timp. Perioadele active ale semnalului vocal sînt de patru ori mai dese decît cele de tăcere.

Dominanta vorbirii înseamnă că semnalele vorbite pot fi sintetizate ca secvențe de predicție. Astfel se formează un decalaj între semnalul vocal original si predicția sa care se cuantizeza cu prioritate. Această metoda este numită modulație diferențială DPCM. Decodorul are același predictor ca cel folosit la codare și prelucrează eșantioanele decodate anterior pentru a forma eșantioane care cînd se adună la semnalul de eroare recepționat sa rezulte la ieșire secvența de la emisie. Semnalul vocal recuperat este obținut printr-o filtrare FTJ. Codorul este ca în figura de mai jos:

Fig.2: Codor/decodor MIC diferențial modificat

De remarcat că rolul predictorului la decodare este de a forma o secvență de eroare a cărei variație este semnificativ mai mică decît variația semnalului vocal de la intrare. Micșorînd variația semnalului aplicat cuantizorului, dimensiunea pasului este micșorat pentru un număr de nivele de cuantizare și zgomotul de cuantizare descrește o dată cu dimensiunea pasului de cuantizare.

O formă superioara a codului diferențial este DPCM.

Fig.3. ne arată diagrama bloc a decodorului DPCM. La fel ca DPCM, semnalul de eroare este cuantizat și codat binar pentru transmisie.

Fig.3: De/codor DPCM

În locul predictorului se utilizează un sistem bazat pe decodarea

secvențelor afectate de zgomot.

Predictoarele de la codare și de la decodare operează cu secvențe recuperate. Performanțele unui astfel de sistem sînt mai bune ca DPCM a cărui predictori fac predicția din secvențe diferite.

Cuantizările folosite în DPCM pot fi:

– uniforme (cu pas stabilit)

– neuniforme (variază mărimea pasului)

– adaptive (mărimea pasului de cuantizare variază conform cu

eșantionele anterioare).

Cuantizoarele pot lucra cu un eșantion cînd sînt cuantizoare scalare sau pot folosi secvențe de eșantioane pentru a forma un vector de cuantizare. Predictoarele pot avea coeficienți:

– ficși

– adaptivi

– care pot fi organizați ca vectori.

Pot fi folosite două predictoare, unul pentru a urmări variatiile vocale, celălalt pentru a prezice viteza de excitație asociată cu vibrațiile corzilor vocale. Rolul predicței este acela de a scade variația semnalului de eroare care a fost cuantizat și transmis. Deoarece predictorul este bazat pe eșantioane zgomotoase, ordinul unui predictor este 3 sau 4 și cîștigul tipic 5dB. Cînd se folosesc cuantizoare adaptive sau predictoare procesul se numește modulație delta adaptivă (ADPCM). Codoarele de uz general pot lucra pînă la viteze de 24kb/s. CCITT a standardizat ADPCM la 33kb/s.

Sistemele de telecomunicații fără fir, cum ar fi CT2 și DECT lucrează cu standardul CCITT pentru ADPCM.

Viteza poate fi scăzută la 16kb/s pentru o aceeași calitate a semnalului vocal dacă se folosește transcodarea. În CT eșantioanele sînt plasate în blocuri continue si transformate în domeniul frecvență. Pot fi utilizate multe transformări, dar cea mai des utilizată este transformarea cosinus discretă (DCT). Fiecare coeficient al transformării este decodat pe un număr de biți depinzînd de importanța sa. Se elimină cîțiva coeficienți, deoarece nu sînt revelatori. Numărul de biți asignat fiecărui coeficient și decizia de eliminare a unui coeficient poate fi făcută să depinda de statistica blocurilor de biți. Aranjamentul este cunoscut în literatură sub numele de transformarea adaptivă discretă (ADCT).

Codarea sub-benzii (SBC) este un caz special al ADCT, unde semnalul vocal este filtrat trece bandă si apoi trecut printr-un codor adaptiv folosit pentru a decoda fiecare sub-bandă a semnalului vocal. Semnalele sub-bandă codate (SBC) sînt multiplexate înainte de a fi transmise. La receptor se demultiplexează semnalul sub-bandă codat, apoi se realizează decodarea. Semnalele sub-bandă codate sînt combinate pentru a da semnalul vocal recuperat. SBC a fost cercetat și poate fi implementat pe circuite de procesare digitală a semnalului (DSP).

Din cele șase tipuri de coduri Pan-Europene, patru sînt variante ale codării sub-bandă.

CAP. II.

MODULAȚIA DELTA ÎNLĂȚUITĂ

MODULAȚIA DELTA ÎNLĂȚUITĂ (EDM)

Transmisiile radio pentru sistemele de telecomunicații fară fir sînt folosite pentru distanțe de 100 800m cu o stație de bază mică ce are o înălțime de 12m. Aparatului portabil i se cere să nu fie voluminos, să nu fie greu, să fie ieftin și să se folosească de baterii care să nu se consume repede. Viteza pentru CT2 este de 32kb/s. Codorul cu modulație delta lucrează satisfăcător la această viteză cu un consum de putere care este de la 4 ori pînă la 6 ori mai mic decît la ADPCM. Vom studia EDM deoarece ne oferă un raport bun între viteză și calitatea semnalului vocal, în timp ce are un consum mic de energie. Caracteristica modulației înlănțuite permite rețelei să elimine biții în situațiile în care aceasta este supraîncarcată.

Vom începe prin a analiza conceptul de cod înlănțuit.

Presupunem că un cod generează Rmax biți pe fiecare eșantion și rețeaua decide să elimine Rdel biți din fiecare eșantion. Atunci decodorul decodează eșantioane de lungime:

Rdec=Rmax-Rdel (1)

Trebuie să avem în vedere calitatea semnalului de la ieșire. Calitatea semnalului codat este esențial să fie aceeași cînd se reduc Rdel eșantioane, ca atunci cînd codorul folosește un cod înlănțuit. De exemplu, dacă fiecare al șaselea bit este eliminat din eșantioanele unei modulații delta, zgomotul decodat la ieșire este semnificativ mai mare decît dacă s-ar fi folosit o modulatie delta cu o viteză de 56 ori mai mică.

Fig.4: Forma generală a unui codor cu cod înlănțuit

Pentru a forma coduri ce folosesc codul înlănțuit trebuie să multiplexăm mai multe codoare. De exemplu într-o modulație delta multi-nivel (MSDM), sînt cascadate N decodoare care folosesc modulația delta, fiecare decodor preluînd semnalul de eroare de la cel anterior. Ieșirile de la cele N decodoare cu modulație delta sînt întîrziate corespunzător și combinate pentru a rezulta semnalul vocal recuperat. Eroarea totala este aceea de la al N-lea decodor cu modulație delta. Codul MSDM este un cod înlănțuit deoarece dacă se reduce viteza prin eliminarea biților de la ultimul decodor cu modulație delta, MSDM are aceleași performanțe ca un codor MSDM cu (N-1) nivele.

Alt exemplu este acela al codului DPCM înlănțuit unde decodorul cu modulație delta diferențială (DPCM) lucreaza pe semnalul vocal și cuantizarea erorii este realizată prin decodare cu modulație de impuls (PCM). Din combinații rezultă un cod înlănțiut dacă biții șterși sînt luați de la decodorul cu modulație în impuls.

Codul înlănțuit are avantajul că se poate folosi o viteză variabilă și rețelele se pot gestiona mai mulți utilizatori cu prețul unei calități mai reduse a semnalului vocal și invers. Se pot gestiona un număr mai mic de utilizatori și atunci calitatea semnalului vocal este mai bună. Poate fi folosit pe canalele radio mobile prin aranjarea unui codor cu modulație în impuls riază conform cu

eșantionele anterioare).

Cuantizoarele pot lucra cu un eșantion cînd sînt cuantizoare scalare sau pot folosi secvențe de eșantioane pentru a forma un vector de cuantizare. Predictoarele pot avea coeficienți:

– ficși

– adaptivi

– care pot fi organizați ca vectori.

Pot fi folosite două predictoare, unul pentru a urmări variatiile vocale, celălalt pentru a prezice viteza de excitație asociată cu vibrațiile corzilor vocale. Rolul predicței este acela de a scade variația semnalului de eroare care a fost cuantizat și transmis. Deoarece predictorul este bazat pe eșantioane zgomotoase, ordinul unui predictor este 3 sau 4 și cîștigul tipic 5dB. Cînd se folosesc cuantizoare adaptive sau predictoare procesul se numește modulație delta adaptivă (ADPCM). Codoarele de uz general pot lucra pînă la viteze de 24kb/s. CCITT a standardizat ADPCM la 33kb/s.

Sistemele de telecomunicații fără fir, cum ar fi CT2 și DECT lucrează cu standardul CCITT pentru ADPCM.

Viteza poate fi scăzută la 16kb/s pentru o aceeași calitate a semnalului vocal dacă se folosește transcodarea. În CT eșantioanele sînt plasate în blocuri continue si transformate în domeniul frecvență. Pot fi utilizate multe transformări, dar cea mai des utilizată este transformarea cosinus discretă (DCT). Fiecare coeficient al transformării este decodat pe un număr de biți depinzînd de importanța sa. Se elimină cîțiva coeficienți, deoarece nu sînt revelatori. Numărul de biți asignat fiecărui coeficient și decizia de eliminare a unui coeficient poate fi făcută să depinda de statistica blocurilor de biți. Aranjamentul este cunoscut în literatură sub numele de transformarea adaptivă discretă (ADCT).

Codarea sub-benzii (SBC) este un caz special al ADCT, unde semnalul vocal este filtrat trece bandă si apoi trecut printr-un codor adaptiv folosit pentru a decoda fiecare sub-bandă a semnalului vocal. Semnalele sub-bandă codate (SBC) sînt multiplexate înainte de a fi transmise. La receptor se demultiplexează semnalul sub-bandă codat, apoi se realizează decodarea. Semnalele sub-bandă codate sînt combinate pentru a da semnalul vocal recuperat. SBC a fost cercetat și poate fi implementat pe circuite de procesare digitală a semnalului (DSP).

Din cele șase tipuri de coduri Pan-Europene, patru sînt variante ale codării sub-bandă.

CAP. II.

MODULAȚIA DELTA ÎNLĂȚUITĂ

MODULAȚIA DELTA ÎNLĂȚUITĂ (EDM)

Transmisiile radio pentru sistemele de telecomunicații fară fir sînt folosite pentru distanțe de 100 800m cu o stație de bază mică ce are o înălțime de 12m. Aparatului portabil i se cere să nu fie voluminos, să nu fie greu, să fie ieftin și să se folosească de baterii care să nu se consume repede. Viteza pentru CT2 este de 32kb/s. Codorul cu modulație delta lucrează satisfăcător la această viteză cu un consum de putere care este de la 4 ori pînă la 6 ori mai mic decît la ADPCM. Vom studia EDM deoarece ne oferă un raport bun între viteză și calitatea semnalului vocal, în timp ce are un consum mic de energie. Caracteristica modulației înlănțuite permite rețelei să elimine biții în situațiile în care aceasta este supraîncarcată.

Vom începe prin a analiza conceptul de cod înlănțuit.

Presupunem că un cod generează Rmax biți pe fiecare eșantion și rețeaua decide să elimine Rdel biți din fiecare eșantion. Atunci decodorul decodează eșantioane de lungime:

Rdec=Rmax-Rdel (1)

Trebuie să avem în vedere calitatea semnalului de la ieșire. Calitatea semnalului codat este esențial să fie aceeași cînd se reduc Rdel eșantioane, ca atunci cînd codorul folosește un cod înlănțuit. De exemplu, dacă fiecare al șaselea bit este eliminat din eșantioanele unei modulații delta, zgomotul decodat la ieșire este semnificativ mai mare decît dacă s-ar fi folosit o modulatie delta cu o viteză de 56 ori mai mică.

Fig.4: Forma generală a unui codor cu cod înlănțuit

Pentru a forma coduri ce folosesc codul înlănțuit trebuie să multiplexăm mai multe codoare. De exemplu într-o modulație delta multi-nivel (MSDM), sînt cascadate N decodoare care folosesc modulația delta, fiecare decodor preluînd semnalul de eroare de la cel anterior. Ieșirile de la cele N decodoare cu modulație delta sînt întîrziate corespunzător și combinate pentru a rezulta semnalul vocal recuperat. Eroarea totala este aceea de la al N-lea decodor cu modulație delta. Codul MSDM este un cod înlănțuit deoarece dacă se reduce viteza prin eliminarea biților de la ultimul decodor cu modulație delta, MSDM are aceleași performanțe ca un codor MSDM cu (N-1) nivele.

Alt exemplu este acela al codului DPCM înlănțuit unde decodorul cu modulație delta diferențială (DPCM) lucreaza pe semnalul vocal și cuantizarea erorii este realizată prin decodare cu modulație de impuls (PCM). Din combinații rezultă un cod înlănțiut dacă biții șterși sînt luați de la decodorul cu modulație în impuls.

Codul înlănțuit are avantajul că se poate folosi o viteză variabilă și rețelele se pot gestiona mai mulți utilizatori cu prețul unei calități mai reduse a semnalului vocal și invers. Se pot gestiona un număr mai mic de utilizatori și atunci calitatea semnalului vocal este mai bună. Poate fi folosit pe canalele radio mobile prin aranjarea unui codor cu modulație în impuls secundar care să fie înlocuit cu un codor corector de erori anticipate, cînd rata de erori (BER) a canalului scade.

Subliniem că puterea consumată de codorul cu modulație delta este mai mică și pentru micro-celule, unde viteza nu este așa de mare ca în cazul celulelor mai mari. Iluminarea aparatului mobil se realizează folosind un codor cu modulație delta.

Un codor cu modulație delta înlănțuită este o combinație între modulația delta șî modulația în impuls. El se poate folosi la aparatele portabile deoarece este mai bun calitativ decît modulația delta și are o zona de acoperire foarte mare cînd modularea în impuls este înlocuită cu o codare cu un cod corector de erori (FEC).

2.1. TEORIA CODURILOR CU MODULAȚIE DELTA

ÎNLĂNȚUITĂ

În diagrama din Fig.5 semnalul vocal este limitat în banda de BHz și eșantionat la 2BHz pentru a obține secvența de intrare x[n].

Codorul cu modulație delta este setat la 2BRmin, unde Rmin sînt biții generați pe intervalul Nyquest. Secvența de eroare de modulație delta q(n) este generată la viteza 2BRmin și este filtrată trece jos la BHz. Deoarece semnalul filtrat qf(n) este supraeșantionat cu frecvența Rmin el este apoi decimat pentru a se obține:

qfd(k) = qf(kRmin) (2)

unde k este indexul eșantionului la viteza Nyquest. Secvența qfd(k) este decodată de un decodor cu modulație în impuls suplimentar de întindere Rsup biți, unde Rsup este P, numărul de biți folosiți în procesul de cuantizare. Datele modulate cu modulație delta și cele cu modulație în impuls sînt multiplexate într-o forma de transmisiune cu viteza dată de:

Rmax = Rmin + P (3)

Fig.5: Codorul cu modulație delta înlănțuită

Presupunînd că rețeaua șterge Rdel biți/intervalul Nyquist, atunci demultiplexarea la recepție de către decodorul cu modulație în impuls este suplimentată cu Rsep-Rdel biți/intervalul Nyquist, ca și cum biții modulației în impuls sînt eliminați de rețea. Cuvintele modulate în impuls astfel scurtate sînt cele care urmează a fi decodate într-o secvență de eșantionare la viteza Nyquest. Semnalulu supus modulației delta din multiplexor este la viteza 2BRmin. Aceasta se decodează într-o secvență la aceeași viteză. Filtrarea la BHz asigură rejecția zgomotului din afara benzii și eșantionul care au depășit secvența este decimat de Rmin pentru a da eșantioane la viteza Nyquist. Eșantioanele modulației delta și ale modulației în impuls sînt acum amîndouă la același viteză Nyquist cu eșantioanele modulației în impuls reprezentînd secvența de eroare filtrată cu modulație delta. Adunînd eșantioanele modulate în impuls cu eroarea lor, obținem semnalul recuperat care este convertit în semnal vocal analogic de filtrul de interpolare trece jos.

Secvența de eroare q(n) are puterea <q2(n)>, care depinde de mărimea pasului modulației delta, δ, și de densitatea spectrală de putere (PSD) a semnalului de intrare.

<q2(n)> = aδ2/3 (4)

unde a = 1 sau 1,3 depinde de condițiile în care DM lucrează în regiunea granulară sau dacă SNR este maxim. Secvența q(n) este filtrată și decimată la domeniul qfd(n) și se obține o secvență care are distribuția de putere Gaussiană PDF. Valoarea principală a lui qfd(n) este:

<qfd(n)> = <q2(n)>/(bRmin) (5)

unde b este determinat de vîrful de densitate spectrală de putere a lui q(n). Dacă q(n) este plat,b este egal cu 1. Cînd modulația delta lucrează cu un pas suficient de mare, zgomotul este granular și b este aproximativ 2.

Secvența qfd(n) este aplicată la bitul P al cuantizării, avînd punctul de depășire la q0 și la –q0, unde

q0 = Δ2P-1 (6)

și este pasul cuantizorului cu modulație de impuls. Secvența PCM de la ieșire este qfd(n) la care se adaugă o eroare (k). Dacă ultima a fost de amplitudine uniform distribuită peste -/2 sau /2:

<2(k)> = Δ2/12 (7)

și aceasta este puterea zgomotului care se obține de la ieșirea decodorului EDM, fiind apreciată ca singura sursă de zgomot codorul EDM, cu originea în codorul PCM.

<2(k)> = (q022P-1)/3 (8)

Nivelul de depășire q0 este exprimat în funcție de factorul de încărcare

q0 = λ(<qfd2(k)>)1/2 (9)

și va rezulta:

(10)

Dacă urmărim calea lui x(n) prin modulatorul delta din Fig.5, observăm că se realizează o filtrare și o decimare.

(11)

și din 10 se obține:

; Rsup > 0 (12)

Dacă P = 0, codorul PCM nu lucrează, atunci decimarea se realizează încă la receptor și rezultă:

(13)

Putem exprima SNR pentru EDM funcție de SNRmin ca și cum DM ar lucra singur, adică

(14)

unde paranteza este cîștigul în SNR rezultat din codorul PCM suplimentar.

2.2. PERFORMANȚELE EDM

Fie un filtru RC. o secvență de test cu viteza de 8000eșantioane/s a

fost generat după relația:

(15)

unde u(n) a fost inițial 0. Secvența de zgomot alb Gaussian are banda limitată de răspunsul la impuls cu filtru trece jos. Parametrul este dat de:

(16)

cu (17)

eșantionat la frecvența fs. Am selectat fc = 800 Hz, fs = 16 kHz, Rmin = 2, puterea semnalului este <x2(n)> = 1 și un eșantion adiacent corelat cu x(n) la 0,9. S-a optat pentru generarea lui x(n) deoarece densitatea spectrală de putere a lui este similară cu cea pe termen lung semnalului vocal.

Coeficientul de predicție al integratorului a fost 0,99, în timp ce pasul DM minimizează <q2(n)> și rezultă o încărcare suplimentară a pantei cu 0,72 respectiv 1,2. Codorul DM a lucrat la 16kb/s și variația în funcție de viteză a fost o consecință a alocării mai multor biți pentru codorul PCM suplimentar. Secvența qfd(n) aplicată la decodor PCM nu a fost influiențată de viteza transmisiei cu modulație delta înlănțuită (EDM) și a menținut distribuția Gauss inițială. Cu cît crește viteza transmisiei, cu atît crește și numărul de nivele de cuantizare necesare modulației în impuls (PCM). Pentru a se realiza cuantizarea minimă a zgomotului cu modulație în impuls (PCM) s-a extins numărul de puncte de supraîncărcare, în ciuda faptului că pasul al modulației în impuls scade. Aceasta înseamnă că pentru optimizarea performanțelor EDM, factorul a crescut în același ritm cu viteza modulației delta înlănțuite.

Curbele marcate cu triunghiuri în Fig.6 ilustrează performanțele modulației delta cînd a fost optimizat, pentru fiecare valoare a lui P.

FIO = Factorul de Încărcare Optim

FIC = Factorul de Încărcare Constant

Fig.6. Variația SNR cu viteza pentru codare delta înlănțuită

Curba marcată cu pătrate s-a obținut pentru acel optimizat la 40kb/s și Rsup = 3b/Neașant.

Codorul cu modulație delta înlănțuită are performențe mai bune, dar raportul semnal-zgomot (SNR) în comparație cu cel de la DM nu este mare la o viteză mică.

CAP. III.

CODAREA SUB-BANDÃ

CODAREA SUB-BANDÃ

La codarea sub-bandă, semnalul vocal este împărțit într-un număr de sub-benzi și fiecare semnal sub-bandă este codat adaptiv. Numărul de biți folosiți în procesul de codare diferă pentru fiecare semnal sub-bandă, cu biții asignați pentru cuantizare corespunzător unor criterii de proporționalitate. Prin codarea fiecărui semnal sub-bandă în parte, zgomotul de cuantizare este limitat prin propria sub-bandă. Șirurile de biți de la ieșirea fiecărui codor sînt întîi multiplexate și apoi transmise. La recepție, demultiplexarea este realizată urmînd decodarea fiecărui semnal de date din fiecare sub-bandă. Semnalele sub-bandă eșantionate sînt apoi combinate pentru a obține semnalul recuperat de la ieșire.

Întîi ne vom asigura că semnalul vocal este trecut printr-un set de filtre a căror bandă nu se suprapune. În plus, trebuie să fie continuu peste banda semnalului vocal, astfel încît se obțin semnale sub-bandă care pot fi recombinate pentru a recupera semnalul vocal fără distorsiuni perceptibile. Aceste filtre se pot obține în practică și semnalele care rezultă sînt combinate ca să se obțină replica foarte aproape de semnalul original. Atunci distorsiunile percepute în semnalul sub-bandă recuperat la ieșire se datorează procesului de codare și neîmperecherilor de canal.

Presupunem că semnalul vocal este de bandă limitată BHz și s-a eșantionat la frecvența fB egală cu frecvența Nyquest. Eșantioanele provenite din filtrarea sub-bandă sînt deasemeni cu aceeași viteză. Astfel, banda filtrului este semnificativ sub banda semnalului vocal original.

Dacă trebuie eliminată supraeșantionarea semnalelor sub-bandă, atunci reducerea vitezei de eșantionare trebuie corelată cu raportul dintre banda B a semnalului original și banda semnalelor sub-bandă.

Trebuie să reconstituim semnalul vocal original din semnale sub-bandă cu distorsiuni imperceptibile. Producerea sub-benzilor folosind setur de filtre digitale convenționale, nu poate să îndeplinească această condiție, deoarece filtrul de trecere are o lungime finită a benzii. Dacă filtrele trece bandă se suprapun în domeniul frecvență, sub-eșantionînd provocăm aliasing-uri care, în sistemul vocal, distrug structura armonică a semnalelor originale și au rezultate neplăcute. Dacă filtrele trece bandă nu se suprapun, semnalul vocal nu poate fi reconstituit perfect datorită pauzelor dintre canale. Aceste pauze introduc ecouri care deranjează. Cerințele pentru a nu folosi alising-ul și a elimina pauzele la semnalul reconstituit sînt strict particulare în codarea sub-bandă a semnalului vocal, deoarece chiar și valorile mici ale zgomotului de aliasing sau distorsiunile provocate de pauzele dintre canale pot determina degradări semnificative ale calității semnalului reconstituit. În plus, ordinul filtrului N, trebuie determinat precis pentru a rezulta un criteriu pentru frecvența de răspuns.

O metodă eficientă de a îndeplini aceste condițiifoarte severe asupra filtrelor este utilizarea filtrelor oglindă în cuadratură (QMF). Aceste filtre realizează procesele sub-bandă și invers. De fapt un răspuns global plat în frecvență cu aliasing-uri în apropierea lui zero (fără a uita de ordinul filtrului).

3.1. TEORIA FILTRELOR OGLINDÃ ÎN CUADRATURÃ (QMF)

Tehnica filtrelor oglindă în cuadratură (QMF) a fost propusă de Esteban și Galand. Johnston a dimensionat coeficienții filtrelor pentru a obține o familie de filtre de tip QMF. Filtrele QMF au un domeniu larg de aplicații.

Tehnica de sinteză a filtrelor QMF este descrisă mai bine folosind un sistem cu două canale ca în fig:

Fig.7: Diagrama bloc pentru două semnale sub-bandă folosind seturi de filtre

QMF

Semnalul vocal de la intrare este de bandă limitată la fs/2 și eșantionate la frecvența

(18)

și rezultă x(n).

Semnalul vocal x(n) este prelucrat pe două ramuri. Pe una se filtrează trece-jos H1(z) și se formează semnalul de frecvență pe o jumătate de bandă x1(n). Pe cealaltă ramură se obține semnalul de frecvență înaltă pe cealaltă jumătate de bandă, în urma unei filtrări trece-sus, x2(n). Deorece spectrele semnalelor astfel obținute x1(n) și x2(n) ocupă doar o jumătate de bandă din banda semnalului original x(n), se poate înjumătăți viteza de eșantionare în fiecare sub-bandă prin ignorarea celui de-al doilea esantion. Se obțin semnalele y1(n) și y2(n). Prin filtrare și decimare se obține un semnal scindat.

Procesul de reconstituire al semnalului (Fig.7), constă în prelucrarea semnalelor y1(n), respectiv y2(n). Acestea se interpolează prin inserarea unui eșantion 0 între fiecare esantion din semnalul u1(n), u2(n). aceste secvențe sînt filtrate:

– trece-jos și se obține k1(z), de unde rezultă t1(n)

– trece-sus și se obține k2(z), de unde rezultă t2(n).

Se adună cele două semnale și se reface semnalul original.

Prin transformarea Z se obține răspunsul la impuls h1(n), respectiv h2(n), care au următoarea relatie între amplitudini:

(19)

este frecvența unghiulară.

Mai mult, dacă H1(z) are răspunsul în frecvență simetric, frecvența negativă este imaginea în oglindă a frecvenței pozitive.

(20)

Acum,

(21)

Atunci, relația 20 devine:

(22)

Filtrele K1(z) și K2(z), prin transformare Z au răspunsurile la impuls k1(n) respectiv k2(n). Ele respectă relația 22.

Transformarea Z pentru x1(n):

(23)

care se poate exprima sub forma:

X1(z) = a0 + a1z-1 + a2z-3 +……….. (24)

unde ai, i = 1…N sînt coeficienții transformării Z. Cînd x1(n) este decimat, rezultă y1(n), a cărui transformată Z este:

(25)

Procesul invers:

– prin interpolarea lui y1(n) se obține u1(n). În domeniul Z rezultă:

(26)

Dacă K1(z), T1(z) reprezintă transformările Z ale lui k1(n) respectiv t1(n), atunci, după filtrarea finală se obține:

(27)

Din relația 23 și relația 27 rezultă:

(28)

Similar, t2(n) are transformata T2(n):

(29)

Putem astfel să formăm transformata Z a semnalului recuperat s(n):

(30)

Al II-lea termen al sumei reprezintă efectul alinierii după decimare și poate fi eliminat dacă se înlocuiesc relațiile

K1(z) = H1(z) (31)

și K2(z) = -H1(-z) (32)

în 22, rezultă: H2(z) = H1(-z) (33)

Înlocuim 33 în 30 și rezultă:

(34)

Evaluăm S(z) pe cercul unitate în planul z:

cu (35)

Pentru a fi siguri că semnalul s(n) nu este supus alinierii, trebuie să identficăm restricția H1(z). Presupunem că alegem filtrul FIR simetric. Atunci H1(z) poate fi exprimat:

(38)

unde N este ordinul filtrului. Deoarece H2(z) este răspunsul în oglindă al filtrului H1(z), răspunsul său la impuls se formează inversînd fiecare al doilea eșantion al lui h1(n). Din relația 33 avem:

(39)

Întorcîndu-ne la H1(z), putem să-i scriem răspunsul în frecvență folosind amplitudinea și faza:

(40)

în relația 36 se obține:

(41)

Trebuie să avem în vedere ca N poate fi par sau impar.

1.N impar.

Notînd (42)

putem scrie relația 40 ca fiind:

(43)

Pentru un sistem perfect trece-tot

(44)

De aici obținem:

(45)

sau în domeniul timp

(46)

Semnalul de ieșire este deci semnalul vocal supus unei întîrzieri cu N-1 eșantioane și amplitudinea sa este 0,5 din amplitudinea semnalului original. Toate componentele de aliniere sînt absente.

2. N par

Pentru valori ale lui N, termenul exponențial devine:

(47)

(48)

Filtrul H1() este simetric și la , termenul

și . Ca o consecință, cînd N este par, la această frecvență nu este nici un semnal la ieșire. Este deci esențial să folosim filtre cu valori pare ale lui N.

Pe scurt:

Pentru a avea o perfectă reconstituirea semnalului, trebuie să fie îndeplinite următoarele condiții:

1. H1(z) filtru FIR simetric

2. H2(z) = H1(-z)

3. K1(z) = H1(z)

4. K1(z) = -H2(z)

5. H12(ω) + H(ω + ωs/2) = 1

Am descris sistemul QMF cu filtre QMF ca și cum acestea ar lucra cu semnale în domeniul timp. Deși nu ne-am propus să aprofundăm acest aspect, Nussbaumer și Galand au introdus un filtru complex în cuadratură în oglindă (QMF) care are capacitatea de a înjumătăți complexitatea socotelilor.

În general, seturile de filtre QMF pot fi dispuse sub forma unei structuri arborescente pentru a achiziționa mai bine rupturile de bandă. Circuitul poate fi aranjat în așa fel încît să se poată face o cît mai bună achiziție indiferent dacă rupturile de bandă sînt uniforme sau neuniforme.

În fig.8.a. este semnalul vocal de la intrare x(n) este împărțit în patru sub-benzi de lațime egală.

În fig.8.b. cele două sub-benzi joase sînt fiecare un sfert din banda semnalului vocal, în timp ce sub-banda de frecvență înaltă are lungimea jumătate față de lungimea benzii originale.

3.2. ALGORITMUL SBC

S-au realizat numeroase variante ale algoritmului SBC, deși toate sînt variații ale schemei de bază tratată pe scurt în capitolul de introducere.

Vom considera varianta lui Hanes pentru exemplificare. Diagrama bloc a codorului este dată în Fig.9.

Codorul are filtrele QMF aranjate simetric într-o structură arborescentă. Banda semnalului de intrare este împărțită în benzi de lungimi egale. La primul nivel, filtrul QMF1 împarte semnalul vocal în două componente:

– o componentă de joasă frecvență u1(n)

– o componenta de frecvență înaltă u2(n)

amîndouă avînd frecvența centrala fs/2. Procesul de decimare este realizat de QMF1. Fiecare din cele două componente este mai departe împărțită în componentele de joasă și înaltă frecvență la nivelul QMF2. Se formează astfel semnalele v1(n), v2(n), v3(n), v4(n) cu frecvența fs/4. În final, fiecare din aceste semnale sînt împărțite la rîndul lor din nou în componente de înaltă și joasă frecvență și se obține 1(n), 2(n), 3(n), 4(n), 5(n), 6(n), 7(n), 8(n) cu frecvența fs/8.

Semnalul k(n), k = 1..8, sînt fiecare în parte codate de un cuantizor de tip Jayant pe un cuvînt de memorie. Cuvintele de cod din fiecare sub-bandă sînt multiplexate și transmise pe un canal de comunicații radio-mobile de 16kb/s.

Cum cea mai mare parte a energiei în semnalul vocal telefonic este transmisă în domeniul de frecvențe 200 ÷ 3kHz, putem opri transmisia de la a șaptea sub-bandă și a opta sub-bandă (care acoperă domeniul de frecvență 3k ÷ 4kHz), fără a deteriora semnificativ semnalul vocal. Această tehnică ne permite să folosim codoare la 15kb/s. Vom vedea imediat că această parte a informației este transmisă pentru a da o viteză de transmisie de 16kb/s.

La recepție, semnalele demultiplexate sînt decodate și aplicate la nivelul trei de filtre QMF inverse. A șaptea sub-bandă de semnal (3k÷3,5kHz) este regenerată prin replica celui de-a șasea benzi în a șaptea bandă. Această procedură este folosită numai cînd se întîlnesc pauze în vorbire și este cunoscută ca regenerarea frecvențelor înalte. Semnalele de la QMF3-1 sînt adunate pe perechi (conform Fig.9) și aplicată la nivelul 2, QMF2-1.

Ieșirile de la cîte două QMF2-1 sînt sumate, filtrate la nivelul QMF1-1 și se reface semnalul x(n). Interpolarea la fiecare nivel în decodor este realizată să găsească nivelul QMF-1 și cîștigul a cîte două etaje este compensat de 0,5 din factorul

În partea de jos a diagramei bloc este un sub-sistem ce generează bitul pentru algoritmul semiadaptiv. Acesta folosește semnalele de la QMF1,2. Din bitul de asignare se determină sub-banda pentru codare-decodare. Selectarea bitului de asignare este transmisă la recepție pe această cale de informație,

folosindu-se pentru a se detecta toate erorile de pe canal. Acest bit de asigurare determină viteza codorului pentru fiecare sub-bandă.

3.2.1. SETUL DE FILTRE QMF

Vom analiza acum desfășurarea în codoare SBC. Deși am văzut că QMF-urile pot fi setate să ocolească efectele aliasing-ului, sînt limitări practice în obținerea acestui deziderat. Trebuie făcute compromisuri în practică. De exemplu, este necesar un filtru FIR de tip QMF mai lung pentru o transmisie mai bună, cu scopul de a reduce efectele alinierilor interbandă. Cu cît filtrele QMF sînt mai lungi, cu atît sînt mai mari întîrzierile pe linie. Pentru a reliza o mai bună performanță este necesar să avem mai multe sub-benzi. Aceasta înseamnă filtre QMF mai lungi pentru a realiza o transmisie suficient de bună. Astfel, progresul performanțelor datorat creșterii numărului de sub-benzi va fi off-setat de creșterea efectelor alinierii.

În filtrul QMF din Fig.9, a cărui frecvență primară de eșantionare este fs = 8kHz, lungimea sub-benzii rezultante este de 500Hz.

Ca o consecință, vom avea de ales banda de tranziție a filtrelor la fiecare etaj mai mică de 500Hz, dacă vrem să evităm distorsiunile datorate alinierii de-a lungul benzii. Tabelul 1 arată pe scurt condițiile necesare pentru tranziții de bandă normalizate la fiecare nivel și folosesc filtrele lui Jabbuston care au banda de tranziție aproximativ egală cu cea calculată.

Tabelul 1

Vom face un compromis între numărul de prize și atenuarea rejecție de bandă care achiziționează un număr minim de întîrzieri. Studiindu-l pe Johnston, prezentăm parametrii relevanți în Tabelul 2.

Tabelul 2

Din teoria filtrelor QMF, întîrzierea semnalului recuperat este N-1 intervale, respectînd viteza de la pre-decimare. Primul, al II-lea și al III-lea nivelau întîrzierile N1-1, N2-1, N3-1 respectînd ordinea frecvențelor de eșantionare, fs, fs/2, fs/4. Cînd toate aceste întîrzieri se reflectă înapoi la frecvența primară fs, întîrzierea totală va fi:

(50)

În experimentul nostru N1 = 32, N2 = 32, N3 = 32. Rezultă ΔT = 105 perioade. Pentru frecvența primară de 8kHz, întîrzierea totală este 13ms.

3.2.2. CUANTIZAREA

Pentru a limita viteza transmisiei trebuie să codăm eficient fiecare semnal sub-bandă. O aproximare favorabilă este aceea de a folosi modulația adaptivă în impuls (APCM). Fiecare semnal sub-bandă este codat de un cuantizor adaptiv Jayant cu memorie de un cuvînt. Numărul de biți asignați fiecărui cuantizor este conform unor criterii procentuale. Cuantizorul cu ridicare la jumătate s-a implementat datorită eficacității sale în reprezentarea cuvintelor de cod de la nivelele de cuantizare la semnalul sub-bandă. Cuantizorul de tip Jayant își adaptează pasul Δn la fiecare eșantionare. Schema bloc a cuantizorului este dată în Fig.10.

Fig.10. Diagrama bloc a lui Jayant pentru un cuantizor cu memorie de un cuvînt

Ieșirea y(n) a cuantizorului la bitul B (B > 1) este de forma:

(51)

unde |c(n)| =1, 3,…..,2B-1 și Δn > 0. Pasul Δn este dat de pasul anterior multilplicat cu o funcție care depinde de amplitudinea cuvîntului de cod |c(n)|

(52)

Datorită limitărilor de hard, pasul Δn poate varia numai peste un nivel dinamic limitat, între (min, max):

(53)

Raportul (54)

determină nivelul dinamic al codorului (tipic de 42dB).

Funcția de multiplicare M(…) controlează rata de adaptare a pasului. Pentru semnalul telefonic vorbit, valorile de multiplexare pentru 2, 3, 4 cuantizoare sînt date de tabelul:

Tabelul 3

3.2.3. ALOCAREA BITULUI SEMIADAPTIV

Pentru a obține o calitate a semnalului vocal mulțumitoare, echivalentă aceleia obținute la viteza de 56kb/s în cazul modulației în impuls logaritmică, trebuie ca numărul de biți B asignați cuantizoarelor de tip PCM adaptive să varieze asemănător cu semnalul vocal. Oricum, o strategie completă de alocare adaptivă a bitului introduce o întîrziere considerabilă. În plus se complică foarte

mult sistemul, ceea ce face ca să fie inaplicabil. Prin folosirea unei proceduri de alocare semi-adaptivă apare o întîrziere datorată seturilor de filtre QMF.

Pentru a aloca biții la banca de cuantizare, clasificăm semnalul de la intrare în:

– semnal vocal

– semnal nevocal

– semnal intermediar.

În plus, trebuie să avut în vedere să poată codorul SBC să gestioneze semnalele de date VBD. Acest semnal de date se poate distinge prin transmiterea semnalelor de ton AC9/AC15 (2280Hz) și a tonului dual MF5 cu semnale întrepătrunse între 40 ÷ 1140 Hz, 1380 ÷ 1980Hz.

Clasificarea s-a realizat măsurîndu-se cîteva anvelope spectrale ale unor semnale sub-bandă cu ferestre mai mari de 6ms. Această perioadă este echivalentul a 48 de eșantioane pentru fiecare fereastră de eșantionare de 8kHz și corespunde aproximativ unei întîrzieri introduse de al II-lea și al III-lea nivel de filtre QMF. Semnalele sub-bandă u1(n) și u2(n) din QMF sînt procesate pentru a fi obținute EL, EH cu rata RE.

(55)

(56)

(57)

Amplitudine medie pe termen scurt estimată de filtrul QMF2 este calculată cu:

(58)

(59) (61)

(60) (62)

Tabelul. 4 arată alocarea de biți pentru fiecare cuantizor ca funcție de clasifcarea biților.

LEGENDĂ:

SAB = Strategia de Alocare a Biților

V = VOICED I = INTERMEDIATE

U = UNVOICED S = SIGNALLING/VBD

Tabelul. 4.

Decizia de clasificare este transmisă ca parte de informație protejată pentru a seta receptorul să decodeze corect APCM.

O îmbunătățire a semnalului vocal la recepție se poate obține printr-o lărgire a benzii semnalului recuperat, cînd este selectată strategia de asignare a bitului nevocal. La receptor, procesul de regenerare a frecvenței translează banda din 2,5 ÷ 3kHz în 3 ÷ 3,5kHz. Această situație este prezentată de H în Tabel.4. Prin această tehnică, sunetele nevocale sînt reproduse cu o ușoară înviorare (puțin mai bine).

Pasul minim și pasul maxim al cuantizorului sînt Δm, ΔM și rația lor este determinată de domeniul dinamic al nivelului semnalului de la intrare cu care se poate acomoda pentru a realiza un raport SNR mai bun. Pasul Δm pentru fiecare sub-bandă este ales relativ la energia semnalului de sub-bandă și fiecare codor este proiectat să lucreze într-un domeniu stabilit.

Maximul SEG – SNR provine de la un nivel relativ de putere de –20dB, indiferent dacă este voce feminină sau masculină.

Fig.11: Variația SEG – SNR cu puterea semnalului de intrare pentru o voce

feminină (F) și pentru o voce masculină (M)

3.3. MĂRIREA ROBUSTEȚII ALGORITMULUI SBC PE CANALE CU ERORI

Algoritmul SBC lucrează cu cuantizare adaptivă. Aceasta este realizată folosindu-se cuantizoare cu estimare cu reacție în urmă (AQB) care nu are informații suplimentare. Algoritmul lucrează foarte bine în transmisiunile fără erori. Cînd BER depășește 10-2 din pasul de lucru, la decodorul începe să devieze de la pasul codorului. Pasul va reveni la valoarea inițială, numai cînd amîndouă semnale vor atinge maximul sau minimul pasului de lucru, după cîteva intervale. Aceastea este echivalent cu forțarea pasului, cînd atît codorul cît și decodorul pornesc coordonat.

3.4. PERFRMANȚELE CODOARELOR ÎN DEZVOLTAREA ACUSTICII

Ceea ce s-a prezentat anterior s-a bazat pe presupunerea că semnalul de la intrare nu este afectat de zgomot. Dar în practica acest model nu se respectă. Semnalul vocal pe o linie de comunicație mobilă este afectat de zgomot. Deobicei, vorbirea este însoțită de zgomot de fond, de alte convorbiri, de zgomotul provocat de motoare…. Aceste zgomote de spate sînt combinate cu semnalul vocal și dacă sînt suficient de intense, pot afecta performanțele codării, ceea ce ar afecta convorbirea telefonică.

Pentru a simula un zgomot de fond, folosim un corelator de zgomot și o sursă, numită unitate de referință pentru zgomot modulat (MNRU). Acest model a fost propus de Schroeder și a fost standardizat de CCITT.

Se formează un zgomot modulat dintr-un semnal original curat N(n)

(63)

și un proces stocastic discret e(n) realizat cu funcția de autocorelație Kronecher δn1, δn2 care este necorelată cu semnalul vocal.

cu aceeași probabilitate (64)

(65)

(66)

(67)

Semnalul N(n) este filtrat cu un filtru trece-bandă în banda 200Hz ÷ 3,2kHz și rezultă semnalul . Semnalul s(n) aplicat codorului este semnalul vocal original x(n) combinat cu un semnal prelucrat. Prelucrarea zgomotului implică o creștere a vorbirii de la încetișor la sesizarea zgomotului de fond. Semnalul combinat b(n):

(68)

Factorul α definește raportul dintre puterea semnalului și puterea semnalului x(n). Termenul (1+ α2) -1/2 ne asigură că semnalul s(n) are aceeași putere cu aceea a semnalului vocal fără zgomot x(n).

Punctul de 3dB al algoritmului nerobust se obține pentru SEG – SNR de 5dB. Zgomotul de fond este neglijabil în comparație cu zgomotul cuantizorului de la codor și abilitatea de codare este afectată de zgomot de fond. Zgomotul joacă un rol important cînd SEG – SNR devine prea mic. Ieșirea SEG – SNR scade rapid.

CAP. IV.

MODELE PENTRU ANALIZA PRIN SINTEZA A SEMNALULUI VOCAL EȘANTIONAT

4.1. MODURI PENTRU ANALIZA PRIN SINTEZĂ LPC

Codurile DM și SBC descrise anteior nu pot reproduce semnalul vocal cu acuratețe la viteze mai mici de 16kb/s. Pe de altă parte, codurile sursă, (codul LPC cu predicție liniară) lucrează la viteze mai mici de 2kb/s și în linii mari nu au aplicații comerciale. Codul cu predicție liniară în forma sa de bază a fost folosit în principal în comunicațiile militare, unde semnalul vocal trebuie să aibă o viteză foarte mare.

Necesitatea de a reliza o calitate utilă a semnalului vocal la viteze mai mici de 10kb/s pentru aplicații pe canale care au o inerentă limitare de bandă a captat interesul cercetătorilor. Astfel, s-au căutat algoritmi LPC mai eficienți. Limitarea esențială a vocoderelor cu algoritmi LPC este dată de presupunerea că semnalele vocale sînt vocale și nevocale, în timp ce sursele de excitație ale filtrelor sintetizate numai cu poli sînt fie cu tren de impulsuri (pentru semnalele vocale), fie cu zgomot aleator (pentru semnalele nevocale).

De fapt, sînt mai mult de două moduri în care canalul vocal este excitat și deobicei, aceste moduri sînt mixate. Chiar cînd semnalul este vocal, este o simplificare mult prea mare aceea de a presupune că este doar un punct de excitație pe întinderea unei perioade. În 1982, Atal a propus un model nou de excitare care este cunoscut ca excitație multipuls. În acest model nu este necesară nici o deczie prioritară dacă semnalul este ne/vocal sau dacă este pe o perioadă. Excitația este modelată printr-un număr de pulsuri (de obicei 4-5ms) a căror amplitudini și poziții sînt determinate prin minimizarea influienței erorii dintre semnalul vocal original și cel sintetizat la recepție.

Introducerea acestui model a generat un mare interes și a fost primul dintr-o nouă generație de coduri de analiză capabile să producă o calitate ridicată a semnalului vocal la viteze de 10kb/s și mai mici de 4,8kb/s. Acastă nouă generație de coduri folosește aceleași filtre de sinteză ca cele folosite de vocoderele LPC. Semnalul excitat este optimizat cu atenție și codat eficient folosind tehnicile codării cu forme de undă. Toate codurile de analiză prin sinteză au aceeași structură de bază în care excitația este determinată prin minimizarea importanței erorilor dintre semnalul original și cel sintetizat. Acestea diferă prin modul cum este modelată excitația. Aproximarea semnalului multipuls presupune că cele atît amplitudinile cît și pozițiile inițiale ale celor două semnale sînt necunoscute, apoi ele se determină în bucla de minimizare, cîte un impuls odată. Excitația unui impuls presupune că impulsurile sînt distantate regulat și amplitudinile sînt calculate din setul de M x M ecuații, unde M este numărul de impulsuri. În codurile cu predicție liniara (CELP), semnalul excitator este o intrare a unui cod stocastic foarte mare.

Complexitatea acestor coduri crește odată cu reducerea vitezei de bit. De exemplu, CELP poate produce o vorbire de calitate bună la viteze mai mici de 4,8kb/s, dar necesită o mare cheltuială pentru un calcul exhaustiv într-un set de coduri cu 1024 intrări pentru determinarea unei secvențe optime.

Vom descrie în continuare, un sistem de codare cu analiză prin sinteză. Vor fi dezbătute pe larg părți diferite ale modelului, cum ar fi:

– filtrele LPC cu sinteză (pentru a modela anvelopa semnalului vocal pe termen scurt)

– predictorul înălțimii sunetului

filtrele de ponderare a erorii

procedura de minimizare a erorii.

Definirea secvenței de excitație joacă un rol important în determinarea performanțelor și a complexității codului. Diferitele modele de excitație vor fi descrise în detaliu (multi – impulsul, impulsul regulat, CELP, autoexcitarea, excitația cu impuls binar). Vom fi discuta performanțele și complexitatea acestor modele de excitație.

4.2. MODELUL GENERAL DE ANALIZĂ

Structura de bază pentru modelul general de coduri cu analiza prin sinteză este în figura:.

Fig. 12: Modelul general de anliză prin sinteza LPC

Modelul este compus din trei părți principale:

sinteza filtrelor:

filtre cu zerouri pe toată banda, care modelează anvelopa semnalului pentru forma de undă a semnalului vocal. Este numit filtru cu corelare pe termen scurt, datorită eficienței sale dată de calculul cu predicție pentru eșnationare (8-16 eșantioane, ceea ce înseamnă termen scurt). Sinteza de filtre poate de asemeni include și filtre cu corelație pe termen lung, care se obțin prin cascadarea filtrelor pe termen scurt. Predictoarele pe termen lung modelează structuri apropiate de spectrul vocal.

generarea excitației:

aceasta produce secvența de excitație care va determina filtrul de sinteză să realizeze reconstituirea semnalului vocal la receptor. Excitația este optimizată prin minimizarea importanței erorii dintre semnalul oricinal și cel sintetizat. După cum arată Fig.12. în codor se află un decodor local, iar metoda de analiză pentru optimizarea excitației folosește diferența dintre semnalul original și cel sintetizat ca un criteriu de eroare, și alege secvența de excitație care minimizează rolul erorii. Eficiența acestei metode de analiză provine din procesul de optimizare din bucla închisă. Aceast proces de optimizare permite reprezentarea predicției restante folosind o viteză de bit mică, în timp ce se păstrează o calitate înaltă a semnalului vocal. Aceasta explică superioritatea codului cu analiză prin sinteză cu predicție asupra codurilor cu predictie, care au o structură de inel deschis, cum ar fi codurile RELP cu predicție liniară cu excitație liniară. Punctul cheie în structura de inel închis este acela că restul de predicție este cuantizat prin minimizarea importanței erorii dintre semnalul original și cel refăcut, decît minimizarea erorii dintre semnalul reziduu și forma sa cuantizată în structura de buclă deschisă.

criteriul de minimizare a erorilor:

cel mai utilizat criteriu de minimizare a erorilor este eroarea medie pătratică. Eroarea este trecută printr-un filtru de pondere perceptuală (sesizează înălțimea semnalului), care taie spectrul zgomotului pentru a concentra puterea la frecvențele din spectrul vorbirii astfel încît zgomotul este mascat de semnalul vocal.

Procesul de codare parcurge următorii pași:

– se determină parametrii filtrului din eșantionarea semnalului vocal

(10-30ms de vorbire) în afara inelului de optimizare

-secvența optimă de excitație pentru acest filtru este determinată prin

criterii de minimizare a erorii. Intervalul de optimizare a erorii este de obicei în domeniul 4-7,5ms. Domeniul este mai mic decît parametrii LPC pentru o aceeași fereastră. Fereastra semnalului vocal este împărțită în două sub-ferestre, unde excitația este determinată individual pentru fiecare sub-fereastră. Parametrii filtrelor de cuantizare și excitația cuantizată se trimit la receptor. Procesul de decodare este realizat prin trecerea segmentului de excitație decodat prin filtrul de sinteză cu scopul de a reface semnalul vocal.

Semanalele sub-bandă sînt codate pentru a se putea obține o viteză de bit de 15kb/s, în timp ce informația este la o viteză de 33b/s. Datorită importanței informației, aceasta este potejată prin repetarea de trei ori și majoritatea logicii este folosită pentru informația auxiliară. Informația auxiliară este transmisă la 1kb/s și rata pentru codor este de 16kb/s.

Presupunem că fluxul de biți b(n) modulează o purtătoare folosind

BPSK și semnalul modulat este transpus pe un canal de tip Rayleigh. După demodulare, semnalul în banda de bază este:

(69)

unde R(n) este amplitudinea anvelopei cu distribuție de putere de tip Rayleigh:

(70)

Cx(n) și Cy(n) fiind variabile de tip Gauss aleatoare, iar ф(n) este variabila de fază aleatoare în +/-π. Dacă transmisia se efectuează pe canal Gaussian, atunci R(n) = 1 în relația 70.

Algoritmul SBC descris anterior a fost aplicat atît pentru canale cu distribuție R, cît și pentru canale cu distribuție G. Cei mai robuști algoritmi sînt algoritmii cu scurgeri de pași β = 63/64 și algoritmii cu forțarea pasului cu Tu = 42ms. Progresul în domeniul raportului semnal – zgomot comparat cu algoritmul de bază, care este mai robust, pentru cele 2 canale, este dat în Tabelul 5 pentru o rată a erorilor (BER) de 10-2 și 10-3.

Tabelul 5

În regiunea cu BER mare, algoritmul de forțare al pasului cu Tu = 42ms este mult mai bun decît algoritmul cu scurgeri pentru β = 63/64. Invers, cînd BER scade, algoritmul cu scurgeri cu β = 63/64 este mult mai bun decît algoritmul de forțare al pasului cu Tu = 42ms.

Pentru canalul Rayleigh, cei doi algoritmi se intersectează pentru o rată a erorilor de bit (BER) de 3,2*10-3. Alte curbe din aceeași familie a algoritmilor robuști cu performanțe similare, exceptînd valorile SEG – SNR care sînt inferioare regiunii cu BER mici.

Testele de ascultare au arătat că atît semnalul vocal masculin cît și cel feminin este ușor degradat cînd transmisia este eronată pe cele mai de jos patru sub-benzi (0 – 2kHz). Această degradare se datorează faptului că majoritatea energiei semnalului vocal este în aceste sub-benzi, iar sub-benzile sînt codate de cuantizoare cu rată de bit mare. Viteza mare de cuantizare duce la o performanță mai scăzută și deci la o rata de bit BER mai mare. Astfel, dacă este introdusă codarea pe canal, semnalul sub-bandă codat necesită o mai mare protecție împotriva erorilor decît biții codați din benzile din domeniul 2 – 3kHz.

4.3. PREDICȚIA PE TERMEN SCURT

Predictoarele pe termen scurt modulează spectrul anvelopei semnalului vocal pe termen scurt. Anvelopa are o întindere de L esantioane poate fi aproximată prin funcții de transmisie cu filtre numai zerouri (fără poli) de forma:

(71)

unde (72)

este predicția pe termen scurt.

Coeficienții {ak} se calculează folosindu-se metoda predicției liniare (LP). Setul de coeficienți {ak} formează parametrii LPC sau coeficienții de predicție. Numărul coeficienților de predicție p este numit ordinul de predicție. Ideea de bază în analiza predictivă este aceea că fiecare eșantion poate fi aproximat prin combinații liniare ale eșantioanelor anterioare (8 – 16 eșantioane).

Aplicăm transformata Z ecuației:

(73)

se obține

(74)

unde

(75)

A(z) este inversa lui H(z), A(z) filtru invers.

Datorită faptului că semnalul vocal este variabil în dimp, coeficienții de predicție pot fi estimați dintr-un segment scurt de semnal vocal (10-20ms). Scopul este acela de a găsi un set de coeficienți de predicție care să minimizeze eroarea medie pătratică a predictorului peste un segment al formei de undă al semnalului vocal. Parametrii rezultați sînt apoi parametrii unui sistem cu transformata H(z) în modelul de producere al vorbirii. Eroarea de predicție este definită de:

(76)

i = 1….p (77)

Acest set de p ecuații cu p necunoscute poate fi rezolvat eficient cu coeficienții {ak}. Se calculează mai întîi ф(i,k), i = 1…p, k = 0…p. Pentru a calcula ф(i,k), trebuie specificate limitele sumei. Pentru analiza pe termen scurt, limitele trebuie să fie într-un interval finit. Se cunosc două metode de calcul al limitelor sumei:

metoda autocorelației

metoda covarianței

A III-a metodă care calculează coeficienții de reflexie este echivalentă

cu reprezentarea parametrilor filtrului direct din eșantioanele semnalului vocal după ce se trec printr-un estimator cu coeficienți de autocorelație. Această aproximație este numită metoda covarianței lattice sau algoritmul BURG. Cu toate că algoritmul Burg are aplicații diferite, deobicei, detecția semnalelor sinusoidale în zgomot aditiv arată că în aplicațiile care utilizează semnalele vocale, metoda Burg nu este chiar utilă ca alte metode.

4.4. METODA AUTOCORELAȚIEI

Presupunem că eroarea

(78)

este de calcul pe o durată infinită. Atît timp cît nu poate fi pusă în practică, presupunem că funcția de undă este identic 0 în afara intervalului 0 n La-1, unde La este lungimea ferestrei LPC. Aceasta este echivalentă cu multiplicarea semnalului de la intrare cu o fereastră de lungime infinită (n) care este identic 0 în afara intervalului 0 n La-1. Considerăm s(n) este diferit de 0 numai în

0 n La+p-1.

Atunci

(79)

Înlocuim m = n – 1 în 79 și rezultă

(80)

(i,k) este autocorelația pe termen scurt a lui s(n) evaluată pentru i – k.

Atunci

(81)

și rezută

(82)

Se înlocuiește p în 78 și rezultă:

(83)

Ecuația 83 se poate scrie sub formă matricială:

(84)

Matricea valorii de autocorelație de dimensiune p x p este matrice de tip Toeplitz simetrică. Toate elementele de pe diagonală sînt egale. Această proprietate specifică poate fi exploatată pentru a obține un algoritm eficient de calcul al ecuației 84. Cea mai eficientă soluție este procesul semirecursiv cunoscut ca algoritmul Durbin:

Pentru i(1, p) calculăm

(85)

(86)

Pentru i(1, i-1) calculăm

(87)

Soluția finală este dată de

(88)

Cantitatea E(i) din ecuația 87 este eroarea prezisă de predictorul de ordin i. Valorile intermediare ki sînt cunoscute sub numele de coeficienți de reflexie. Au aceeași coeficinți care apar în modelul de tub fără pierderi al traiectului vocal.

Valoarea lui ki este în domeniul -1 ki 1.

Această condiție impusă parametrilor ki este necesară și suficientă pentru ca toate rădăcinile polinomului A(z) să fie în cercul unitate, condiție care trebuie îndeplinită pentru ca sistemul H(z) să fie stabil. S-a observat că metoda de autocorelație totdeauna duce la filtre H(z) stabile.

Eșantionul vocal s(n) este identic 0 în afara domeniului (0, La – 1). Oricum, o trunchiere abruptă a semnalului este capabilă să creeze o creștere mai mare în predicția erorii la începutul și la sfîrșitul segmentului analizat. Această problemă este evitată dacă se utilizează o fereastră îngustă, de exemplu fereastra Hamming, a cărei amplitudine tinde la 0 treptat, nu abrupt. Fereastra Hamming este dată de

, 0 n La – 1 (89)

unde La este lungimea cadrului analizat LPC. Lungimea La a ferestrei Hamming este deobicei aleasă mai lungă decît lungimea ferestrei semnalului vocal L. Dacă se sar ferestre de semnal se obține în analiza LPC un efect fin. Se micșorează modificările abrupte în coeficienții LPC dintre analiza blocurilor.

4.5. METODA COVARIANȚELOR

Presupunem că eroarea E este minimizată peste un interval finit 0 n L-1. Pentru aceasta, (i,k) este dat de

(90)

Setul de ecuații 90 poate fi scris și sub formă matricială

(91)

Atît timp cît (i,k) = (k,i), matricea de dimensiune pxp este simetrică, dar nu este de tip Toeplitz. Se utilizează descompunerea ecuației 91 în descompunere Cholesky, unde matricea pxp este descompusă în

(92)

unde V este matrice triunghiulară cu elementele de pe diagonală egale cu 1

D este matrice diagonală

T este matricea transpusă.

Altă formă a descompunerii C este

(93)

unde U este matrice triunghiulară sub diagonala principală. U din ecuația 93 și V din ecuația 92 sînt legate prin

(94)

Rădăcina pătrată din ecuația 87 impune ca matricea să fie pozitiv defintă dacă se folosește descompunerea în formă 93.

Spre deosebire de metoda autocorelației, metoda covarianței nu garantează totdeauna stabilitatea filtrului H(z). Pentru aceasta, poate fi utilizată metoda covarianței stabilizate.

În metoda covarianței stabilizate matricea de covarianță este descompusă conform ecuației 93. Prin urmare, ecuația 84 devine

(95)

unde a = a1, a2,…..,apT și c = (1,0),(2,0),…..,(p,0)T. Elementele lui U se calculează din elementele matricii cu formula de recurență:

pentru j de la 1 la p se calculează

(96)

pentru i de la j + 1 la p se calculează

(97)

Fie

, (98)

atunci ecuația 95 se reduce la

(99)

Atît timp cît matricea U are o structură triunghiulară sub diagonala principală, ecuația 99 este ușor de rezolvat pentru g de forma:

(100)

Coeficienții de reflexie se găsesc din elementele vectorului g

(101)

Coeficienții predictorului ai se pot calcula din coeficienții de reflexie ki folosind aceeași relație recursivă ca cea din algoritmul Durbin, ecuația 87.

4.6. CONSIDERAȚII ÎN ALEGEREA CONDIȚIILOR DE ANALIZĂ LPC

Variabilele în analiza LPC sînt :

– metoda de analiză

– ordinul predictorului

– lungimea cadrului.

Folosim multi-pulse LPC pentru a obține date despre efectul analizei menționate asupra calității semnalului vocal. Prin metodele de analiză găsim că amîndouă metodele, atît cea cu autocorelație cît și cea cu covarianță stabilă duc la rezultate similare. Este destul de dificil să distingem cele două metode în condiții de analiză identice. Metoda cu autocorelație este folosită peste tot în cercetare. A doua variantă în analiza LPC este numărul de coeficienți de predicție p. Pentru a reduce numărul de biți necesari codării trebuie să folosim un minim de parametri pentru a modula cît mai bine anvelopa spectrală pe termen scurt a semnalului vocal. Pentru o reprezentare adecvată a "traiectului vocal" (tubului vocal) în condiții ideale, memoria modulatorului trebuie să fie egală cu de două ori timpul necesar undelor sonore să parcurgă distanța glotă – buze, ceea ce este egal cu 2*l/c, unde l = lungimea canalului vocal, iar c = viteza sunetului. De exemplu, pentru c = 34cm/s și l = 17 cm este necesară o memorie de 1ms. Cînd frecvența de eșantionare este fs eșantioane/s, unei perioade de 1ms îi corespund fs/1000 eșantioane. La viteze de 8kHz, ordinul predictorului trebuie să fie de cel puțin 8 pentru acest model ideal. În general este necesar să adunăm cîțiva coeficienți (4 sau 5) pentru a potrivi alți factori care au fost admiși din modelul tubului ideal (radiația buzei și a glotei și faptului că semnalele vocale eșantionate nu sînt chiar forme de undă de la ieșirea unor filtre fără zerouri.

Fig.13: Cîștigul predictorului în funcție de ordinul LPC

Fig. 13 arată media cîștigului de predicție funcție de ordinul de predicție p pentru 20s de vorbire dintre două persoane de sex feminin și două persoane de sex masculin. Cîștigul de predicție pentru cadrul vorbirii este

(102)

unde r(n) este reziduul predicției. În cazul metodei de autocorelație cîștigul predictorului poate fi scris:

(102)

Media cîștigului de predicție în dB este:

(104)

unde Nf este numărul de cadre. Este clar din Fig. 13 că cîștigul de predicție începe să se satureze de la predictoare de ordin mai mare ca 8.

Fig.14: SEG – SNR funcție de ordinul predictorului MPE – LPC

Fig.14 arată SEG-SNR al MPE-LPC variind ordinul predictorului între 8 și 14. Degradarea calității semnalului vocal devine notabilă cînd p este redus la 8 și calitatea este saturată cînd p este aproape de 12. Am observat că alegerea lui p = 10 este foarte rezonabilă pentru o reprezentare adecvată a canalului vocal.

A treia varibilă în analiza LPC este modernizarea intervalului L. Ca și la alegere ordinului de predicție p, alegerea unui interval de actualizare este un compromis între calitate și viteză. Este de dorit să executăm o analiză spectrală într-un interval unde mișcarea tubului vocal este neglijabilă. Pentru vocale, acest interval este de ordinul a 15 – 20ms, și este de obicei scurtat pentru semnalele nevocale. De fapt, sunetul asociat cu eliberarea unei consoane nevocale în poziția inițială, de exemplu t poate exista numai cîteva ms. Analiza asincronă (plasarea arbitrară în timp a intervalelor de observație a poziției de rostogolire) deobicei se va extinde mediind porțiuni în care se aude t cu porțiuni de tăcere care precede t. Astfel încît, pentru acuratețea analizei zonelor de tăcere este necesar un interval de 10ms, în timp ce sunetele cvasiperiodice, cum sînt majoritatea vocalelor, necesită un interval de 15 – 20ms. Cînd se folosește un predictor cu 10 coeficienți, se cuantizează cu 40 de biți pentru o cuantizare scalară pe așa-numitul raport logaritmic de arii. Dacă intervalul este mărit la 20ms, pentru a cuantiza LPC sînt necesari 2kb/s. Pe de altă parte, dacă se reactualizează la fiecare 10ms coeficienții, viteza va crește la 4kb/s. Aceasta înseamnă o creștere de 2kb/s, care este semnificativă pentru o codare la viteză mică.

Fig.15: SEG – SNR funcție de intrervalul de reactualizare

Fig. 15 arată descreșterea în SNR a MPE o dată cu creșterea intervalului de reactualizare.

Putem deci concluziona că pentru o viteză mică a codării, un interval de reactualizare de 20ms este suficient pentru a obține o calitate bună a vorbirii, cu toate că aceasta introduce o perturbare mică în cîteva sunete care își schimbă repede caracteristica spectrală (de exemplu sunetele tranzitorii).

4.7. CUANTIZAREA PARAMETRILOR LPC

Anvelopa spectrală reprezentată prin setul de parametri ai poate fi cuantizată utilizînd metode scalare sau vectoriale. În cuantizarea scalară, parametrii LPC se cuantizează individual folosind cuantizarea uniformă sau pe cea neuniformă. În cuantizarea vectorială (VQ), setul de parametri LPC este considerat ca fiind o entitate și sînt cuantizați folosind un set de coduri antrenate pentru a minimiza distorsiunile spectrale măsurate.

În general, vectorul de cuantizare lasă erori de cuantizare mai puține decît cuantizorul scalar la aceeași viteză. Oricum, cu cît este mai înalt nivelul de complexitate al algoritmului VQ, cu atît este mai greu de implementat fizic. Vectorii de cuantizare convenționali folosesc algoritmi care proiectează un tabel de parametri LPC bazat pe o secvență LPC antrenată. Acești vectori de cuantizare deobicei sînt lipsiți de robustețe cînd sînt testate secvențe de antrenare din afară. Folosind tabele pe 10 biți, vectorii de cuantizare convenționali rezultă într-o distorsiune spectrală notabilă. Crescînd numărul de biți folosiți pentru a coda parametrii LPC se crește numărul de biți folosiți de tabelul de cod exponențial. În consecință, necesitățile de stocare și timpul de procesare fac astfel de tabele de dimensiuni extraordinar de mari, impracticabile în aplicațiile practice. Din această cauză vectorii de cuantizare cu parametrii LPC nu au fost folosiți la aplicațiile unde este suficientă o cuantizare grosolană a anvelopei spectrale. Metodele cu vectori de cuantizare nu au dovedit că sînt folositoare acolo unde este necesară o calitate înaltă a semnalului vocal pe măsura complexității ei crescute și a performanțelor slabe cu tabele de dimensiuni mici.

VQ pentru parametri LPC au fost cel mai utilizate cu vocodere cu viteză mică. Astfel se limitează achiziția unui semnal vocal calitativ. Alt dezavantaj al VQ este vulnerabilitatea sa la erorile de transmisie, în special cînd se utilizează vectorul predictor.

De aceea, atenția în acest capitol va fi concentrată pe cuantizarea scalară a parametrilor LPC care se dovedește a fi cea mai utilizată în codarea de calitate a semnalului vocal.

Setul de parametri LPC {ak} reprezintă coeficienții filtrului sintetizat cu H(z) = 1/A(z). Prin cuantizarea setului de coeficienți de predicție, unul trebuie să asigure stabilitatea filtrului. Cu alte cuvinte, polii de cuantizare ai filtrului sintetizat trebuie să fie în interirul cercului uitate, o condiție care este greu de realizat dacă setul de parametri {ak} trebuie să fie cuantizat cu 10 biți pe parametru pentru a asigura stabilitatea filtrului sintetizat. De aceea, este necesar să se transforme coeficienții LPC în alt set de parametri care sînt raportați în maniera de unu la unu la coeficienții de stabilitate ai filtrului sintetizat. Noul set de parametri trebuie să aibă o bună comportare statistică și trebuie să fie un criteriu care să garanteze stabilitatea filtrului sistemului cuantizat.

4.7.1. COEFICIENȚII DE REFLEXIE

O astfel de transformare este acea care folosește un set de coeficienți de reflexie sau de corelație (PARCOR). Pentru sinteza filtrelor LPC stabile, coeficienții de reflexie au proprietățile:

(105)

Coeficienții de reflexie se calculează ca dintr-un set de p x q ecuații din algoritmul Durbin sau din metoda covarianțelor. Deoarece ki 1, polii funcției H(z) se apropie de cercul unitate. Mici schimbări ale lui ki pot provoca schimbări mari în spectrul semnalului. Studiile au arăta că funcția de sensibilitate spectrală este în formă de U. S-a remarcat o creștere a sensibilității pe măsură ce amplitudinea coeficienților se apropie de 1. Prin urmare, cuantizarea uniformă a coeficienților de reflexie nu este eficientă. În scopul eficientizării, coeficienții de reflexie sînt transformați într-un set de coeficienți care se manifestă printr-o sensibilitate spectrală scăzută pe măsură ce ki se apropie de 1. Se folosesc două transformări ale coeficienților de reflexie care sînt și inverse:

(106)

și

(107)

Denumirea de Rație Log-Area este echivalentă ca nume cu coeficientul de reflexie datorită analogiei tubului acustic cu tractul vocal.

Funcția densitate de probabilitate (PDF) a LAR pentru filtrul de ordin 8 este dată în Fig.16:

Fig.16: Histograma primilor 8 coeficiențiai LAR

Este clar că domeniul dinamic al parametrilor LAR descrește odată cu descreșterea lui i. De aceea se alocă mai mulți biți pentru cuantizorul LAR. LAR de gradul 8 se cuantizează cu 6, 6, 5, 5, 4, 4, 3, 3. În total se folosesc 36 de biți. Pentru o refacere a cadrelor coeficienților LPC la 20ms, este necesară o viteză de 1,8kb/s pentru a cuantiza coeficienții filtrului, iar la 30ms se reduce la 1,2kb/s.

Pentru a măsura eficiența cuantizorului cu parametri LPC se utilizează măsurarea logaritmică a distorsiunilor spectrale.

(dB)2

(108)

unde H(z) și A(z) sînt filtre de sinteză și filtre inversoare. Distorsiunea spectrală logaritmică este distribuită peste un număr mare de cadre de vorbire. O deviație spectrală de 1dB este echivalentă cu o variție liniară a parametrilor LPC. Folosind cuantizoare neuniforme reducem numărul de biți necesari cuantizării LAR cu 36 biți/cadru cu menținerea distorsiunilor spectrale mai mică de 1dB. Scăzînd numărul de biți sub 30 biți/cadru LPC se realizează o distorsiune spectrală bună.

4.7.2. PERECHILE DE LINII SPECTRALE

Pe lîngă LAR, o altă transformare importantă pentru parametrii LPC este setul de perechi de linii spectrale. Filtrul invers A(z) de ordin n pentru analiza LPC satisface următoarea relație recursivă:

n = 1…p (109)

cu A(z) = 1 și kn fiind cel de-al n lea coeficient de reflexie. Extinzînd ordinul filtrului la p = n+1, ecuația 101 devine

(110)

Presupunem două condiții de extrem:

– kp+1 = 1

– kp+1 = -1.

Acestea corespund :

– glotei închise

– glotei deschise

în modelul de tub acustic. Cu aceste condiții se obține

(111)

pentru kp+1 = 1 și

(112)

Polinoamele P(z) și Q(z) sînt antisimetrice și simetrice.

Aceste polinoame au următoarele proprietăți:

1. rădăcinile P(z), Q(z) sînt pe cercul unitate

2. rădăcinile P(z), Q(z) alternează fiecare pe cercul unitate

3. faza minimă pentru A(z) este ușor de stabilit după cuantizarea rădăcinilor P(z), Q(z).

Atît timp cît rădăcinile lui P(z) și Q(z) sînt pe cercul unitate, sînt de forma și este ușor de arătat că pentru cazul unui predictor de ordinul p, P(z), Q(z) au forma:

(113)

(114)

Frecvențele fi din 113 și 114 sînt normate la frecvența de eșantionare fs. Parametrii fi, i = 1…p se definesc ca linii spectrale de frecvență sau perechi spectrale. Este important de reținut că pentru rădăcini fixe z = ±1 pentru P(z), Q(z). De asemeni, cele două rădăcini fixe sînt excluse din setul de parametri LSP. LSF poate fi interpretat ca frecvență de rezonanță pentru tractul vocal între cele două condiții de extrem ale glotei (închisă-deschisă). Cea de-a doua proprietate a LSF poate fi

f0 < f1 < f2 <…..< fp < fp+1 (115)

unde f0=0 și fp+1=0,5. Această relație este cunoscută ca regulă de aranjare pentru LSF. Atîta timp cît această regulă de aranjare se păstrează pe parcursul cuantizării LSF, stabilitatea filtrului de sinteză H(z) este asigurată.

Cîteva metode de calcul eficient pentru LSF se găsesc în literatură. S-a observat că o cuantizare a setului de parametri LSP determină o reducere cu 25% a vitezei de bit (ratei de bit). LAR folosește o cuantizare uniformă. La cuantizarea LSF dirferențială se observă o reducere a vitezei cu 30%.

Condițiile LSF nu oferă nici un avantaj dacă se aplică peste cuantizarea LAR și nici invers. În general, parametrii LSP au următoarele proprietăți care le permit să cuantizeze mai eficient decît LAR:

1. LSF are un bun comportament statistic și ușor de asigurat stabilitatea filtrului de sinteză păstrînd ordinea dată de ecuația 107. Mai mult, ordinea poate fi utilizată eficient pentru a detecta erorile în aprametrii LSF și conform algoritmului de substituire, pot fi folosite pentru a corecta transmisiile pe canalele cu erori în LSF cu redundanțe la 0.

2. Este o relație directă între spectrul LPC și LSF. Studiile au arătat că o concentrare în spectrul de frecvență într-o bandă de frecvență, corespund unei rezonanțe în acea bandă. Este important să derivăm funcția de rezonanță din LSF.

3. Parametrii LSP dintre cadre adiacente au fost foatre bine corelați. Acest fapt poate fi exploatat pentru a reduce rata de bit folosind o cuantizare cu predicție. De asemeni ne permite să folosim procesul de interpolare în care LSF sînt transmise pentru fiecare cadru suplimentar, care reduce dramatic viteza. De cînd au fost introduși de Hakura, parmetrii LSP au fost studiați intensiv și s-au făcut diferite aproximări pentru o cuantizare eficientă a LSF. Aceste aproximări au încercat să exploateze proprietățile de mai sus:

– regula ordinii

– relația dintre spectrele LSF, LPC

– corelația dintre cadre LSP adiacente.

Recent, Soong și Juang au descris o procedură dinamică pentru o optimizare globală a alocării biților conformă cu distribuția de nivele pentru cuantizarea neuniformă pentru diverse tipuri de parametri LSF. Începînd de la 0 biți/cadru au crescut succesiv numărul de biți pentru parametrii care au dus la îmbunătățirea minimului zonal în distribuția de cuantizare.

LPC bazat pe vocoderele LPC a fost testat de Kang R.Fransen. Pentru vocoderele care lucrează viteza de 800b/s s-a folosit cuantizarea LSF, iar pentru vocoderele cu viteza de 4800b/s s-a cuantizat fiecare pereche scalară în termeni care aveau frecvența centrală (fi+fi+1)/2 și frecvența de tăiere (fi-fi+1)/2.

Crosmer a încercat să exploateze relația dintre LSF și frecvența formant în cuantizarea parametrilor avînd în vedere că este importantă forma spectrului semnalului vocal. Acesta a plecat de la presupunerea că aproximații succesive LSF corespund locațiilor frecvenței centrale și cu cît două LSF sînt mai apropiate, cu atît îi corespunde cea mai apropiată bandă polului vocal.

Pe baza acestei presupuneri a realizat o aproximare pentru cuantizorul LSF.

Sugamura a descris și comparat cîteva scheme pentru cuantizorul LSF folosind regula ordinii (aranjării). A obținut o diferență de 1dB pentru o distorsiune cu viteza de 32b/cadru.

Wong a obținut rezultate similare (32b/cadru pentru distorsiuni de 1dB) prin cuantizarea LSF cu diferență între cadre alăturate (vecine).

4.7.3. INTERPOLAREA PARAMETRILOR PREDICȚIEI PE TERMEN LUNG (LPC)

Lungimea cadrului de excitație este deobicei mai mică decît cadrul LPC. Cadrul LPC este divizat în cîteva subcadre și parametrii de excitație sînt reînnoiți la fiecare subcadru.

Fig.17

sf1 = 0,75f1 + 0,25f2

sf2 = 0,50f1 + 0,50f2

sf3 = 0,25f1 + 0,75f2

sf4 = f2

Fig. 17 pune în evidență relația dintre cadru, subcadru și fereastra Hamming folosită pentru derivarea parametrilor LPC. Cadrul vocal are o lungime de 160 de eșantioane (care se întind pe 20 ms), subcadrul are o lungime de 40 de eșantioane (care se întind pe 5 ms), iar fereastra Hamming are 200 eșantioane (pe 25 ms). Interpolarea parametrilor LPC dintre cadre alăturate se folosește pentru a obține un set diferit de parametri pentru fiecare subcadru. În exemplul nostru, interpolarea reînnoiește parametrii filtrului la fiecare 5ms la o transmisie de 20 ms, fără să fie necesară o viteză mare pentru a reînnoi repede cadrele.

Setul de coeficienți de predicție ai pot fi folosiți pentru interpolare, deoarece parametrii de interpolare, în acest caz, nu garantează un filtru stabil. Interpolarea este de aceea efectuată folosind un set de parametri unde stabilitatea filtrului poate fi ușor garantată, folosind LAR sau LSF.

Dacă fn este vector de cuantizare LPC la cadrul prezent, și fn-1 pentru cel anterior, atunci vectorul de interpolare sfk într-un subcadru k este:

(116)

unde k este o funcție, k(0,1). k este scăzută treptat cu indexul subcadrului. Pentru exemplul nostru este bine să alegem: 0,75 pentru k = 1

0,50 pentru k = 2

0,25 pentru k = 3

0 pentru k = 4.

Folosind aceste valori, vectorul de interpretare în cele 4 subcadre este:

sf1 = sf1 = 0,75fn-1 + 0,25fn

sf2 = 0,50fn-1 + 0,50fn

sf3 = 0,25fn-1 + 0,75fn

sf4 = fn .

Interpretarea a fost folosită recent pentru a reduce viteza asociată cu parametri spectrali prin transmisia fiecărui cadru suplimentar sau pentru fiecare al treilea cadru. Pentru un cadru vocal de 20 ms, dacă LFS este cuantizat cu 36 biți, viteza corespunzătoare este de 1,8 kb/s. Dacă LSF este transmis pentru fiecare cadru suplimentar, viteza este redusă la 0,9 kb/s. Pentru fiecare al treilea cadru viteza se reduce la 0,6 kb/s. În cadrele unde LSF nu se transmit, se interpolează folosind ecuația 108 cu un factor ales corespunzător. Această micșorare a vitezei oferită prin interpolare este esențială pentru codarea la viteza de 4,8 kb/s. Dezavantajul interpolării este acela că lungimea fiecărui cadru suplimentar este dublată și pentru exemplul nostru, întîrzierile sînt crescute de la 40 la 80 ms.

4.7.4. PREDICȚIA PE TERMEN LUNG (LTP)

În timp ce predicția pe termen scurt modelează anvelopa spectrală a semnalului vocal, predicția pe termen lung (sau predictorul de înălțime Pitch Predictor) este folosit pentru a modela structura anvelopei. Filtrarea inversă a semnalului de la intrare mută cîteva redundanțe în vorbire prin extragerea de eșatioane vocale din valoarea prezisă folosind ultimile p eșantioane. Aceasta se numește predicție pe termen scurt, deoarece se folosesc doar cele p eșantioane (de obicei 10) pentru a prezice eșantioanele semnalului vocal. Reziduurile predictorului pe termen scurt se mai supun unei extensii.

Reziduurile predictorului pe termen lung prezintă într-o mică măsură o anumită periodicitate legată de perioada mare a semnalului vocal original atunci cînd este de tip vocalic. Această periodicitate este de ordinul a 20 – 160 eșantioane (50 – 400 Hz). La predictorul de înălțime se adaugă un filtru invers care transformă redundanța în semnalul rezidual și îl echivalează aproximativ cu zgomot. Este numit predictor de înălțime.

Predicția pe termen lung nu este o parte esențială în viteza de codare LPC, dar dacă se folosește un predictor de înălțime îmbunățim performanțele acestor codoare. Predicția pe termen lung este importantă pentru codoare care lucrează la viteze mici (CELP), unde semnalul de excitație este modelat după procesul Gaussian. Predicția pe termen lung este necesară să asigure că reziduul de predicție este foarte aproape de zgomotul Gauss.

Forma generală pentru un filtru de corelație pe termen lung este:

(117)

unde (118)

este un predictor pe termen lung. Pentru m1 = m2 = 0 avem predictor cu o singură priză iar pentru m1 = m2 = 1 se obține predictor cu trei prize.

Întîrzierile și Gm se determină prin minimizarea erorii medii pătratice rezultate pe termen scurt și predicția pe termen lung pe o perioadă de N eșantioane.

e(n) = r(n) – Gr(n -α) (119)

Pentru predictoare cu o priză, predicția rezultată pe termen lung este:

(120)

Pentru dE/dG = 0 rezultă:

(121)

Minimizarea erorii înseamnă maximizarea celui de-al doilea termen din partea dreaptă a ecuației

(122)

care reprezintă corelația normalizată dintre reziduul r(n) și versiunea sa întîrziată. Acest termen este calculat pentru toate valrile posibile ale lui din domeniul specific și este aleasă valoarea lui care maximizează acest termen. Energia din numitor poate fi ușor reactualizată de la întîrzierea -1 la în locul unui nou calcul prin:

(123)

care necesită două operații: adunarea și înmulțirea. Pentru a reactualiza termenul pentru maximizare sînt necesare N + 4 operații pentru fiecare nouă întîrziere.

Dacă se utilizează predictorul pe termen lung cu o priză, atunci ecuația 121 este folosită pentru a calcula cîștigul G. Pentru predicțiea pe termen lung cu k prize, întîrzierea a predictorului pe termen lung este prima deteminată prin maximizarea termenului al doilea din ecuația 121 și apoi se rezolvă un set de k x k ecuații pentru a calcula cîștigul predictorului k. De exemplu, pentru predictorul pe termen lung cu trei prizei, cîștigul este calculat prin rezolvarea ecuației matriciale:

(124)

unde (125)

Stabilitatea filtrului de înălțime 1/P(z) nu este garantată totdeauna. Pentru un predictor cu o singură priză, condiția de stabilitate este G 1. Stabilitatea poate fi ușor îndepărtată prin impunerea condiției G = 1 pentru G > 1.

Pentru un predictor cu trei prize se utilizează alte proceduri de stabilizare. Instabilitatea filtrului de înălțime nu este așa de dăunătoare calității semnalului vocal reconstituit. Filtrele care nu se setează, vor păstra cîteva cadre, dar eventual, perioada filtrelor este numărată, astfel încît ieșirea să nu continue să crească cu timpul.

Deobicei, pentru reducerea numărului de biți necesari codării cîștigurilor predictorului este suficient să folosim predictoare pe termen lung cu o priză. Cînd folosim predictoare pe termen lung, schema predictorului din Fig.10 este modificată ca în Fig.18.

Fig. 18: Schema generală pentru analiza prin sinteză cu modelul LPC prin metoda LTP

Performanțele predictorului de înălțime pot fi îmbunătățite utilizînd întîrzieri neîntregi. Se întîmplă adesea ca întîrzierile de înălțime să nu coincidă cu momentul eșantionării. În acest caz, se vor alege acele valori care sînt cei mai apropiați întregi sau multipli. Pentru a găsi o întîrziere mai apropiate alta este necesară o rezoluție înaltă de eșantionare. Aceasta se realizează prin reeșantionarea semnalului excitator u(n) pentru a obține cuvinte de cod interpolate în tabelul adaptiv. Factorul de reeșantionare este determinat de rezoluția cerută. Reeșantionarea după factorul m se realizează inserînd m – 1 zerouri între fiecare două eșantioane și apoi se filtrează trece jos, folosind un filtru cu tăiere de frecvență la /m. O fereastră Hamming tăiată cu funcția sinc este deobicei folosită la FIR – FTJ.

DoD (Dep. Apărării USA) folosește standardul CELP 4,8 kb/s cu 128 de întîrzieri întregi și 128 întîrzieri neîntregi. Aceste întîrzieri neîntregi sînt uniform distribuite printre cele întregi (se obțin rezoluții înalte la întîrzieri mici pentru a obține o calitate semnificativă a vocii feminine).

Utilizarea întîrzierii neîntregi introduce o complexitate substanțială a semnalului. De fapt, se dublează dimensiune tabelei de cod și interpolarea este folosită pentru a găsi cuvinte de cod corespunzătoare întîrzierilor întregi. Pentru a evita creșterea complexității, se foloște următoarea procedură de căutare:

1. Valoarea funcției de potriviri este determinată numai pentru întîrzieri întregi. Această valoare este rădăcina pătrată a celui de-al doilea termen din dreapta ecuației

(126)

și este determinat cu ecuația

(127)

2. Interpolarea se realizează după valoarea funcției de potriviri și se caută o valoare maximă a acesteia. Aceasta îndepărtează necesitatea utilizării filtrelor cu cuvinte de cod interpolate și se calculează funcția de potriviri. De fapt, cuvintele de cod pentru interpolare nu se determină de la început. Numai dacă maximul funcției de potriviricorespunde unei întîrzieri neîtregi, atunci buffer-ul este interpolat și determină cuvîntul de cod cerut.

3. Sînt necesare calcule pentru doar cîteva puncte pentru funcția de potriviri. Punctele de interpolare se deteminînd-se în jurul unei întîrzieri întregi care maximizează valorile funcției și submultiplii. Se selectează întîrzierea care maximizează valoarea funcției de potriviri. Dacă valoarea funcției pentru submultipli este mai mare ca 0,95 din valoarea maximă, atunci este favorabil acel submultiplu. Rentru a evita selecția submultiplilor pentru valoarea actuală se folosește un contor util în codul delta. Este folosit pentru detectarea erorilor în transmisiile cu întîrzieri.

Pentru a beneficia de aceste avantaje:

– simplismul buclei deschise

– performanțele înalte ale buclei închise

se utilizează bucla deschisă la care se maximizează cel de-al doilea termen al relației

(128)

și apoi cîștigul se calculează în buclă cu

(129)

În acest caz, convoluția y(n) este calculată numai o singură dată pentru valori determinate în afara buclei. Se poate folosi astfel o căutare mai ușoară (care nu necesită o mare pierdere de timp) între valorile tabelului adaptiv pentru a reduce complexitatea căutării. Aceasta se realizează prin:

– codare delta

– căutări ierarhice

– subeșantionare.

Tabel 6.

Tabelul 6 ne arată SEG – SNR pentru codorul CELP obținut folosind diverse aproximări pentru determinarea parametrilor predictorilor pe termen lung. Un codor CELP este folosit ca predictor pe termen lung care este parte esențială pentru un codor. Pentru eșantionarea a 20 ms se folosesc excitații de 5 ms (subcadre). Se folosește un tabel de coduri ternar pe 9 biți. Cîștigul predictorului pe termen lung este cuantizat cu trei biți si întîrzierile pe 7 biți (numai pentru întîrzieri întregi).

IN1 indică parametrii predictorului pe termen lung calculați în buclă.

IN2 indică parametrii în buclă cu codor delta, întîrzierea în fiecare subcadru, unde codorul delta este codor pe 5 biți. Aceasta micșorează viteza cu 0,2 kb/s și reduce SNR cu 0,5 dB. Avantajul cadării delta este reducerea complexității căutării și totodată micșorarea dimensiunilor tabelului de cuvinte de cod la 32 de subcadre.

OUT1 indică întîrzierea în afara buclei și cîștigul în buclă

OUT2 indică întîrzierea în afara buclei și cîștigul în buclă, numai că domeniul întîrzierilor (-2, +2) este căutat în bandă, unde este întîrzierea determinată în afara buclei. Aceste aproximări dau o îmbunătățire de 1dB peste OUT1, păstrînd complexitatea scăzută în bucla deschisă de căutare.

OUTIN3 și 4 similar OUTIN 1 și 2, exceptînd faptul că întîrzierea este reactualizată la fiecare cadru dinsemnalul vocal.

În OUTIN4 întîrzierea este determinată la fiecare cadru, în afara buclei și apoi la fiecare subcadru în parte. Domeniul întîrzierilor (-1, +2) se caută în buclă (tăierea întîrzierii este codată cu 2 biți pentru fiecare subcadru).

Folosind OUTIN4 viteza este redusă cu 0,6 kb/s și complexitatea căutării este semnificativ redusă la o creștere cu 2 dB a SNR.

4.7.5. CUANTIZAREA PARAMETRILOR PREDICȚIEI PE TERMEN LUNG (LTP)

Parametrii predicției pe termen lung au întîrzieri și cîștig (sau tabel de cod adaptiv și cîștig). Întîrzierea este cuantizată cu 6 – 8 biți dependenți de domeniul utilizat. Deobicei se utilizează un domeniu de 7 biți unde sînt posibil 128 valori folosite în domeniul 20 – 147. Pentru a reduce numărul de biți întîrzierile predictorului pe termen lung pot fi codate cu codor delta în fiecare subcadru cu 5 biți. Altă cale de a reduce întîrzierea și viteza de codare (și complexitatea codorului de asemeni) este aceea de a determina o întîrziere în afara buclei și apoi să se caute cîteva cuvinte de cod în jurul acestei întîrzieri în fiecare subcadru. Cînd se găsesc întîrzieri neîntregi, se folosesc deobicei 8 biți (256 de intrări tabelul de cuvinte). Histograma cîștigului predictorului pe termen lung este dată în Fig.19.

Fig.19: Histograma cîștigului folosind metoda LTP

Este suficient să cuantizăm cîștigul cu 3 sau 4 biți (rata întreagă a codorului GSM folosește 2 biți pentru cîștig și acesta trebuie să fie mai mare ca 0). Datorită distribuției neuniforme a cîștigului se folosește cuantizarea uniformă. Numărul de cuantizare se determină dintr-o bază de date folosind cuantizorul Lloyd-Max. Deoarece valoarea absolută a cîștigului depășește 10, atunci valoarea cîștigului poate fi trunchiată.

Codorul CELP DoD 4,8 kb/s folosește domeniul (-1, 2). În secvența vorbită cîștigul este aporoape de 1. Cîștgurile negative se obțin al cadre de semnale nevocale. Micșorînd domeniul cîștigului, s-a observat că este suficient (0, 1.2). De remarcat că valorile mai mari de 1 sau mai mici de -1 corespund filtrelor cu căderi instabile (au polii în afara cercului unitate). Calitatea vorbirii nu este afectată de aceste perioade scurte de instabilitate care provin din reînnoirea parametrilor predictorului pe termen lung la fiecare 5 ms. Aceste valori mari pentru cîștig se obțin în perioaele de tranzit de la tăcere la vorbire. Kabal și Romachanran au studiat predicția pe termen lung.

4.8. EXCITAȚIA MULTI – IMPULS ȘI IMPULS REGULAT

Am arătat o structură de bază eficientă pentru modelul de codare a semnalului vocal care este capabil să realizeze o calitate bună a convorbirii la viteze de 4,8 – 16 bk/s. Am arătat cum modelul înlocuiește redundanțele din semnalul vocal folosind predictori pe termen lung/scurt. Am arătat cum se aleg criteriile de minimizare a erorilor.

Partea esențială a acestui model care nu a fost încă discutată este datorată unui semnal de excitație aproximativ care să conducă la sinteza filtrelor necesare extragerii corecte a semnalului vocal de la recepție. Semnalul de excitație poate fi definit astfel încît numărul de biți folosiți să fie minim posibil.

Vom discuta despre aproximațiile multi-impuls și impuls regulat, iar în ultima parte despre aproximările cu excitație în cod.

Semnalul multi-impuls (MPE) și impulsul regulat (RPE) presupun că semnalul excitator este modelat printr-un număr de impulsuri pe o perioadă scurtă de timp (5 – 15 ms). Vom stabili că această perioadă de timp să fie un cadru cu lungimea N.

Cadrul L reactualizat al parametrilor predictorului pe termen lung este împărțit în sub-cadre de lungime N (L este multiplu de N) și excitația este determinată pentru fiecare sub-cadru. Diferența dintre MPE și RPE constă în modul în care se detemină poziția impulsului.

În excitația multi-impuls, un cadru de excitație de lungime N conține M impulsuri cu amplitudine i în pozițiile mi. Semnalul de excitație v(n) se definește

n = 0..N – 1 (130)

unde k este amplitudinea impulsului, mk este poziția impulsului și M este numărul de impulsuri care modulează o secvență excitatoare de lungime N eșantioane. Amplitudinea și poziția sînt determinate prin minimizarea erorii medii pătratice dintre semnalul original și cel sintetizat.

Semnalul rezidual, r(n), după o predicție pe termen scurt este găsit prin filtrarea semnalului original cu un filtru inversA(z).

Numărul de combinații ale impulsului este:

(131)

Pentru valorile N = 40 și M = 4 rezultă C = 91390 combinații. Aceasta arată complexitatea soluției optime pe această cale.

4.8.1. APROXIMAREA MULTI – IMPULS (MPE)

Algoritmul de aproximare multi-impuls este o aproximare sub-optimală de rezolvare a unei ecuații matriciale.

(132)

Algoritmul determină un impuls la un moment dat în procesul de M nivele. La fiecare nivel j se calculează o amplitudine j și o poziție mj folosindu-se valorile anterioare. La început presupunem că este un impuls cu amplitudine 0 și poziție m0. Acum ecuația de mai sus 124 se reduce la

(133)

Cu numai un impuls, eroarea minimă pătratică se reduce la

(134)

Înlocuind 125 în 126 rezultă:

(135)

Pentru a găsi primul impuls, căutăm valoarea m0 care minimizează cel de-al doilea termen din dreapta semnului egal al ecuației 135. Avînd deteminată poziția primului impuls, se calculează eroarea medie pătratică

(136)

unde

(137)

Făcînd dEm(1)/d1 să tindă la 0, în ecuația 133 și 135 rezultă

(138)

și

(139)

unde

(140)

Astfel, valoarea lui (n) este reactualizată conform 136 prin mutarea efectului primului impuls, iar poziția celui de-al doilea impuls se calculează prin valoarea care maximizează al doilea termen al ecuației 140. Acest proces continuă pînă cînd se calculează toate impulsurile.

Vom inițializa

(0)(n) = (n).

La fiecare nivel j = (1, M – 1) valoarea (j)(i) se găsește din

(141)

iar poziția celui de-al j-lea impuls mj, este dată de valoarea i care maximizează corelația normalizată dată de

(142)

Ampltudinea se calculează

(143)

Cînd segmentul semnalului este vocal, algoritmul multi-impuls tinde să localizeze mai mult de un impuls pe aceeași poziție, ceea ce virtual reduce numărul de impulsuri pe întreaga perioadă. Se poate înlătura acest efect dacă se impune (mk) = 0 pentru k = (0, i – 1), unde i este indexul impulsului căutat și astfel nu se mai găsește mai mult de un impuls pe o aceeași poziție.

4.8.2. MODIFICĂRI ALE ALGORITMULUI MPE

Algoritmul multi-impuls este sub-optimal deoarece s-a presupus că amplitudinile impulsurilor trecute rămîn constante pe perioada cît se caută poziția impulsului prezent. Așa aplitudinea și poziția impulsului determinat nu satisfac setul de ecuații 131. Rezultă o degradare a calității semnalului vocal cînd impulsurile sînt spațiate apropiat unele față de altele. Amplitudinile pot fi reoptimizate după ce poziția ultimului impuls a fost calculată prin rezolvarea setului de ecuații 131 folosind pozițiile determinate ale impulsurilor. Pozițiile impulsurilor rămîn sub-optimale ca și cum ar fi fost determinate folosind amplitudini neoptimale.

O soluție mai bună este obținută dacă amplitudinile impulsurilor sînt repartizate la fiecare nivel al căutării (la fiecare pas al căutării). După ce se determină poziția m1 a celui de-al doilea impuls, se recalculează amplitudinile 0 și 1 folosind ecuația 131. (ecuație de tip matricial 2 x 2) și corelația este reactualizată folosind impulsuri optimizate, rezultînd

(144)

(2)(n) se folosește pentru a căuta poziția celui de-al treilea impuls și atunci se calculează un alt set de impulsuri optim conform ecuației 131, ecuție matricială de tip 3 x 3, și corelația se actualizează.

Acest proces se continuă pînă cînd se găsește ultima poziție a impulsului, apoi se recalculează amplitudinea semnalului cu 131

(145)

Pentru M impulsuri, această aproximare necesită rezolvarea a 2 x 2, 3 x 3,…, M x M ecuații matriciale pentru a reoptimiza amplitudinea impulsului la fiecare pas al căutării.

Metoda devine din ce în ce mai complexă odată cu creșterea numărului de impulsuri.

Singhal a realizat un algoritm eficient de calcul pentru reoptimizarea amplitudinii impulsului fără a fi necesară soluția ecuației 131 la fiecare pas. Algoritmul se bazează pe descompunerea Cholesky a matricii de autocorelație.

Algoritmul MPE se simplifică dacă se folosesc forme care utilizează autocorelația. Aceasta se realizează prin sumarea limitelor cu eroare minimă la minus infinit și la plus infinit și se lucrează cu ferestre care au 0 în afara domeniului (0, N – 1). Prin aceasta vom reduce expresi ecuației 128 la

(146)

Aproximarea autocorelației se va explca cînd vum vorbi despre CELP. Folosind aproximarea auotcorelativă, termenul care trebuie maximizat în 145 se reduce la

(147)

Aceasta se maximizează prin minimizarea valorii (j)(i) care reduce numărul de multiplicări (sau împărțiri) pentru a căuta M impulsuri din 2MN.

4.8.3. EVALUAREA ALGORITMULUI MULTI-IMPULS

Vom studia efectul diferiților parametri ai codării MPE multi-impuls asupra calității semnalului vocal sintetizat. Pentru rezultatele din acest capitol perioada codului cu predicție pe termen lung se cuantizează cu 36 de biți folosind predicția pe termen scurt. Cîștigul tabelului adaptiv este cuantizat cu 4 biți și indexul cu 7 biți pentru subcadre suplimentare și 5 biți pentru fiecare subcadru. Amplitudinile impulsurilor nu sînt cuantizate. Parametrii care se iau înconsiderare sînt:

1. numărul de impulsuri pe cadrul excitator

2. lungimea cadrului excitator.

Tabelul 7.

Tabelul 7 arată condițiile analizei din acest capitol. Această alegere a lungimii cadrului este corespunzătoare vitezei de 9,6 kb/s. La o viteză mai mică de 8 kb/s sînt necesare prediții pe termen lung mai mari și reactualizarea cadrelor trebuie să se realizeze mult mai repede. Este suficient un predictor de ordin 10.

4.8.4. NUMĂRUL DE IMPULSURI PE CADRUL EXCITATOR

Pentru a obține o viteză mai mică de bit în timp ce dorim o înaltă calitate a semnalului vocal, trebuie să folosim atîtea impulsuri cît sînt necesare pentru a modela semnalul excitator. Tinînd cont de condițiile de stabilitate din Tabelul 1 și eliminînd predictorul de înălțime din codor, SEG – SNR va fi calculat cu un număr de impulsuri variind de la 2 la 20, cu un cadru de 5 ms, dar folosim reoptimizarea la ultimul pas.

Fig.20: SEG – SNR funcție de numărul de impulsuri (fereastra de 5 ms) cu/fără reoptimizarea amplitudinii impulsului (fără metoda LTP)

1. fără oprimizare

2. optimizare la fiecare nivel

3. optimizare la ultimul nivel

1. fără optimizare

2. optimizare la fiecare nivel

3. optimizare la ultimul nivel

Fig.21: SEG – SNR în funcție de numărul de impulsuri (fereastra de 5 ms) cu/fără reoptimizarea amplitudinii impulsului folosind metoda LTP

Fig.21 arată variația SEG – SNR cu numărul de impulsuri cînd se folosesc predictoare pe termen lung. De remarcat curbele de jos din Fig. 21 și 20 și apoi cînd impulsul a fost localizat SEG – SNR tinde să crească proporțional cu creșterea numărului de impulsuri. Aceasta se datorează soluției optimale a algoritmului . Curbele de deasupra din Fig. 20 arată SEG – SNR cu impulsul recalculat la fiecare nivel, iar curba de la mijloc impulsul recalculat la ultimul nivel (pas). Îmbunătățirea devine mai semnificativă cînd se crește numărul impulsuri. Pentru o codare MPE la 9,6 kb/s se folosesc patru impulsuri pe 5 ms, iar reoptimizarea amplitudinii nu introduce o îmbunătățire semnificativă în calitatea semnalului în acest caz. Este suficient să reoptimizăm amplitudinea impulsului la ultimul pas.

1. cu LTP

2. fără LTP

Fig.22: SEG – SNR funcție de numărul de impulsuri cu/fără LTP (se reoptimizează amplitudinea la ultimul nivel)

Fig. 22 arată SEG – SNR funcție de numărul de împulsuri cu și fără predictorul pe termen lung, dar folosind reoptimizarea la ultimul pas. Se observă o diferență de 4 – 6 dB între cele două curbe. Cînd se folosesc patru impulsuri, SNR crește cu 4..5 dB dacă predictorul pe termen lung este desfășurat.?? Cuantizînd parametrii predictorul pe termen lung este echivalat cu cuantizarea unui impuls (amplitudine și poziție) în funcție de numărul de biți folosiți. Cu LTP se folosesc mai puține impulsuri pentru a modela semnalul excitator. Folosind două impulsuri pe cadre de 5 ms cu LTP rezultă o calitate asemănătoare cu aceea cînd se folosesc patru impulsuri fără LTP. De aceea cu LTP desfășurat rezultă o îmbunătățire a calității la o viteză mică.

Fig.23: SEG – SNR funcție de numărul de impulsuri cu/fără LTP pentru aproximarea autocorelativă și covarința

1. metoda covarianței cu LTP

2. metoda autocorelației cu LTP

3. fără metoda covarianței cu LTP

4. fără metoda autocorelației cu LTP

Fig.23 ne prezintă comparativ metoda covarianțelor și metoda

autocovarianțelor pentru determinarea impulsului cu și fără LTP. Apoximarea covarinței dă un SNR mai bun cu cît numărul de impulsuri este mai mare. Pentru 3 – 4 impulsuri pe 5 ms degradarea datorată folosirii autocorelației este nelijabilă (aproape 0,1dB). Amintindu-ne că aproximarea autocorelativă este mai eficientă din punct de vedre al calculelor față de aproximarea covarianțelor, este preferabil să se folosească în practică acolo unde numărul de impulsuri este mai mic de 5.

4.8.5. LUNGIMEA CADRULUI DE EXCITAȚIE

În aproximațiile multi-impuls se localizează M impulsuri într-un cadru de N eșantioane. Alegerea dimensiunilor cadrului este un compromis între calitate și complexitate. Se poate arăta că numărul de operații de înmulțire și împărțire necesare pe eșantion este proporțional cu NM. De aceea pentru a reduce complexitatea trebuie să reducem dimensiunea N a cadrului. Pe de altă parte, dimensiunea N a cadrului de excitație nu poate fi mai mică de 5 ms pentru a evita alocările de impuls neoptimale.

De exemplu, pentru semnalul vocal algoritmul multi-impuls tinde să localizeze impulsul în jurul impulsului de mărime maximă.

Dacă perioada căderii este mai mare decît dimensiunea N a cadrului vom folosi o modelare a unei părți mai puțin importante a perioadei de cădere cu mai multe impulsuri decît este necesar.

Fig.24: SEG – SNR funcție de dimensiunea cadrului de căutare

Fig. 24 arată SEG – SNR funcție de dimensiunile cadrului pentru o rată de 10% din viteză folosind excitația multi-impuls. Observăm creșterea SNR pentru cadre de dimensiuni mari. Pentru a reduce complexitatea se alege un cadru de 5 ms care este suficient.

O altă grijă în alegerea dimensiunilor cadrului se referă la efectele de capăt.

Elementele P(i,j) din matricea de corelație devin mici în pentru i și j apropiate de N. De aceea impulsurile localizate aproape aproape de sfîrșitul cadrului soluțiile ecuației

i = 0…M – 1 (148)

devin rezultate nesatisfăcătoare pentru determinarea amplitudinii. Pentru a evita aceste efecte, cadrul căutat se realizează mai larg decît cadrul execuției prin înfășurarea cu începutul cadrului următor, iar zona de importanță care cade în regiunea de înfășurare de 2 ms a fost găsită suficientă pentru a preveni rezultate nesatisfăcătoare.

4.9. APROXIMAREA IMPULSULUI REGULAT (RPE)

În loc să determinăm un impuls (j, mj) la fiecare nivel j presupunem că a fost determinat impulsul j – 1. Kroon a sugerat o altă aproximare sub-optimală care presupune predefinită poziția impulsului (deobicei poziționat la distanța D). Asemenea aproximări au fost propuse și de Adoul și s-au numit decimări zecimale.

În aproximările RPE, secvența excitatoare pentru cadru de lungime N se formează din M impulsuri, cu distanța D între ele, M = N div D, div este împărțirea întreagă (N nu este neapărat multiplu de D). Datorită poziționării primului impuls se obțin diferite modele de excitație. Pozițiiile impulsului sînt date de:

k = 0…D – 1 și i = 0…M – 1 (149)

unde k este poziția primului impuls sau faza inițială. De exemplu, Fig.24 arată cîteva modele de excitație pentru N = 40 și D = 4.

k = 0 |–|–|–|–|–|–|–|–|–|–

k = 1 -|–|–|–|–|–|–|–|–|–|–

k = 2 –|–|–|–|–|–|–|–|–|–|-

k = 3 –|–|–|–|–|–|–|–|–|–|

Fig. 24

Algoritmul RPE rezolvă ecuația:

pentru fiecare model de excitație pentru a obține D seturi de amplitudini. i(k) cufaza inițială K. Eroarea medie pătratică este atunci evaluată pentru fiecare set de amplitudini calculate și este ales acel set de ecuații care minimizează erorile. Algoritmul RPE cere rezolvarea unui set de M ecuații simultane de D ori. Deobicei M = 10 și D = 4. Soluția poate fi obținută se folosește descompunerea Cholesky. Aceasta este primul pas în algoritmul RPE.

Algoritmul multi-impuls folosește un număr mic de impulsuri decît algoritmul RPE pentru a obține aceeași calitate a semnalului vocal. Aceasta datorită faptului că pozițiile impulsurilor în algoritmul MPE sînt optimizate, spre deosebire de algoritmul RPE unde sînt predefinite pozițiile. Deși algoritmul RPE folosește mai puține impulsuri, pozițiile impulsurilor au fost cuantizate, în timp ce în cazul RPE se cuantizează numai primul impuls cu doi biți deobicei. Deși, amîndoi algoritmii conduc la o aceeași rată de bit la aceeași calitate a semnalului vocal. Algoritmul RPE este mai complex decît MPE. Aceasta pentru că aproximarea RPE este mai cere soluția a D ecuații de MxM (M = 10, D = 4).

În parte, vom modifica parametrii analizei sistemului și vom vedea cum influiențează aceștia calitatea semnalului vocal.

Efecul schimbării parametrilor codorului s-a studiat folosind aproximarea multi-impuls. Aceeași concluzie se poate deduce și în cazul RPE. Numai în această secțiune parametrii considerați vor fi distanțați la D și lungimea cadrelor N.

4.9.1. SPAȚIEREA IMPULSURILOR (PULSE SPACING)

Dacă vom crește distanța dintre două impulsuri consecutive vom reduce numărul impulsurilor de excitație. Analog cu aproximarea multi-impuls, alegerea numărului de impulsuri este un compromis între calitatea și viteză.

Fig.26

Fig. 26 arată SEG – SNR pentru diverse viteze 1600 – 4000 impulsuri/s corespunzătoare unei distanțe de 5..2.

Pentru cazul codării vocale la 9,6 kb/s se alege o distanță D = 4 sau 5. La această viteză, algoritmul multi-impuls deobicei folosește 3 – 4 impulsuri pe 5 ms.

Aproximarea RPE dă rezultate mai bune în comparație cu aproximare MPE la aceeași viteză, dar se crește complexitatea sistemului. Pentru un cadru de 5 ms și o distanță inter-impuls D = 4, vom avea 10 impulsuir cu 40 de eșantioane, iar pentru calculul amplitudinii optime, algoritmul RPE cere rezolvarea unei ecuații matriciale 10 x 10 de 4 ori.

Folosind LTP se obține o îmbunătățire se obține cu 2 dB a SNR (D = 4). La o distanță inter-impulsuri D = 2 (20 de impulsuri de 40 de eșantioane), LTP nu realizează nici o îmbunătățire cu cît numărul de impulsuri este suficient de mare pentru a modela excitația LPC.

4.9.2. LUNGIMEA CADRULUI DE CĂUTARE

În algoritmul MPE am văzut că cu cît este mai mare lungimea cadrului de căutare, cu atît se obțin rezultate mai bune pentru că se optimizează mai eficient poziția impulsului.

În algoritmul RPE este contrariul. Atît timp cît impulsurile sînt distanțate cu același pas, singurul factor care controlează poziția este faza inițală sau poziția primului impuls și aceasta se schimbă la fiecare cadru de căutare. Astfel, cadrele mai scurte oferă o mai mare flexibilitate în selectarea pozițiilor impulsului.

Fig. 27: Variația SEG – SNR pentru codor RPE cu diverse lungimi pentru cadru de excitație

Fig. 27 arată SNR funcție de RPE pentru o distanță inter-impuls D = 4 pentru o dimensiune a codorului de căutare de 20, 40, 52 și 80 (2,5 – 10ms). Cea mai mare valoare a SNR se obține pentru N = 20 și nu este considerabil mai bun decît altă dimensiune a cadrului.

O altă condiție care se impune în alegerea dimensiunilor cadrului excitator este complexitatea codorului.

De exemplu:

– pentru N = 20, D = 4 rezultă că avem 8 subcadre și rezolvăm de 4 ori ecuația matricială de dimensiune M x M pentru fiecare fereastră

– pentru N = 80, D = 4 rezultă că avem 2 subcadre și rezolvăm de 4 ori ecuația matricială de dimensiune 20 x 20 pentru fiecare fereastră.

Știind că rezolvarea unei ecuații matriciale M x M este proporțională cu M3, atunci pentru N = 20 complexitatea este proporțională cu 53 în timp ce pentru N = 50 este proporțional cu 203. Astfel, cu ferestrele mici înseamnă complexitate scăzută, dar pe de altă parte, avem nevoie de mai mulți biți pentru a coda poziția primului impuls.

4.9.3. SIMPLIFICAREA ALGORITMULUI RPE

De la evaluarea algoritmului RPE am arătat că se obține o calitate mai bună față de algoritmul MPE la aceeași viteză.

Dezavantajul algoritmului RPE este încărcarea calculelor, ajungîndu-se la necesitatea de a se rezolva simultan 10 ecuații liniare la fiecare 5 ms. pentru D = 4.

Se poate face o simplificare simțitoare folosind metoda auotcorelației pentru limite definite ale sumei în calcul (i, j). Aceasta va avea un rol esențial în simplificarea matricii din ecuația 131 datorită regularității distanței inter-impuls.

Vom aborda aproximarea autocorelativă. Următoarele simplificări se obțin prin eliminarea inversării matricii din ecuația 131 și folosind un filtru cu eroare fixată.

4.10. APROXIMAREA AUTOCORELATIVĂ

Recalculăm 144 și folosim aproximarea autocorelativă (i, j) se poate scrie ca:

(150)

Elemetele matricii din 131 se recalculează :

(151)

Folosim această relație în definirea poziției impulsului în 140 rezultă:

i,j = 0…M – 1 (152)

Exploatînd rezultatele ecuației 152, ecuația 131 devine:

(153)

Relația 153 ne permite să obținem două reduceri ale complexității:

– se calculează M pentru (i), cu i = 0, D, ……, D(M – 1)

– matricea din ecuația 153 este independentă de faza inițială,ceea ce înseamnă că se inversează doar o singură dată fiecare fereastră LPC în loc de D ori.

Mai departe, matricea este Toeplitz și se poate calcula mai eficient decît o matrice simetrică 131 folosind algoritmul Levinson.

4.10.1. ELIMINAREA INVERSĂRII MATRICIl

Dacă ne uităm cu atenție la matricea de corelație din ecuația 131, observăm că matricea este diaginală, iar elementele care aparțin digonalei descresc pe măsură ce se îndepărtează de diagonală.

(0) (D) ……… (D(M-2)) (D(M-1)) (154)

Dacă y(n) este răspunsul la impuls infinit dat de filtrul 1/A(z) la h(n), atunci răspunsul filtrului 1/A(z/) este

(155)

Răspunsul la impuls g(n) este deja funcție descrescătoare, iar prezența factorului în 155 provoacă o descreștere a lui h(n) mai rapidă dacă 0 1.

Fig.28: Autocorelația pentru un filtru cu răspuns la impuls tipic

Fig. 28 arată un exemplu de autocorelație al funcției de răspuns la impuls h(n). Pentur interspațiul D = 4, diagonala matricii de autocorelație este egală cu (0), (4), (8),………….(4(M-1)).

Dacă toate elementele matricii de autocarelație care aparțin diagonalei sînt nule, matricea se reduce la (0)I, unde I este matricea unitate. În acest caz, ecuația 153 devine:

i = 0…M – 1 (156)

Ecuațiile

(157)

și

k = 0…D -1 (158)

sînt ecuații cheie pentru o matrice simplă și eficientă pentru codare RPE care nu necesită rezolvarea unui set de M ecuații liniare de tipul 146. Structura codorului folosește la metoda RPE simplificată este schițată mai jos:.

Fig.29: Diagrama algorimului RPE simplificat

Metoda se poate descrie astfel: reziduul r(n) de la predicția pe termen scurt se obține prin inversarea filtrului A(z). Reziduul obținut după predicția pe termen lung, d(n) este formată prin extragerea din r(n) a valorii sale estimate Gu(u-). Reziduul LTP d(n) este obținut prin înmulțirea prin convoluție cu funcția z(n). Se obțin m reziduuri LTP mai bune:

(159)

Acesta se descompune în D seturi de M amplitudini date de:

k = 0…D – 1 (160)

Energia T(k) se calculează pentru fiecare set i(k) care maximizează energia și minimizează eroarea. 0 este startul, k poziția și impulsurile sînt la distanța D unul de altul.

Valoarea (n) a funcției de autocorelație descrește semnificativ pe măsură ce n crește. Astfel, z(n) poate fi trunchiat la n= Q, Q N, ceea ce duce la un număr redus de termeni în ecuația 159. Metoda RPE simplificat este detaliată în algoritmul de mai jos.

Bucla închisă de analiză este desfăcută de aproximarea RPE simplificată. Parametrii LTP se determină prin minimizarea ecuației pătratice:

(161)

și este condiționat să fie mai mare decît N-1.

4.10.2. ALGORITMUL RPE SIMPLIFICAT

Acest algoritm determină M impulsuri RPE printr-o metodă care nu necesită rezolvarea unui set de M ecuații liniare. Cele M impulsuri de amplitudine i sînt la distanța D unul de altul într-o fereastră de lungime N, cu primul impuls pe poziția k.

1. Se calculează reziduul predictorului pe termen lung

2. Se determină parametrii LTP

3. Se calculează reziduul LTP

4. Se calculează reziduul LTP fin y(n)

5. Se descompune y(n) în D seturi și se calculează energia fiecărui set

for k = 0 to D – 1 do

6. Se alege setul de impulsuri cu energie maximă

ref = 0

for k = 0 to D – 1 do

if then

ref = E(k)

Următoarea simplificare se obține cînd funcția este făcută fixă. Din Fig.30 se observă asemănarea dintre structura RPE simprlificată și structura RELP. De aceea se alege funcția fină fixă ca fiind un filtru trece jos cu frecvența de tăiere fs/(2D) unde D este factorul zecimal. De reținut că filtrul fin z(n), unde z(n) = z(-n), n = -Q………Q este necauzal. O aproximare mai bună pentru proiectarea filtrului trece jos este aceea de a folosi o frecvență de forma sinc. Pentru frecvența de tăiere fs/(2D) și funcția sinc coeficienții Hamming sînt dați de

-Q ≤ n ≤ Q (162)

Folosind FTJ de bandă fixă ca funcție fină se obțin rezultate mai bune decît dacă se utilizează funcții care își schimbă finețea, ceea ce este egal cu autocorelația normalizată a filtrului. Aceasta se datorează unei simplificări grosiere în obținerea unei structuri unde elemetele din afara diagramei din matricea de autocorelație au fost 0. Dacă se folosește un FTJ cu frecvența de tăiere fs/(2D), care este mai sensibil, se obține o structură simplă care semănă cu codorul în banda de bază sau cu codorul RELP.

În codoarele RELP, reziduul LPC este FTJ decimat și apoi reziduul din banda de bază este cuantizat și folosit pentru a sintetiza filtrul LPC, după ce s-a folosit funcția de interpolare pentru a recupera reziduul din toată banda (regenerarea frecvenței reziduurilor înalte este deobicei însoțită de căderi unde se introduc zerouri între eșantioanele din banda de bază).

Avantajul major al RPE asupra RELP este flexibilitatea în alegerea poziției pentru primul impuls excitator, care produce cel mai apropiat semnal de excitație. Altă diferență este prezența predictorului de înălțime în RPE (acestea au rolul de a reduce zgomotele).

În cele din urmă, cînd semnalul rezidual este ștrangulat cu un FIR-FTJ de lungime 2Q + 1, subcadrele reziduului sînt ștrangulate fiecare în parte (nu este o filtrare continuă). Se folosesc blocuri de filtrare unde numai cele N eșantioane centrale din 2Q + N sînt luate în considerație. Cu aceste avantaje, algoritmul RPE simplificat oferă o calitate mai bună a semnalului vocal decît RELP, dar este mai slab ca RPE original pentru că este desfăcută bucla de optimizare în structuri mai simple. Numărul operațiilor înmulțire, adunare necesare pentru a determina exciația optimă este de 2QN pentru convoluție și DM pentru calculul energiei.

Pentru codorul GSM: N = 40

D = 3

Q = 5

M = 13.

Numărul total de operații folosite în acest caz este 11 pe fiecare eșantion. Aceasta evidențiază simplismul codorului RPE cu filtru fin fixat. De fapt, simplitatea codorului a fost un factor decisiv în alegerea acestui codor pentru comunicațiile mobile în sistemul Pan-European.

1.. covarianța

2. alg. simplificat

3. corelarea

Fig. 30.a: SEG – SNR pentru diferite aproximări RPE cu LTP

Fig. 30.b: SEG – SNR pentru diferite aproximări RPE fără LTP

1. covarianța

2. alg. simplificat

3. corelarea

Fig. 30.a. și b ilustrează SEG-SNR obținută prin covarianță, corelație și aproximare RPE simplificată D = 2 și D = 5 cu / fără LTP.

Pentru D = 4 folosind structura RPE simplificată SNR scade cu 2,5 dB dacă se folosește metoda covarianței și doar 2 dB prin metoda aproximării prin metoda autocorelației, ceea ce este asemănător cu MPE cu patru impulsuri. Pentru valoari de decimare 4 sau 5, folosim aproximația autocorelativă. Degradări ale semnalului vocal rezultă cînd este folosită structura simplificată, cu avantajul că se reduce complexitatea codorului.

Dacă se folosește factorul de decimare egal cu 3 (D = 3) nu se realizează nici o îmbunătățire față de D = 4. Astfel nu este necesar și nici de dorit să folosim factori mici de decimare, ceea ce ar duce inevitabil la o creștere a vitezei.

4.11. CUANTIZAREA EXCITAȚIEI ÎN CODOARE FOLOSIND ALGORITMII MPE ȘI RPE

În codarea MPE și RPE excitația consistă în amplitudinea impulsului și poziția impulsului. În RPE pozițiile impulsurilor sînt definite de faza inițială sau de poziția primului impuls, dacă impulsurile sînt distanțate regulat. Se folosesc deobicei factori de decimare D = 3 sau D = 4 și în acest caz, faza inițială este cuantizată pe doi biți. Amplitudinea impulsului RPE se cuantizează folosind un bloc adaptiv de cuantizare. Cele M impulsuri din subcadru sînt scalate după rms sau după valoarea maximă.

Fig.31 a: Histograma RPE

Fig.31 b: Histograma valorilor rms pentru RPE

După cum se observă din histogramele 31 a & b valoarea scalată nu poate fi cuantizată eficient folosind cuantizarea uniformă. Valoarea scalată este cuantizată cu cuantizoare logaritmice sau neumniforme. Histogramele logaritmică și cea a valorilor rms sînt:

Fig. 32 a: Histograma logaritmică pentru algoritmul RPE

Fig. 32 b: Histograma logaritmică pentru algoritmul RPE

Din compararea histogramelor se poate trage concluzia că este mai bună cuantizarea uniformă logaritmică. Cînd se folosesc cuantizoarele neuniforme, nivelele de cuantizare și de decizie sînt luate dintr-un set de tabele. Valoarea scalată este cuantizată cu 5 sau 6 biți. Dacă se folosește un număr mai mic de biți se obține o degraare semnificativă a calității semnalului. Sînt date histogramele impulsurilor scalate la valoarea maximă pentru algoritmul RPE și valoarea rms în Fig.33 a & b:

Fig.

33. a.

Fig. 33 b: Histograma alg. RPE după ordinea valorilor rms

Impulsurile normalizate sînt cuantizate cu 3 biți folosind cuantizoare neuniforme.

Pentru un subcadru de lungime 40 (de 5 ms) și 10 impulsuri RPE, numărul de biți necesari pentru a cuantiza excitația este:

– 2 biți pentru faza inițială

– 6 biți pentru valoarea de scalare

– 30 biți pentru impulsuri normalizate.

Viteza asociată acestui caz este 7,6 kb/s. Micșorarea vitezei se realizează prin micșorarea numărului de impulsuri (creștem factorul de decimare) și/sau micșorînd numărul de biți necesari pentru cuantizarea impulsurilor. Prin creșterea lungimii subcadrelor se reduce viteza, pe măsură ce factorul de scalare este actualizat mai rar. Folosind un subcadru de N = 60 (7,5 ms) și D = 5 (12 impulsuri), sînt necesari:

– 2biți pentru faza inițială

– 6 biți pentru impuls maxim

– 36 biți pentru impulsuri mormalizate.

Viteza este redusă la 6 kb/s în acest caz. Ținînd cont de viteza necesară pentru parametrii LTP și LPC, este greu de menținut o calitate înaltă a semanlului vocal sub o viteză de 9,5 kb/s folosind RPE.

În cazul MPE este necesar un număr mai mic de impulsuri pentru a obține aceași calitate a semnalului vocal ca cea a RPE, atît timp cît pozițiile impulsului sînt deasemeni optimizate.

Viteza are o mare influiență asupra alocării poziției impulsului în cuantizarea semnalului excitator. Dacă s-au alocat M impulsuri într-o fereastră de lungime N, atunci numărul combinațiilor este

(163)

Numărul minim de biți necesari pentru a cuantiza M poziții este

(164)

Pentru N = 40, M = 4 sînt necesari cel puțin 17 biți pentru a cuantiza pozițiile a patru impulsuri. În acest exemplu, dacă se cuantizează pozițiile separat sînt necesari 6 biți pentru fiecare impuls, de unde rezultă în total 24 biți. Folosind codarea diferențială, impulsurile pot fi cuantizate fiecare cu 5 biți pentru acest exemplu. Impulsurile sînt reordonate astfel încît m0 m1 m2 m3 și cantitățile cuantizate sînt m0, m1-m0, m2-m1 și m3-m2. În acest caz, distanța dintre două impulsuri adiacente este condiționată să fie mai mică de 33 și pozițiile pentru 4 impulsuri se codează cu 20 biți.

Cea mai eficientă metodă, care folosește numărul minim de biți (Nbit) pentru a cuantiza pozițiile impulsului, este schema codării combinatoriale. Numărul total de poziții Lp în ecuația (156) poate fi reprezentată printr-o listă de la 0 la Lp-1. Valoarea indexului corespunde poziției cerute. Codarea se realizează prin parcurgerea secvenței de excitație și incrementarea indexului în ritmul tactului. Valoarea final indexului este știută. Incrementarea este dată de

pentru n ≥ m (165)

= 0 pentru n < m

unde n este numărul de eșantioane rămase și m este numărul de impulsuri care trebuie să fie codate, incluzînd impulsul curent.

Ca și în RPE amplitudinea impulsului în MPE se cuantizează folosind un bloc de cuantizare adaptiv. Impulsurile sînt parcurse în ritmul valorilor rms sau a valorilor maxime, care e cuatizat pe 5 – 6 biți. Impulsul normal se cuantizează cu 3 – 4 biți fiecare.

În Fig. 34 este prezentată histograma MPE normalizate după valoarea rms. Impulsurile normalizate se cuantizează cu 3 biți folosind cuantizarea uniformă, în timp ce cîștigul se cuantizează pe 5 – 6 biți. Folosind 4 impulsuri într-o fereastră de 40 eșantioane, sînt necesari:

– 6 biți pentru parcurgerea valorilor

– 12 biți pentru impulsurile normalizate

– 17 biți pentru pozițiile folosind schema codării combinatoriale.

Fig. 34.a: Histograma valorilor rms pentru MPE

Fig. 34.b: Histograma logaritmică a valorilor rms pentru MPE

În acest caz se folosește o viteză de 7 kb/s. Cînd se folosește predictorul de înălțime este necesar un un număr mai mic de biți pentru reprezenta semnalul excitator. Folosind 3 impulsuri într-o sub-fereastră de 60 de eșantioane micșorăm viteza la 4 kb/s. O aproximare mai eficientă poate fi folosită pentru a cuantiza ampiltudinea impulsului excitator, dar cu toate acestea nu se reduce semnificativ viteza odată ce poziția impulsurilor cuantizate au o pondere însemnată asupra vitezei. Soheili a descris cîteva scheme de adaptore folosite la cuantizarea amplitudinii care nu necesită informație. S-a găsit că cea mai promițătoare tehnică de adaptare este aceea de a măsura impulsurile folosind un filtru de înălțime. În acest mod cîștigul care a fost întîi cuantizat cu 5 – 6 biți nu este transmis și aceasta reduce viteza cu 1 kb/s.

CAP.V.

CODURI UTILIZATE PENTRU SEMNALUL VOCAL

5.1. CODUL CU PREDICȚIE LINIARĂ (CELP)

În tehnica GSM se cere o calitate înaltă a semnalului vocal la viteze mai mici de 8kb/s. De cînd a fost finalizată recomandarea asupra codării semnalului vocal în GSM, s-au efectuat cercetări intense pentru a înjumătăți rata de codare la 6,5 kb/2. Codurile RPE și MPE discutate anterior pot fi folosite pentru a da o bună calitate a semnalului vocal la viteze de pînă la 9,5 kb/s. Cînd viteza este mai mică de 9,5 kb/s MPE și RPE nu mai pot păstra calitatea bună a semnalului vocal. Aceasta deoarece este necesar un număr foarte mare de biți pentru codarea semnalului vocal excitator, iar calitatea este deteriorată cînd aceste impulsuri sînt cuantizate rău sau cînd numărul lor este redus pentru a reduce viteza. De altfel, dacă se folosesc structuri de analiză prin sinteză pentru a obține o calitate bună la viteze mai mici de 8 kb/s trebuie să folosim mai multe aproximări pentru a putea defini semnlul excitator.

Impelmentarea predictorului pe termen lung în bucla de analiză prin sinteză devine de importanță majoră pentru a muta cît de mult se poate redundanța semnalului vocal. Semnalul rezidual după predictorul pe termen lung și scurt devine zgomotos și asta presupune că reziduul poate fi modelat prin procesul Gauss cu o variație lentă a spectrului de putere. Aceta este punctul cheie în implementarea codurilor stocastice, unde funcția excitatoare este un vector de cuantizare care folosește un tabel de coduri stocastice.

Codarea stocastică sau codarea cu predicție liniară a fost introdusă în 1984 de Atal și Schroeder. O aproximare similară a fost propusă de Copperi și Seveno în 1985.

În aproximarea CELP o fereastră de 5 ms (40 de eșantioane) se modelează cu un vector Gauss alegînd un tabel de cod Gauss mare prin minimizarea lungimii erorilor dintre semnalul original și cel refăcut. Deobicei, un tabel are 1024 de intrări și se alege secvența optimă prin căutări exhaustive în tabelul de coduri. Folosind aproximarea CELP, ofereastră de 5..7,5 ms se poate coda cu numai 15 biți (din care 10 biți pentru adresă și 5 biți pentru cîștig). Aceasta ne arată o reducere a vitezei în comparație cu codarea RPE – LTP unde se folosesc 47 de biți pentru a coda același semnal excitator.

Pînă în prezent, complexitatea deosebită a algoritmului CELP a împidicat implementarea sa în timpi reali. Complexitatea provine de la căutarea exhaustivă în tabelul de cod, unde pentru a sintetiza un semnal vocal foarte lung trebuie să calculăm toate intrările posibile și apoi trebuie comparate cu lungimea semnalului original. În ultimii ani, activitatea de cercetare a fost concentrată pe reducerea complexității codorului CELP și s-a realizat implementarea sa în timp real folosind tehnica DSP.

S-a realizat o simplificare a codorului CELP folosind tabelele de codare în care majoritatea eșantioanelor excitației în vectorul aleator Gauss sînt 0. O altă siplificare semnificativă în structura tabelului de codare este aceea de a folosi tabelul de coduri ternare, unde elementele vectorului de excitare sînt -1, 0 sau 1.

S-au folosit coduri ternare și coduri de împrăștiere pentru a reduce complexitatea calculelor și capacitatea necesară de stocare a sistemului CELP. Codurile binare sînt de fapt coduri ternare unde impulsurile de excitare sînt spațiate regulat. Această structură permite utilizarea unor proceduri de căutare ne-exhaustive.

O altă cale eficientă de a defini semnalul de excitație este aceea de a utiliza vectorul sumă de excitație (VSELP). Aici, vectorul de excitație este o combinație liniară a vectorului de bază format cu -1 și 1. Această structură specială duce la o reducere semnificativă a calculelor necesare pentru a identifica vectorul de excitație optim. A fost ales un nou cod VSELP de 8 kb/s pentru implementare în sistemul de comunicații mobile digitale american.

Codurile algebrice au fost utilizate pentru a reduce complexitatea CELP-ului, unde tabelul de cod se generează folosind coduri binare de corecție a erorilor. O altă simplificare a fost propusă: sistemul CELP operează în banda de bază a semnalului rezidual LPC. Structura acestui codor este similară cu aceea a codului RPE – GSM. Reducerea vitezei se realizează prin cuantizarea vectorială a reziduurilor cu coduri CELP.

Conceptul de autoexcitare s-a utilizat pentru a obține o calitate bună a semnalului vocal la vitez mici de 6,4 kb/s. În această aproximare, excitația se obține prin căutări printre semnalele anterioare și se alege acel semnal care minimzează lungimea erorii dintre semnalul original și cel sintetizat. Autoexcitația LPC poate fi văzută ca o altă variantă a CELP-ului în care tabelul de coduri se schimbă și are avantajul că necesită un număr mai mic de calcule și de asemeni un volum mai mic pentru capacitatea de stocare. Dezavantajul algoritmului este acela că algoritmul nu mai este la fel de robust atunci cînd transmisiunile sînt afectate de zgomote.

În acest capitol vom descrie codul CELP și aproximările folosite pentru a genera tabelul de coduri de excitație.

Vom detalia descrierea algoritmului de cod CELP. Vom discuta metodele de a reduce complexitatea procesului de căutare în tabelul de coduri.

Vom aborda: excitația

răsfrîntă

ternară

suprapunerea tabelului de cod

codurile algebrice

excitația binară.

5.1.1. PRINCIPIUL CELP

După predicția pe termen scurt/lung a semnalului vocal, redundanțele în semnalul vocal sînt aproape eliminate și semnalul rezidual este foarte puțin corelat. Se poate folosi procedeul Gauss alb pe perioade care variză liniar în timp (la predicția pe termen lung/scurt). Se alege secvența optimă din tabelul de cod prin minimizarea erorii dintre semnalul original și cel sintetizat.

Fig.35 Digrama bloc pentru sistemul CELP

Filtrul cu corelație de înălțime este înlocuit de un tabel de coduri. Adresa selectată din tabelul de cod adaptiv și cîștigul corespunzător însoțit de adresa selectată din tabelul de cod stocastic și cîștigul corespunzător sînt trimise codorului. Acesta folosește același tabel de cod în absența erorilor de pe canal pentru a determina semnalul excitator de la intrarea filtrului sintetizat LPC pentru a produce semnalul vocal sintetizat.

Tabelul de cod excitator conține L cuvinte de cod (vectori stocastici) de lungime N eșantioane (tipic L = 1024 și N = 40 pentru o fereastră de 5 ms). Semnalul de excitație de lungime N este ales prin căutări exhaustive în tabelul de cod după ce s-au scalat vectorii Gauss în ordinea factorului de cîștig .

Numărul de instrucțiuni necesare pentru a evalua expresia:

(166)

este N2. Pentru un tabel cu 1024 intrări și o fereastră de 40 de eșantioane pentru a căuta cuvîntul de cod sînt necesare 4000 multiplicări ale eșantioanelor semnalului vocal. Cînd se calculează convoluția prin filtrare recursivă, cuvintele de cod ck(n) sînt filtrate cu filtrul cu zerouri 1/A(z/), unde convoluția necesită Np instrucțiuni, energia calculată în k necesită N instrucțiuni, evaloarea intercorelației ck necesită N instrucțiuni. Se obțin în total N (p+2) operații. Un cod cu 1024 intrări și un predicator de ordin 10 pentru căutarea în tabel a cuvîntului de cod sînt necesare 12000 multiplicări ale eșantioanelor vocale.

Deci o căutare exhaustivă în tabelul cuvintelor de cod este o procedură care cere multe calcule și este dificil de implementat în timp real.

Vom studia cîteva metode pentru a simplifica procedura de căutare în tabelul cuvintelor de cod fără a afecta calitatea semnalului vocal de la ieșire.

5.1.2 SIMPLIFICĂRILE PROCEDURII DE CĂUTARE CELP FOLOSIND APROXIMAREA AUTOCORELATIVĂ

S-au folosit diferite aproximări pentru a simplifica procedura de căutare în tabelul cuvintelot de cod. În domeniul frecvenței, convoluția ck(n)*h(n) din ecuația

(167)

de transformă în multiplicare C(i)H(i), unde C(i) este vector Gaussian și H(i) se reduce la transformata Fourie (DFT) al funcției de răspuns la implus. Pe această cale se micșorează numărul de operații, dar trebuie să calculăm DFT pentru h(n) și x(n).

O metodă propune descompunerea valorii singulare. Prin aceasta se reduce matricea H care apare în ecuația 158 la o formă diagonală exprimată prin H = UDVT, unde D este matrice diagonală, iar U și V sînt matrici diagonale. Se pot folosi proprietățile matricii ortogonale pentru a reduce eroarea medie pătratică (din ecuația 158) la o formă care necesită doar 4N înmulțiri pentru a evalua termenii care trebuie minimizați. Astfel se micșorează numărul de înmulțiri necesare pentru a căuta în tabelul de cod de 1024 intrări la 4000înmulțiri/eșantion. Metoda necesită o încărcare suplimentară pentru calcularea TDF pentru matricea H, pentru fiecare set de parametri ai filtrului, ceea ce este echivalent cu N3 operații și pentru valoarea N = 40, se introduc mai mult de 1600 operații/eșantion, care nu pot fi neglijate.

O altă metodă pentru a simplifica procesul de căutare utilizează metoda autocorelației. În această aproximare, matricea covarianțelor = HTH se reduce la o formă Toeplitz prin moduficarea limitelor de sumare în ecuația

(168)

astfel încît

(169)

Aproximarea autocorelativă rezultă din modificarea matricii de covarianțe N x N într-o matrice de forme (2N – 1) x N.

(170)

Convoluția Hck folosind această matrice se transformă într-un vector de lungime 2N – 1, obținut prin convoluția a două segmente de lungime N. De observat că în aproximarea covarianțelor se luau în considerare numai primele N eșantioane și oricare eșantion din afara cadrului acesta nu se lua în considerare. Cum răspunsul la impuls h(n) este o funcție descrescătoare, se poate trunchia la R – 1 N (R = 25) fără a introduce erori perceptibile. În acest caz, dimensiunea matricii din ecuația 161 devine (2R – 1) x N, iar matricea de autocorelație (i) = 0 pentru i R. De aici înainte, vom presupune că răspunsul la impuls a fost trunchiat la R – 1.

Evaluarea energiei necesită R instrucțiuni și Tk (din ecuația 167) necesită N + R + 3 instrucțiuni.

Fig. 36: Metoda de căutare a secvenței optime CELP folosind aproximația autocorelativă

Fig. 36 arată reorganizarea optimă a procesului de căutare folosind funcția de autocorelație. Pentru N = 40 și R = 25 este necesar un număr mai mic de 200 de înmulțiri/eșantionul de vorbire sintetizat, cînd se folosește un cod cu 1024 intrări. Autocorelația cuvîntului de cod k(i) se calculează înainte și sînt memorate în alt tabel. Aproximarea cu autocorelație are dezavantajul că necesită un al doilea tabel la codare pentru a memora auotcorelația tabelului excitator.

5.1.3. PERFORMANȚELE CELP

Codorul CELP a fost evaluat la o viteză de 4,8 kb/s pînă la 8 kb/s. Calitatea semnalului vocal la 4,8 kb/s este aproximativ aceeași cu aceea de la 8 kb/s.

În codarea la 4,8 kb/s, fereastra este de 30 ms lungime și este împărțită în patru subferestre de 7,5 ms (60 de eșantioane). La 8 kb/s lungimea ferestrei este de 6 ms și este împărțită în patru subferestre de 4 ms.

Fig. 37.a: Histograma cîștigului

Fig. 37.b: Histograma cîștigului în scară logaritmică

Semnalul de cîștig este cuantizat cu 1 bit și amplitudinea poate fi cuantizată eficient cu 4 biți folosind cuantizarea logaritmică sau pe cea neuniformă.

5.2. TIPURI DE CODURI

Aproximarea autocorelației abordată anterior reprezintă eroarea medie pătratică cu scopul de a reduce încărcarea calculelor necesare pentru a optimiza secvența de căutare.

În acest paragraf vom vedea cîteva metode de simplificare pentru sistemul CELP. Se folosesc tabele structurate unde structura de tabele asigură o procedură de căutare rapidă. Vom vedea coduri:

– rar

– ternar

– overlapping

– algebric.

5.2.1. CODURI RARE

În coduri rare, majoritatea impulsurilor excitatoare din vectorul de excitație sînt nule. Aceasta se realizează prin tăieturi centrale, unde pentru a forma tabelul de cuvinte de cod se folosește un proces aleator Gaussian în care varibilele aleatoare sînt nule cînd valoarea absolută a lor este sub o valoare de prag. Valoarea de prag controlează raritatea codului. Valoarile de prag 1,2 și 1,65 dau o raritate de 77% și 90%. Excitația rară a fost propusă de Atal. Este suficient sa cuantizăm porțiunea în care amplitudinea reziduului prezis este mare pentru a obține distorsiuni mici în semnalul decodat. Folosind acestă metodă nu rezultă neaparat un număr egal de impulsuri diferite de 0 în fiecare vector de excitație. Pentru a obține un număr de impulsuri diferite de 0 pe vectorul de excitație, se rețin cele mai largi eșantioane și ce rămîne sînt făcute 0.

S-a arătat că în MPE – LPC sînt necesare 8 impulsuri pentru a sintetiza un sunet natural. Am văzut că este suficient să folosim 4 impulsuri într-o fereastră de excitație de 5 ms (40 eșantioane). De fapt, cînd este semnal vocal, sînt suficiente cîteva impulsuri pentru a reprezenta semnalul excitat și făcînd ca celelalte impulsuri să fie 0 nu afectează calitatea semnalului vocal.

Așa cum impulsurile în semnalul vocal de excitație nu sînt optimizate individual, este de preferat să se folosească vectori cu excitație rară în cazul segmentelor de semnal vocal.

Pe de altă parte, în cazul semnalelor nevocale este bine să folosim vectori de excitație nerari stocastici.

Prin simulări s-a observat că folosind 4 impulsuri diferite de 0 într-un vector de excitație de 4 impulsuri se obține rezoluție asemănătoare cu CELP original, unde tot vectorul de excitație este populat de procese aleatoare.

Folosind coduri rare se reduce comlexitatea sistemului CELP de 10 ori cînd se folosesc 4 impulsuri diferite de 0 într-un vector de lungime 40. Atît timp cît mare parte eșantioanele vactorului de excitație sînt egale cu 0, mare parte a funcției de autocorelație este 0. Numărul de nonzerouri ale funcției de autocorelație trebuie să fie egal cu numărul de impulsuri diferite de 0 folosind aproximarea autocorelativă cu impulsuri diferite de 0 în vectorul de excitație.

Folosind vectori de excitație rară nu numai că se simplifică procesul de căutare, dar se micșorează numărul de memorări în tabelul de coduri. Tabelul de excitație va conține numărul de impulsuri (de obicei 4) și poziția lor, iar tabelul de autocorelație va conține autocorelațiile diferite de 0 și pozițiile lor.

5.2.2. CODURI TERNARE

Căutarea în tabelul de coduri cu excitație rară poate fi simplificat folosind aproximația ternară. Vectorul de excitație ternară este un vector de excitație rară în care impulsurile diferite de 0 sînt 1 sau -1. Asemănător cu codul rar, codul ternar se poate calcula folosind procese alatoare Gauss cu tăieri centrale, unde variabilele aleatoare sînt 0 dacă valoarea lor este mai mică decît o valoare de prag, astfel, valoarea este dată de funcția sgn adică +/-1. Procesul de calcul dă un număr diferit de impulsuri diferite de 0 în fiecare vector de excitație. Este mult mai bine să stabilim numărul de impulsuri diferite de 0 în fiecare vector de excitație pentru a procesul de stocare și căutare. În acest caz, pozițiile celor 4 impulsuri se aleg astfel încît să fie o distanță uniformă între 0 și N – 1, iar amplitudinea lor este aleasă aleator +/-1. Aproximația ternară este mai simplă decît cea cu cod rar, deoarece g(i) din ecuația

(171)

este +/-1, ceea ce înseamnă că înmulțirile de la numărător se reduc la adunări. Alt avantaj este acela că se reduce capacității de memorare. Pentru fiecare impuls diferit de 0, poziția sa și semnul pot fi memorate într-un singur bit cu cel mai semnificativ bit rezervat pentru semn. Dacă vectorul de excitație conține 4 impulsuri diferite de 0 sînt necesari 4 biți pentru memorarea fiecărui cuvînt de cod. Rezultatele simulărilor au arătat că cuvintele de cod ternare se comportă la fel de bine ca cele Gauss sau rare.

Am afirmat mai înainte că aproximația CELP se bazează pe reprezentarea semnalului rezidual după o predicție pe termen lung/scurt printr-o variație lentă a spectrului de putere al procesului Gauss aleator. Datorită factorului de cîștig din bucla de analiză prin sinteză, se poate presupune că toate cuvintele de cod din tabelul de cod au energiea egală cu 1, iar factorul de cîștig introduce flexibilitatea schemei spectrului de putere al excitației.

Se pot reprezenta cuvintele unui cod de dimensiune L prin L puncte pe suprafața unei sfere unitate într-un spațiu N dimensional centrat în origine. De fapt, procesul Gauss prin care semnalul de excitație poate fi modelat ca fiind toate punctele de pe suprafața unei sfere unitate. Cele L puncte reprezentînd cuvinte de cod sînt uniform distribuite pe suprafața sferei datorită faptului că au fost alese printr-un proces Gaussian și datorită simetriei sferice a distribuției sferice multidimensionale.

În cazul vectorului de excitație rară sau a celei ternare sînt impulsuri diferite de 0 a căror poziție este aleasă aleator. Numărul total de combinații posibile este CN.

Cu condiția ca dimensiunea cuvintelor de cod să fie mai mică decît numărul de combinați, cuvintele de cod pentru excitația rară sau pentru cea ternară pot fi considerate ca fiind L puncte uniform distribuite pe suprafața unei sfere unitate.

Pentru a explica aceasta, vom lua în cazul ternar N = 40, = 4, L = 1024. Numărul de poziții posibile este 91390 și atît timp cît avem patru impulsuri cu amplitudini +/-1, numărul total de cuvinte posibile din care se aleg cuvintele de cod este 91390 x 16. Atît timp cît aceste 1,5 mil. de puncte sînt distribuite pe suprafața unei sfere și atît timp cît cuvintele de cod se aleg aleator din acest număr imens de posibilități, codul ternar rezultat poate fi considerat ca 1024 puncte distribuite uniform pe suprafața unei sfere de rază unitate, într-un spațiu 40-dimensional. Aceasta ilustrează echivalența codului ternar cu cel original unde toate N impulsuri în cuvîntul de cod sînt variabile aleatoare Gauss.

Codurile ternare pot fi ușor structurate să rezulte din algoritmi rapizi de căutare. Ireton și Xydeas au propus coduri lattice sferice. Aici se pot folosi coduri imense fără să se complice CELP.

5.2.3. CODURI ALGEBRICE

Se folosesc pentru a obține coduri de excitație. Algoritmii de căutare eficienți se pot obține folosind coduri algebrice cu sructuri înalte. Inițial, codurile algebrice s-au obținut folosind codurile binare de corectare a erorilor.

Vom descrie un cod algebric în care vectorii de excitație sînt obținuți folosind coduri cu permutări împletite (IPC).

În codurile cu permutări împletite (intercalate)(IPC) un vector de excitație conține un număr de impulsuri diferite de 0 cu pzițiile de intercalare predefinite. Impulsurile cu amplitudine fixată la 1sau -1 și fiecare impuls are un set distinct de poziții din pozițiile altor impulsuri. Seturile de poziții sînt intercalate. Codul excitator este identificat prin poziția impulsului diferit de 0. Adică, a căuta cuvinte de cod este echivalent cu a căuta poziția optimă pentru imulsurile diferite de 0. Pentru a explica mai departe structura codorului , vom descrie un cod pe 12 biți folosit pentru a coda un vector de 60 de eșantioane(folosit în codarea cu viteza de 4,8 kb/s). Vectorul de excitație conține 4 de impulsuri diferite de 0 cu amplitudinile 1, -1 ,1, -1. Fiecare impuls are 8 poziții posibile și fiecare poziție este codată pe 3 biți, rezultă codul pe 12 biți. Dacă pozițiile sînt notate cu mj(i), j = 0…3, i = 0…7, atunci

j = 0…3, i = 0…7 (172)

Amplitudinea impulsului și pozițiile sînt date de Tabelul 8:

Tabelul. 8

Strucura codului are cîteva avantaje:

– nu necesită memorare

– este robustă la erori pe măsură ce se transmit pozițiile impulsurilor și o eroare poate altera doar poziți unui impuls

– cel mai important avantaj este cel al unei căutări foarte eficiente.

Schimbarea poziției unui impuls în ritmul clockului actualizează foarte ușor energia și corelația. Căutarea se realizează în 4 bucle, unde cea mai din interior corelație este reactualizată printr-o adunare și energia prin 4 adunări și o multiplicare.

În pofida unui proces de căutare eficient, căutarea exhaustivă se complică imediat ce dimensiunea codului depășește 212.

Pentru căutarea cuvintelor de cod s-a dezvoltat o strategie de căutare potrivită. În această aproximare, se caută un subset foarte mic de cuvinte de cod care garantează peformanțe apropiate de o căutare largă.

5.2.4. CODURI CU DEPĂȘIRE ( OVERLAPPING)

Conceptul de suprapunere poate fi combinat cu conceptul de excitație rară sau ternară care au algoritmi de căutare eficienți și necesită capacitate de memorare de dimensiuni reduse.

Prin suprapunerea a k cuvinte, fiecare cuvînt se obține prin schimbarea a k eșantioane din cuvîntul de cod anterior și adăugarea altor k eșantioane. Astfel, două cuvinte adiacente au doar k eșantioane comune.

Primul avantaj al codorului cu suprapunere este reducerea cererii de memorare. Pentru un cod de lungime L și un vector de lungime N, pentru stocare sînt necesari N + k(L – 1) eșantioane. Folosind excitația stocastică ce derivă din cea ternară, majoritate acestor eșantioane (aproximativ 80%) sînt 0 și restul 1 sau -1. O schimbare cu 2 a fost eficientă și rezultatele identice cu acelea de al codarea fără suprapuneri.

Pe lîngă reducerea capacității de stocare, alt avantaj este reducerea încărcării calculelor necesare pentru o căutare exhaustivă.

Fie secvența stocastică q(n), n = 0..k(L – 1) + N – 1.

În cazul unui cod adaptiv LPT, memoria intermediară de înscriere q(n) conține istoria excitației la intrarea filtrului 1/A(z/) u(n), n = -La..-1, unde La este lungimea bufferului și conținutul său este înnoit la fiecare subcadru prin înlocuirea conținutului bufferului de la stînga cu N poziții și prin introducerea altora N. Pentru a maximiza Tk în acest caz sînt necesare 2N + R instrucțiuni:

– R pentru convoluția j

– N pentru energia j

– N pentru corelația cj.

Pentru codul statistic se folosește varianta ternară. Aproximarea ternară este preferată datorită capacității de memorare mici și datorită complexității scăzute. În cazul ternar, secvența q(n) conține -1, 1, 0. Numărul de zerouri este de obicei 80% – 90% din secvența ternară. Aceasta se obține prin perforarea centrală a unei secvențe Gauss la valoarea de prag care dă raritatea.

În codorul DoD, valoarea de prag de 1,2 dă o raritate de 77%. O schimbare cu 2 cuvinte stocastice este echivalentă în performanțe cu un cod fără suprapuneri. Folosind codurile rare se reduce foarte mult complexitatea.

Se preferă aproximarea convolutivă pentru ferestre mai mici. Alt avantaj al aproximării convolutive este eficiența sa cu cuvinte de cod rar.

5.3. AUTOEXCITAREA

Autoexcitarea poate fi văzută ca o altă variantă a CELP în care se schimbă cuvintele de cod. Structura de autoexcitație conferă simplism cînd excitația poate fi văzută ca o schimbare cu 1 cuvînt în codul adaptiv suprapus dar este foarte sensibil la propagarea erorii pe canal.

În sistemul autoexcitației, secvența de excitație se determină prin căutarea în bufferul care conține semnalul decodat anterior.

Atît codarea cît și decodarea folosescaceeași memorie intermediară. Inițial, buffer-ele pentru codare/decodare conțin aceeași secvență aleatoare. Secvența excitatoare în fereastra prezentă se calculează prin căutări în buffer a acelei secvențe care minmizează lungimii erorii dintre semnalul original și semnalul sintetizat. Excitația este caracterizată de o întîrziere și un factor de cîștig corespunzător. Memoria intermediară (bufferul) este reactualizată pentru fiecare nouă fereastră folosind excitația de la fereastra anterioară. Buffer-ul de la de/codor terbuie să aibă același conținut pentru a genera secvența de semnal vocal sintetizat identic cu cel de la emisie. Aceasta se întîmplă în cazul în care nu avem eroare pe canal. Dar în aplicațiiile practice parametrii de codare pot fi perturbați datorită zgomotului de pe canalele de transmisiune și un singur bit eronat pentru un singur parametru poate cauza nepotriviri între conținuturile buffer-ului de la de/codor, nepotriviri care se vor păstra și la următoarele fereastre.

Aceiași algoritmi folosiți în codarea suprapusă și descriși la capitolul anterior pot fi aplicați și la codurile autoexcitatoare, atîta timp cît excitația poate fi reprezentată prin schimbarea unei suprapuneri cu un cuvînt adaptiv.

Codurile cu suprapuneri stocastice fixate realizează aceleași performanțe cu o complexitate mai scăzută (datorită rarității lor) și sînt mai robuști la erorile de pe canal decît aproximarea cu autoexcitație.

BIBLIOGRFIE:

B.M.G.Cheetham. "Adaptive LSP filter". Electronics Letters, 16 Ian 1987

CCITT, Recommendation

C.R.Rabiner and RWSchroeder "Digital Processing of Speech Signal", Prentince Hall, 1978.

D. Esteban and C.Galand "Application of quadrature mirror filtres to split band voice coding scheme", pp.191-195, may 1997

G.S.Kang și L.J.Fransen "Low-bit rate speech encoders based on line-spectrum frequencies". NRL Report 8857, Nov 1984

J.Makhoul "Linear prediction: a tutorial review", April 1984

M.Omologo. "the computation and some spectral considerations on line spectrum pairs" Proc.EUROSPEECH'89 1989

M.R.Schroeder "Reference signal for signal quality studies", The Journal of the Acoustical Society of America

N.S. Jayant and P. Noll "Digital coding way forms", Prentince Hall, 1984

N.S.Jayant "Adaptive quantisation with a one-word memoy", Bell System

N.S.Jayant "Adaptive quantisation with a one-word memoy", Bell System

P.Kabal și R.P.Ramachandran "The computation of line spectral frequencies using Chebyshev polynomials" Dec 1986

P.Kabal. și R.P.Ramachandran. "Joint optimization of linear predictors in speech coding" May 1989

R.E. Crochiere, S.A. Webber and J.L. Flanagan "Digital coding of speech in sub-bands", Beel System Tech. J., pp.1069-1085, October 1976

R.P.Ramachandran și P.kabal "Stability coding of speech and subjective"

R.P.Ramachandran și P.Kabal. "Pitch prediction filtres in speech coding" Aprilie 1989

R.Steel "Delta modulation systems", Pentech Press, London

R.Steel "Introduction in GSM", Pentech Press, London

Similar Posts