22.7 Procesarea audio neliniară

Filtrarea digitală poate îmbunătăți semnalele audio în multe feluri. De exemplu, filtrarea Wiener poate fi utilizată pentru a separa frecvențe care sunt în principal semnal, de frecvențe care sunt în principal zgomot (vezi capitolul 17). De asemenea, deconvoluția poate compensa o convoluție nedorită, cum ar fi restaurarea vechilor înregistrări (discutate, de asemenea, în Capitolul 17). Aceste tipuri de tehnici liniare sunt coloana vertebrală a DSP. Mai multe tehnici neliniare sunt, de asemenea, utile pentru procesarea audio. Două vor fi descrise aici pe scurt.

Prima tehnică neliniară este utilizată pentru reducerea zgomotului de bandă largă în semnalele de vorbire. Acest tip de zgomot include: zgomotul benzii magnetice, zgomotul electronic în circuitee analogice, suflarea vântului prin microfoane, aplauzele mulțimile etc. Filtrarea liniară este puțin folosită, deoarece frecvențele din zgomot se suprapun peste frecvențele semnalului vocal, ambele acoperind intervalul de la 200 Hz la 3,2 kHz. Cum pot fi separate două semnale atunci când se suprapun atât în ​​domeniul timp, cât și în domeniul frecvență?

Iată cum se face. Într-un segment scurt de vorbire, amplitudinea componentelor de frecvență este foarte inegală. De exemplu, figura 22-10a ilustrează spectrul de frecvență al unui segment de vorbire de 16 milisecunde (adică 128 de eșantioane la o rată de eșantionare de 8 kHz). Majoritatea semnalului este cuprins în câteva frecvențe de amplitudine mare. În contrast, (b) ilustrează spectrul când există numai zgomot aleatoriu; este foarte neregulat, dar mai uniform distribuit la o amplitudine scăzută.

Acum, conceptul cheie: dacă există semnal și zgomot, cele două pot fi parțial separate prin analizarea amplitudinii fiecărei frecvențe. Dacă amplitudinea este mare, este probabil cea mai mare parte semnal și ar trebui, prin urmare, să fie reținută. Dacă amplitudinea este mică, aceasta poate fi atribuită majorității zgomotului și, prin urmare, ar trebui să fie aruncată, adică setată la zero. Componentele de frecvență de mărime medie sunt reglate într-o manieră optimă între cele două extreme.

O altă modalitate de a vedea această tehnică este ca un filtru Wiener variind în timp. După cum vă amintiți, răspunsul în frecvență al filtrului Wiener trece frecvențe care sunt în mare parte semnal, și rejectează frecvențe care sunt în mare parte zgomot. Aceasta necesită o cunoaștere a spectrelor de semnal și zgomot în prealabil, astfel încât răspunsul în frecvență al filtrului să poată fi determinat. Această tehnică neliniară folosește aceeași idee, cu excepția faptului că răspunsul în frecvență al filtrului Wiener este recalculat pentru fiecare segment, pe baza spectrului acelui segment. Cu alte cuvinte, răspunsul în frecvență al filtrului se schimbă de la segment la segment, determinat de caracteristicile semnalului însuși.

Figura 22-10 Spectre de vorbire și zgomot.

În timp ce spectrele de frecvență ale vorbirii și zgomotului se suprapun în general, există o oarecare separare dacă segmentul de semnal este făcut suficient de scurt. Figura (a) ilustrează spectrul unui segment de vorbire de 16 ms, arătând că multe frecvențe transportă o mică informație de vorbire, în acest segment particular. Figura (b) ilustrează spectrul unei surse de zgomot aleator; toate componentele au o mică amplitudine. (Aceste grafice nu sunt de semnale reale, dar ilustrează tehnica reducerii zgomotului).

Una dintre dificultățile în implementarea acestei tehnici (și a altor) neliniare este că metoda de suprapunere-adăugare pentru filtrarea semnalelor lungi nu este validă. Deoarece răspunsul în frecvență se modifică, forma de undă din domeniul timp a fiecărui segment nu va mai fi aliniată cu segmentele vecine. Acest lucru poate fi depășit prin amintirea faptului că informațiile audio sunt codificate în modele de frecvență care se schimbă în timp, și nu în modelul formei de undă din domeniul timp. O abordare tipică este împărțirea semnalului inițial din domeniul timp în segmente suprapuse. După procesare, se aplică o fereastră netedă fiecăruia dintre segmentele de suprapunere înainte de a fi recombinate. Aceasta asigură o tranziție lină a spectrului de frecvențe de la un segment la altul.

A doua tehnică neliniară este procesarea semnalului homomorf. Acest termen înseamnă literalmente: aceeași structură. Adăugarea nu este singurul mod în care zgomotul și interferențele pot fi combinate cu un semnal de interes; multiplicarea și convoluția sunt, de asemenea, mijloace comune de amestecare a semnalelor. Dacă semnalele sunt combinate într-un mod neliniar (adică, altceva decât adăugarea), acestea nu pot fi separate prin filtrare liniară. Tehnicile homomorfice încearcă să separe semnalele combinate într-un mod neliniar, făcând problema să devină liniară. Adică, problema este convertită la aceeași structură ca și un sistem liniar.

De exemplu, considerați un semnal audio transmis printr-o undă radio AM. Deoarece condițiile atmosferice se schimbă, amplitudinea recepționată a semnalului crește și scade, rezultând intensitatea semnalului audio receptat lent variabilă în timp. Acest lucru poate fi modelat ca semnal audio, reprezentat de a [ ], fiind înmulțit cu un semnal care variază lent, g [ ] care reprezintă câștigul în schimbare. Această problemă este de obicei tratată într-un circuit electronic numit control automat al câștigului (AGC), dar poate fi corectat și cu un DSP neliniar.

După cum se arată în figura 22-11, semnalul de intrare, a [ ] × g [ ], este trecut prin funcția de logaritm. Din identitatea, log (xy) = log x + log y, aceasta are ca rezultat două semnale care sunt combinate prin adunare, de exemplu, log a [ ] + log g [ ]. Cu alte cuvinte, logaritmul este transformarea omomorfică care transformă problema neliniară de multiplicare în problema liniară de adunare.

Apoi, semnalele adunate sunt separate printr-un filtru liniar convențional, adică unele frecvențe sunt trecute, în timp ce altele sunt rejectate. Pentru AGC, semnalul câștig, g [ ], va fi compus din frecvențe foarte joase, mult sub banda 200 Hz până la 3,2 kHz ale semnalului vocal. Logaritmul acestor semnale va avea spectre mai complicate, însă ideea este aceeași: un filtru high-pass este utilizat pentru a elimina componenta de câștig variabil din semnal.

Figura 22-11 Separare omomorfică a semnalelor multiplicate.

Aplicarea logaritmului semnalului de intrare transformă componentele care sunt multiplicate în componente care sunt adunate. Aceste componente pot fi separate prin filtrare liniară, și apoi efectul logaritmului se anulează.

De fapt, log a [ ] + log g [ ] este convertită în log [ ]. În ultima etapă, logaritmul este anulat folosind funcția exponențială (anti-logaritmul, sau ex ), producând semnalul de ieșire dorit, a [ ].

Figura 22-12 prezintă un sistem homomorfic pentru separarea semnalelor care au fost în convoluție. O aplicație în care acest lucru s-a dovedit util este în eliminarea ecourilor din semnalele audio. Adică, semnalul audio este în convoluție cu un răspuns la impuls constând dintr-o funcție delta plus o funcție delta deplasată și scalată. Transformarea homomorfă pentru convoluție este compusă din două etaje, transformata Fourier, schimbarea convoluției într-o multiplicare, urmată de logaritm, transformând multiplicarea într-o adunare. Ca și înainte, semnalele sunt apoi separate prin filtrare liniară, iar transformarea homomorfă este anulată.

O interesantă cotitură în Fig. 22-12 este că filtrarea liniară se ocupă cu semnale din domeniu frecvență în același mod în care semnalele din domeniu timp sunt de obicei prelucrate. Cu alte cuvinte, domeniile timp și frecvență au fost schimbate de la utilizarea lor normală. De exemplu, dacă convoluția FFT a fost utilizată pentru a realiza etajul de filtrare liniară, "spectrele" de multiplicat ar fi în domeniul timp. Această inversare a rolului a dat naștere unui jargon ciudat. De exemplu, cepstrum (o rearanjare a spectrului) este transformata Fourier a logaritmului transformatei Fourier. De asemenea, există filtre long-pass și short-pass, mai degrabă decât filtre low-pass și high-pass. Unii autori folosesc chiar Quefrency Alanysis și liftering.

Figura 22-12 Separarea omomorfică a semnalelor în convoluție.

Componentele care au fost în convoluție sunt convertite în componente care sunt adunate prin aplicarea Transformatei Fourier urmată de logaritm. După filtrarea liniară pentru a separa componentele adunate, pașii originali sunt anulați.

Rețineți că acestea sunt descrieri simplificate ale algoritmilor DSP sofisticați; prelucrarea omomorfă este plină cu detalii subtile. De exemplu, logaritmul trebuie să fie capabil să se ocupe atât de valori negative cât și pozitive în semnalul de intrare, deoarece aceasta este o caracteristică a semnalelor audio. Acest lucru necesită utilizarea logaritmului complex, un concept mai avansat decât logaritmul folosit în știința și ingineria de zi cu zi. Atunci când filtrarea liniară este limitată să fie un filtru cu fază zero, log complex este găsit prin luarea logaritmului simplu al valorii absolute a semnalului. După trecerea prin filtrul cu fază zero, semnul semnalului original este reaplicat semnalului filtrat.

O altă problemă este aliasingul care apare când se face logaritmul. De exemplu, imaginați-vă digitizarea unei unde sinus continue. În conformitate cu teorema de eșantionare, sunt suficiente două sau mai multe eșantioane pe ciclu. Acum, considerați digitizarea logaritmului acestei unde sinus continue. Colțurile ascuțite necesită mult mai multe eșantioane pe ciclu pentru a captura forma de undă, adică pentru a preveni aliasingul. Rata de eșantionare necesară poate fi ușor de 100 de ori mai mare după log, decât înainte. Mai mult, nu contează dacă logaritmul este aplicat semnalului continuu sau reprezentării sale digitale; rezultatul este același. Aliasing va rezulta mai puțin dacă rata de eșantionare este suficient de mare pentru a capta colțurile ascuțite produse de neliniaritate. Rezultatul este că semnalele audio pot necesita să fie eșantionate la 100 kHz sau mai mult, în loc de numai 8 kHz standard.

Chiar dacă aceste detalii sunt tratate, nu există nici o garanție că semnalele linearizate pot fi separate prin filtrul liniar. Acest lucru se datorează faptului că spectrele semnalelor linearizate se pot suprapune, chiar dacă spectrele semnalelor originale nu se suprapun. De exemplu, imaginați adunarea a două unde sinus, una la 1 kHz și una la 2 kHz. Deoarece aceste semnale nu se suprapun în domeniul frecvență, ele pot fi complet separate prin filtrare liniară. Acum, imaginați-vă că aceste două unde sinus sunt înmulțite. Folosind prelucrarea omomorfă, log este aplicat semnalului combinat, rezultând în log-ul unei unde sinus plus log-ul celeilalte unde sinus. Problema este că logaritmul unei unde sinus conține multe armonici. Deoarece armonicile de la cele două semnale se suprapun, separarea lor completă nu este posibilă.

În ciuda acestor obstacole, prelucrarea omomorfă prezintă o lecție importantă: semnalele trebuie procesate într-o manieră consecventă cu modul în care sunt formate. Spus altfel, primul pas în orice sarcină DSP este de a înțelege modul în care sunt reprezentate informațiile în semnalele de procesat.