Numeerisessa ja funktionaalisessa analyysissä diskreetillä aallokemuunnolla ( DWT) tarkoitetaan aallokemuunnoksia, joissa aallot esitetään diskreeteillä signaaleilla (näytteillä).
Ensimmäisen DWT:n suunnitteli unkarilainen matemaatikko Alfred Haar . Tulosignaalille, jota edustaa 2n luvun joukko, Haar-aaltomuunnos yksinkertaisesti ryhmittää elementit kahdella ja summalla ja eroaa niistä. Summien ryhmittely suoritetaan rekursiivisesti seuraavan hajotustason muodostamiseksi. Tuloksena on 2 n −1 eroa ja 1 kokonaissumma.
Tämä yksinkertainen DWT havainnollistaa aallokkojen yleisiä hyödyllisiä ominaisuuksia. Ensinnäkin muunnos voidaan tehdä operaatioissa. Toiseksi, se ei vain hajota signaalia joksikin taajuuskaistojen muodoksi (analysoimalla sitä eri mittakaavassa), vaan edustaa myös aikatasoa, eli tiettyjen taajuuksien esiintymishetkiä signaalissa. Yhdessä nämä ominaisuudet luonnehtivat nopeaa aallokemuunnosta, mahdollista vaihtoehtoa tavalliselle nopealle Fourier-muunnokselle . Hyväksyessään signaalin X satunnaisuuden ehto sen amplitudien Y spektritiheys lasketaan Yates-algoritmin perusteella: matriisi Y =matriisi(± X ), käänteinen matriisi X =matriisi(± Y ) on myös tosi .
Yleisimmän diskreettien aallokemuunnosten joukon muotoili belgialainen matemaatikko Ingrid Daubechies vuonna 1988. Se perustuu toistuvuussuhteiden käyttöön laskemaan yhä tarkempia näytteitä implisiittisesti annetusta emoaaltofunktiosta kaksinkertaistaen resoluution siirryttäessä seuraavalle tasolle (asteikko). Keskeisessä työssään Daubechies johtaa aallokkeiden perheen, joista ensimmäinen on Haar-aalto. Sittemmin kiinnostus tätä aluetta kohtaan on kasvanut nopeasti, mikä on johtanut lukuisten alkuperäisen Daubechies-aaltoperheen jälkeläisten syntymiseen.
Muita diskreettien aallokemuunnosten muotoja ovat ei-desimoitu aallokemuunnos (jossa signaalin desimointia ei suoriteta), Newland-muunnos (jossa ortonormaali aallokepohja johdetaan erityisesti konstruoiduista "tophat"-tyyppisistä suodattimista taajuusalueella). Pakettiaaltomuunnokset liittyvät myös DWT:hen. Toinen DWT:n muoto on monimutkainen aallokemuunnos.
Diskreetillä aallokemuunnoksella on monia sovelluksia luonnontieteissä, tekniikassa ja matematiikassa (mukaan lukien sovelletut). DWT:tä käytetään laajimmin signaalin koodauksessa, jossa muunnosominaisuuksia käytetään vähentämään erillisten signaalien esityksen redundanssia, usein ensimmäisenä vaiheena tietojen pakkaamisessa.
Signaalin DWP saadaan käyttämällä suodattimia. Ensin signaali johdetaan alipäästösuodattimen läpi impulssivasteella ja saadaan konvoluutio :
Samaan aikaan signaali hajotetaan käyttämällä ylipäästösuodatinta . Tuloksena on yksityiskohtakertoimet (ylipäästösuodattimen jälkeen) ja approksimaatiokertoimet (alipäästösuodattimen jälkeen). Nämä kaksi suodatinta liittyvät toisiinsa ja niitä kutsutaan kvadratuuripeilisuodattimiksi (QMF).
Koska puolet signaalin taajuusalueesta suodatettiin, niin Kotelnikov-lauseen mukaan signaalimäärät voidaan ohentaa 2 kertaa:
Tämä laajennus puolitti aikaresoluution signaalin desimoinnin vuoksi. Jokainen tuloksena oleva signaali edustaa kuitenkin puolta alkuperäisen signaalin taajuuskaistanleveydestä, joten taajuuden resoluutio kaksinkertaistuu.
Harvennusoperaattorin käyttö
yllä olevat summat voidaan kirjoittaa lyhyemmin:
Täyden konvoluution laskeminen ja sitä seuraava harventaminen on laskentaresurssien tuhlausta.
Nostokaavio on optimointi, joka perustuu näiden kahden laskelman vuorotteluun.
Tämä hajottaminen voidaan toistaa useita kertoja taajuuden resoluution lisäämiseksi edelleen desimoimalla kertoimia ali- ja ylipäästösuodatuksen jälkeen. Tämä voidaan esittää binääripuuna, jossa lehdet ja solmut vastaavat tiloja, joilla on eri aika-taajuuslokalisaatio. Tämä puu edustaa suodatinpankin (kampan) rakennetta .
Yllä olevan kaavion jokaisella tasolla signaali jaetaan mataliksi ja korkeiksi taajuuksiksi. Kaksinkertaisesta desimaatiosta johtuen signaalin pituuden on oltava :n kerrannainen , missä on hajotustasojen lukumäärä.
Esimerkiksi 32-näytteen signaalille, jonka taajuusalue on 0–3 tasoa, laajennus antaa 4 lähtöä eri mittakaavassa:
Taso | Taajuudet | Signaalin pituus |
---|---|---|
3 | … | neljä |
… | neljä | |
2 | … | kahdeksan |
yksi | … | 16 |
Esimerkki nopeasta yksiulotteisesta aallokemuunnoksesta, jossa käytetään Haar -aalloketta 2 N :n alkutiedon joukolle (suodatinvaiheiden lukumäärä on vastaavasti N) C#:ssa:
public static List < Double > DirectTransform ( List < Double > SourceList ) { if ( SourceList . Count == 1 ) return SourceList ; Lista < Double > RetVal = uusi Lista < Double >(); Lista < Double > TmpArr = uusi Lista < Double >(); for ( int j = 0 ; j < SourceList . Count - 1 ; j += 2 ) { RetVal . Lisää (( SourceList [ j ] - SourceList [ j + 1 ]) / 2.0 ); TmpArr . Lisää (( SourceList [ j ] + SourceList [ j + 1 ]) / 2.0 ); } RetVal . AddRange ( DirectTransform ( TmpArr )); paluu RetVal ; }Samoin esimerkki käänteisaaltomuunnoksesta:
public static List < Double > InverseTransform ( List < Double > SourceList ) { if ( SourceList . Count == 1 ) return SourceList ; Lista < Double > RetVal = uusi Lista < Double >(); Lista < Double > TmpPart = uusi Lista < Double >(); for ( int i = SourceList . Count / 2 ; i < SourceList . Count ; i ++ ) TmpPart . Lisää ( SourceList [ i ]); List < Double > SecondPart = InverseTransform ( TmpPart ); for ( int i = 0 ; i < SourceList . Count / 2 ; i ++ ) { RetVal . Lisää ( toinen osa [ i ] + lähdeluettelo [ i ]); RetVal . Lisää ( toinen osa [ i ] - lähdeluettelo [ i ]); } paluu RetVal ; }
Uutta JPEG-2000- standardia kehitettäessä kuvan pakkaamiseen valittiin aallokemuunnos. Aallokemuunnos itsessään ei pakkaa dataa, vaan mahdollistaa syötekuvan muuntamisen siten, että sen redundanssia voidaan vähentää ilman huomattavaa kuvanlaadun heikkenemistä.
Puristusmenetelmät _ | |||||||
---|---|---|---|---|---|---|---|
Teoria |
| ||||||
Häviötön |
| ||||||
Audio |
| ||||||
Kuvat |
| ||||||
Video |
|