keskiviikko 7. toukokuuta 2014

Audiokompressio ja muita sovelluksia

Tänään käsiteltiin ensimmäisellä tunnilla prujun viimeinen kappale: audiokompressio. Audiokompression ideana on tallentaa äänisignaali häviöllisesti poistaen bittejä sieltä missä kuulo ei niitä havaitse. Tässä auttaa kuulon ominaisuuksien tuntemus, joista olennaisin osa on kuulokäyrä. Kuulo havaitsee matalia ja korkeitä ääniä heikommin kuin keskiääniä. Tämän vuoksi epätarkemmin havaittavat taajuudet voidaan esittää pienemmällä bittimäärällä.

Tässä yhteydessä on hyvä muistaa että jokainen poistettu bitti lisää kvantisointikohinaa kuudella desibelillä. Kysymys voidaan siis asettaa muotoon: "montako kuuden desibelin palikkaa kuulokäyrän alle mahtuu kullakin taajuudella". Lisätilaa kuuden desibelin palikoille saadaan havaitsemalla, että äänet peittävät heikompia ääniä alleen. Tässä tapauksessa siis itse kompressoitava signaali peittää näitä heikompia kuuden desibelin palikoita.

Luennolla nähtiin myös esimerkki siitä miltä tulosmaski saattaisi näyttää yksittäisen piippauksen ympäristössä. Jotta kuulomallia voitaisiin käyttää, täytyy signaali jakaa taajuuskaistoihin. Tämä tehdään kaistanpäästösuotimilla, ja kaistoja mp3-standardissa on 32. Kukin kaista voidaan alinäytteistää kertoimella 32, jolloin dataa on saman verran kuin alun perin. Nämä kaistat voidaan sitten kvantisoida kuulomallin mukaisesti. Palautettaessa alkuperäistä näytteenottotaajuutta riittää tehdä ylinäytteistys (nollien lisääminen) kertoimella 32, jolloin havaitaan, että aiemmin laskostunut signaali pomppaakin oikealle paikalleen ja vieläpä oikein päin --- siinäkin tapauksessa, että se olisi sattunut laskostumaan peilikuvakseen.

Toisella tunnilla oli "vierailuluento", jossa kerroin itse kahdesta data-analyysikilpailusta. Ensimmäinen järjestettiin viimevuotisen MLSP-konferenssin (Machine Learning for Signal Processing) yhteydessä, ja tavoitteena oli tunnistaa audiodatasta mitkä lintulajit laulavat kussakin ääninäytteessä. Käyttämämme menetelmä (sekä kilpailijoiden vastaavat) kuvataan kilpailun foorumilla.

Parhaillaan osallistumme BioMag-konferenssin yhteydessä järjestettävään MEG-signaalien analyysikilpailuun. Koehenkilöille on näytetty kasvoja ja ei-kasvoja satunnaisessa järjestyksessä, ja osallistujien on kehitettävä algoritmi ennustamaan aivomittauksista kumpi tapaus on kyseessä. Tämänhetkinen toteutus on tehty Pythonilla ja sen sklearn-paketilla. Koodin esittelyn yhteydessä keskusteltiin mm. ennustimen hyvyyden päättelystä ristiinvalidoinnin avulla. Joukkueeseen mahtuu mukaan, joten jos kiinnostuit, ota yhteyttä.

Edit 11.5: Tunnin lopuksi lupasin lisätä linkin laitoksella tehtyihin kanditöihin. Työt löytyvät täältä. Tunnus on sgnkandi ja salasana motiivi.

perjantai 25. huhtikuuta 2014

Oppivat järjestelmät

Tänään jatkettiin hahmontunnistusjärjestelmien opiskelua.

Aluksi muisteltiin edellisen viikon asioita lyhyesti, ja vilkaistiin mm. Matlab-demoa, jolla voidaan piirtää hiirellä projektiosuora kaksiulotteisen datan koordinaatistoon. Kun kaksi pistettä suoralta on merkitty, Matlab-skripti projisoi datan tälle suoralle ja piirtää tuloksena saatavien yksiulotteisten näytteiden jakauman sekä luokitteluprosentin. Hyvillä projektiosuorilla data oli täydellisesti luokiteltavissa, mutta huonoilla joukot menivät päällekkäin projisoinnin jälkeen. Fisherin lineaarinen erottelija laskee tämän suoran automaattisesti niin että erottelu on optimaalinen.

Seuraavaksi tutustuttiin tukivektorikoneeseen, ja tarkasteltiin lähemmin kernelitemppua. Kernelitemppu kuvaa näytteet korkeampiulotteiseen avaruuteen, jossa ne toivottavasti ovat paremmin eroteltavissa. Itse kuvausta ei kuitenkaan tarvitse käytännössä tehdä, vaan riittää korvata menetelmässä jokainen vektorien välinen sisätulo <x,y> jollain muulla funktiolla k(x,y). Tiettyjen reunaehtojen vallitessa voidaan osoittaa tämän olevan sama asia kuin kuvaus tiettyyn korkeampiulotteiseen avaruuteen ennen luokittelua. Periaatteessa tämä kyseinen kuvaus voidaan laskeakin, mutta yleensä se ei sinänsä ole kovin kiinnostavaa. Sen sijaan voidaan kokeilla erilaisia kerneleitä, ja katsoa millä niistä luokittelutulos on paras. Yleisesti käytettyjä kerneleitä ovat mm. polynomikernelit k(x,y) = (<x,y>)^n ja k(x,y) = (1 + <x,y>)^n sekä ns. RBF-kerneli k(x,y) = exp(-||x-y||).


Tämän jälkeen paneuduttiin hermoverkkojen opetukseen, ja mainittiin  lyhyesti opetusalgoritmin perustuvan derivaattaan ja ketjusääntöön. Näiden avulla voidaan päätellä suunta, jossa luokitteluvirhe pienenee jyrkimmin, ja kyseiset kaavat löytyvät esim. täältä. Perus- backpropagationin lisäksi on olemassa kehittyneempiä ja nopeampia opetusalgoritmeja, ja esim. Matlabissa niitä on lähes parikymmentä. Olennaisin ero algoritmien välillä on niiden nopeudessa ja muistin tarpeessa.

keskiviikko 16. huhtikuuta 2014

Sovelluksia: Kuvankäsittely ja hahmontunnistus

Tänään paneuduttiin kappaleeseen 11 (ks. kurssimonisteen liite), joka tarkastelee kuvankäsittelyä. Alkuosa koostuu enimmäkseen yksiulotteisten lineaaristen järjestelmien yleistyksestä kahteen ulottuvuuteen. Fourier-muunnoksen yhteydessä todettiin, että kaksiulotteinen tapaus voidaan toteuttaa kahden yksiulotteisen FFT:n avulla, mikä mahdollistaa nopean laskennan.
Tämän jälkeen tarkasteltiin dekonvoluutiota, eli konvoluution käänteistä operaatiota. Monisteen esimerkin lisäksi esimerkkinä mainittiin Hubble-avaruusteleskoopin varhainen ongelma, joka aiheutti kuvaan jonkin verran epätarkkuutta. Ennen kuin kiertoradalle päästiin korjaamaan linssi kuntoon, täytyi linssin virhe mallintaa konvoluution avulla. Varhaisia kuvia myös korjattiin dekonvoloimalla virheelliset kuvat. Linssi kuitenkin lopulta vaihdettiin, koska dekonvoluutio ei voi tuottaa yhtä täydellistä tulosta kuin fyysinen korjaus. Tämä johtuu siitä, että PSF ei koskaan ole täysin oikea, vaan siinä on numeerista epätarkkuutta. Lisäksi informaatiota saattaa kadota konvoluution yhteydessä, jos taajuustason funktiossa H(n,m) on nollia kertoimina.

Kappaleessa 6 on myös esimerkki liike-epätarkkuuden korjauksesta. Tästä aiheesta on myös esimerkiksi taannoin ollut hieno julkaisu hieno julkaisu SIGGRAPH-konferenssissa.

Toisen tunnin loppupuolella aloitettiin kappaletta 12, joka käsittelee hahmontunnistusta. Hahmontunnistusjärjestelmän ideana on esittää järjestelmälle näytteitä ja opettaa se tuottamaan oikea ulostulo kun sille esitetään opetusjoukkoon kuulumaton uusi näyte. Yksi oppivien järjestelmien osajoukko ovat luokittelijat, jossa ulostulo kertoo luokan johon esitetty näyte kuuluu.

Suosittuja luokittelualgoritmeja ovat ainakin seuraavat (kasvavan monimutkaisuuden järjestyksessä):
Näistä kolme ensimmäistä käsiteltiin luennolla. KNN on ideana yksinkertaisin: kaikki opetusdata pidetään muistissa ja uuden näytteen tullessa etsitään k samanlaisinta näytettä, ja valitaan näistä yleisin luokka. Tyypillisesti k on vajaan kymmenen luokkaa, mutta voi olla suurempikin; esim. 30. Mitä suurempi k on, sitä sileämpi luokkarajasta tulee. Vaikka KNN:n luokittelutulos onkin melko hyvä, on sen ongelmana suuri muistin tarve sekä laskennallinen kompleksisuus. Koko opetusjoukko täytyy nimittäin säilyttää muistissa, josta etsitään k lähintä naapuria jokaisen luokittelun yhteydessä. Sekä tilantarve että etsinnän vaatima aika voivat olla ongelmallisia jos opetusjoukossa on esim. 100000 alkiota.

Luentomonisteen seuraava menetelmä on Fisherin diskriminantti eli LDA. Tässä vilkaistiin mm. Matlab-demoa, jolla voidaan piirtää hiirellä projektiosuora kaksiulotteisen datan koordinaatistoon. Kun kaksi pistettä suoralta on merkitty, Matlab-skripti projisoi datan tälle suoralle ja piirtää tuloksena saatavien yksiulotteisten näytteiden jakauman sekä luokitteluprosentin. Hyvillä projektiosuorilla data oli täydellisesti luokiteltavissa, mutta huonoilla joukot menivät päällekkäin projisoinnin jälkeen. Fisherin lineaarinen erottelija laskee tämän suoran automaattisesti niin että erottelu on optimaalinen.

keskiviikko 9. huhtikuuta 2014

Signaaliprosessorit ja GPU

Tämänpäiväisellä luennolla käsiteltiin kappale signaaliprosessoreista. Tärkeimmät syyt niiden käyttöön ovat yksinkertaisuus, halvempi hinta sekä pienempi virrankulutus. Kuitenkin niistä saa riittävästi tehoa signaalinkäsittelyn tarpeisiin, koska alan tarvitsemat operaatiot ovat nopeita (kertolasku, yhteenlasku). Esimerkiksi FIR-suodatuksen tai kompressiossa käytettävän kaksiulotteisen DCT:n tarvitsemat kertolaskut ja yhteenlaskut voidaan pistetuloina laskea rinnakkain ns. MAC-operaation avulla. Vastaavia operaatioita on nykyisin myös tavallisissa prosessoreissa, ja ensimmäinen tällainen laajennus oli Intelin MMX-käskykanta vuodelta 1997.

Ensi viikon viikkoharjoituksissa koodataan FIR-suodin luokan TC303 signaaliprosessoreille. Olennaisimmat vaiheet olivat:
  1. Suodin suunniteltiin Matlabin fir1-rutiinilla.
  2. Kertoimet kopioitiin C-koodiin.
  3. C-kieliseen pohjaan kirjoitettiin for-silmukka, jossa kertoimet käydään läpi.
  4. Ulostulonäyte kirjoitetaan D/A-muuntimelle.
Vaiheessa 3 on kiinnitettävä huomiota circular buffering-tekniikkaan, jotta viitataan oikeisiin aiemmin sisään tulleisiin alkioihin.
Toisen tunnin loppupuolella luotiin katsaus GPU-laskentaan ja sen sovelluksiin koneoppimisessa. Esimerkkinä oli 1.2 miljoonan kuvan luokittelu tuhanteen luokkaan ns. konvoluutioverkolla. Tämä voidaan toteuttaa omalla koneellakin käyttäen pylearn2-pakettia.

keskiviikko 2. huhtikuuta 2014

Näytteenottotaajuuden muuntelu D/A-muunnoksessa

Tänään käytiin kappale 8 loppuun, tarkasteltiin interpoloinnin sovelluksia D/A-muunnoksen apuna. Aloitimme menetelmällä, jota käytettiin jo ensimmäisissä CD-soittimissa 1980-luvun alussa. Menetelmän ideana on tehostaa nollannen asteen pitopiirin toimintaa nostamalla näytteenottotaajuus korkeammaksi ennen pitopiiriä. Tämä näkyy aikatasossa porraskuvion hienontumisena ja tätä kautta pitopiirin virheen pienenemisenä jä siirtymisenä korkeammille taajuuksille. Taajuustasossa yli 22,05 hertsin taajuuksille tulee vastaavia heijastuksia kuin interpoloinnin yhteydessäkin. Erona on, että nyt heijastumat vaimenevat sitä enemmän mitä korkeammalle mennään. Digitaalinen interpolointi helpottaa näiden heijastusten poistamista: ilman digitaalista interpolointia tarvittavan analogisen suotimen siirtymäkaistan leveys olisi 2,05 kHz (20kHz...22.05kHz), kun esim. nelinkertaisella interpoloinnilla se saadaan yli 130 kHz:n levyiseksi (väli 20kHz...154,35 kHz).

Toinen, nykyisin yleisempi ratkaisu yksinkertaistaa analogiapuolta edelleen kvantisoimalla D/A-muunnettavan signaalin 1-bittiseksi. Ratkaisusta käytetään nimeä kohinanmuokkaus, englanniksi noise shaping tai sigma delta modulation. Kvantisointi onnistuu äänenlaatua heikentämättä, kun nostetaan näytteenottotaajuus ensin riittävän suureksi. Tällöin näytteiden suuri määrä kompensoi niiden heikkoa tarkkuutta. Pelkkä ylinäytteistys ei kuitenkaan vielä riitä: ilman muita temppuja näytteenottotaajuus pitäisi nostaa jopa miljardikertaiseksi, mikä ei käytännössä ole mahdollista. Siksi täytyy ottaa käyttöön alla olevan lohkokaavion mukainen takaisinkytkentä, joka aiheuttaa kvantisointivirheen siirtymisen korkeammille taajuuksille.


Korkeilla taajuuksilla kohina ei haittaa, koska se voidaan erottaa hyötysignaalista analogisella alipäästösuodatuksella D/A-muunnoksen jälkeen. Jäljelle jäävän kvantisointikohinan määrä voidaan laskea, ja havaitaan että suuruusluokassa 1500 oleva muunnoskerroin riittää (miljardien sijaan). Ratkaisua voidaan edelleen tehostaa tarkastelemalla korkeampiasteisia kohinanmuokkaimia, jotka siirtävät vieläkin tehokkaammin kvantisointikohinaa korkeammalle.

Jotkin audioformaatit kuten Super Audio CD tallentavat äänen suoraan yksibittisenä. Tästä on etuna se, että kohinanmuokkaus täytyy tehdä vain kerran äänitysstudiossa eikä jokaisessa kuluttajalaitteessa erikseen.

keskiviikko 26. maaliskuuta 2014

Näytteenottotaajuuden muuntelu

Tänään luennon aluksi vilkaistiin välikoetta sekä sen tuloksia.

Tämän jälkeen käsiteltiin alku kappaleesta "näytteenottotaajuuden muuntelu". Kappale tarkastelee menetelmiä, joilla voidaan muuntaa näytteenottotaajuus näytteistämisen jälkeen toiseksi. Perusoperaatiot ovat desimointi ja interpolointi, jotka toimivat kokonaislukukertoimilla. Näitä yhdistelemällä saadaan kaikki rationaalikertoimet. Molemmat operaatiot tarvitsevat alipäästösuodattimen, joka on yleensä FIR, ja suunnitellaan normaaleilla menetelmillä. Suotimen siirtymäkaistasta todettiin, että se laitetaan aina rajataajuuden alapuolelle. Näin signaaliin tulee vähemmän virhettä kuin jos laskostumista pääsisi tapahtumaan.

Desimoinnissa tapahtuva näytteenottotaajuuden pieneminen toteutetaan yksinkertaisesti jättämällä näytteitä pois tasaisin väliajoin. Esimerkiksi kertoimella kolme jätetään vain joka kolmas näyte jäljelle. Tämä kuitenkin aiheuttaa laskostumista, koska signaalin sisältämät taajuudet pysyvät samoina mutta näytteenottotaajuus pienenee. Tämä saadaan luonnollisesti estettyä suodattamalla signaali ennen alinäytteistämistä sopivalla alipäästösuotimella.

Interpolointi puolestaan koostuu nollien lisäämisestä sekä tämän operaation tuottamien roskien poistamisesta. Nollien lisääminenhän tuottaa kopioita ja peilikuvia alkuperäisestä spektristä, jotka voidaan myös poistaa kätevästi alipäästösuodatuksella.

Kappaleessa luodaan myös katsaus interpoloinnin ja desimoinnin yhdistämiseen, jolloin päästään yksinkertaisempaan rakenteeseen huomaamalla kokonaisuudessa olevan kaksi suodatinta peräkkäin, jotka molemmat poistavat tietyn kaistan ylätaajuuksilta. Näin ollen vain toinen niistä on tarpeellinen. Piirtämällä kuva näiden suodinten amplitudivasteista voidaan päätellä kumpi on tarpeeton (aina se, jota vastaava muunnoskerroin on isompi).

keskiviikko 19. maaliskuuta 2014

Äärellinen sanapituus

Tänään luento aloitettiin pikaisella ekskursiolla erääseen kuvankäsittelyongelmaan. Esimerkki perustui muutama vuosi sitten toteutettuun tutkimushankkeeseen, jossa tavoitteena oli löytää pienhiukkasia SEM-mikroskoopin kuvista. Demottu menetelmä korosti ensin mielenkiintoiset hiukkaset muotoon perustuvalla morfologisella tophat-muunnoksella, jonka jälkeen hiukkaset etsittiin Otsun kynnystyksellä. Löydetyistä kohteista karsittiin liian pienet pois Matlabin bwareaopen-funktiolla, ja lopuksi laskettiin jäljelle jääneiden kohteiden kokojakauma labeling-algoritmilla.

Kuva-analyysidemon jälkeen palattiin prujun aiheeseen. Muistelimme äärellisen sananpituuden vaikutusta A/D-muunnoksessa, ja osoitettiin että kvantisointikohinan odotusarvo on nolla ja varianssin yhtä kuin 2^(-2b) / 12.

Yllä olevaa kaavaa voidaan edelleen jalostaa signaali-kohinasuhteen käsitteeksi (SNR), joka kertoo signaalin tehon suhteessa kohinan tehoon. Kun kaavaa pyöriteltiin, havaittiin jokaisen ylimääräisen bitin (per näyte) nostavan SNR:ää kuudella bitillä.

Lopuksi johdettiin kaava varianssille suodatuksen jälkeen ja sekä tutkittiin suotimen kertoimien pyöristämisen vaikutusta. Tämähän täytyy tehdä aina kun suodin toteutetaan huonomman tarkkuuden alustalla kuin Matlab (esim. tällä 17-bitin DSP:llä).

Toisen tunnin lopuksi käsiteltiin alku kappaleesta "näytteenottotaajuuden muuntelu". Kappale tarkastelee menetelmiä, joilla voidaan muuntaa näytteenottotaajuus näytteistämisen jälkeen toiseksi. Perusoperaatiot ovat desimointi ja interpolointi, jotka toimivat kokonaislukukertoimilla. Näitä yhdistelemällä saadaan kaikki rationaalikertoimet. Molemmat operaatiot tarvitsevat alipäästösuodattimen, joka on yleensä FIR, ja suunnitellaan normaaleilla menetelmillä.

keskiviikko 12. maaliskuuta 2014

IIR-suodinten suunnittelu ja kvantisointi

Tänään luennon ensimmäisellä tunnilla tutkittiin Matlabin valmiita IIR-suodattimen suunnittelumenetelmiä.

Tässä yhteydessä muisteltiin ns. pole-zero-placement -suunnittelumenetelmää, jossa hiirellä sijoiteltiin napoja ja nollia yksikköympyrälle ja laskettiin näitä vastaava suodin. Alla olevassa kuvassa on eräs näin saatu napanollakuvio, jossa tavoitellaan alipäästösuodinta. Tätä vastaava amplitudivaste on seuraavassa kuvassa, jossa selvästi erottuu hyppäys ylös- tai alaspäin jokaisen lähellä kehää olevan navan tai nollan kohdalla. Alimmassa kuvassa on vielä esitetty siirtofunktion itseisarvo |H(z)|, josta saadaan keskimmäinen amplitudivasteen |H(exp(iw))| kuvaaja sijoittamalla exp(iw) lausekkeessa z:n tilalle. Edellä kuvattu menetelmä ei luonnollisestikaan ole kovin tarkka. 

Toisen tunnin aihe olikin täsmällisempi IIR-suodinten suunnittelu, joka käytiin melko yleisellä Matlab-komentojen osaamisen tasolla. Kappaleen ydin on koottu monisteen taulukkoon, jossa suodintyyppejä vertaillaan amplitudivasteen ominaisuuksien ja kertoimien määrän suhteen. Kertoimia tarvitaan eri menetelmillä 29+28, 13+12 ja 8+7 kappaletta. Suurin määrä tulee Butterworth-suotimella ja pienin elliptisellä suotimella. Kahden Chebyshev-suotimen kerroinmäärä on näiden kahden ääripään välissä. Vertailun vuoksi FIR-suotimen kertoimien määrä vastaavilla vaatimuksilla olisi N = [5.5/0.035] = 159 käytettäessä Blackman-ikkunaa.
 
Muita luennolla esiin tulleita seikkoja olivat mm.
  • Matlabin kerroinvektorit a ja b eivät ole suoraan käytettävissä ulostulon y(n) laskennassa, vaan takaisinkytkentäkertoimien (siis esim. termin y(n-1) kertoimen) merkki täytyy vaihtaa vastakkaiseksi.
  • Elliptisellä suotimella on aina vähemmän kertoimia kuin muilla. Lisäksi tasavärähtely-ominaisuus on yleensä hyvä asia.
IIR-suotimen etuna on siis pienempi kertoimien tarve. Haittapuolina mahdollinen epästabiilisuus sekä numeeriset ongelmat toteutuksessa. Tästä esimerkkinä mainittiin kurssin SGN-16006 signaaliprosessorityö, jossa täytyy toteuttaa IIR-suodin. Käytännössä yli toisen asteen IIR-suodinta ei voi toteuttaa numeeristen ongelmien vuoksi. Sen sijaan suodin täytyy jakaa peräkkäisiin toisen asteen lohkoihin esim. Matlabin TF2SOS-funktiolla.

Toisella tunnilla käsiteltiin äärellisen sananpituuden vaikutuksia. Meidän tarkastelussamme nämä ilmenevät A/D-muunnoksen yhteydessä sekä suodatettaessa äärellisellä laskentatarkkuudella. Pääpaino on ensimmäisessä tyypissä. Luennolla käsiteltiin näytteistyksessä käytettävät kvantisointitasot: esimerkiksi (1+7) bitin esityksessä käytettävissä ovat seuraavat 256 tasoa: -128/128, -127/128, ..., 0, ..., 126/128, 127/128. 
 
Pyöristettäessä lähimpään lukuun syntyvä kvantisointivirhe on aina välillä -1/256...1/256. Yleisesti pyöristys (1+b) bittiin aiheuttaa enintään virheen 2^(-b) / 2 suuntaan tai toiseen. Vasemmalla olevassa kuvassa on esimerkkitapaus jossa "seiska" kvantisoidaan 1+9 bittiin.

 
Seuraavaksi tätä yksinkertaista virhemallia käytettiin johdettaessa arvio virheen varianssille, joka on suoraan verrannollinen syntyvän kvantisointivirheen tehoon. Tätä kautta määritellään SNR, eli signaali-kohinasuhde, eli häiriöetäisyys. Tämä suure kertoo jotain äänenlaadusta, ja saatavia tuloksia tullaan tarvitsemaan kappaleessa 6, kun päätellään montako bittiä signaalista uskalletaan poistaa kompressiossa ilman äänenlaadun havaittavaa heikkenemistä.

Jos ehtojen oletetaan olevan voimassa, voidaan osoittaa kohinan odotusarvon olevan nolla ja varianssin yhtä kuin 2^(-2b) / 12.
 

keskiviikko 26. helmikuuta 2014

FIR-Suotimen suunnittelu ikkunamenetelmällä

Tänään opiskeltiin FIR-suotimen suunnittelua (kappale 5). Ruokahalun kasvattamiseksi vilkaistiin kuitenkin ensin radiotaajuuksisten signaalien käsittelyä ohjelmistollistesti. Niin sanottu ohjelmistoradio (software defined radio) tekee käyttää digitaalista signaalinkäsittelyä korvaamaan perinteisempiä elektronisia komponentteja tiedonsiirrossa. Ohjelmistoradio avaa uudenlaisia mahdollisuuksia mm. taajuuskaistan tehokkaammaksi hyödyntämiseksi, ja sitä tutkitaankin aktiivisesti mm. TTY:n tietotekniikan laitoksella.

Suodinsuunnittelun tavoitteena on saada amplitudivaste päästökaistalla ykköseksi ja estokaistalla nollaksi. Käytännössä tämä ei ole mahdollista, vaan suotimelle täytyy antaa hieman toleranssia ja sallia tietty määrä värähtelyä molemmilla kaistoilla. Lisäksi kaistojen väliin täytyy sallia "don't care" -alue, jossa amplitudivaste saa olla mitä vain.

Prujussa ratkaistaan mikä impulssivaste toteuttaisi ideaalisen amplitudivasteen (arvot vain nollaa tai ykköstä). Osoittautuu että impulssivasteen muoto on tuttu sinc-funktio, mutta sen pituus on ääretön. Tämän vuoksi suotimesta ei saataisi ainuttakaan vastearvoa koskaan, vaan laskentaa tarvittaisiin äärettömän paljon.

Tästä ongelmasta päästään katkaisemalla impulssivaste, mutta tämä luonnollisesti vaikuttaa amplitudivasteeseen. Oikealla olevan kuvan mukaisen demoodettiin, että suoralla katkaisulla ei estokaistan värähtelyä saada millään alle n. 21 desibelin, ja päästökaistallakin suurin heitto on luokkaa 0.7 dB. Ratkaisu tähän on käyttää ikkunointia, eli kertoa katkaistu impulssivaste jollain ikkunafunktiolla. Näin voidaan päästä parempiin vaimennusominaisuuksiin.

Ideaalisen suotimen impulssivasteen pituus on ääretön, eikä sitä voi käytännössä toteuttaa. Näin ollen impulssivaste on katkaistava, mistä seuraa vääristymä amplitudivasteeseen. Matlab-testeillä havaittiin, että tätä ei voi kompensoida esim. kertoimia lisäämällä, vaan on käytettävä ikkunaa, joka pehmentää katkaisun vaikutusta. Ikkunoita on lueteltu esim. sivun 84 taulukossa, ja mitä paremmat vaimennusominaisuudet niillä on, sitä leveämpi siirtymakaistasta tulee. Onneksi tätä voidaan kuitenkin kompensoida kertoimia lisäämällä. Ikkunoiden ominaisuuksi havainnollistettiin oheisen kuvan mukaisella demolla.

Luennon lopuksi käytiin taululla esimerkki ikkunamenetelmän käytöstä vuoden 2011 toukokuun tentissä.

keskiviikko 19. helmikuuta 2014

Suodinsuunnittelua

Tänään käsiteltiin kappale 4 loppuun ja aloitettiin kappaletta 5.

Kappaleen 4 kaksi viimeistä lukua käytiin läpi ratkaisemalla monisteen harjoitustehtävä 4.9. Tässä tehtävässä on annettu suotimen siirtofunktio H(z), josta täytyy ratkaista differenssiyhtälö. Ratkaisu on tässä tapauksessa

y(n) = 4x(n) + 4x(n-1) + 4x(n-2) - 4y(n-2)

Lisäksi piirrettiin kyseisen suotimen napa-nollakuvio, josta kävi ilmi ettei suodin ollut stabiili (miksi?).

Yleisöstä tuli kysymys, pitääkö napojen olla yksikköympyrän sisällä vai saako olla kehällä. Vastaus on että stabiilin suotimen navat eivät saa olla kehälläkään. Jos napoja on kehällä, sanotaan suodinta marginaalisesti stabiiliksi, mikä tarkoittaa että vain yksittäisillä taajuuksilla on ääretön vahvistus. Jos siis signaalista on ensin poistettu vaaralliset taajuudet, toimii suodin tällöin stabiilisti.

Esimerkki marginaalisesti stabiilin suotimen hyötykäytöstä löytyy esim. SGN-työkurssin signaaliprosessorityön neljännen tehtävän Goertzel-algoritmista.

Toisella tunnilla tutustuttiin suotimen suunnitteluun. Yksinkertainen tapa suunnitella taajuusselektiivisiä suotimia on sijoitella napoja ja nollia sopivasti yksikköympyrälle. Menetelmästä käytetään nimeä pole zero placement method, jonka ongelmana on epätarkkuus. Esimerkkinä oli demo, jossa napoja ja nollia sijoiteltiin hiirellä yksikköympyrälle.

Toisella tunnilla tarkasteltiin suotimen suunnittelua annetuista kriteereistä lähtien. Suunnittelukriteerit ovat kahtalaiset: suotimen taajuusvasteen määräämiseksi pitää tietää millainen vaihevaste halutaan ja millainen amplitudivaste halutaan.

Vaihevasteen osalta vaaditaan että kaikkien taajuuksien tulee viivästyä yhtä paljon. Tämä toteutuu jos vaihevaste on lineaarinen. Yksinkertaisimmissa tapauksissa vaihevasteen lauseke voi olla siis esimerkiksi muotoa -2w, joka taatusti on lineaarinen. Matlabissa tällainen kuvaaja saadaan esim. komennoilla:

>> [H,W] = freqz([1, 1, 1]);
>> plot(angle(H));
>> grid on

Freqz-funktiosta saa siis ulos taajuusvastefunktion arvoja vektorissa H. Vektorissa on lueteltu taajuusvasteen kompleksiset lukuarvon 512:ssa pisteessä taajuusakselilla. 

Vaihevasteen derivaatasta käyteään nimeä ryhmäviive, ja se ilmaisee suoraan eri taajuuksille tulevan viiveen näytteinä (miinusmerkkisenä). Lopuksi todettiin, että vaihevaste on aina lineaarinen, jos impulssivasteen termit ovat symmetrisesti keskipisteen suhteen.
Amplitudivaste täytyisi saada päästökaistalla ykköseksi ja estokaistalla nollaksi. Käytännössä tämä ei ole mahdollista, vaan suotimelle täytyy antaa hieman toleranssia ja sallia tietty määrä värähtelyä molemmilla kaistoilla. Lisäksi kaistojen väliin täytyy sallia "don't care" -alue, jossa amplitudivaste saa olla mitä vain.

Prujussa ratkaistaan mikä impulssivaste toteuttaisi ideaalisen amplitudivasteen (arvot vain nollaa tai ykköstä). Osoittautuu että impulssivasteen muoto on tuttu sinc-funktio, mutta sen pituus on ääretön. Tämän vuoksi suotimesta ei saataisi ainuttakaan vastearvoa koskaan, vaan laskentaa tarvittaisiin äärettömän paljon.

keskiviikko 12. helmikuuta 2014

Taajuusvaste, siirtofunktio ja desibeli

Tänään käsiteltiin kappaletta 4. Tämän ja viime viikon tavoite oli siis oppia analysoimaan annetun suotimen toiminta. Ensi viikolla käännetään ongelma toisin päin ja siirrytään suotimen synteesiin: kuinka suunnitellaan suotimen impulssivaste niin että se täyttää annetut taajuusvaatimukset.

Kaikki lähtee liikkeelle konvoluution ja z-muunnoksen yhteydestä: konvoluutio muuttuu kertolaskuksi z-muunnoksessa. Jos siis suodatus noudattaa yhtälöä

y(n) = h(n) * x(n),

on sama yhtälö voimassa myös z-tasossa:

Y(z) = H(zX(z)

Tällöin impulssivasteen h(n) muunnoksen tuloksesta käytetään nimeä siirtofunktio. Siirtofunktio on rationaalifunktio, jonka osoittajassa ja nimittäjässä on polynomi. Kun tämä lauseke tiedetään, saadaan Fourier-muunnos sijoittamalla z = exp(iw), jolloin herätteen ja vasteen välinen suhde muuttuu muotoon: 
Y(exp(iw)) = H(exp(iw)X(exp(iw))
(eli vasteen taajuudet = taajuusvaste * herätteen taajuudet).
Lauseke H(exp(iw)) on siis nimeltään taajuusvaste, ja siihen menee sisään reaaliluku w (taajuus josta ollaan kiinnostuneita), ja ulos tulee kompleksiluku. Tämän kompleksiluvun itseisarvo kertoo kuinka suuri vahvistus suotimella on kyseisellä taajuudella.

Suotimen analyysi käytiin läpi monisteen kaavan (4.3) suotimella. Ensin siitä selvitetään impulssivaste, sitten siirtofunktio ja lopuksi taajuusvaste. Taajuusvaste on kompleksifunktio, joten sitä ei voida sellaisenaan piirtää 2-ulotteiseen koordinaatistoon. Näin ollen piirretään kaksi kuvaajaa: funktion itseisarvon kuvaaja sekä sen vaihekulman kuvaaja. Näistä edellinen kertoo kuinka paljon eri taajuuksien amplitudit muuttuvat suodatuksessa ja jälkimmäinen paljonko ne viivästyvät suodatuksessa. Amplitudivaste on näistä mielenkiintoisempi, koska sen avulla taajuuksia saadaan esim. poistettua yksinkertaisesti huolehtimalla että amplitudivaste ko. taajuudella on nolla.Vaihevaste puolestaan kertoo paljonko eri taajuudet viivästyvät suodatettaessa.

Amplitudivastetta tarkasteltaessa on kätevämpi käyttää desibeliasteikkoa, joka on logaritminen. Logaritmi tekee kertolaskusta yhteenlaskua, ja korostaa lähellä nollaa olevia eroja, jotka molemmat ovat meille käteviä ominaisuuksia.

keskiviikko 5. helmikuuta 2014

Fourierista linnunlaulun kautta Z-muunnokseen

Tänään käsiteltiin kappale 3 loppuun sekä aloitettiin kappaletta 4. Kappaleen 3 aiheita olivat FFT, kaksi jatkuva-aikaista Fourier-muunnosta sekä diskreettiaikainen Fourier-muunnos (DTFT). Jatkuvia muunnoksia tarvitaan mm. tietoliikennesignaalien taajuusanalyysissä selvitettäessä kuinka laajalle taajuusalueelle jokin signaali levittäytyy.

Fourier-muunnosten tarkastelun jälkeen tehtiin lyhyt ekskursio yleisempien hajotelmien puolelle. Fourier-analyysissähän kysytään kuinka paljon kutakin sinisignaalia on mukana tarkasteltavassa signaalissa. Yleisempi muoto on käyttää jotain muuta signaalikokoelmaa, tai oppia tämä kokoelma datasta. Klassiset menetelmät ovat pääkomponenttianalyysi (PCA) tai Helsingissä kehitetty riippumattomien komponenttien analyysi (ICA), joissa signaalit esitetään sellaisten rakennuspalikoiden avulla että suuria kertoimia tulee mahdollisimman vähän.

Käytimme erästä tällaista hajotelmaa osallistuessamme Kaggle-alustalla organisoituun linnunlauluntunnistuskilpailuun. Alkuvaiheessa käytimme mm. Fourier-muunnosta, mutta pelkkä taajuuksien analyysi ei tuottanut tulosta. Tämän vuoksi päätimme oppia "sanakirjan" suoraan datasta, ja toivoimme että sanakirjaan päätyisi tyypillisiä eri lintulajien viserryksiä. Näiden viserrysten lukumäärä toimi sitten indikaattorina siitä mitä lintulajeja äänityksessä oli.

Toisen tunnin loppupuolella tarkasteltiin Z-muunnosta ja sen tärkeimpiä ominaisuuksia. Z-muunnoksen avulla voidaan selvittää mm. suotimen stabiilisuus: suodin on stabiili jos kaikki siirtofunktion navat ovat yksikköympyrän sisäpuolella.

keskiviikko 29. tammikuuta 2014

DFT:n sovelluksia ja FFT

Tänään tarkasteltiin Fourier muunnoksen ominaisuuksia, sovelluksia sekä nopeaa toteutusta.

Luennon aluksi esiteltiin alkeellinen menetelmä puheen tunnistukseen. Kirjan Elements of statistical learning kappaleessa 5.2.3 opetetaan tietokone erottelemaan kaksi vokaalia niiden Fourier-muunnosten perusteella. Menetelmä on nimeltään logistinen regressio, joka monimutkaisista kaavoista huolimatta on varsin yksinkertainen toteuttaa: menetelmä etsii kertoimet kullekin Fourier-muunnoksen taajuudelle, ja laskee tulokset yhteen. Jos luku on positiivinen, tulkitaan äänne ä-kirjaimeksi, muutoin a-kirjaimeksi. 



Menetelmää demottiin Matlab-toteutuksella, jossa luokittelija opetettiin erottamaan S-äänne muista äänteistä. Menetelmä toimi hyvin miesäänellä, mutta vain kohtalaisesti naisäänellä.

Esimerkki kuvaa hyvin tämän päivän signaalinkäsittelyalgoritmia: perusmenetelmiä (Fourier-muunnos, konvoluutio, jne.) käytetään piirregeneraattoreina, jotka tuottavat hieman parempaa raakadataa kuin suora mittaussignaali (esim. taajuustietoa eikä raakaa mittausdataa). Laskettujen piirteiden perusteella sitten nostetaan tiedon abstraktiotasoa edelleen. Esimerkiksi äänteen tunnistuksessa hierarkia on esimerkiksi seuraava:

48000 aikatason näytettä -> 256 taajuustason kerrointa -> 1 bitti, joka kertoo kumpi äänne on kyseessä

Tämän jälkeen siirryttiin tarkastelemaan Fourier-muunnoksen ominaisuuksia. Ominaisuuksista tutustuttiin lähemmin siirtoon ajassa (esim. laske signaalin x(n+20) muunnos, kun tiedetään x(n):n muunnos) sekä konvoluution muunnokseen (DFT muuntaa konvoluution kertolaskuksi, eli x(n)*y(n) -> X(n)Y(n)). Tämä on perustana mm. dekonvoluutiolle joka on konvoluutiolle käänteinen operaatio. Menetelmää käytettiin mm. Hubble-teleskoopin alkuaikoina, jolloin yhdessä peilissä olleen hiontavirheen vuoksikuvat olivat sumuisia. Kuvantamisprosessia voidaan nimittäin mallintaa (kaksilulotteisella) konvoluutiolla

y(n,m) = h(n,m) * x(n,m),

missä x on todellinen näkymä, y on havaittu sumuinen kuva, ja h on linssin impulssivaste (nk. point spread function; PSF). Yhtälössä y ja h ovat tunnettuja, ja tehtävänä on ratkaista x. Ratkaisu löytyy taajuustasossa, koska

Y(n,m) = H(n,mX(n,m),

joten (Matlabin syntaksilla ilmaistuna):

x(n,m) = ifft (Y(n,m) ./ H(n,m)).

Dekonvoluutiosta on hyötyä yleisemminkin lineaarisen kanavan aiheuttaman häiriön poistossa. Jos tiedetään signaalin x kulkeneen kanavan h läpi, voidaan vastaanotetusta mittaustuloksesta ypäätellä x, jos meillä on joku käsitys kanavasta h. Esimerkkinä tästä mainittiin langattoman tiedonsiirtokanavan estimointi ja sen aiheuttaman vääristymän kompensointi.

Toinen menetelmän tuottama etu on että Fourier-muunnoksen (käytännössä FFT:n) avulla voidaan laskea konvoluutio kaavasta (Matlabin syntaksilla ilmaistuna):

conv(x,y) = ifft(fft(x) .* fft(y))

Luennon lopuksi käsiteltiin nopeaa Fourier-muunnosta eli FFT:tä, joka on vain nopeampi tapa toteuttaa diskreetti Fourier-muunnos (DFT). FFT perustuu signaalin jakamiseen lyhyempiin pätkiin, jotka muunnetaan jakamalla ne edelleen rekursiivisesti kahtia. Rekursio päättyy, kun muunnoksen pituus on 1, jolloin muunnosta ei tarvitse enää tehdä. 1-ulotteisen vektorin tapauksessa muunnosmatriisi on yksinkertaisesti F = [1], joka tarkoittaa pelkkää ykkösellä kertomista eikä sitä tarvitse tehdä. Lyhyemmistä vektoreista saadaan koostettua pidemmät vektorit kaavoilla (3.3) ja (3.4).

keskiviikko 22. tammikuuta 2014

Fourier-muunnos

Luennon aluksi käsiteltiin kappale 2 loppuun. Tällöin tutustuttiin konvoluution ominaisuuksiin (laskentasäännöt: a(b+c) = ab+ac, kausaalisuuden ja stabiilisuuden tunnistus impulssivasteesta, jne.). Konvoluution ominaisuuksien käsittelyn yhteydessä tuotiin esille niiden yhteys LTI-järjestelmien yhdistämiseen: peräkkäiset tai rinnakkaiset LTI-järjestelmät voidaan esittää yhtenä järjestelmänä ja toisaalta niiden järjestys ei vaikuta lopputulokseen.

Kappaleen lopussa määriteltiin FIR- ja IIR-suotimet LTI-järjestelmien alalajeina. FIR-suotimet ovat yksinkertaisuutensa vuoksi laajemmin käytettyjä, mutta IIR-suodinten ilmaisuvoima ja laskennallinen tehokkuus tekevät niistä hyödyllisiä useissa tilanteissa.

Testikysymys: onko seuraava suodin FIR vai IIR?

y(n) = 0.9 y(n-1) - y(n-2) + x(n) + 0.5 x(n-1) +2 x(n-2)

Haastavampaa on selvittää esim. se, onko yo. suodin stabiili. Tähän ratkaisu löytyy prujun sivulta 68, johon pääsemme aikanaan.

Toisella tunnilla päästiin kappaleeseen 3: Fourier-muunnos. Olennaisin asia käsitteli muunnoksen ideaa alla olevan kuvan mukaisesti. Fourier-muunnoksen idea on kysyä paljonko eri taajuuksia annetussa signaalissa on. Taululla oli alla olevan piirroksen kaltainen kuva. Kuvan "yhtälössä" vasemmalla oleva signaalin pätkä jaetaan eri taajuuksiin kysymällä paljonko tarvitaan vakiotaajuutta (0.3 kpl), paljonko kerran värähtävää siniä (0.6 kpl), jne. Sama idea on kaikkien neljän muunnostyypin takana, mutta erona on montako eri taajuutta tarvitaan muodostamaan alkuperäinen signaali. Joissain tapauksissa niitä tarvitaan äärettömän paljon, jolloin kuvan summan sijaan tarvitaan integraali.

Jatkuvat tapaukset perustuvat siis integraalin laskentaan, ja käytännössä tämä täytyy tehdä muunnostaulukoiden avulla.

Käsin laskettavien kolmen ensimmäisen muunnostyypin jälkeen tutustuttiin lopuksi diskreettiin Fourier-muunnokseen, joka voidaan esittää matriisimuunnoksena. Muunnosmatriisi muodostetaan lisäämällä rivi kerrallaan ykkösen n:nnen juuren eri potensseja. Lopuksi esitettiin tällaisen matriisin konstruointi yksikköympyrän avulla tapaukselle N = 4.

keskiviikko 15. tammikuuta 2014

LTI-järjestelmät ja konvoluutio

Tänään käsiteltiin monisteen sivut 5-22. Ensimmäisena asiana vertailtiin digitaalisia suotimia vastaaviin analogisiin suotimiin. Esimerkiksi kurssilla opittava tietyn taajuuskaistan poistava suodin on mahdollista toteuttaa myös analogisesti. Kysymys kuuluukin miksi sama pitäisi tehdä digitaalisesti. Prujussa mainittujen lisäksi digitaalisuudesta on (ainakin) kolme merkittävää etua:
  1. "Digitaalinen toiminnallisuus" tarkoittaa suomeksi softaa, jonka ainutkertainen ominaisuus on että saman tuotteen voi myydä useaan kertaan. Tästä syystä myös Bill Gates on maailman rikkain ihminen. Jos myyntimäärät ovat riittävän suuria, monimutkaisenkin softan toteutuksen hinta on mitätön suhteessa siitä saatavaan hyötyyn. Kannattaa siis hyvinkin palkata 10 DI:tä tekemään softalla ratkaisu, joka laskee lopputuotteen tuotantokustannusta esim. vain 10 senttiä, jos tuotetta myydään miljoonia kappaleita.
  2. Digitaalisuunnittelu on usein helpompaa kuin analogiasuunnittelu. SDSU:n kuuluisa professori frederick j. harris vertasi puheessaan työskentelyä digitaalisessa maailmassa työskentelyyn San Diegossa ja työtä analogisella puolella työhön Minnesotassa. San Diegossa on suunnilleen Välimeren ilmasto ja Minnesotassa suunnilleen Suomen ilmasto.
  3. Softatoteutus on joustavampi. Jos syystä tai toisesta tuotteen vaatiman suotimen vaatimukset muuttuvat, analogiatoteutukseen tilatut komponentit menevät romukoppaan. Digitaalisen suotimen tapauksessa käännetään softasta uusi versio ja aloitetaan tuotanto.
Kappaleen 2 alussa käsitellään usein käytettyjen jonojen perusmääritelmät ja lohkokaavioiden perusoperaatiot: yhteenlasku, skalaarilla kertominen sekä viivästys. Näiden avulla voidaan esittää kaikki tämän kurssin suotimet. Kurssilla tarkastellaan lineaarisia ja aikainvariantteja suotimia, jotka voidaan esittää konvoluution avulla, toisin sanoen painotettuna keskiarvona N:stä viimeksi sisään tulleesta näytteestä. Konvoluutiosta nähtiin oheisen kuvan mukainen demo.



Kuvassa ylimpänä on suodatettava signaali, joka etenee vasemmalta oikealle. Jokaisen uuden näytteen saapuessa (kuvan ulkopuolelta vasemmalta) kerrotaan punaisella merkityt näytteet kuvan keskellä keskellä olevilla kertoimilla. Näin saadut tulot lasketaan yhteen ja sijoitetaan tulos alla olevan kuvan punaisella merkityksi uusimmaksi vastearvoksi.

Tämän jälkeen jatkettiin teoreettisemmalla asialla, eli kappaleen 2.2 diskreettien järjestelmien ominaisuuksilla. Näistä lineaarisuus ja aikainvarianssi ovat ne perusominaisuudet jotka otetaan myöhemmän tarkastelun lähtökohdaksi. Myös stabiilisuus on kriittinen ominaisuus, koska epästabiililla suotimella ei tee mitään.

Kappaleessa 2.3 tarkastellaan LTI-järjestelmiä, eli järjestelmiä jotka ovat lineaarisia ja aikainvariantteja. Kappaleen alussa osoitetaan, että LTI-järjestelmät voidaan esittää konvoluution avulla (josta on esimerkki yo. kuvassa). LTI-järjestelmän hieno ominaisuus on, että sen impulssivaste määrää vasteen mille tahansa herätteelle. Esimerkkinä tästä tutustuttiin demoon, jossa impulssivaste oli saatu lyömällä käsiä yhteen kirkossa (ts. generoimalla impulssi) ja mittaamalla vaste, josta kaiku oli selvästi kuultavissa. Näin saatua impulssivastetta voidaan käyttää mallina tilan akustisista ominaisuuksista, ja myös kotivahvistinten tilaefektit (hall, arena, club, jne.) on toteutettu tällä periaatteella. Mallia testattiin laskemalla konvoluutio seiska-testisignaalin ja kyseisen impulssivasteen kesken. Tulos kuulosti kuin testisignaali olisi viety kirkkoon.

Akustisen kaiun lisäksi toinen esimerkki konvoluution käytöstä reaalimaailman mallina voisi olla monitie-eteneminen tietoliikenteessä. Mielenkiintoisen tästä tekee se, että tämä ilmiö on mahdollista kompensoida ekvalisoinnilla, mikä käytännössäkin vähentää tietoliikenteessä syntyviä virheitä.

keskiviikko 8. tammikuuta 2014

Näytteenottoteoreema

Tänään luennolla käsiteltiin kurssin hallinnolliset asiat sekä luentomonisteen kappaleet 1.1 ja 1.2. Prujujen monistuksesta vastaa Tele-kilta, joka keräsi nimilistan monisteiden painamiseksi ensimmäisellä luennolla.

Toisella tunnilla varsinaista asiaa alustettiin puhumalla A/D-muunnoksesta, digitaalisista signaaleista, digitaalisista suotimista sekä Fourier-muunnoksesta. Matlab-esimerkkinä tarkasteltiin erästä testisignaalia (seiska.wav) Matlabilla, ja todettiin, että oikealla olevassa spektrogrammissa näkyvät selvästi eri äänteet.

Ensimmäisenä varsinaisena asiana käsiteltiin näytteenottoteoreema, jonka mukaan naytteistämisessä ei häviä informaatiota, jos näytteenottotaajuus on vähintään tuplat signaalin korkeimpaan taajuuteen nähden. Käytännössä ennen näytteistystä täytyy siis poistaa liian korkeat taajuudet analogisella suotimella (kuten tämä) ettei laskostumista pääsisi tapahtumaan.

Audiossa tapahtuvaa laskostumista verrattiin videokuvaan, jossa esimerkiksi kärrynpyörä saattaa näyttää pyörivän väärään suuntaan. Youtubesta löytyy useita videoita hakusanalla Wagon wheel effect; esim. tämä. Sääntö on tässäkin tapauksessa sama: kuvia pitää ottaa vähintään kaksi per kierros. 

Aikaisempina vuosina on muuten keskusteltu luennon jälkeen miksi live-tilanteessakin pyörät saattavat näyttää pyörivän väärään suuntaan tai miksi herkemmät ihmiset saattavat havaita loisteputkien värinän (loisteputkissa sähköverkon 50 Hz taajuus näkyy paljon selvemmin kuin hehkulampussa). Yksi tulkinta molemmista on että myös ihmisaivot toimivat tietyllä "kellotaajuudella", joka määrää sen minkä taajuiset ilmiöt voidaan havaita.

Näytteenottoteoreema liittyy myös peleissä käytettyyn ns. antialiasing-tekniikkaan. Myös tällöin lähtökohtana on äärettömän tarkka virtuaalinen malli, josta joudutaan ottamaan näytteitä esim. 1920 x 1200 monitoria varten. Tällöinkin kuvan sisältämät korkeat taajuudet laskostuvat ja muodostavat ns. Moire-ilmiön. Tästäkin päästään eroon suodattamalla signaali alipäästösuotimella ennen näytteistystä (eli poistamalla laskostuvat taajuudet).