Gensampling

Resampling i signalbehandling er en ændring i samplingsfrekvensen af ​​et diskret (oftest digitalt ) signal. Resampling-algoritmer er meget udbredt i behandlingen af ​​lydsignaler , radiosignaler og billeder (resampling af en bitmap er en ændring i dens opløsning i pixels ).

De signalprøver, der svarer til den nye samplingshastighed, er beregnet ud fra de allerede tilgængelige samples og indeholder ikke ny information.

Upsampling kaldes interpolation , downsampling kaldes decimering . [en]

Generelle principper

Ifølge Kotelnikovs teorem kan ethvert kontinuerligt signal med et endeligt spektrum (det vil sige et sådant spektrum, hvor der ikke er nogen spektrale komponenter svarende til frekvenser over eller lig med en bestemt frekvens ) repræsenteres som samples af et diskret signal med en samplingsfrekvens . Desuden er en sådan transformation en-til-en , det vil sige, underlagt betingelserne i Kotelnikov-sætningen, er det muligt at genoprette det oprindelige signal med et endeligt spektrum uden forvrængning fra et diskret signal. [2]

Ved resampling beregnes signalprøverne svarende til en samplingsfrekvens ud fra de tilgængelige samples af det samme signal svarende til en anden samplingsfrekvens (det antages, at begge samplingsfrekvenser svarer til betingelserne i Kotelnikov-sætningen). Ideel resampling svarer til at gendanne et kontinuerligt signal fra dets samples og derefter sample det ved en ny frekvens. [3]

Den nøjagtige beregning af værdien af ​​det originale kontinuerlige signal på et bestemt punkt udføres som følger: [4] [5]

hvor er den i-te sample af signalet, er tidspunktet svarende til denne sample, er den cykliske samplingshastighed, er den interpolerede værdi af signalet på det tidspunkt .

Funktionen er ikke endelig , derfor, for at beregne signalværdien på et bestemt tidspunkt ved hjælp af ovenstående udtryk, er det nødvendigt at behandle et uendeligt antal af dens samples (både i fortiden og i fremtiden), hvilket er urealiserbart i øve sig. I det virkelige liv udføres interpolation ved hjælp af andre filtre , mens udtrykket for det har følgende form: [6] [7]

hvor er impulssvaret for det tilsvarende genvindingsfilter . Typen af ​​dette filter vælges afhængigt af opgaven. [otte]

Direkte beregning af nye signalprøver ved hjælp af ovenstående formler kræver betydelige beregningsressourcer og er uønsket til realtidsapplikationer . Der er vigtige særlige tilfælde af resampling, hvor beregningen af ​​nye prøver er lettere: [9]

Med sådanne begrænsninger bliver det praktisk at bruge standardimplementeringer af digitale filtre til resampling.

Resampling med digitale filtre

Filtervalg til resampling

Valget af funktion bestemmes af et kompromis mellem kvaliteten af ​​resampling (det vil sige dens nærhed til ideal) og den beregningsmæssige kompleksitet af denne proces. I princippet kan et hvilket som helst lavpasfilter med den ønskede cutoff-frekvens bruges til resampling . FIR-filtre er mere almindeligt anvendt til disse applikationer end IIR-filtre på grund af evnen til at bygge FIR-filtre med en lineær faserespons . [ti]

Oftest bruges følgende klasser af digitale filtre til resampling: [11]

1. Filtre bygget ud fra kriteriet om nærhed af frekvensresponsen til frekvensresponsen for et ideelt lavpasfilter :

1.1. Windowed sinc-filtre - deres impulsrespons opnås ved at multiplicere impulsresponsen af ​​et ideelt lavpasfilter med vinduesfunktionen , 1.2. Equal-wave Chebyshev filtre .

2. Klassiske metoder til funktionsinterpolation (ofte brugt til billeder) [12] :

2.1. Lineære interpolatorer , 2.2. Lagrange-interpolatorer (specielt tilfælde - kubisk interpolation ).

3. CIC-filtre (kaskader af kamfiltre og integratorer). [13] Denne klasse af filtre bruger ikke multiplikationer i beregningen, hvilket sparer beregningsressourcer.

Decimering med en heltalsfaktor

Processen med at reducere samplingshastigheden af ​​et signal kaldes decimering. [1] Nogle gange bruges dette udtryk kun til at reducere samplingshastigheden med et helt antal gange (i det følgende ). [14] Decimering af et digitalt signal med en heltalsfaktor udføres i to trin: [10] [15]

  1. Digital filtrering af signalet for at fjerne højfrekvente komponenter, der ikke opfylder betingelserne i Kotelnikov-sætningen for en ny samplingshastighed;
  2. Fjernelse (kassering) af ekstra aflæsninger (hver -te aflæsning gemmes).

I engelsk litteratur omtales det andet af disse trin nogle gange som downsampling . [16] I hverdagen kan dette udtryk bruges som et synonym for udtrykket "decimering".

Det første trin er nødvendigt for at eliminere aliasing , som i sin natur ligner aliasing i den indledende sampling af et analogt signal . [15] Aliasing er især mærkbar i de områder af signalet, der indeholder betydelige højfrekvente spektrale komponenter. Så på fotografierne citeret i begyndelsen af ​​artiklen undergik himlen praktisk talt ikke aliasing, men effekten bliver mærkbar, hvis du er opmærksom på skarpe overgange.

Med softwareimplementeringen af ​​decimeringsalgoritmen fjernes "ekstra" aflæsninger ikke, men beregnes simpelthen ikke. I dette tilfælde reduceres antallet af opkald til det digitale filter med en faktor. Med hardwareimplementering kan der opnås besparelser ved at bruge polyfasefiltre . [17]

Interpolation med en heltalsfaktor

Interpolation er en stigning i frekvensen med et heltal eller et brøktal af gange [1] ved at beregne mellemliggende aflæsninger fra eksisterende. Ideel interpolation giver dig mulighed for nøjagtigt at gendanne signalværdierne i mellemeksempler.

Standardsignalinterpolationsalgoritmen med en heltalskoefficient er som følger: [18]

  1. indsættelse af nul-aflæsninger i stedet for aflæsninger, der skal beregnes;
  2. filtrering af signalet med et digitalt lavpasfilter for at fjerne de spektrale komponenter af signalet, som åbenbart ikke kunne være i det originale signal ifølge Kotelnikov-sætningen; filterudgangen multipliceres med interpolationsfaktoren for at normalisere .

I engelsksproget litteratur omtales det første af disse trin nogle gange som upsampling . [16] I dette tilfælde, i hverdagen, kan dette udtryk bruges som et synonym for udtrykket "interpolation".

Med softwareimplementering af interpolation er nul samples ikke involveret i beregningen af ​​filterudgangssignalet, hvilket gør det muligt at optimere beregningsprocessen. Med hardwareimplementering kan polyfasefiltre bruges til at spare ressourcer. [19] [20]

En kombination af interpolation og decimering

For at ændre samplinghastigheden af ​​signalet med en faktor ( og er positive heltal), kan du først øge samplingshastigheden med en faktor og derefter reducere den med en faktor. Det er nok kun at filtrere signalet én gang - mellem interpolation og decimering. [21]

Ulempen ved denne metode er behovet for at filtrere signalet med en øget samplingshastighed flere gange, hvilket kræver betydelige computerressourcer . I dette tilfælde kan den tilsvarende frekvens være mange gange større end både den indledende og den endelige resamplingfrekvens, især hvis og er tætte store tal. [22] Så for eksempel, når du resampler et lydsignal fra 44.100 Hz til 48.000 Hz ved hjælp af denne metode, er det nødvendigt at øge samplingsfrekvensen med en faktor på 160 til 7.056.000 Hz og derefter reducere den med en faktor på 147 til 48.000 Hz. I dette eksempel skal beregninger således udføres ved en samplingshastighed på mere end 7 MHz.

Resampling med polyfasefiltre

Gensamplingsmetoden, der anvender polyfasefiltre , ligner den foregående, med den forskel, at der i stedet for et filter, der arbejder med en høj samplingshastighed, bruges flere filtre, der arbejder ved en lav frekvens. I dette tilfælde er det muligt at opnå en reduktion i antallet af nødvendige beregninger, da det for hver prøve er nødvendigt at beregne udgangssignalet fra kun et af disse filtre. [20] [23]

Et polyfasefilter er et sæt små filtre, der arbejder parallelt, som hver kun behandler en delmængde af signalprøverne (hvis der er filtre i alt, vil hvert filter kun behandle hver -te prøve).

Polyfasefiltre bruges til resampling med både heltal og fraktionskoefficienter. [24]

Gensampling med den diskrete Fourier-transformation

DFT resampling bruges til at øge samplingshastigheden med et heltal eller et brøktal af gange. Algoritmen fungerer kun med endelige segmenter af signalet. Lad være det indledende antal samples, være antallet af samples i det resamplede signal. Algoritmen inkluderer følgende operationer: [25] [26]

1. DFT af det originale signal beregnes (oftest ved hjælp af den hurtige Fourier-transformationsalgoritme ).

2. Det nødvendige antal nulkomponenter indsættes i midten af ​​spektret :

2.1. hvis ulige: 2.2. hvis endda:

3. Den inverse diskrete Fourier-transformation med normalisering beregnes .

Enhver metode baseret på DFT er primært beregnet til periodiske diskrete signaler. For at behandle ikke-periodiske signaler er det nødvendigt at vælge signalsegmenter til beregning af DFT på en sådan måde, at deres ender overlapper hinanden. [27]

Ansøgninger

Både hardware (baseret på specialiserede mikrokredsløb [28] [29] eller FPGA [30] ) og software (baseret på processorer til generelle formål (se nedenfor) eller signalprocessorer [31] ) implementering af resampling-algoritmer er meget brugt.

Valget af en bestemt implementering af resampling-algoritmen er resultatet af et kompromis mellem kvaliteten af ​​transformationen og dens beregningsmæssige kompleksitet . Hovedparameteren, der påvirker disse karakteristika, er de digitale filtres nærhed til de ideelle. Bedre filtre kræver flere computerressourcer. [32]

I praksis fører resampling i de fleste tilfælde til tab af information om signalet af følgende årsager:

Når samplingsfrekvensen øges og derefter reduceres til den oprindelige værdi, vil kvaliteten af ​​signalet således gå tabt (medmindre den høje frekvens er et multiplum af den lave).

Sampling af signaler med oversampling

Sampling af signaler med en margin for samplingsfrekvens ( engelsk  oversampling ) betyder sampling af et signal ved en frekvens flere gange højere end Kotelnikov-frekvensen , efterfulgt af decimering. Denne tilgang gør det muligt at opnå følgende fordele [35] :

En lignende tilgang bruges også ved gendannelse af et signal fra dets samples for at forenkle det analoge gendannelsesfilter . [36]

Ved behandling af lyd

Udstyr designet til at gengive digital lyd er normalt designet til en veldefineret samplinghastighed af signalet umiddelbart før digital-til-analog konvertering . Alle lydsignaler med andre samplingshastigheder skal gensamples før eller senere [37] .

Gensampling af lydsignalet til den ønskede frekvens kan udføres af medieafspilleren , lydkortdriveren eller selve lydkortet. Brug af et afspillerprogram til dette formål kan være berettiget, hvis du vil undgå hardware-resampling af lyd (eller oversampling af driveren) for at opnå højere kvalitet (med højere CPU- belastning ). Software-resampling af det reproducerede materiale til en frekvens forskellig fra den frekvens, der understøttes af udstyret, giver imidlertid ikke mening og fører kun til et tab i signalkvalitet.

Der er open source-software lydresamplere :

Gensampling understøttes også af lydredigeringssoftware (såsom Adobe Audition , Sony Sound Forge eller Audacity ).

Ved behandling af billeder

Ændring af størrelse er en af ​​de mest almindelige billedbehandlingsoperationer. Næsten ideel oversampling er ikke altid ønskelig. Tværtimod kan resultaterne af filtre med en frekvensgang, der er langt fra ideel, visuelt opfattes som gode. [42] Valget af filter til resampling er resultatet af en afvejning mellem artefakternes art og sværhedsgrad og den beregningsmæssige kompleksitet af transformationen (relevant for realtidsapplikationer ).

Typiske artefakter ved ændring af billedopløsning: [12] :

Til billedresampling bruges et stort antal filtre, som kan klassificeres som følger [12] :

  1. Interpolationstype filtre , som har en relativt snæver impulsrespons. Disse omfatter især det trekantede filter, som producerer bilineær interpolation , og Lagrange-polynomiet , med hvilket bikubisk interpolation kan implementeres . Brugen af ​​sådanne filtre gør det muligt at gensample billedet ret hurtigt.
  2. Klokkeformede filtre , såsom Gauss-filteret . Disse filtre gør et godt stykke arbejde med pixelering, ringning og aliasing, samt filtrerer højfrekvent støj fra. Deres ulempe er en mærkbar sløring af billedet.
  3. Window sinc filtre . Et sinc-filter er et ideelt lavpasfilter. Som nævnt ovenfor kan det ikke gennemføres. Men hvis sinc-filterets frekvensrespons multipliceres med vinduesfunktionen , opnås et implementerbart filter med gode spektrale egenskaber. Når du anvender disse filtre på billeder, er det muligt at opretholde relativt høj opløsning (selv når opløsningen er øget), men ringeeffekten kan være meget mærkbar. Et af de mest brugte filtre af denne type er Lanczos-filtret .

Billederne nedenfor illustrerer anvendelsen af ​​de mest almindeligt anvendte billedstørrelsesfiltre. Når du øger billedstørrelsen uden et filter, er billedet skarpt, men pixeleret. Med bilineær interpolation er pixelering mindre mærkbar, men billedet er sløret. Ved brug af Gauss-filteret er billedet sløret, men pixeleringen er næsten ikke mærkbar. Når du bruger Lanczos-filteret, er der ingen pixelering, billedet er også sløret, og ringningen er mærkbar (synlig som en lys kant rundt om figurerne).

Ved behandling af radiosignaler

Ved demodulering af digitale signaler er det ønskeligt, at samplingshastigheden af ​​signalet er et multiplum af dets nøglehastighed (med andre ord, at hvert symbol har det samme antal signalsamples). Imidlertid er samplinghastigheden af ​​inputsignalet fra ADC normalt fast, mens nøglehastigheden kan variere. Løsningen er signalresampling. [43]

Se også

Noter

  1. 1 2 3 Crochiere, Rabiner, 1983 , s. 3.
  2. Crochiere, Rabiner, 1983 , s. 19.
  3. Crochiere, Rabiner, 1983 , s. 22.
  4. Crochiere, Rabiner, 1983 , s. tyve.
  5. Romanyuk, 2005 , s. 136.
  6. Crochiere, Rabiner, 1983 , s. 21.
  7. Romanyuk, 2005 , s. 149.
  8. Crochiere, Rabiner, 1983 , s. 180.
  9. Crochiere, Rabiner, 1983 , s. 29.
  10. 1 2 Lyons, 2006 , s. 383.
  11. Crochiere, Rabiner, 1983 , s. 143.
  12. 1 2 3 Ændre størrelse og skalering Arkiveret 5. maj 2009 på Wayback MachineImageMagick- webstedet .
  13. Forstå kaskadede integrator-kamfiltre (downlink) . Hentet 13. juni 2009. Arkiveret fra originalen 26. september 2007. 
  14. Lyons, 2006 , s. 382.
  15. 1 2 Crochiere, Rabiner, 1983 , s. 31.
  16. 1 2 Upsampling og interpolation, downsampling og decimering  (downlink) .
  17. Polyfasedecimeringsfilter Arkiveret 8. april 2009 på Wayback Machine .
  18. Lyons, 2006 , s. 387.
  19. Polyfase-interpolationsfiltre Arkiveret 21. april 2009 på Wayback Machine .
  20. 1 2 Lyons, 2006 , s. 391.
  21. Lyons, 2006 , s. 389.
  22. Interpolation, decimering og hastighedsændring efter heltalsbrøker Arkiveret 9. april 2009 på Wayback Machine .
  23. Crochiere, Rabiner, 1983 , s. 79.
  24. Polyfase resampling med en rationel faktor Arkiveret 3. januar 2009 på Wayback Machine .
  25. Romanyuk, 2005 , s. 223.
  26. Interpolation ved hjælp af FFT  (downlink) .
  27. Romanyuk, 2005 , s. 287.
  28. GC5016 IC fra Texas Instruments Arkiveret 21. oktober 2010 på Wayback Machine .
  29. Sample rate converters fra Analog Devices Arkiveret 8. juni 2009 på Wayback Machine .
  30. Xilinx XAPP1113: Design af effektive digitale op- og nedkonvertere . Hentet 13. juni 2009. Arkiveret fra originalen 24. januar 2009.
  31. ADSP-21000 Family Applications Handbook (Vol 1.0) . Hentet 13. juni 2009. Arkiveret fra originalen 25. januar 2011.
  32. Lyons, 2006 , s. 181.
  33. Crochiere, Rabiner, 1983 , s. 33.
  34. Rabiner, Gould 1978 , s. 327.
  35. Multirate DSP, del 3: ADC-oversampling Arkiveret 8. februar 2010 på Wayback Machine .
  36. Theory of Upsampled Digital Audio Arkiveret 5. februar 2009 på Wayback Machine .
  37. En komplet guide til Foobar 2000 . Hentet 13. juni 2009. Arkiveret fra originalen 18. april 2009.
  38. Secret Rabbit Code (alias libsamplerate) . Hentet 28. maj 2009. Arkiveret fra originalen 30. april 2009.
  39. Shibatch-lydværktøjer . Hentet 28. maj 2009. Arkiveret fra originalen 11. maj 2008.
  40. SoX Resampler-biblioteket . Hentet 19. november 2013. Arkiveret fra originalen 3. december 2013.
  41. Sammenligning af fem resamplere til foobar2000 + ASIO4ALL Resampler (opdateret 18.11.2015) . Hentet 1. oktober 2017. Arkiveret fra originalen 1. oktober 2017.
  42. Don P. Mitchell, Arun N. Netravali. Rekonstruktionsfiltre i computergrafik  // Computergrafik. - 1988. - T. 22 , nr. 4 . - S. 221-228 . Arkiveret fra originalen den 4. juli 2009. .
  43. Opbygning af en QAM-demodulator  (link utilgængeligt) .

Litteratur

Links