Alipäästösuodatin ?

Miten tällainen käytännössä toteutetaan ?

Tarpeet voivat vaihdella, mutta otetaan esimerkiksi sellainen, jota käytettiin ensimmäisissä CD -audiolevyjen tuotannossa A/D -muuntimen edellä estämässä aliasing -ilmiön tuottamia valesignaaleja digitoidussa audiodatassa.

Miksikö nimenomaan ensimmäisissä ?

Koska nykyaikana ilmeisesti tuollakin käytetään tekniikkaa, jolla itse A/D -muunnos tehdään esim 32- kertaisella näytteenottotaajuudella siihen verrattuna, joka olisi Nyquist -teoreeman mukainen.

CD -audiolevyjen tuotannossahan homman nimi on tämä:

Haluttu taajuuskaista: 20 Hz - 20000 Hz.

Näytteenottotaajuus: 44100 Hz

Näytekoko: 16 bittiä sisältäen etumerkin, eli käytännössä 15 bittiä näytteen amplitudi ja 1 bitti = etumerkki.

Jos käytetään 32 -kertaista ylinäytteistystä, saadaan näytteenottotaajuudeksi 32 * 44100 = 1411200 näytettä sekunnissa. Tällöin voidaan käyttää hyvin loivaa analogista alipäästösuodatinta, joka alkaa leikkaamisen 20 kHz kohdalta, ja 705.6 kHz kohdalla vaimennuksen pitäisi olla jo niin iso, että se vastaa puolta vähiten merkitsevän bitin vastaavasta jännitearvosta.

Tämän jälkeen digitoitu signaali ajetaan digitaalisen, ohjelmallisesti toteutetun toisen alipäästösuodattimen läpi, joka voi olla jyrkempi, sillä ilmeisesti ohjelmallisesti suoraan digitaaliselle datalle voidaan toteuttaa varsin jyrkkä alipäästösuodatus ilman vastaavan analogisen suodattimen signaalia vääristävää vaikutusta (epätasainen toistokaista ja vaihevirheet, jotka analogisissa suodattimessa ovat yleensä sitä pahempia, mitä jyrkempi suodatuksesta halutaan).

Mutta CD -levytuotannon alkuaikoina (1980 -luvun alkupuolella) senaikaisella teknologialla moninkertainen ylinäytteistys oli joko mahdotonta tai liian kallista toteuttaa.

Vielä nykyisinkin, vaikka nykyteknologialla moninkertainen ylinäytteistys onkin mahdollista, nopeampi monibittinen A/D -muunnin on kalliimpi ja sen lisäksi tarvitaan digitaalinen signaaliprosessori ja ohjelmointityö sille.

Näinollen jos sovelluksen kustannus halutaan pysyvän kurissa, ei moninkertainen ylinäytteistys ole aina kykyäänkään mahdollista, kustannussyistä !

Esim. edullisissa mikrokontrollereissa (kuten Atmel AVR) on monessa esim. 10 -bittinen A/D -muunnin sisäänrakennettuna. Mutta alipäästösuodatusta ei näissä sisäänrakennettuna ole, eli Atmel tarjoaa tosiasiassa puolivalmista ratkaisua analogiasignaalien digitointiin.

Kyllähän tuolla akku- tai paristojännitettä mittaa (kun "signaali" on lähes DC, mitä nyt kuormitus ja akun tai pariston varaustilan vajuminen sähkönkulutuksen mukana hieman pudottaa jännitettä). Mutta jos AVR:n integroidulla A/D -muuntimella haluaisi oikeasti digitoida AC -signaalia, niin alipäästösuodatus on pakko jotenkin toteuttaa, muuten aliasing -ilmiön takia digitoitu signaali on täynnä roskaa, eli haamusignaaleja, joita ei oikeasti ole olemassa !

Jos siis otetaan esimerkiksi sama tilanne kuin oli ensimmäisiä CD -audiolevyjä tuotettaessa, eli:

Haluttu taajuuskaista: hyötysignaali on alle 20000 Hz.

Näytteenottotaajuus: 44100 Hz

Tällöin pitäisi 20 kHz alkaen leikata taajuuksia pois, siten että 22050 Hz kohdalla vaimennus pitäisi olla sellainen, että se vastaa puolta vähiten merkitsevän bitin jännitearvosta.

Jos täysi signaali on 5V joka vastaa haamuarvoa 1024, 2.5V vastaa 512.
siis digitaaliarvo 1 vastaa 4.8828125 mV.

siis 2.44 mV on se arvo, jota häiriösignaali ei saisi ylittää, jos kyse on taajuudesta, joka on 22050 Hz tai suurempi.

Miten siis toteutetaan alipäästösuodatin, joka leikkaa 20000 Hz alkaen siten, että 22050 Hz kohdalla 5V lähtöarvo vaimenee niin, että siitä on jäljellä 2.44 mV tai vähemmän?

Pieni "trikki": Ajattelin kytkeä operaatiovahvistimen siten, että se antaa ulos sisäänmenosignaalin itseisarvon, ja kytkeä komparaattorin, joka vertaa signaalia vakioarvoon 0 V, tästä saadaan etumerkki, jolloin kaikki 10 bittiä kuvaavat signaalin magnitudia, kun etumerkki käsitellään erikseen. Näin AVR:n 10 -bittisestä muunnoksesta saadaan 11 -bittinen, jossa 10 bittiä = amplitudi ja 1 bitti = etumerkki.
0299
Äänestä

Muut lukivat myös

Vastaukset

Vanhimmat

Ei vielä vastauksia

Aloittaja odottaa vastauksia. Kerro oma näkemyksesi ensimmäisenä.

Kommentoi aloitusta


CD_Lowpass kirjoitti:

Miten tällainen käytännössä toteutetaan ?

Tarpeet voivat vaihdella, mutta otetaan esimerkiksi sellainen, jota käytettiin ensimmäisissä CD -audiolevyjen tuotannossa A/D -muuntimen edellä estämässä aliasing -ilmiön tuottamia valesignaaleja digitoidussa audiodatassa.

Miksikö nimenomaan ensimmäisissä ?

Koska nykyaikana ilmeisesti tuollakin käytetään tekniikkaa, jolla itse A/D -muunnos tehdään esim 32- kertaisella näytteenottotaajuudella siihen verrattuna, joka olisi Nyquist -teoreeman mukainen.

CD -audiolevyjen tuotannossahan homman nimi on tämä:

Haluttu taajuuskaista: 20 Hz - 20000 Hz.

Näytteenottotaajuus: 44100 Hz

Näytekoko: 16 bittiä sisältäen etumerkin, eli käytännössä 15 bittiä näytteen amplitudi ja 1 bitti = etumerkki.

Jos käytetään 32 -kertaista ylinäytteistystä, saadaan näytteenottotaajuudeksi 32 * 44100 = 1411200 näytettä sekunnissa. Tällöin voidaan käyttää hyvin loivaa analogista alipäästösuodatinta, joka alkaa leikkaamisen 20 kHz kohdalta, ja 705.6 kHz kohdalla vaimennuksen pitäisi olla jo niin iso, että se vastaa puolta vähiten merkitsevän bitin vastaavasta jännitearvosta.

Tämän jälkeen digitoitu signaali ajetaan digitaalisen, ohjelmallisesti toteutetun toisen alipäästösuodattimen läpi, joka voi olla jyrkempi, sillä ilmeisesti ohjelmallisesti suoraan digitaaliselle datalle voidaan toteuttaa varsin jyrkkä alipäästösuodatus ilman vastaavan analogisen suodattimen signaalia vääristävää vaikutusta (epätasainen toistokaista ja vaihevirheet, jotka analogisissa suodattimessa ovat yleensä sitä pahempia, mitä jyrkempi suodatuksesta halutaan).

Mutta CD -levytuotannon alkuaikoina (1980 -luvun alkupuolella) senaikaisella teknologialla moninkertainen ylinäytteistys oli joko mahdotonta tai liian kallista toteuttaa.

Vielä nykyisinkin, vaikka nykyteknologialla moninkertainen ylinäytteistys onkin mahdollista, nopeampi monibittinen A/D -muunnin on kalliimpi ja sen lisäksi tarvitaan digitaalinen signaaliprosessori ja ohjelmointityö sille.

Näinollen jos sovelluksen kustannus halutaan pysyvän kurissa, ei moninkertainen ylinäytteistys ole aina kykyäänkään mahdollista, kustannussyistä !

Esim. edullisissa mikrokontrollereissa (kuten Atmel AVR) on monessa esim. 10 -bittinen A/D -muunnin sisäänrakennettuna. Mutta alipäästösuodatusta ei näissä sisäänrakennettuna ole, eli Atmel tarjoaa tosiasiassa puolivalmista ratkaisua analogiasignaalien digitointiin.

Kyllähän tuolla akku- tai paristojännitettä mittaa (kun "signaali" on lähes DC, mitä nyt kuormitus ja akun tai pariston varaustilan vajuminen sähkönkulutuksen mukana hieman pudottaa jännitettä). Mutta jos AVR:n integroidulla A/D -muuntimella haluaisi oikeasti digitoida AC -signaalia, niin alipäästösuodatus on pakko jotenkin toteuttaa, muuten aliasing -ilmiön takia digitoitu signaali on täynnä roskaa, eli haamusignaaleja, joita ei oikeasti ole olemassa !

Jos siis otetaan esimerkiksi sama tilanne kuin oli ensimmäisiä CD -audiolevyjä tuotettaessa, eli:

Haluttu taajuuskaista: hyötysignaali on alle 20000 Hz.

Näytteenottotaajuus: 44100 Hz

Tällöin pitäisi 20 kHz alkaen leikata taajuuksia pois, siten että 22050 Hz kohdalla vaimennus pitäisi olla sellainen, että se vastaa puolta vähiten merkitsevän bitin jännitearvosta.

Jos täysi signaali on 5V joka vastaa haamuarvoa 1024, 2.5V vastaa 512.
siis digitaaliarvo 1 vastaa 4.8828125 mV.

siis 2.44 mV on se arvo, jota häiriösignaali ei saisi ylittää, jos kyse on taajuudesta, joka on 22050 Hz tai suurempi.

Miten siis toteutetaan alipäästösuodatin, joka leikkaa 20000 Hz alkaen siten, että 22050 Hz kohdalla 5V lähtöarvo vaimenee niin, että siitä on jäljellä 2.44 mV tai vähemmän?

Pieni "trikki": Ajattelin kytkeä operaatiovahvistimen siten, että se antaa ulos sisäänmenosignaalin itseisarvon, ja kytkeä komparaattorin, joka vertaa signaalia vakioarvoon 0 V, tästä saadaan etumerkki, jolloin kaikki 10 bittiä kuvaavat signaalin magnitudia, kun etumerkki käsitellään erikseen. Näin AVR:n 10 -bittisestä muunnoksesta saadaan 11 -bittinen, jossa 10 bittiä = amplitudi ja 1 bitti = etumerkki.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu