Supraeșantionare - tehnologie de procesare a sunetului

supraeșantionare

Reeșantionare (supraeșantionare, reeșantionare) - Această modificare a frecvenței de eșantionare a semnalului digital. În ceea ce privește imaginile digitale Reeșantionarea înseamnă schimbarea dimensiunii imaginii. Există mai mulți algoritmi diferite imagini reeșantionare. De exemplu, pentru o imagine mărită de 2 ori mai poate fi pur și simplu duplicat fiecare dintre liniile sale și fiecare dintre coloanele sale (pentru a micșora - aruncare). Această metodă se numește metoda de cel mai apropiat vecin (cel mai apropiat vecin). Poate coloane intermediare și rânduri pentru a primi interpolarea liniară a valorilor învecinate de coloane și rânduri. Această metodă se numește interpolare biliniară (interpolare biliniară). Poate primi fiecare un nou punct de imagine ca o sumă ponderată a unui număr mai mare de pixeli sursă de imagine (interpolare bicubic și alte tipuri).

Cea mai mare calitate este obținută prin utilizarea algoritmilor de reeșantionare care iau în considerare necesitatea de a se ocupa nu numai timp, dar, de asemenea, cu imaginea de domeniu de frecvență. Acum considerăm algoritmul reeșantionare, care se bazează pe ideea de conservare maximă a informațiilor de frecvență a imaginii.

Algoritmul este construit pe principiul interpolare / filtrare / decimare (interpolare / filtrare / decimare).

Algoritmul va lua în considerare pe semnalele unidimensionale ca imagine bidimensională se poate întinde primul sau comprima orizontal (de rânduri) și apoi - pe verticală (coloane). Astfel, resampling imagine bidimensională resampled redusă la semnal unidimensionale.

Să presupunem că avem nevoie pentru a „întinde“ lungimea punctelor de semnal unidimensionale la lungimea de m pixeli n, adică, nm uneori. Pentru a efectua această operație, este necesar să se efectueze trei etape. Primul pas - interpolare de zerouri crește în semnal lungime m ori. Este necesar să se multiplice toate eșantioanele semnalului original la m, și apoi după fiecare semnal de referință care urmează să fie inserat m-1 nul. Când acest spectru semnal se modifică după cum urmează. Acea parte a spectrului, care a fost inițial conținută în semnalul digital rămâne neschimbat (aceasta este ceea ce căutăm). Dar, în vârstă de jumătate de mai sus interferența de frecvență de eșantionare are loc (copii de spectru reflectată), ceea ce este necesar pentru a scăpa de prin filtrare.

Al doilea pas - o filtrare de interferență cu un filtru low-pass. Acum avem un semnal care este de m ori mai mare decât originalul, dar a păstrat informațiile sale de frecvență, precum și informațiile de frecvență dobândite în afara (pe care am filtrat). În cazul în care obiectivul nostru a fost lungirea semnal poate fi ori m, apoi în acest stadiu pentru a rămâne. Dar sarcina noastră este de a reduce n ori lungimea necesară a semnalului. Pentru a face acest lucru, trebuie să efectuați pasul 2. Primul pas - l antialiasingovaya de filtrare. Deoarece frecvența de eșantionare este redusă la n ori cea a spectrului semnalului conform Teorema Kotel'nikova fie posibilă menținerea numai porțiunea de frecvență joasă. Toate frecvențele de peste jumătate din frecvența de eșantionare a viitorului trebuie să fie eliminate prin antialiasingovogo filtru cu o frecvență de tăiere egală cu n1 de curent jumătate din frecvența de eșantionare. Al doilea pas - o decimare obținută în n ori a semnalului. Pur și simplu alege dintr-un semnal la fiecare număr de n-lea, iar ceilalți - a scăzut. Acest algoritm este foarte similar cu funcționarea ADC, care este de asemenea primul filtreaza frecvențele nedorite de semnal, și apoi măsoară observația că cele două low-pass filtrarea aplicată în acest algoritm, este posibil (și necesar) între ele înlocuite cu unul. Pentru că frecvența de întrerupere a frecvenței de joasă unică -Filter egală cu a alege un minim de două filtre separate de trecere joasă frecvența de tăiere. O altă îmbunătățire semnificativă a algoritmului - o căutare pentru factorii comuni din numerele m și n. De exemplu, este evident că, pentru a semnala punctele 300 pentru a comprima până la 200 de puncte, este suficient pentru a seta m algoritmul = 2 și n = 3.

Rețineți că algoritmul de mai sus necesită o cantitate foarte mare de calcul, deoarece un semnal intermediar one-dimensional cu o dimensiune resample poate fi de ordinul a sute de mii. Există o modalitate de a îmbunătăți în mod semnificativ performanța algoritmului și pentru a reduce consumul de memorie. Această metodă se numește un filtru polifazic (filtrare polifazic). Ea se bazează pe faptul că lungimea semnalului intermediar nu este necesar să se calculeze toate punctele. La urma urmei, cele mai multe dintre ele vor fi în continuare eliminate atunci când subțierea. Filtrarea polifazic permite să-și exprime direct eșantioanele de semnal rezultante ale semnalului original prin probe si antialiasingovogo filtru.

Rețineți că aici nu considerăm astfel de detalii ale algoritmului, ca corectarea limitelor de imagine, interpolare semnal de selecție de fază și subțierea și bun filtru antialiasingovogo construcție. Noi doar act de faptul că pentru a reeșantiona imaginea pe care doriți să acorde o atenție deosebită atât frecvența și caracteristica de filtrare spațială. Dacă optimiza doar filtrul în domeniul de frecvență, aceasta va duce la unda mare în kernel-ul de filtrare. Iar atunci când imaginile Reeșantionați ondulație în filtrul de nucleu duc la pulsațiilor luminozitate aproape de schimbări bruște ale luminozității imaginii (efect Gibbs. Fenomenul Gibbs)