Uudelleennäytteenotto

Uudelleennäytteistys signaalinkäsittelyssä on diskreetin (useimmiten digitaalisen ) signaalin näytteenottotaajuuden muutos . Uudelleennäytteistysalgoritmeja käytetään laajalti audiosignaalien , radiosignaalien ja kuvien käsittelyssä ( bittikartan uudelleennäytteenotto on muutos sen resoluutiossa pikseleinä ).

Uutta näytteenottotaajuutta vastaavat signaalinäytteet lasketaan jo saatavilla olevista näytteistä, eivätkä ne sisällä uutta tietoa.

Ylösnäytteistystä kutsutaan interpoloinniksi ja alasnäytteeksi desimaatioksi . [yksi]

Yleiset periaatteet

Kotelnikovin lauseen mukaan mikä tahansa jatkuva signaali, jolla on äärellinen spektri (eli sellainen spektri, jossa ei ole tiettyä taajuutta suurempia tai yhtä suuria taajuuksia vastaavia spektrikomponentteja ) voidaan esittää näytteinä diskreetistä signaalista näytteenottotaajuudella. . Lisäksi tällainen muunnos on yksi yhteen , eli Kotelnikov-lauseen ehtojen mukaisesti on mahdollista palauttaa alkuperäinen signaali äärellisellä spektrillä ilman vääristymiä diskreetistä signaalista. [2]

Uudelleennäytteenotossa yhtä näytteenottotaajuutta vastaavat signaalinäytteet lasketaan saman signaalin käytettävissä olevista näytteistä, jotka vastaavat toista näytteenottotaajuutta (oletetaan, että molemmat näytteenottotaajuudet vastaavat Kotelnikov-lauseen ehtoja). Ihanteellinen uudelleennäytteenotto vastaa jatkuvan signaalin palauttamista näytteistä ja sen jälkeen näytteistystä uudella taajuudella. [3]

Alkuperäisen jatkuvan signaalin arvon tarkka laskenta tietyssä pisteessä suoritetaan seuraavasti: [4] [5]

missä on signaalin i:s näyte, on tätä näytettä vastaava ajan hetki, on syklinen näytteenottotaajuus, on signaalin interpoloitu arvo hetkellä .

Funktio ei ole äärellinen , joten signaalin arvon laskemiseksi tietyllä hetkellä käyttämällä yllä olevaa lauseketta, sen näytteitä on käsiteltävä ääretön määrä (sekä menneisyydessä että tulevaisuudessa), mikä on mahdotonta toteuttaa harjoitella. Tosielämässä interpolointi suoritetaan käyttämällä muita suodattimia , kun taas sen lauseke on seuraavanlainen: [6] [7]

missä on vastaavan palautussuodattimen impulssivaste . Tämän suodattimen tyyppi valitaan tehtävän mukaan. [kahdeksan]

Uusien signaalinäytteiden suora laskenta edellä olevia kaavoja käyttäen vaatii huomattavia laskentaresursseja , eikä se ole toivottavaa reaaliaikaisissa sovelluksissa . On olemassa tärkeitä uudelleennäytteenottotapauksia, joissa uusien näytteiden laskeminen on helpompaa: [9]

Tällaisilla rajoituksilla on kätevää käyttää digitaalisten suodattimien standarditoteutuksia uudelleennäytteenottoon.

Uudelleennäytteistys digitaalisilla suodattimilla

Suodattimen valinta uudelleennäytteenottoa varten

Toiminnon valinnan määrää kompromissi uudelleennäytteenoton laadun (eli sen läheisyyden ihannetta) ja tämän prosessin laskennallisen monimutkaisuuden välillä. Periaatteessa mitä tahansa alipäästösuodatinta halutulla rajataajuudella voidaan käyttää uudelleennäytteenottoon . FIR - suodattimia käytetään näihin sovelluksiin yleisemmin kuin IIR - suodattimia , koska niillä voidaan rakentaa FIR - suodattimia lineaarisella vaihevasteella . [kymmenen]

Uudelleennäytteenotossa käytetään useimmiten seuraavia digitaalisten suodattimien luokkia: [11]

1. Suodattimet, jotka on rakennettu sen kriteerin perusteella, että taajuusvaste on lähellä ihanteellisen alipäästösuodattimen taajuusvastetta :

1.1. Ikkunalliset sinc-suodattimet - niiden impulssivaste saadaan kertomalla ihanteellisen alipäästösuodattimen impulssivaste ikkunatoiminnolla , 1.2. Tasaaaltoiset Chebyshev-suodattimet .

2. Klassiset funktiointerpolointimenetelmät (käytetään usein kuville) [12] :

2.1. Lineaariset interpolaattorit , 2.2. Lagrangen interpolaattorit ( erikoistapaus - kuutiointerpolointi ).

3. CIC-suodattimet (kampasuodattimien ja integraattoreiden sarjat). [13] Tämä suodatinluokka ei käytä kertolaskuja laskennassa, mikä säästää laskentaresursseja.

Desimointi kokonaislukukertoimella

Signaalin näytetaajuuden pienentämisprosessia kutsutaan desimaatioksi. [1] Joskus tätä termiä käytetään vain pienentämään näytteenottotaajuutta kokonaislukumäärällä (jäljempänä ). [14] Digitaalisen signaalin desimointi kokonaislukukertoimella suoritetaan kahdessa vaiheessa: [10] [15]

  1. Signaalin digitaalinen suodatus sellaisten suurtaajuisten komponenttien poistamiseksi, jotka eivät täytä Kotelnikov-lauseen ehtoja uudelle näytteenottotaajuudelle;
  2. Ylimääräisten lukemien poistaminen (hylkääminen) (joka - . lukema tallennetaan).

Englanninkielisessä kirjallisuudessa toista näistä vaiheista kutsutaan joskus alasamplingiksi . [16] Arkielämässä tätä termiä voidaan käyttää synonyyminä termille "desimaatio".

Ensimmäinen vaihe on välttämätön aliasoinnin eliminoimiseksi , joka on luonteeltaan samanlainen kuin aliasointi analogisen signaalin alkunäytteenotossa . [15] Aliasointi on erityisen havaittavissa niillä signaalin alueilla, jotka sisältävät merkittäviä korkeataajuisia spektrikomponentteja. Joten artikkelin alussa siteeratuissa valokuvissa taivas ei käytännössä aliasoitunut, mutta vaikutus tulee havaittavaksi, jos kiinnität huomiota teräviin siirtymiin.

Desimointialgoritmin ohjelmistototeutuksessa "ylimääräisiä" lukemia ei poisteta, vaan niitä ei yksinkertaisesti lasketa. Tässä tapauksessa digitaalisuodattimeen tulevien puheluiden määrä vähenee kertoimella. Laitteistototeutuksessa voidaan saavuttaa säästöjä käyttämällä monivaihesuodattimia . [17]

Interpolointi kokonaislukukertoimella

Interpolointi on taajuuden lisäystä kokonaisluvulla tai murto-osalla [1] laskemalla välilukemat olemassa olevista lukemista. Ihanteellisen interpoloinnin avulla voit palauttaa signaaliarvot tarkasti välinäytteissä.

Standardi signaalin interpolointialgoritmi kokonaislukukertoimella on seuraava: [18]

  1. nollalukemien lisääminen laskettavien lukemien tilalle;
  2. suodatetaan signaali digitaalisella alipäästösuodattimella signaalin spektrikomponenttien poistamiseksi, jotka eivät selvästikään voineet olla alkuperäisessä signaalissa Kotelnikov-lauseen mukaan; suodattimen lähtö kerrotaan interpolointikertoimella normalisoimiseksi .

Englanninkielisessä kirjallisuudessa ensimmäistä näistä vaiheista kutsutaan joskus nimellä upsampling . [16] Tässä tapauksessa arkielämässä tätä termiä voidaan käyttää synonyymina termille "interpolointi".

Interpoloinnin ohjelmistototeutuksessa nollanäytettä ei oteta mukaan suodattimen lähtösignaalin laskemiseen, mikä mahdollistaa laskentaprosessin optimoinnin. Laitteistototeutuksessa monivaihesuodattimia voidaan käyttää resurssien säästämiseen. [19] [20]

Interpoloinnin ja desimoinnin yhdistelmä

Jos haluat muuttaa signaalin näytteenottotaajuutta kertoimella ( ja ovat positiivisia kokonaislukuja), voit ensin lisätä näytteenottotaajuutta kertoimella ja sitten pienentää sitä kertoimella. Signaalin suodattaminen riittää vain kerran - interpoloinnin ja desimoinnin välillä. [21]

Tämän menetelmän haittapuolena on tarve suodattaa signaali useaan kertaan suuremmalla näytteenottotaajuudella, mikä vaatii merkittäviä laskentaresursseja . Tässä tapauksessa vastaava taajuus voi olla monta kertaa suurempi kuin sekä alkuperäinen että lopullinen uudelleennäytteenottotaajuus, varsinkin jos ja ovat lähellä suuria lukuja. [22] Joten esimerkiksi kun näytteitellään audiosignaalia uudelleen 44 100 Hz :stä 48 000 Hz:iin tällä menetelmällä, näytteistystaajuutta on lisättävä kertoimella 160 - 7 056 000 Hz ja vähennettävä sitä sitten kertoimella 147 - 48 000 Hz. Näin ollen tässä esimerkissä laskelmat on suoritettava yli 7 MHz:n näytteenottotaajuudella.

Uudelleennäytteistys monivaihesuodattimilla

Monivaihesuodattimia käyttävä uudelleennäytteenottomenetelmä on samanlainen kuin edellinen sillä erolla, että yhden suurella näytteenottotaajuudella toimivan suodattimen sijaan käytetään useita matalalla taajuudella toimivia suodattimia. Tässä tapauksessa on mahdollista vähentää tarvittavien laskelmien määrää, koska jokaiselle näytteelle on tarpeen laskea vain yhden näistä suodattimista lähtösignaali. [20] [23]

Monivaiheinen suodatin on joukko pieniä rinnakkain toimivia suodattimia, joista jokainen käsittelee vain osan signaalinäytteistä (jos suodattimia on yhteensä, jokainen suodatin käsittelee vain joka -nnen näytteen).

Monivaihesuodattimia käytetään uudelleennäytteenottoon sekä kokonaisluku- että murtolukukertoimilla. [24]

Uudelleennäytteistys diskreetin Fourier-muunnoksen avulla

DFT - uudelleennäytteenottoa käytetään lisäämään näytteenottotaajuutta kokonaisluvulla tai murto-osalla. Algoritmi toimii vain signaalin äärellisillä segmenteillä . Olkoon näytteiden alkuperäinen määrä, näytteistettyjen signaalien näytteiden lukumäärä. Algoritmi sisältää seuraavat toiminnot: [25] [26]

1. Alkuperäisen signaalin DFT lasketaan (useimmiten nopealla Fourier-muunnosalgoritmilla ).

2. Tarvittava määrä nollakomponentteja lisätään spektrin keskelle :

2.1. jos outoa: 2.2. jos edes:

3. Käänteinen diskreetti Fourier-muunnos normalisoimalla lasketaan .

Kaikki DFT:hen perustuvat menetelmät on tarkoitettu ensisijaisesti jaksollisille diskreeteille signaaleille. Ei-jaksollisten signaalien käsittelemiseksi on tarpeen valita signaalisegmentit DFT :n laskemista varten siten, että niiden päät menevät päällekkäin. [27]

Sovellukset

Uudelleennäytteistysalgoritmien sekä laitteiston (perustuu erikoistuneisiin mikropiireihin [28] [29] tai FPGA :hen [30] ) että ohjelmistoihin (perustuu yleiskäyttöisiin prosessoreihin (katso alla) tai signaaliprosessoreihin [31] ) käytetään laajasti.

Uudelleennäytteenottoalgoritmin tietyn toteutuksen valinta on tulos muunnoksen laadun ja sen laskennallisen monimutkaisuuden välisestä kompromissista . Tärkein näihin ominaisuuksiin vaikuttava parametri on käytettävien digitaalisten suodattimien läheisyys ihanteellisiin suodattimiin. Paremmat suodattimet vaativat enemmän laskentaresursseja. [32]

Käytännössä uudelleennäytteenotto johtaa useimmissa tapauksissa signaalin tietojen katoamiseen seuraavista syistä:

Näin ollen, kun näytteenottotaajuutta lisätään ja sen jälkeen lasketaan alkuperäiseen arvoon, signaalin laatu menetetään (ellei korkea taajuus ole matalan kerrannainen).

Signaalien näytteistys ylinäytteistyksellä

Signaalien näytteistys näytteenottotaajuuden marginaalilla ( englanniksi  oversampling ) tarkoittaa signaalin näytteistystä taajuudella, joka on useita kertoja suurempi kuin Kotelnikovin taajuus , mitä seuraa desimointi. Tämä lähestymistapa mahdollistaa seuraavat edut [35] :

Samanlaista lähestymistapaa käytetään myös palautettaessa signaali sen näytteistä analogisen palautussuodattimen yksinkertaistamiseksi . [36]

Käsiteltäessä ääntä

Laitteet, jotka on suunniteltu toistamaan digitaalista ääntä, on yleensä suunniteltu hyvin määritellylle signaalin näytteenottotaajuudelle juuri ennen digitaali-analogiamuunnosa . Kaikki audiosignaalit, joilla on muita näytteenottotaajuuksia, on näytteistettävä uudelleen ennemmin tai myöhemmin [37] .

Mediasoitin , äänikortin ajuri tai äänikortti itse voi tehdä äänisignaalin näytteistämisen halutulle taajuudelle . Soitinohjelman käyttö tähän tarkoitukseen voi olla perusteltua, jos haluat välttää äänen laitteiston uudelleennäytteistyksen (tai ohjaimen ylinäytteistyksen) paremman laadun saavuttamiseksi (korkeammalla prosessorikuormalla ). Toistetun materiaalin ohjelmistonäytteistys taajuudelle, joka poikkeaa laitteen tukemasta taajuudesta, ei kuitenkaan ole järkevää ja johtaa vain signaalin laadun heikkenemiseen.

On olemassa avoimen lähdekoodin ohjelmistojen äänen uudelleensamplereita :

Uudelleennäytteistystä tukevat myös äänenmuokkausohjelmistot (kuten Adobe Audition , Sony Sound Forge tai Audacity ).

Kuvia käsiteltäessä

Koon muuttaminen on yksi yleisimmistä kuvankäsittelytoiminnoista. Lähes ihanteellinen ylinäytteenotto ei ole aina toivottavaa. Päinvastoin, suodattimien tulokset, joiden taajuusvaste on kaukana ihanteellisesta, voidaan nähdä visuaalisesti hyviksi. [42] Suodattimen valinta uudelleennäytteenottoa varten on seurausta artefaktien tyypin ja vakavuuden sekä muunnoksen laskennallisen monimutkaisuuden välisestä kompromissista (oleellista reaaliaikaisissa sovelluksissa ).

Tyypillisiä artefakteja kuvan resoluutiota muutettaessa: [12] :

Kuvan uudelleennäytteenottoa varten käytetään suurta määrää suodattimia, jotka voidaan luokitella seuraavasti [12] :

  1. Interpolaatiotyyppiset suodattimet , joilla on suhteellisen kapea impulssivaste. Näitä ovat erityisesti kolmiosuodatin, joka tuottaa bilineaarisen interpoloinnin , ja Lagrangen polynomi , jolla voidaan toteuttaa bikuutiointerpolointi . Tällaisten suodattimien käyttö mahdollistaa kuvan uudelleennäytteenoton melko nopeasti.
  2. Kellon muotoiset suodattimet , kuten Gauss-suodatin . Nämä suodattimet tekevät hyvää pikseloinnin, soittoäänen ja aliasoinnin työtä sekä suodattavat korkeataajuista kohinaa. Niiden haittana on havaittava kuvan hämärtyminen.
  3. Window sin suodattimet . Sinc-suodatin on ihanteellinen alipäästösuodatin. Kuten edellä mainittiin, sitä ei voida toteuttaa. Kuitenkin, jos sinc-suodattimen taajuusvaste kerrotaan ikkunafunktiolla , saadaan toteutettavissa oleva suodatin, jolla on hyvät spektriominaisuudet. Kun näitä suodattimia käytetään kuviin, on mahdollista säilyttää suhteellisen korkea resoluutio (jopa tarkkuutta suurennettaessa), mutta soittoääni voi olla hyvin havaittavissa. Yksi yleisimmin käytetyistä tämän tyyppisistä suodattimista on Lanczos-suodatin .

Alla olevat kuvat havainnollistavat yleisimmin käytettyjen kuvan koonmuutossuodattimien käyttöä. Kun lisäät kuvan kokoa ilman suodatinta, kuva on terävä, mutta pikselöity. Bilineaarisella interpoloinnilla pikselointi on vähemmän havaittavissa, mutta kuva on epäselvä. Gauss-suodatinta käytettäessä kuva on epäselvä, mutta pikselöitymistä ei juuri huomaa. Lanczos-suodatinta käytettäessä ei esiinny pikselointia, kuva on myös sumea ja soittoääntä on havaittavissa (näkyy valona kuvioiden ympärillä).

Käsiteltäessä radiosignaaleja

Digitaalisia signaaleja demoduloitaessa on toivottavaa, että signaalin näytteenottotaajuus on sen avainnustaajuuden monikerta (toisin sanoen, että jokaisella symbolilla on sama määrä signaalinäytteitä). ADC :n tulosignaalin näytteenottotaajuus on kuitenkin yleensä kiinteä, kun taas näppäinnopeus voi vaihdella. Ratkaisu on signaalin uudelleennäytteenotto. [43]

Katso myös

Muistiinpanot

  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. kaksikymmentä.
  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 Resize and Scaling Arkistoitu 5. toukokuuta 2009 Wayback Machinessa ImageMagick - verkkosivustolla .
  13. Kaskadoitujen integraattorikampasuodattimien ymmärtäminen (downlink) . Haettu 13. kesäkuuta 2009. Arkistoitu alkuperäisestä 26. syyskuuta 2007. 
  14. Lyons, 2006 , s. 382.
  15. 1 2 Crochiere, Rabiner, 1983 , s. 31.
  16. 1 2 Ylösnäytteistys ja interpolointi, alinäytteistys ja desimointi  (downlink) .
  17. Monivaiheinen desimaatiosuodatin Arkistoitu 8. huhtikuuta 2009 Wayback Machinessa .
  18. Lyons, 2006 , s. 387.
  19. Monivaiheiset interpolaatiosuodattimet Arkistoitu 21. huhtikuuta 2009 Wayback Machinessa .
  20. 1 2 Lyons, 2006 , s. 391.
  21. Lyons, 2006 , s. 389.
  22. Interpolointi, desimointi ja nopeuden muuttaminen kokonaislukujen mukaan Arkistoitu 9. huhtikuuta 2009 Wayback Machinessa .
  23. Crochiere, Rabiner, 1983 , s. 79.
  24. Monivaiheinen uudelleennäytteenotto rationaalisella kertoimella Arkistoitu 3. tammikuuta 2009 Wayback Machinessa .
  25. Romanyuk, 2005 , s. 223.
  26. Interpolointi FFT:llä  (downlink) .
  27. Romanyuk, 2005 , s. 287.
  28. GC5016 IC, Texas Instruments Arkistoitu 21. lokakuuta 2010 Wayback Machinessa .
  29. Analog Devices -yksikön näytetaajuusmuuntimet Arkistoitu 8. kesäkuuta 2009 Wayback Machinessa .
  30. Xilinx XAPP1113: Tehokkaiden digitaalisten ylös- ja alasmuuntimien suunnittelu . Haettu 13. kesäkuuta 2009. Arkistoitu alkuperäisestä 24. tammikuuta 2009.
  31. ADSP-21000 Family Applications Handbook (Vol 1.0) . Haettu 13. kesäkuuta 2009. Arkistoitu alkuperäisestä 25. tammikuuta 2011.
  32. Lyons, 2006 , s. 181.
  33. Crochiere, Rabiner, 1983 , s. 33.
  34. Rabiner, Gould 1978 , s. 327.
  35. Multirate DSP, osa 3: ADC oversampling Arkistoitu 8. helmikuuta 2010 Wayback Machinessa .
  36. Upsampled Digital Audio -teoria Arkistoitu 5. helmikuuta 2009 Wayback Machinessa .
  37. Täydellinen Foobar 2000 -opas . Haettu 13. kesäkuuta 2009. Arkistoitu alkuperäisestä 18. huhtikuuta 2009.
  38. Secret Rabbit Code (alias libsamplerate) . Haettu 28. toukokuuta 2009. Arkistoitu alkuperäisestä 30. huhtikuuta 2009.
  39. Shibatch Audio Tools . Haettu 28. toukokuuta 2009. Arkistoitu alkuperäisestä 11. toukokuuta 2008.
  40. SoX Resampler -kirjasto . Haettu 19. marraskuuta 2013. Arkistoitu alkuperäisestä 3. joulukuuta 2013.
  41. Viiden resamplerin vertailu foobar2000 + ASIO4ALL Resamplerille (päivitetty 18.11.2015) . Haettu 1. lokakuuta 2017. Arkistoitu alkuperäisestä 1. lokakuuta 2017.
  42. Don P. Mitchell, Arun N. Netravali. Rekonstruktiosuodattimet tietokonegrafiikassa  // Tietokonegrafiikka. - 1988. - T. 22 , nro 4 . - S. 221-228 . Arkistoitu alkuperäisestä 4. heinäkuuta 2009. .
  43. QAM-demodulaattorin rakentaminen  (linkki ei ole käytettävissä) .

Kirjallisuus

Linkit