L1: Audio - MyCourses

9/14/2015
L1: Audio
Prof. Vesa Välimäki
ELEC-C5340 - Sovellettu digitaalinen signaalinkäsittely
14.9.2015
Luennon sisältö
•
•
•
•
Äänisignaalien näytteenotto ja kvantisointi
Dither
Oskillaattorit
Digitaalinen suodatus
– Lyhyt FIR-suodin
– Resonaattori
© 2015 Välimäki
14.9.2015
2
1
9/14/2015
Näytteenotto signaalista
Kuva kirjasta: Rossin, Moore & Wheeler, ”The Science of Sound. Third Edition.” 2002
© 2015 Välimäki
14.9.2015
3
Signaalin muuttaminen digitaaliseksi
1) Otetaan aaltomuodosta näytteitä tasavälein (näytteenotto)
2) Kunkin näytteen arvo esitetään lukuna (kvantisointi)
• Nyquist-kriteeri: näytetaajuuden fs oltava vähintään 2kertainen korkeimpaan taajuuteen nähden
– Esim. jos korkein taajuus on 20 kHz, näytetaajuuden oltava
vähintään 40 kHz
– fs/2 = Nyquist-raja
© 2015 Välimäki
14.9.2015
4
2
9/14/2015
Dynamiikka
• Dynamiikka = signaalissa esiintyvän hiljaisimman ja
voimakkaimman äänen suhde
• Dynamiikka riippuu kvantisoinnista eli bittimäärästä
– Esim. 16 bitillä lukualue on -32768…32767 ja dynamiikka noin
96 dB (= 20log[216])
• Peukalosääntö: 1 bitin lisäyksellä +6 dB dynamiikkaa
• Kuulon dynamiikka on n. 120 dB
– Kuulokynnys on keskitaajuuksilla n. 0 dB
– Kipukynnys on n. 120 dB
• 20 bitillä saadaan 120 dB dynamiikka
– CD-järjestelmässä 16 bittiä
– Äänitysstudioissa käytetään 24 bittiä
© 2015 Välimäki
14.9.2015
5
Kvantisointivirhe
• Digitaalitallennuksessa äärellinen määrä näytearvoja
– Esim. 16-bittinen kvantisointi: 216 = 65536 eri arvoa
• Joudutaan pyöristämään, mikä aiheuttaa säröä
• Kvantisointivirhe = signaaliarvon ja kvantisointitason
ero
– Virhe enintään puolet
kvantisointiaskeleesta
© 2015 Välimäki
14.9.2015
6
3
9/14/2015
Bittimäärän vaikutus äänenlaatuun
• Musiikkisignaali eri bittimäärillä
1) 16 b (alkuperäinen)
2) 8 b
3) 6 b
4) 4 b
5) 3 b
6) 16 b (alkuperäinen)
© 2015 Välimäki
14.9.2015
7
Dither
• Dither on pientasoista kohinaa, joka lisätään signaaliin
ennen näytteenottoa (Lipschitz et al., 1992)
– Kvantisointivirhe muuttuu satunnaiseksi
– Särö muuttuu korreloimattomaksi kohinaksi
© 2015 Välimäki
14.9.2015
8
4
9/14/2015
Kvantisointi ilman ditheriä
2
Siniääni
1.5
1
0.5
0
-0.5
Kvantisointu siniääni
-1
-1.5
-2
0
20
40
60
80
100
© 2015 Välimäki
14.9.2015
9
Kvantisointi ditherillä
2
Ditteröity siniääni
1.5
1
0.5
0
Kvantisoitu
ditteröity siniääni
-0.5
-1
-1.5
-2
0
20
40
60
80
100
© 2015 Välimäki
14.9.2015
10
5
9/14/2015
Äänen rekonstruointi
• Lukujonon voi muuttaa ääneksi DA-muuntimella ja
suodattimella
– Pitopiiri tekee lukujonosta porraskäyrän
– Alipäästösuodin, joka poistaa Nyquist-rajaa korkeammat
taajuudet (esim. >20 kHz) pehmentäen aaltomuodon
© 2015 Välimäki
14.9.2015
11
Laskostuminen (aliasing)
• Kun näytteenotto on liian hidas, eritaajuiset signaalit
tuottavat saman lukujonon!
– vrt. western-elokuvien väärään suuntaan pyörivät kärrynpyörät,
ks. http://www.michaelbach.de/ot/mot_wagonWheel/
ja http://en.wikipedia.org/wiki/Wagon-wheel_effect
© 2015 Välimäki
14.9.2015
12
6
9/14/2015
Laskostuminen (aliasing)
Näytetaajuus fs = 44 kHz:
22 kHz (Nyquist-rajataajuus)
33 kHz  11 kHz
44 kHz  0 Hz
55 kHz  11 kHz
• Laskostuminen vältetään suodattamalla liian korkeat (> fs/2)
äänet pois ennen näytteenottoa (alipäästösuodatus)
© 2015 Välimäki
14.9.2015
13
Oskillaattorit äänisynteesissä
• Vähentävässä synteesissä oskillaattorit laskostavat, jos
aaltomuodot näytteistetään sellaisenaan
© 2015 Välimäki
14.9.2015
14
7
9/14/2015
Saha-aallon laskostuminen
• Näytteistetyn sahaaallon laskostuminen
perustaajuuden
kasvaessa
• Harmoniset
peilautuvat Nyquistin
rajataajuudesta
takaisin
Video by Andreas Franck,
2012
© 2015 Välimäki
14.9.2015
15
Saha-aalto ilman laskostumista
• Laskostuminen
vältetään tuottamalla
saha-aalto
additiivisella
synteesillä: Jokainen
harmoninen luodaan
erikseen
Video by Andreas Franck,
2012
© 2015 Välimäki
14.9.2015
16
8
9/14/2015
DPW-oskillaattori
• Saha-aalto-oskillaattorin laskostumista voidaan vaimentaa
peräkkäisillä integrointi- ja derivointioperaatioilla (Välimäki 2005,
Välimäki & Huovilainen 2006)
H(z) = c (1 – z–1)
missä c = fs/4f
© 2015 Välimäki
14.9.2015
17
DPW-oskillaattori
• fghfg
•
Modulolaskurin lähtö x(n)
– “Triviaali” saha-aalto
1
0
-1
0
•
Neliöity signaali
x2(n)
– Saha-aallon integraali on
paraabeliaalto
•
–
20
30
40
50
10
20
30
40
50
10
20
30
Discrete time
40
50
0.5
0
0
1
Erosignaali c[x2(n)
10
1
x2(n–1)]
– Viereisten näytteiden erotus
0
-1
0
© 2015 Välimäki
14.9.2015
18
9
9/14/2015
DPW-oskillaattorin spektri
• fghfg
•
Modulolaskurin lähtö x(n)
– “Triviaali” saha-aalto
Level (dB)
O
0
-20
-40
•
Neliöity signaali
– Saha-aallon integraali on
paraabeliaalto
Level (dB)
-60
x2(n)
–
– Viereisten näytteiden erotus
Level (dB)
•
x2(n–1)]
0
5
10
15
20
0
5
10
15
20
0
5
10
15
Frequency (kHz)
20
0
-20
-40
-60
Erosignaali c[x2(n)
Harmoniset
Nyquist-raja
(22050 Hz)
0
-20
-40
-60
© 2015 Välimäki
14.9.2015
19
Saha-aaltoalgoritmien vertailu
• Liu’utus (engl. pitch bend)
1. Triviaali saha-aalto (modulolaskurista)
2. DPW-saha-aalto
3. Ideaalinen saha-aalto (additiivinen synteesi)
fs = 44.1 kHz
© 2015 Välimäki
14.9.2015
20
10
9/14/2015
DPW-saha-aallon spektri
• DPW-algoritmi
vähentää saha-aallon
laskostumista eniten
pienillä taajuuksilla
• Kuulo on herkkä juuri
noilla taajuuksilla:
siksi subjektiivinen
parannus on suuri
Video by Andreas Franck,
2012
© 2015 Välimäki
14.9.2015
21
Digitaalinen suodatus
• Digitaalisia signaaleita voidaan suodattaa kuten
analogisia
• Suodattimien kaksi päätyyppiä
1) FIR-suotimet
– Myötäkytketty rakenne
– Tekee taajuusvasteeseen kuoppia (nollat)
2) IIR-suotimet
– Rakenteessa takaisinkytkentä
– Tekee taajuusvasteeseen korostumia (navat)
© 2015 Välimäki
14.9.2015
22
11
9/14/2015
FIR-suodatin
• FIR = Finite Impulse Response
– Impulssivaste = Suodattimen lähtösignaali, joka saadaan kun
tulosignaali x(n) on yksikköimpulssi
– Yksikköimpulssi = Signaali, jonka 1. näyte on 1 ja muut nollia
– FIR-suodattimen impulssivaste h(n) koostuu sen kertoimista
z -1
x(n)
h(0)
h(1)
z -1
z -1
...
h(2)
h(N)
y(n)
© 2015 Välimäki
14.9.2015
23
Ensimmäisen asteen FIR-suodatin
• Tulosignaaliin lisätään sen viivästetty ja skaalattu kopio
– Kertoimet h1 ja h2 painottavat tuloa ja viivästettyä tuloa
• Differenssiyhtälö:
y(n) = h1x(n) + h2x(n – 1)
z-1
x(n)
h1
• Impulssivaste: [h1 h2]
• Z-muunnos:
Y(z) = h1X(z) + h2X(z)z-1 = [h1 + h2z-1]X(z)
• Siirtofunktio: H(z) = h1 + h2z-1
• Taajuusvaste (sijoita edelliseen: z = ej )
H(ej) = Y(ej)/ X(ej) = h1 + h2e–j
h2
y(n)
© 2015 Välimäki
14.9.2015
24
12
9/14/2015
Magnitudivasteen geometrinen tulkinta
• Magnitudivaste |H(ej)| on vektoripituus z-tasossa
– Magnitudivasteen voi määrittää kulkemalla yksikköympyrällä ja
mittaamalla etäisyyden nollakohtaan
H ( e j )
Kuva kirjasta: Ken Steiglitz, A Digital Signal Processing Primer with
Applications to Digital Audio and Computer Music, Addison-Wesley, 1996.
© 2015 Välimäki
14.9.2015
25
FIR-suodattimen magnitudivaste
• 1. asteen FIR-suodattimien magnitudvaste:
|H()| = |h12 + h22 + 2h1h2cos() |1/2
Example:
h1 = 1
h2 = 0.99
© 2015 Välimäki
14.9.2015
26
13
9/14/2015
Musiikin FIR-suodatus
• Äänisignaali suodataan
FIR-suodattimella
H(z) = h1 + h2z-1,
missä h1 = 1 ja h2 vaihtuu
1) Alkuperäinen
2) Suodatus kun h2 = 1.0
3) Suodatus kun h2 = 0.9
4) Suodatus kun h2 = 0.5
5) Alkuperäinen
6) Suodatus kun h2 = –0.5
7) Suodatus kun h2 = –0.9
8) Suodatus kun h2 = –1.0
9) Alkuperäinen
© 2015 Välimäki
14.9.2015
27
IIR-suodin
aN
• IIR = Infinite Impulse
Response
– Impulssivaste on (teoriassa)
äärettömän pituinen
– Yleensä impulssivaste
vaimenee nollaan
• IIR-suodinrakenne
perustuu
takaisinkytkentään
• Siirtofunktiossa on nollien
lisäksi napoja
x (n )
y (n )
z 1
a N 1

z
1
z 1
a1
 a1
z 1

 a N 1
 aN
z 1
z 1
© 2015 Välimäki
14.9.2015
28
14
9/14/2015
Yhden navan IIR-suodin
• Lisää tulosignaaliin lähtösignaalin viivästetty kopio
– Takaisinkytkentäkertoimen itseisarvo ei saa ylittää 1:tä!
• Differenssiyhtälö:
y(n) = x(n) + a1y(n – 1)
x(n)
• Z-muunnos:
Y(z) = X(z) + a1Y(z)z–1
• Siirtofunktio:
H(z) = 1/(1 – a1z–1)
• Taajuusvaste:
H(ej) = 1/(1 – a1e–j)
y(n)
a1
z-1
“Vuotava integraattori”
(kun 0 < a1 < 1)
© 2015 Välimäki
14.9.2015
29
IIR-suodattimen magnitudivaste
• Magnitudivaste:
|H()| = 1 / |1 – a1 e–j |
• Nimittäjän nollakohta eli napa
• Geometrinen tulkinta
– Merkitse napa z-tasoon
– Kulje yksikköympyrää nollasta
:hin
– Mittaa etäisyys navasta
– Laske etäisyyden käänteisarvo
© 2015 Välimäki
14.9.2015
30
15
9/14/2015
IIR-suodattimen magnitudivaste
• 1. asteen IIR-suodattimen magnitudivaste on
|H()| = g / |1 – a1 e–j|, missä g on vahvistus
• DC-vahvistus* pysyy vakiona kun valitaan
g = 1 – a1
*DC-vahvistus
= Vahvistus
taajuudella 0 Hz
© 2015 Välimäki
14.9.2015
31
Musiikin IIR-suodatus
• Äänisignaali suodataan
IIR-suodattimella
H(z) = g/(1 – a1z-1),
missä a1 vaihtuu
1) Alkuperäinen
2) Suodatus kun a1 = 0,9
3) Suodatus kun a1 = 0,99
4) Suodatus kun a1 = 0,999
5) Alkuperäinen
6) Suodatus kun a1 = –0,9
7) Suodatus kun a1 = –0,99
8) Suodatus kun a1 = –0,999
9) Alkuperäinen
© 2015 Välimäki
14.9.2015
32
16
9/14/2015
Resonanssi
• Korostuma magnitudivasteessa
– Esim. formantti tai värähtelevän rakenteen moodi
• Resonanssin terävyyttä kuvaa kaistanleveys:
– Niiden taajuuspisteiden väli, joissa magnitudivaste on –3 dB
huipusta
• Muut ominaisuudet:
keskitaajuus & huippuvahvistus
• Q-arvo:
Q = keskitaajuus / kaistanleveys
(Suuri Q-arvo  terävä resonanssi,
pieni Q-arvo  leveä resonanssi)
© 2015 Välimäki
14.9.2015
33
Resonanssi ja napasäde
• Resonanssi tuotetaan navalla, joka on lähellä 1-ympyrää
• Etäisyys voidaan arvioida kaistanleveydestä:
R  1 – B/2
missä B = 2f ja
f on normalisoitu taajuus
(f = 1 vastaa näytetaajuutta)
– Vaihtoehtoinen kaava: R  1 – f
• Esimerkki:
fs = 44.1 kHz ja kaistanleveys on 20 Hz:
R  1 – (20/44100) = 0,998575
© 2015 Välimäki
14.9.2015
34
17
9/14/2015
Digitaalinen resonaattori
• Resonaattorit yleisiä audiosignaalinkäsittelyssä
– Parametriset ekvalisaattorit, vähentävä synteesi,
formattisuodattimet…
• Yhden resonanssin tuottamiseen käytetään napaparia
(napa ja sen kompleksikonjugaatti)
• Taajuusvaste:
H(z) = 1 / (1 – Rejz–1) (1 – Re–jz–1)
tai H(z) = 1 / (1 – 2Rcos()z–1 + R2 z–2 )
• Differenssiyhtälö on helppo johtaa
© 2015 Välimäki
14.9.2015
35
Digitaalinen resonanssi
• Esimerkkejä 2. asteen IIR-suodattimen
magnitudivasteesta (DC-skaalaus)
© 2015 Välimäki
14.9.2015
36
18
9/14/2015
Digitaalisen resonaattorin suunnittelu
• Yleensä riittää kun valitaan taajuus  ja säde R
–  on resonanssitaajuus ja R = 1 – B/2 napasäde
• Pienillä taajuuksilla napa ja sen peilikuva ovat lähekkäin
ja häiritsevät huipun muodostumista
– Huippu ei olekaan täsmälleen taajuudella !
© 2015 Välimäki
14.9.2015
37
Matlab-demo: resonaattori
•
© 2015 Välimäki
14.9.2015
38
19
9/14/2015
Nolla-naparesonaattori
• Parannellun resonaattorin siirtofunktio (nollat z = ±1)
H(z) = (1 – z–2) / (1 – 2Rcos()z–1 + R2 z–2 )
• Ehdottivat Smith & Angell (1982)
– Motivaatio oli resonanssitaajuuden pyyhkäisy pitäen kaistanleveys
ja vahvistus vakiona
© 2015 Välimäki
14.9.2015
39
Yhteenveto
• Näytteenottotaajuuden oltava riittävän korkea ja/tai
signaalin alipäästösuodatettava jottei synny laskostumista
• Dither muuttaa kvantisointisärön kohinaksi
• Oskillaattoreissa laskostuminen voi heikentää
äänenlaatua
• FIR-suodattimet painottavat viivästettyjä näytteitä ja
suodattavat siten signaalin
• IIR-suodattimissa on takaisinkytkentä, jolla vahvistetaan
tiettyjä taajuuksia (navat, resonanssitaajuudet)
© 2015 Välimäki
14.9.2015
40
20
9/14/2015
Lähteitä
• S. Lipschitz, R. A. Wannamaker & J. Vanderkooy, “Quantization and
dither: a theoretical survey,” Journal of the Audio Engineering
Society, vol. 40, no. 5, pp. 355, 1992.
• J. O. Smith and J. B. Angell, “A constant-gain digital resonator tuned
by a single coefficient,” Computer Music Journal, vol. 6, no. 4, pp.
36–40, 1982.
• K. Steiglitz, A Digital Signal Processing Primer with Applications to
Digital Audio and Computer Music, Addison-Wesley, 1996.
• V. Välimäki, “Discrete-Time Synthesis of the Sawtooth Waveform
with Reduced Aliasing,” IEEE Signal Processing Letters, vol. 12, no.
3, pp. 214-217, March 2005.
• V. Välimäki & A. Huovilainen, “Oscillator and Filter Algorithms for
Virtual Analog Synthesis,” Computer Music Journal, vol. 30, no. 2,
pp. 19-31, summer 2006.
© 2015 Välimäki
14.9.2015
41
21