Omsampling

Omsampling i signalbehandling är en förändring i samplingsfrekvensen för en diskret (oftast digital ) signal. Omsamplingsalgoritmer används i stor utsträckning vid bearbetning av ljudsignaler , radiosignaler och bilder (omsampling av en bitmapp är en förändring av dess upplösning i pixlar ).

Signalsamplen som motsvarar den nya samplingshastigheten beräknas från de redan tillgängliga samplen och innehåller ingen ny information.

Uppsampling kallas interpolation , nedsampling kallas decimering . [ett]

Allmänna principer

Enligt Kotelnikovs teorem kan varje kontinuerlig signal med ett ändligt spektrum (det vill säga ett sådant spektrum där det inte finns några spektrala komponenter som motsvarar frekvenser över eller lika med en viss frekvens ) representeras som sampel av en diskret signal med en samplingsfrekvens . Dessutom är en sådan transformation en-till-en , det vill säga, med förbehåll för villkoren för Kotelnikov-satsen, är det möjligt att återställa den ursprungliga signalen med ett ändligt spektrum utan distorsion från en diskret signal. [2]

Vid omsampling beräknas signalsamplen som motsvarar en samplingsfrekvens från tillgängliga sampel av samma signal som motsvarar en annan samplingsfrekvens (det antas att båda samplingsfrekvenserna motsvarar villkoren för Kotelnikov-satsen). Ideal omsampling motsvarar att återställa en kontinuerlig signal från dess samplingar och sedan sampla den vid en ny frekvens. [3]

Den exakta beräkningen av värdet på den ursprungliga kontinuerliga signalen vid en viss punkt utförs enligt följande: [4] [5]

där är det i:te samplet av signalen, är det tidsögonblick som motsvarar detta sampel, är den cykliska samplingshastigheten, är det interpolerade värdet för signalen vid tidpunkten .

Funktionen är inte finit , därför, för att beräkna signalvärdet vid en viss tidpunkt med hjälp av uttrycket ovan, är det nödvändigt att bearbeta ett oändligt antal av dess sampel (både i det förflutna och i framtiden), vilket är orealiserbart i öva. I det verkliga livet utförs interpolation med andra filter , medan uttrycket för det har följande form: [6] [7]

var är impulssvaret för motsvarande återvinningsfilter . Typen av detta filter väljs beroende på uppgiften. [åtta]

Direkt beräkning av nya signalsampler med användning av ovanstående formler kräver betydande beräkningsresurser och är oönskat för realtidsapplikationer . Det finns viktiga specialfall av omsampling för vilka beräkningen av nya prover är lättare: [9]

Med sådana begränsningar blir det bekvämt att använda standardimplementationer av digitala filter för omsampling.

Omsampling med digitala filter

Filterval för omsampling

Valet av funktion bestäms av en kompromiss mellan kvaliteten på omsamplingen (det vill säga dess närhet till ideal) och beräkningskomplexiteten i denna process. I princip kan vilket lågpassfilter som helst med önskad gränsfrekvens användas för omsampling . FIR-filter används oftare för dessa applikationer än IIR-filter på grund av möjligheten att bygga FIR-filter med linjär fasrespons . [tio]

Oftast används följande klasser av digitala filter vid omsampling: [11]

1. Filter byggda utifrån kriteriet om närhet mellan frekvenssvaret och frekvenssvaret för ett idealiskt lågpassfilter :

1.1. Windowed sinc-filter - deras impulssvar erhålls genom att multiplicera impulssvaret för ett idealiskt lågpassfilter med fönsterfunktionen , 1.2. Likavågiga Chebyshev-filter .

2. Klassiska metoder för funktionsinterpolation (används ofta för bilder) [12] :

2.1. Linjära interpolatorer , 2.2. Lagrange-interpolatorer (specialfall - kubisk interpolation ).

3. CIC-filter (kaskader av kamfilter och integratorer). [13] Denna klass av filter använder inte multiplikationer i beräkningen, vilket sparar beräkningsresurser.

Decimering med en heltalsfaktor

Processen att minska samplingshastigheten för en signal kallas decimering. [1] Ibland används denna term endast för att reducera samplingsfrekvensen med ett helt antal gånger (nedan ). [14] Decimering av en digital signal med en heltalsfaktor utförs i två steg: [10] [15]

  1. Digital filtrering av signalen för att ta bort högfrekventa komponenter som inte uppfyller villkoren för Kotelnikov-teoremet för en ny samplingshastighet;
  2. Borttagning (kassering) av extra avläsningar (var -:e avläsning sparas).

I engelsk litteratur kallas det andra av dessa steg ibland som nedsampling . [16] I vardagen kan denna term användas som en synonym för termen "decimering".

Det första steget är nödvändigt för att eliminera aliasing , som till sin natur liknar aliasing i den initiala samplingen av en analog signal . [15] Aliasingen är särskilt märkbar i de områden av signalen som innehåller betydande högfrekventa spektrala komponenter. Så på fotografierna som citerades i början av artikeln genomgick himlen praktiskt taget inte aliasing, men effekten blir märkbar om du är uppmärksam på skarpa övergångar.

Med mjukvaruimplementeringen av decimeringsalgoritmen tas inte "extra" avläsningar bort, utan beräknas helt enkelt inte. I detta fall reduceras antalet anrop till det digitala filtret med en faktor. Med hårdvaruimplementering kan besparingar uppnås genom att använda flerfasfilter . [17]

Interpolation med en heltalsfaktor

Interpolation är en ökning av frekvensen med ett heltal eller bråktal av gånger [1] genom att beräkna mellanliggande avläsningar från befintliga. Idealisk interpolation gör att du kan återställa signalvärdena i mellansamplar exakt.

Standardsignalinterpolationsalgoritmen med en heltalskoefficient är som följer: [18]

  1. infogning av nollvärden i stället för avläsningar som ska beräknas;
  2. filtrering av signalen med ett digitalt lågpassfilter för att ta bort de spektrala komponenterna i signalen, som uppenbarligen inte kunde vara i den ursprungliga signalen enligt Kotelnikov-satsen; filterutgången multipliceras med interpolationsfaktorn för att normalisera .

I engelskspråkig litteratur kallas det första av dessa steg ibland som upsampling . [16] I det här fallet, i vardagen, kan denna term användas som en synonym för termen "interpolation".

Med mjukvaruimplementering av interpolering är nollprov inte involverade i beräkningen av filterutgångssignalen, vilket möjliggör optimering av beräkningsprocessen. Med hårdvaruimplementering kan flerfasfilter användas för att spara resurser. [19] [20]

En kombination av interpolation och decimering

För att ändra samplingshastigheten för signalen med en faktor ( och är positiva heltal), kan du först öka samplingshastigheten med en faktor och sedan minska den med en faktor. Det räcker att filtrera signalen endast en gång - mellan interpolering och decimering. [21]

Nackdelen med denna metod är behovet av att filtrera signalen med en ökad samplingshastighet med flera gånger, vilket kräver betydande beräkningsresurser . I detta fall kan motsvarande frekvens vara många gånger större än både den initiala och den slutliga omsamplingsfrekvensen, speciellt om och är nära stora tal. [22] Så, till exempel, när man omsamplar en ljudsignal från 44 100 Hz till 48 000 Hz med denna metod, är det nödvändigt att öka samplingsfrekvensen med en faktor på 160 till 7 056 000 Hz och sedan minska den med en faktor på 147 till 48 000 Hz. I detta exempel måste således beräkningar utföras med en samplingshastighet på mer än 7 MHz.

Omsampling med flerfasfilter

Omsamplingsmetoden som använder flerfasfilter liknar den föregående, med skillnaden att istället för att ett filter arbetar med en hög samplingshastighet, används flera filter som arbetar med en låg frekvens. I detta fall är det möjligt att uppnå en minskning av antalet nödvändiga beräkningar, eftersom det för varje prov är nödvändigt att beräkna utsignalen från endast ett av dessa filter. [20] [23]

Ett flerfasfilter är en uppsättning små filter som arbetar parallellt, som vart och ett bearbetar endast en delmängd av signalsamplen (om det finns filter totalt kommer varje filter att behandla endast vart :te sampel).

Flerfasfilter används för omsampling med både heltals- och bråkkoefficienter. [24]

Omsampling med den diskreta Fourier-transformen

DFT -omsampling används för att öka samplingsfrekvensen med ett heltal eller ett bråktal av gånger. Algoritmen fungerar endast med ändliga segment av signalen. Låt vara det initiala antalet sampel, vara antalet sampel i den omsamplade signalen. Algoritmen inkluderar följande operationer: [25] [26]

1. DFT för den ursprungliga signalen beräknas (oftast med den snabba Fourier-transformalgoritmen ).

2. Det erforderliga antalet nollkomponenter infogas i mitten av spektrumet :

2.1. om udda: 2.2. om ens:

3. Den inversa diskreta Fouriertransformen med normalisering beräknas .

Alla metoder baserade på DFT är i första hand avsedd för periodiska diskreta signaler. För att behandla icke-periodiska signaler är det nödvändigt att välja signalsegment för beräkning av DFT på ett sådant sätt att deras ändar överlappar varandra. [27]

Applikationer

Både hårdvara (baserad på specialiserade mikrokretsar [28] [29] eller FPGA [30] ) och mjukvara (baserad på generella processorer (se nedan) eller signalprocessorer [31] ) implementering av omsamplingsalgoritmer används i stor utsträckning.

Valet av en viss implementering av omsamplingsalgoritmen är resultatet av en kompromiss mellan kvaliteten på transformationen och dess beräkningskomplexitet . Huvudparametern som påverkar dessa egenskaper är närheten mellan de digitala filtren som används till de idealiska. Bättre filter kräver mer datorresurser. [32]

I praktiken leder omsampling i de flesta fall till förlust av information om signalen av följande skäl:

Sålunda, när man ökar samplingsfrekvensen och sedan minskar den till det ursprungliga värdet, kommer kvaliteten på signalen att gå förlorad (såvida inte den höga frekvensen är en multipel av den låga).

Sampling av signaler med översampling

Sampling av signaler med marginal för samplingsfrekvens ( engelska  översampling ) innebär sampling av en signal med en frekvens flera gånger högre än Kotelnikov-frekvensen , följt av decimering. Detta tillvägagångssätt gör det möjligt att uppnå följande fördelar [35] :

Ett liknande tillvägagångssätt används också vid återställning av en signal från dess sampel för att förenkla det analoga återställningsfiltret . [36]

Vid bearbetning av ljud

Utrustning utformad för att återge digitalt ljud är vanligtvis utformad för en väldefinierad samplingshastighet av signalen omedelbart före digital-till-analog konvertering . Alla ljudsignaler med andra samplingsfrekvenser måste samplas om förr eller senare [37] .

Omsampling av ljudsignalen till önskad frekvens kan göras av mediaspelaren , ljudkortsdrivrutinen eller själva ljudkortet. Att använda ett spelarprogram för detta ändamål kan motiveras om du vill undvika hårdvaruomsampling av ljud (eller översampling av drivrutinen) för att uppnå högre kvalitet (med högre CPU- belastning ). Emellertid är mjukvaruomsampling av det reproducerade materialet till en annan frekvens än den frekvens som stöds av utrustningen meningslöst och leder bara till en förlust i signalkvalitet.

Det finns ljudåterförare med öppen källkod :

Omsampling stöds också av ljudredigeringsprogram (som Adobe Audition , Sony Sound Forge eller Audacity ).

Vid bearbetning av bilder

Ändring av storlek är en av de vanligaste bildbehandlingsoperationerna. Nästan idealisk översampling är inte alltid önskvärd. Tvärtom kan resultaten av filter med en frekvensgång som är långt ifrån idealisk visuellt uppfattas som bra. [42] Valet av filter för omsampling är resultatet av en avvägning mellan artefakternas typ och svårighetsgrad och beräkningskomplexiteten hos transformationen (relevant för realtidsapplikationer ).

Typiska artefakter vid ändring av bildupplösning: [12] :

För omsampling av bilder används ett stort antal filter, som kan klassificeras enligt följande [12] :

  1. Filter av interpolationstyp , som har ett relativt snävt impulssvar. Dessa inkluderar i synnerhet det triangulära filtret, som producerar bilinjär interpolation , och Lagrangepolynomet , med vilket bikubisk interpolation kan implementeras . Användningen av sådana filter gör det möjligt att sampla om bilden ganska snabbt.
  2. Klockformade filter , till exempel Gauss-filtret . Dessa filter gör ett bra jobb med pixelering, ringsignaler och aliasing, samt filtrerar bort högfrekvent brus. Deras nackdel är en märkbar suddighet i bilden.
  3. Fönster sinc-filter . Ett sinc-filter är ett idealiskt lågpassfilter. Som nämnts ovan kan den inte genomföras. Om emellertid frekvenssvaret för sinc-filtret multipliceras med fönsterfunktionen , erhålls ett implementerbart filter med goda spektrala egenskaper. När man använder dessa filter på bilder är det möjligt att bibehålla relativt hög upplösning (även när upplösningen höjs), men ringeffekten kan vara mycket märkbar. Ett av de mest använda filtren av denna typ är Lanczos-filtret .

Bilderna nedan illustrerar tillämpningen av de vanligaste filtren för bildstorleksändring. När du ökar bildstorleken utan filter blir bilden skarp, men pixlad. Med bilinjär interpolation är pixelering mindre märkbar, men bilden är suddig. När man använder Gauss-filtret är bilden suddig, men pixeleringen märks nästan inte. När man använder Lanczos-filtret finns det ingen pixelering, bilden är också suddig och ringsignaler märks (synligt som en ljus kant runt figurerna).

Vid behandling av radiosignaler

Vid demodulering av digitala signaler är det önskvärt att samplingshastigheten för signalen är en multipel av dess nyckelhastighet (med andra ord att varje symbol har samma antal signalsampel). Samplingshastigheten för insignalen från ADC är dock vanligtvis fast, medan nycklingshastigheten kan variera. Lösningen är signalomsampling. [43]

Se även

Anteckningar

  1. 1 2 3 Crochiere, Rabiner, 1983 , sid. 3.
  2. Crochiere, Rabiner, 1983 , sid. 19.
  3. Crochiere, Rabiner, 1983 , sid. 22.
  4. Crochiere, Rabiner, 1983 , sid. tjugo.
  5. Romanyuk, 2005 , sid. 136.
  6. Crochiere, Rabiner, 1983 , sid. 21.
  7. Romanyuk, 2005 , sid. 149.
  8. Crochiere, Rabiner, 1983 , sid. 180.
  9. Crochiere, Rabiner, 1983 , sid. 29.
  10. 1 2 Lyons, 2006 , sid. 383.
  11. Crochiere, Rabiner, 1983 , sid. 143.
  12. 1 2 3 Ändra storlek och skalning Arkiverad 5 maj 2009 på Wayback MachineImageMagick- webbplatsen .
  13. Förstå kaskadkopplade integrator-kamfilter (nedlänk) . Hämtad 13 juni 2009. Arkiverad från originalet 26 september 2007. 
  14. Lyons, 2006 , sid. 382.
  15. 1 2 Crochiere, Rabiner, 1983 , sid. 31.
  16. 1 2 Uppsampling och interpolering, nedsampling och decimering  (nedlänk) .
  17. Flerfasdecimeringsfilter Arkiverad 8 april 2009 på Wayback Machine .
  18. Lyons, 2006 , sid. 387.
  19. Flerfasinterpolationsfilter Arkiverad 21 april 2009 på Wayback Machine .
  20. 1 2 Lyons, 2006 , sid. 391.
  21. Lyons, 2006 , sid. 389.
  22. Interpolation, decimering och hastighetsändring med heltalsbråk Arkiverad 9 april 2009 på Wayback Machine .
  23. Crochiere, Rabiner, 1983 , sid. 79.
  24. Flerfas omsampling med en rationell faktor Arkiverad 3 januari 2009 på Wayback Machine .
  25. Romanyuk, 2005 , sid. 223.
  26. Interpolation med FFT  (nedlänk) .
  27. Romanyuk, 2005 , sid. 287.
  28. GC5016 IC från Texas Instruments Arkiverad 21 oktober 2010 på Wayback Machine .
  29. Sample rate-omvandlare från analoga enheter Arkiverade 8 juni 2009 på Wayback Machine .
  30. Xilinx XAPP1113: Designa effektiva digitala upp- och neromvandlare . Hämtad 13 juni 2009. Arkiverad från originalet 24 januari 2009.
  31. ADSP-21000 Family Applications Handbook (Vol 1.0) . Hämtad 13 juni 2009. Arkiverad från originalet 25 januari 2011.
  32. Lyons, 2006 , sid. 181.
  33. Crochiere, Rabiner, 1983 , sid. 33.
  34. Rabiner, Gould 1978 , sid. 327.
  35. Multirate DSP, del 3: ADC-översampling Arkiverad 8 februari 2010 på Wayback Machine .
  36. Theory of Upsampled Digital Audio Arkiverad 5 februari 2009 på Wayback Machine .
  37. En komplett guide till Foobar 2000 . Hämtad 13 juni 2009. Arkiverad från originalet 18 april 2009.
  38. Secret Rabbit Code (alias libsamplerate) . Hämtad 28 maj 2009. Arkiverad från originalet 30 april 2009.
  39. Shibatch Audio Tools . Hämtad 28 maj 2009. Arkiverad från originalet 11 maj 2008.
  40. SoX Resampler-biblioteket . Hämtad 19 november 2013. Arkiverad från originalet 3 december 2013.
  41. Jämförelse av fem resamplers för foobar2000 + ASIO4ALL Resampler (uppdaterad 2015-11-18) . Hämtad 1 oktober 2017. Arkiverad från originalet 1 oktober 2017.
  42. Don P. Mitchell, Arun N. Netravali. Rekonstruktionsfilter i datorgrafik  // Datorgrafik. - 1988. - T. 22 , nr 4 . - S. 221-228 . Arkiverad från originalet den 4 juli 2009. .
  43. Bygga en QAM-demodulator  (länk ej tillgänglig) .

Litteratur

Länkar