Föreläsning 1: Inledning till Digital signalbehandling i audio & video. Leif Sörnmo 11 mars 2009



Relevanta dokument
DigSig AV. Repetition. Leif Sörnmo 10 maj 2007

Innehåll. Innehåll. sida i

DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

Spektrala Transformer

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter

Implementering av digitala filter

DT1130 Spektrala transformer Tentamen

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

Laplace, Fourier och resten varför alla dessa transformer?

TIDSDISKRETA SYSTEM SYSTEMEGENSKAPER. Minne Kausalitet Tidsinvarians. Linjäritet Inverterbarhet Stabilitet. System. Tillämpad Fysik och Elektronik 1

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

DT1130 Spektrala transformer Tentamen

RÄKNEEXEMPEL FÖRELÄSNINGAR Signaler&System del 2

DT1130 Spektrala transformer Tentamen

DT1120/DT1130 Spektrala transformer Tentamen

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

REGLERTEKNIK Laboration 5

1. Vi har givet två impulssvar enligt nedan (pilen under sekvenserna indikerar den position där n=0) h 1 (n) = [ ]

DT1130 Spektrala transformer Tentamen

Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion? Spektrum av en samplad signal. Trunkering i tiden

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny

Tentamen ssy080 Transformer, Signaler och System, D3

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

Elektronik 2018 EITA35

Föreläsning 6: Spektralskattning: icke parametriska metoder. Leif Sörnmo 4 oktober 2009

Kan vi beskriva ett system utan någon fysikalisk kännedom om systemet?

Spektrala Transformer

Signal- och bildbehandling TSBB03

TSBB16 Datorövning A Samplade signaler Faltning

DIGITALA FILTER DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1

Elektronik. Dataomvandlare

TSDT15 Signaler och System

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Tentamen ssy080 Transformer, Signaler och System, D3

Signal- och bildbehandling TSEA70

Elektronik Dataomvandlare

Laplace, Fourier och resten varför alla dessa transformer?

Spektrala Transformer

Syntes av digitala filter

Sammanfattning TSBB16

System. Z-transformen. Staffan Grundberg. 8 februari 2016

Försättsblad till skriftlig tentamen vid Linköpings universitet G33(1) TER4(63)

Frekvensplanet och Bode-diagram. Frekvensanalys

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

TSRT91 Reglerteknik: Föreläsning 5

Signal- och bildbehandling TSEA70

Digital Signalbehandling i Audio/Video

Signal- och Bildbehandling, TSBB14. Laboration 2: Sampling och rekonstruktion. DFT.

Övningar med Digitala Filter med exempel på konstruktion och analys i MatLab

Elektronik Dataomvandlare

Signal- och bildbehandling TSBB14

Digitala filter. FIR Finit Impulse Response. Digitala filter. Digitala filter. Digitala filter

Signal- och bildbehandling TSBB03

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 15-18, 30/11-12/

Tentamen i Signaler och kommunikation, ETT080

Diskreta signaler och system

Föreläsning 10, Egenskaper hos tidsdiskreta system

Flerdimensionella signaler och system

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

Lösningar till Övningsuppgifter

Bildbehandling i frekvensdomänen

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Spektrala Transformer

Försättsblad till skriftlig tentamen vid Linköpings universitet KÅRA T1 T2 U2 U4

Spektrala Transformer

LUNDS TEKNISKA HÖGSKOLA Inst. for Elektro- och Informationsteknik. SIGNALBEHANDLING I MULTIMEDIA, ETI265 Inlämningsuppgift 1 (av 2), Task 1 (out of 2)

Impulssvaret Betecknas h(t) respektive h(n). Impulssvaret beskriver hur ett system reagerar

Musikeffekter med signalprocessor

Ulrik Söderström 20 Jan Signaler & Signalanalys

Signalanalys med snabb Fouriertransform

Övningsuppgifter. Digital Signal Processing. Övningar med svar och lösningar. Mikael Swartling Nedelko Grbic Bengt Mandersson. rev.

Signaler några grundbegrepp

2F1120 Spektrala transformer för Media Tentamen

DT1120 Spektrala transformer för Media Tentamen

Kryssproblem (redovisningsuppgifter).

Signal- och bildbehandling TSBB14

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

Föreläsning 1: Signaler, matriser och processer. Leif Sörnmo 28 augusti 2009

SF1635, Signaler och system I

Ulrik Söderström 19 Jan Signalanalys

Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion?

Signal- och bildbehandling TSEA70

Filter. Mätteknik. Ville Jalkanen, TFE, UmU. 1

7. Sampling och rekonstruktion av signaler

( ), så kan du lika gärna skriva H ( ω )! ( ) eftersom boken går igenom laplacetransformen före

Miniräknare och en valfri formelsamling i signalbehandling eller matematik. Allowed items: calculator, DSP and mathematical tables of formulas

Miniräknare, formelsamling i signalbehandling.

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

Tillämpning av komplext kommunikationssystem i MATLAB

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Optimal Signalbehandling Datorövning 1 och 2

TSDT18/84 SigSys Kap 4 Laplacetransformanalys av tidskontinuerliga system. De flesta begränsade insignaler ger upphov till begränsade utsignaler

Kompletterande material till föreläsning 5 TSDT08 Signaler och System I. Erik G. Larsson LiU/ISY/Kommunikationssystem

Yrkeshögskolan Novia Utbildningsprogrammet i elektroteknik

2 Laborationsutrustning

Institutionen för data- och elektroteknik Tillämpad digital signalbehandling Veckoplanering för signalbehandlingsteorin

Introduktion Digitala filter. Filter. Staffan Grundberg. 12 maj 2016

Transkript:

Föreläsning 1: Inledning till Digital signalbehandling i audio & video Leif Sörnmo 11 mars 2009 1

Schema Föreläsningar: Måndag 10.15 12.00 i sal E:2311 Fredag 08.15 10.00 i sal E:2311 Övningar: Tisdag 10.15 12.00 i sal E:2311 Fredag 10.15 12.00 i sal E:2311 Observera att vissa veckor innefattar datorövning. Laborationer: Lab I: Musikkompression i sal E:2428 Lab II: Bildbehandling i sal E:2428 Anmälan enligt listor som anslås på anslagstavla 1 måndagen den 30/3. 2

Kurslitteratur Kursbok: S. K. Mitra, Digital Signal Processing, 3dje upplagan, McGraw-Hill, 2006, dvs boken från DigSig (ca 600:-). Notera att andra upplagan (2001) är möjlig att använda, men att sidreferenserna då inte stämmer. Övningsbok: S. K. Mitra, Digital Signal Processing Laboratory Using MATLAB, McGraw-Hill, 1999, (490:-) Kapitel: 7, 8, 9, 10. Övrigt: Föreläsningsanteckningar (kurshemsidan) Lösningskompendium (kurshemsidan) Datorövningar (kurshemsidan) Laborationshandledningar (kurshemsidan) Matlabkod (kurshemsidan) 3

Kursinnehåll V1: 1. Repetition av DigSig 2. Digital filterdesign I, kap. 9 V2: 1. Digital filterdesign II, kap. 10.1 10.3, 10.5 2. Algoritmer i signalprocessorer, kap. 11.1 11.3, 11.5, 11.8 11.10 V3: 1. Effekter av begränsad ordlängd, kap. 12.1 12.6, 12.12 2. Multirate-signalbehandling I, kap. 13, 14 V4: 1. Multirate-signalbehandling II, kap. 13, 14 2. Audiosignalbehandling I V5: Audiosignalbehandling II V6: 1. 2D-signalbehandling 2. Videosignalbehandling V7: Repetition 4

Tentamen Godkänd kurs förutsätter att tentamen, som omfattar 6 uppgifter och har poängskalan 3 till 6, är godkänd, och att båda laborationerna är fullföljda. Slutbetyget är heltalsdelen av tentamenspoängen, dock högst 5. Tentamen äger rum den 26 maj, kl. 14 19, lokal: E2311. Tillåtna hjälpmedel är kursboken (tabeller är inte nödvändiga). 5

Översikt av dagens föreläsning Tidsdiskreta signaler och system (repetition). Från analog till digital signal sampling. Digitala filterstrukturer. Digital signalbehandling i audio & video inledning 6

Tidsdiskreta signaler i tidsplanet En tidsdiskret signal är en serie värden som erhålls från diskreta mätningar (ofta gjorda i tiden) eller från sampling av en tidskontinuerlig signal. En tidsdiskret signal har definitionsmässigt avståndet 1 mellan samplen, utan enhet. Den snabbaste frekvens som kan representeras är vartannat värde +A och vartannat A. Denna frekvens har perioden 2, utan enhet. Eftersom frekvensen är 1/T så är den maximala normerade frekvensen 0.5, utan enhet. Det finns alltså inga Hertz eller sekunder i den digitala världen... 7

Tidsdiskreta (LTI) system i tidsplanet På samma sätt som ovan beskrivs ett tidsdiskret system med en serie av värden. Denna series kallas impulssvar h[n] och beskriver hur insignalen (gamla och nuvarande värde, dvs kausalt) ska viktas för att producera utsignalen. Utsignalen från ett tidsdiskret system fås genom att insignalen faltas med impulssvaret:. y[n] = h[n] x[n] 8

Tidsdiskreta (LTI) system i tidsplanet En vanlig grupp av tidsdiskreta LTI system är de med konstanta koefficienter och begränsad ordning som beskrivs av differensekvationen: y[n] = N k=1 d k d 0 y[n k] + M k=0 p k d 0 x[n k]. där max-värdet av M och N anger systemets ordning. Dessa två representationer, dvs. impulssvar och differensekvation, är ekvivalenta och begreppet filter kan användas för båda. 9

Tidsdiskreta (LTI) system i tidsplanet Filtret är av typen FIR om utsignalen y[n] bara beror av nuvarande och föregående sampel i insignalen x[n]: y[n] = M k=0 p k d 0 x[n k] = M k=0 h[k]x[n k]. Längden hos h[n] bestäms av antalet sampel x[n] som används. Filtret är IIR om y[n] beror av föregående sampel i y[n]: y[n] = N k=1 d k d 0 y[n k] + M k=0 p k d 0 x[n k] = k=0 h[k]x[n k]. Impulssvaret h[n] är oändligt eftersom y[n] i sin tur beror av föregående sampel i utsignalen. 10

Tidsdiskreta (LTI) system i tidsplanet Ett system är BIBO-stabilt om impulssvaret uppfyller N= h[n] <. 11

Tidsdiskreta signaler i frekvensplanet Discrete-time Fourier transform (DTFT) av signalen x[n] ges av X(e jω ) = n= x[n]e jωn. X(e jω ) är en komplex funktion som kan skrivas X(e jω ) = X(e jω ) e jθ(ω), där X(e jω ) kallas amplitudspektrum och θ(ω) = arg{x(e jω )} kallas fasspektrum. Ett spektrum utgör en ekvivalent beskrivning av en signal x[n]. Istället för att bygga upp x[n] genom att ange varje tidssampels amplitud kan den byggas upp genom att ange amplitud och fas för varje frekvens som ingår i x[n]. 12

Tidsdiskreta signaler i frekvensplanet, forts Spektrumet är unikt för de normerade frekvenserna { 0.5, 0.5} (eller motsvarande vinkelfrekvenserna ω = { π, π}). Spektrumet är periodiskt utanför detta intervall. Inom dessa intervall är magnitudspektrat en jämn funktion och fasspektrat en udda funktion. Samma sak representeras i båda halvorna. Inversa DTFT:n ges av x[n] = 1 2π π π X(ejω )e jωn dω. 13

Tidsdiskreta signaler i frekvensplanet, forts Discrete-time Fourier transform (DTFT): Oändligt lång tidsdiskret signal {, } kan ekvivalent representeras av kontinuerligt spektrum för det normerade frekvensintervallet { 0.5,0.5} eller motsvarande vinkelfrekvensintervall ω = { π, π}. Spektrat är periodiskt utanför detta intervall. Discrete Fourier transform (DFT): För en tidsdiskret signal av begränsad längd {0, N 1} så räcker det att DTFT samplas med N jämnt fördelade punkter (ω k = 2πk N, k = 0,..., N 1) i spektrumet för att signalen ska kunna representeras fullständigt. 14

Tidsdiskreta system i frekvensplanet DTFT:n av ett impulssvar h[n] kallas filtrets frekvenssvar och är, precis som DTFT:n av en signal, unikt i frekvensintervallet { 0.5,0.5} och periodiskt utanför: H(e jω ) = n= h[n]e jωn. Magnitud- och fasfunktion definieras p.s.s. som tidigare. Frekvenssvaret för ett LTI system med konstanta koefficienter och begränsad ordning kan skrivas H(e jω ) = Y (ejω ) Mk=0 X(e jω ) = p k e jωk Nk=0 d k e jωk. 15

z-transformen z-transformen av ett impulssvar kallas filtrets överföringsfunktion, H(z) = n= h[n]z n, och utgör en generalisering av DTFT:n med bättre konvergensegenskaper än DTFT:n och som ger enklare algebra. En oändligt lång tidsdiskret signal x[n] {, } kan ekvivalent representeras av X(z) i det komplexa talplanet. Om värden avläses på enhetscirkeln i detta talplan, dvs. z = e jω, så fås dess DTFT. 16

z-transformen och tidsdiskreta system Överföringsfunktionen för ett LTI system med konstanta koefficienter och begränsad ordning kan skrivas H(z) = Y (z) X(z) = p Mk=1 0 (1 ξ k z 1 ) d Nk=1 0 (1 λ k z 1 ) = p Mk=1 0 z N M (z ξ k ) d Nk=1 0 (z λ k ), där ξ k kallas nollställen och λ k kallas poler. BIBO-stabilitet motsvarar att polerna ligger inom enhetscirkeln. 17

Digital behandling av tidskontinuerliga signaler Mikrofon Sampling Analogt Antivikningsfilter Samplingsfrekvens S/H A/D Digital Signalbehandling Interpolation Analogt Rekonstruktionsfilter Uppspelningsfrekvens D/A Högtalare Analog signal Tidsdiskreta signaler Analog signal 18

Digital behandling av tidskontinuerliga signaler Vid sampling med perioden T (samplingsvinkelfrekvensen Ω T ) så kommer alla komponenter av typen x a,k (t) = Acos((Ω 0 + kω T )t + φ), k = 0, ±1, ±2,... att mappas på x[n] = x a,k (nt) = Acos(ω 0 n + φ) pga. att den tidsdiskreta signalen inte kan representera frekvenser (normerade till samplingsintervallet=samplings-frekvensen=1) större än 0.5. Alla komponenter av högre frekvenser kommer därmed att finnas kvar i den samplade signalen, men i skepnad av lägre frekvenser som ligger inom det tillåtna frekvensområdet detta fenomen kallas vikning. 19

Digital behandling av tidskontinuerliga signaler Insikten från föregående bild innebär att en tidskontinuerlig signal måste samplas dubbelt så snabbt som dess högsta frekvens. Om signalens högsta frekvens är Ω m måste den alltså samplas med åtminstone Ω T 2Ω m för att inte bli distorderad (Samplingsteoremet, se kap 4.2). Frekvensen Ω T /2, som motsvarar den normerade frekvensen 0.5, brukar kallas Nyqvist-frekvensen eller vikningsfrekvensen. Signalen är kritiskt samplad om Ω T /2 = Ω m och översamplad om Ω T /2 > Ω m. 20

Sampling av analog signal matematisk modell 21

Sampling och dess effekt i frekvensplanet 22

Sampling och vikningsdistorsion 23

Sampling och rekonstruktion av analog signal 24

Digital behandling av tidskontinuerliga signaler För att undvika vikning måste alltid ett analogt antivikningsfilter (dvs. lågpassfilter) användas före sampling för att spärra frekvenser över Nyqvist-frekvensen. P.s.s. måste ett analogt rekonstruktionsfilter användas för att mjuka till en tidsdiskret signal som överförts till tidskontinuerlig form. Analog filterdesign beskrivs i kap. 4.4 och 4.5 och kommer att beskrivas på Övning 1. 25

Digitala filterstrukturer Strukturen hos ett filter beskrivs ofta i form av ett blockdiagram som visar hur insignalen och filtrets interna variabler kombineras för att generera utsignalen. Pss som aa + ab kan beräknas med 2 mult och 1 add eller som a(a + b) med 1 mult och 1 add, så kan ett filter implementeras med olika antal additioner, multiplikationer och fördröjningar med olika beräkningskomplexitet som följd. Ett annat viktigt skäl till att analysera olika filterstrukturer är att kvantiseringsfel i aritmetik med begränsad precision kommer att slå igenom i olika grad hos utsignalen. 26

FIR-filterstrukturer Direktform betyder att viktfaktorerna i strukturen är identiska som koefficienterna i överföringsfunktionen. Kaskadform betyder att ett högre ordningens filter realiseras som en seriekoppling av flera första och andra ordningens överföringsfunktioner. Polyfasrealisering betyder att signalen delas upp i block om L sampel i L parallella grenar (mycket viktigt i denna kurs). 27

FIR-filterstrukturer 28

FIR-filter med linjär fas Notera att antalet multiplikationer väsentligen halveras pga. att filtrets impulssvar är symmetriskt. 29

Polyfasstruktur för FIR-filter Alla FIR-överföringsfunktioner, exempelvis H(z) =h[0] + h[1]z 1 + h[2]z 2 + h3]z 3 + h[4]z 4 + h[5]z 5 + h[6]z 6 + h[7]z 7 + h[8]z 8 kan struktureras i grupper med var L:te (här L = 2) sampel H(z) =(h[0] + h[2]z 2 + h[4]z 4 + h[6]z 6 + h[8]z 8 ) + z 1 (h[1] + h[3]z 2 + h[5]z 4 + h[7]z 6 ) där överföringsfunktionen kan skrivas med H(z) = E 0 (z 2 ) + z 1 E 1 (z 2 ) E 0 (z) = h[0] + h[2]z 1 + h[4]z 2 + h[6]z 3 + h[8]z 4 E 1 (z) = h[1] + h[3]z 1 + h[5]z 2 + h[7]z 3 30

Polyfasstruktur för FIR-filter används vid decimering av samplingsfrekvens (a) decimering med faktor M (b) ekvivalenta polyfasstrukturer varav den högra är mera effektiv i vissa tillämpningar 31

IIR-filterstrukturer Direktform betyder att viktfaktorerna i strukturen är identiska koefficienterna i överföringsfunktionen. Kaskadform betyder att ett högre ordningens filter realiseras som en seriekoppling av flera första och andra ordningens överföringsfunktioner. Parallellrealisering betyder att överföringsfunktionen delas upp med partialbråksuppdelning. 32

IIR-filterstrukturer (direkt, icke-kanonisk form) 33

Justerbara IIR filter Mha ett första ordningens filter kan justerbara hög- och lågpassfilter designas bas & diskant -kontroll. Notera att dessa filter är effektkomplementära, dvs att de tillsammans ger en förstärkning som är konstant för alla frekvenser (se sid 393 395 och exemplet i figur 7.31). Mha ett andra ordningens filter kan justerbara bandpass- och bandspärrfilter designas. 34

Digital signalbehandling i audio & video GRUNDLÄGGANDE kunskaper digital filterdesign enligt specifikation snabba algoritmer som tex FFT aspekter vid implementering (speciellt ändlig ordlängd och dess implikationer) signalbehandling vid olika samplingsfrekvenser (eng. multirate signal processing ) filterbankar och dess nytta vid tex datakompression 35

Digital signalbehandling i audio & video några tillämpningar i AUDIO syntes, exvis den som förekommer i syntar effekter, exvis eko, efterklang, flanger, chorus, mm equalizer, dvs bas, diskant samt mer detaljerad kontroll kompression, exvis format som MP3 omvandling, exvis 1-bits A/D, samplingsfrekvens, mm 36

Digital signalbehandling i audio & video några tillämpningar i VIDEO två-dimensionell signalbehandling bildkompression, exvis format som JPEG signalbehandling i MPEG-video 37

Föreläsning 2: Digital filterdesign, mest om IIR-filter Leif Sörnmo 11 mars 2009 38

Viktiga frågor som idag ges ett svar: I vilka termer specificeras vanligtvis ett digitalt filter? Hur kan vi uppnå dessa specifikationer? Är analog filterdesign nödvändig för digital filterdesign? Hur hänger design av filtertyperna låg-, hög-, bandpass och bandspärr ihop med varandra? 39

Översikt Allmänt om filterdesign (kap. 9.1) Bilinjär transformation för design av IIR filter (kap. 9.2) Design av IIR lågpassfilter (kap. 9.3, se också kap 4.4) Design av IIR-filter med högpass-, bandpass- och bandspärrkaraktäristik (kap. 9.4, 9.5) 40

Syftet med digital filter design Att bestämma en realiserbar överföringsfunktion G(z) så att den approximerar en given specifikation på frekvensfunktion. För ett IIR-filter är det dessutom viktigt att överföringsfunktionen G(z) är garanterat stabil. 41

Filterspecifikation Ett filters frekvensfunktion specificeras vanligen mha av magnitud- och/eller fasfunktion. I praktiken är dock specifikation av endast magnitudfunktionen det absolut vanligaste, och därför behandlas bara denna typ av design i kursen. Fasfunktionen kan vid behov justeras med ett seriekopplat allpassfilter ( all-pass phase equalizer ). Notera att ett filter även kan specificeras i termer av hur impulssvaret ska se ut (dvs i tidsplanet!). 42

Ideala filterspecifikationer Det finns fyra huvudtyper av ideala filter, nämligen: 43

Ideala filterspecifikationer 2 Impulssvaret för varje ideal filtertyp är icke-kausalt med oändlig längd och kan således inte realiseras. I praktiken specificeras magnitudfunktionen så att pass- och spärrband håller sig inom ett toleransintervall, och övergångszonen mellan pass- och spärrband har en viss bredd i frekvens (trunkering ger roll-off ). 44

Storheter vid filterspecifikation Passband: 1 δ p G(e jω ) 1 + δ p, ω ω p Spärrband: G(e jω ) δ s, ω ω s Övergångszonens bredd: ω = ω s ω p 45

En not om filterförstärkning Det är ofta önskvärt att det digitala filtret har en förstärkning som är lika med 1. Detta kan enkelt åstadkommas genom att introducera en skalfaktor K i överföringsfunktionen G(z) som är bestämd av K = 1 G max där G max = max 0 ω π G(ejω ). 46

Logaritmisk filterspecifikation En specifikation anges ofta som en dämpning uttryckt i logaritmerad form, dvs. angiven i decibel (db). G(ω) = 20log 10 G(e jω ), Maximalt rippel i passbandet, α p, och minimal dämpning i spärrbandet, α s, ges då av α p = 20log 10 (1 δ p ) respektive α s = 20log 10 δ s. 47

Hertz och normerad frekvens I praktiken vill vi specificera ett digitalt filter i onormerad frekvens (Hertz), uttryckt i passbandets kantfrekvens F p och spärrbandets kantfrekvens F s. Omräkning till normerad frekvens ω görs med ω = Ω = 2πF = 2πFT F T F T där F betecknar onormerad frekvens, F T samplingsfrekvensen (i Hertz), och T samplingsintervallets längd (i sekunder). 48

Hertz och normerad frekvens ett exempel Antag att ett högpassfilter ska designas med följande specifikationer: F p = 7 khz, F s = 3 khz och F T = 25 khz. Omräkning till normerad frekvens blir då: ω p = ω s = 2π 7 103 25 10 3 = 0.56 π 2π 3 103 25 10 3 = 0.24 π 49

IIR filterstruktur Överföringsfunktionen för ett IIR-filter ges av H(z) = p 0 + p 1 z 1 + p 2 z 2 +... + p M z M d 0 + d 1 z 1 + d 2 z 2 +... + d N z N + Stränga specifikationer kan uppnås med små M och N Ej linjär fas Ej alltid stabilt 50

FIR filterstruktur Överföringsfunktionen för ett FIR-filter ges av H(z) = N n=0 h(n)z n + Kan designas med linjär fas, och kräver då ett symmetriskt eller antisymmetriskt impulssvar h(n), dvs h(n) = ±h(n n). + Alltid stabilt, även vid kvantisering av h(n):s koefficienter. Stränga krav leder till hög ordning N. 51

Jämförelse FIR-filter behöver N FIR multiplikationer per utsampel (dock, FIR-filter med linjär fas behöver bara (N FIR + 1)/2 mult per utsampel), medan IIR-filter behöver 2N IIR +1 mult/utsampel. För att uppfylla samma magnitudfunktion med FIR- som med IIR-filter krävs dock betydligt större ordning, N FIR >> 10N IIR, och därmed är FIR-filter mera beräkningskrävande. Detta samband gäller inte om IIR måste kompletteras med ett allpassfilter för att uppnå linjär fas. FIR har inga stabilitetsproblem vid tex begränsad precision. 52

Vanligaste designtekniken för digitala IIR-filter (denna föreläsning) 1. Transformera de digitala filterspecifikationerna till motsvarande för ett analogt prototyp-lågpassfilter. 2. Bestäm överföringsfunktionen H a (s) = P a(s) för det analoga D a (s) prototyp-lågpassfiltret (index a betecknar analog ). 3. Transformera H a (s) till den eftersökta digitala överföringsfunktionen H(z) = P(z) D(z). 53

Vanligaste designtekniken för digitala FIR-filter (nästa föreläsning) Direkt approximation av det önskade magnitudsvaret. Ofta med krav på linjär fas. Denna design av digitala FIR-filter har inget med analoga filter att göra. 54

Val av filterordning För IIR-filter ingår beräkning av den modellordning som krävs i designproceduren. För FIR-filter finns olika approximationer som typiskt är inverst beroende av övergångszonens bredd. Ju smalare och brantare övergångszon desto högre ordning, N. Denna design är bara vägledande och måste testas för att justeras rätt. 55

Varför designar man digitala IIR-filter med hjälp av analoga filter? De analoga metoderna är mycket bra. Lösningarna blir slutna uttryck. Stora tabeller kring de analoga filterna finns tillgängliga. Många tillämpningar behöver simulera analoga filter. 56

Transformation från s- till z-planet? Den bärande idén för den vanligaste IIR-designtekniken är att transformera (avbilda) s- till z-planet så att viktiga egenskaper hos det analoga filtrets magnitudfunktion bevaras. Vi kräver att en sådan transformation uppfyller följande villkor: att imaginära axeln (jω) i s-planet transformeras på enhetscirkeln i z-planet, och att ett stabilt analogt filter H a (s) transformeras på ett stabilt digitalt filter G(z). 57

Hur transformera från s- till z-planet? Bilinjär transformation är den vanligaste transformationen och definieras av s = 2 ( ) 1 z 1 T 1 + z 1. Det intressanta och eftersökta sambandet mellan G(z) och H a (s) ges av G(z) = H a (s) ( ) s= 2 1 z 1 T 1+z 1 58

Bilinjär transformation i grafiska termer Avbildning av s- till z-planet: 59

Bilinjär transformations egenskaper Transformationen är mycket olinjär eftersom hela den positiva imaginära axeln i s-planet (dvs., från Ω = 0 till ) avbildas på den övre delen av enhetscirkeln i z-planet (dvs., från z = 1 till 1); på liknande sätt för den negativa axeln. Den distorsion som förorsakas av bilinjär transformation kallas för frekvensförvridning ( frequency warping ). 60

Bilinjär transformation och frekvensaxeln Specifikt för s = jω, z = e jω och med T = 2 så har vi att jω = 1 e jω = j tan(ω/2), dvs Ω = tan(ω/2) 1 + e jω 61

Bilinjär transformation och filterkaraktäristik 62

Design med bilinjär transformation 1. Transformera ω p och ω s med Ω = tan(ω/2) för att bestämma de motsvarande analoga storheterna Ω p och Ω s (kap 9.2). 2. Designa det analoga filtret H a (s) med lämplig metod (kap 4.4, 4.5). 3. Bestäm det digitala filtret G(z) genom att transformera det analoga filtret H a (s) mha. (kap 9.2) G(z) = H a (s) ( ) s= 1 z 1 1+z 1 Fasen bevaras ej genom transformen. 63

IIR filterdesign med frekvenstransformation (HP,BP,BS) Spec. av G D (z) Prewarping av ω p och ω s till Ω p och Ω s Spec. av H D (s) Analog frekvenstransform (om HP,BP,BS) Spec. av H LP (s) Design av analogt LP prototypfilter H LP (s) Mitra 9.2 Mitra 4.5 Mitra 4.4 Mitra 9.4 G D (z) Bilinjär transform H D (s) Analog frekvens transform (om HP,BP,BS) Mitra 9.2 Mitra 4.5 Mitra 9.5 G D (z) Digital spektraltransform till LP (om HP,BP,BS) G LP (z) Bilinjär transform Mitra 9.5 Mitra 9.2 64

Exempel på IIR filterdesign som bygger på frekvenstransformation På tavlan: Design av ett digitalt lågpassfilter mha bilinjär transformation och analog filterdesign, enligt kap 9.3. Hemmavid: Design av de andra filtertyperna (högpass, bandpass och bandspärr) beskrivs i kap 9.4. 65

Digital spektral transformation: LP-till-LP Transformera existerande LP-filter (med brytfrekvens ω c ) med z 1 = 1 αẑ ẑ α där α väljs så att den önskade brytfrekvensen ˆω c fås (se nedan). Observera olinjär frekvenstransformation! 66

Viktiga frågor som nu har ett svar: I vilka termer specificeras vanligtvis ett digitalt filter? Hur kan vi uppnå dessa specifikationer? Är analog filterdesign nödvändig för digital filterdesign? Hur hänger design av filtertyperna låg-, hög-, bandpass och bandspärr ihop med varandra? 67

Föreläsning 3: Digital FIR-filterdesign Leif Sörnmo 11 mars 2009 68

Översikt Design av FIR-filter mha fönstermetoden; betoning på filter av standardtyperna lågpass, högpass, bandpass och bandspärr (kap 10.2). Kriteriebaserad design av FIR-filter med linjär fas, sk ekvirippelfilter ; denna design lämpar sig även för andra filter än standardtyperna (kap 10.3). Designexempel på ovannämnda FIR-filter (kap 10.5). 69

Impulssvar för idealt lågpassfilter h LP (n) = 1 2π π π H LP(e jω )e jωn dω h LP (n) = sin ω cn πn, n Idealt filter har skarpa kanter och nollfas. Detta ger oändlig längd och icke-kausalt impulssvar. 70

Impulssvar för idealt högpassfilter h HP (n) = 1 2π π π H HP(e jω )e jωn dω h HP (n) = 1 ω c π, n = 0 sin ω cn πn, n 0 71

Impulssvar för andra ideala filter bandpass, bandspärr, multiband Hilberttransformerare (= 90 o fasförskjutning av signalen) H HT (e jω ) = j, π < ω < 0 j, 0 < ω < π differentierare H DIF (e jω ) = jω, 0 < ω < π 72

Design av FIR-filter mha fönstermetoden (Windowed Fourier series) Ett impulssvar med oändlig längd måste, för att bli användbart, trunkeras (och skiftas åt höger för att bli kausalt). Trunkering förändrar det ideala hos magnitudfunktionen och introducerar ett oscillatoriskt beteende (rippel) Gibbs fenomen, se exemplet nedan för två olika filterlängder. e 1.5 d u t i 1 n g a 0.5 M Magnitude N = 20 N = 60 0 0 0.2 0.4 0.6 0.8 1 ω / π 73

Gibbs fenomen som faltning Trunkering innebär att h d (n) multipliceras med ett rektangulärt fönster w(n): en operation som i frekvensplanet svarar mot att H d (e jω ) faltas med fönstrets Fourier-transform Ψ(e jω ). 74

Gibbs fenomen Antal rippel i såväl pass- som spärrband ökar med filterlängden samtidigt som varje rippels bredd minskar. Amplituden för det största ripplet är densamma för alla filterlängder (ca 11% av amplitudskillnaden mellan passband och spärrband i det ideala filtret). Samma oscillatoriska beteende uppträder i magnitudfunktion för andra typer av ideala filter. 75

Minskad inverkan av Gibbs fenomen Använd ett fönster w(n) (ej rektangulärt!) som på ett mjukt sätt minskar förekomsten av rippel; ett antal sådana fönster, såväl fixa som justerbara, kommer härnäst att behandlas. Specificera en tillräckligt stor övergångszon från pass- till spärrband i magnitudfunktionen. 76

Vanliga fixa fönster Hanning: Hamming: Blackman: w(n) = 0.5 + 0.5cos ( ) 2πn 2M+1 w(n) = 0.54 + 0.46cos ( ) 2πn 2M+1 w(n) = 0.42+0.5cos ( ) ( ) 2πn 2M+1 +0.08cos 4πn 2M+1 där M n M gäller för alla fönster. 77

Egenskaper hos fixa fönster Magnitudfunktionen för alla typer av fönster karaktäriseras av dess huvudlob, centrerad kring ω = 0, och en rad sidolober. Ett fönsters prestanda vid filterdesign avgörs av huvudlobens bredd (uppmätt som avståndet mellan nollgenomgångarna närmast ω = 0) och sidolobernas amplitud (uppmätt som skillnaden i amplitud, vanligen i db, mellan huvudlob och största sidolob). 78

Magnitudfunktion för vanliga fixa fönster Magnitudfunktionen för de vanligaste fönstren, dvs rektangulärt, Hanning, Hamming och Blackman; M = 25. 79

Egenskaper hos fixa fönster (forts) En ökning av huvudlobens bredd leder till att övergångszonens bredd också ökar. En minskning av sidlobernas amplitud leder till en förbättrad dämpning i spärrbandet. 80

Fönstring av idealt LP-filter samband 81

Justerbara fönster för FIR-filter design Det är ibland önskvärt att kunna justera sidlobernas amplitud ( ripplet ) och därför finns det fönster med en sådan frihetsgrad. De två vanligaste är Dolph-Chebyshev och Kaiser (se nedan). 0 Kaiserfönster, beta=2 0 Kaiserfönster, beta=4-10 -10-20 -20 magnitud (db) -30 magnitud (db) -30-40 -40-50 -50-60 0 0.05 0.1 0.15 0.2 0.25 normerad frekvens -60 0 0.05 0.1 0.15 0.2 0.25 normerad frekvens 82

Skattning av ordning på FIR-filter Ordningen bestäms med olika approximativa uttryck beroende på om filtret är designat med ett fixt fönster, se exvis ekv 10.3, eller justerbart fönster som tex Kaiser, se ekv 10.42. 83

Trunkering minimerar kvadratfelet Vi vill bestämma den frekvensfunktion H t (e jω ), vars impulssvar h t (n) har den ändliga längden 2M + 1, som bäst approximerar den önskade frekvenssvaret H d (e jω ) utifrån det kvadratiska integralfelet Φ = 1 π 2π H t(e jω ) H d (e jω ) 2 dω π där Hur ska h t (n) väljas? H t (e jω ) = M n= M h t (n)e jωn. 84

Trunkering minimerar kvadratfelet, forts Med hjälp av av Parsevals relation kan vi skriva Φ = 1 2π = = π n= M n= M π H t(e jω ) H d (e jω ) 2 dω h t (n) h d (n) 2 h t (n) h d (n) 2 + M 1 n= h 2 d (n) + n=m+1 h 2 d (n). Om impulssvaret h t (n) väljs som h t (n) = h d (n) för M n M dvs trunkering av h d (n) så minimeras det kvadratiska felkriteriet! 85

FIR-filter design (ekvirippel): Parks-McClellans algoritm Ett annat sätt att konstruera FIR-filter efter en specifikation är att betrakta amplitudfunktionen för ett filtret som en funktion av ett antal parametrar och sedan matcha denna funktion till en mönsterfunktion för den filtertyp som önskas. Matchningen görs genom att skillnaden mellan funktionerna minimeras med baserat på ett kriterium. Strategin bygger in att filtret ska ha linjär fas och jämn amplitud (ekvirippel) i passband och spärrband. 86

Steg 1 Utnyttja den linjära fasstrukturen Ett FIR-filter med linjär fas kan ha udda eller jämn längd N + 1, och symmetriskt eller antisymmetriskt impulssvar. De fyra möjliga kombinationerna brukar betecknas med filter av typen 1, 2, 3 respektive 4. Notera: endast Typ 1 behandlas här, dvs udda längd och symmetriskt (se boken för övriga fall). 87

Steg 1, forts Utnyttja den linjära fasstrukturen Frekvensfunktionen för ett FIR-filter med linjär fas (Typ 1) ges av H(e jω ) = N n=0 = e jn 2 ω h(n)e jωn = (egenskapen h(n) = h(n n)) h ( ) N 2 + 2 N/2 k=1 h ( ) N 2 k cos(ωk) Inför M = N 2, a(0) = h(m) och a(k) = 2h(M k),1 k M, så kan amplitudfunktionen H(ω) skrivas som en reell funktion i ω. H(ω) = M k=0 a(k) cos(ωk) 88

Steg 1, forts Utnyttja linjär fas strukturen Amplitudfunktionen kan för alla filtertyperna (1 4) skrivas som H(ω) = Q(ω)A(ω) där A(ω) = L k=0 ã(k) cos(ωk) För filtertyp 1 gäller att H(ω) = A(ω) då L = M, ã(k) = a(k) och Q(ω) = 1. För filtertyperna 2, 3 och 4 är dessa storheter annorlunda. 89

A(ω) som polynom i cos ω Använd binomialteoremet och bestäm realdelen för att få den eftersökta cos-termen cos(ωk) = Re { (cos ω + j sin ω) k} = Re Alltså: = = k/2 l=0 k/2 ( k l=0 ( k 2l 2l k l=0 ) (cos ω) k 2l ( 1) l (sin ω) 2l ( k ) (cos ω) k 2l ( 1) l (1 cos 2 ω) l = l ) (cos ω) k l (j sin ω) l k l=0 β l (cos ω) l A(ω) = L k=0 a(k) cos(ωk) A(ω) = L k=0 α(k)(cos ω) k 90

A(ω) som polynom i cos ω, forts Alltså A(ω) är ett polynom i cos ω av ordning L, A(ω) = L k=0 α(k)(cos ω) k och har L 1 extremvärden i intervallet 0 < ω < π, som utgör det sk ripplet. Ripplet blir snabbare för högre värden på L. Om vi väljer ordningen N så kommer vår amplitudfunktion H(ω) (= A(ω) för typ 1) att kunna beskrivas som ett polynom av ordning L = N/2. 91

Önskad amplitudfunktion D(ω) Vi behöver nu bestämma koefficienterna α(0),..., α(l) så att amplitudfunktionen H(ω) matchar en önskad amplitudfunktion D(ω), t.ex. för ett lågpassfilter D(ω) = { 1 passband 0 spärrband med något lämpligt minimeringskriterium. 92

Steg 2 Minimeringskriterium Minimax-kriteriet (även känt som Chebyshev-kriteriet) går ut på att minimera det maximala, absoluta felet ε som erhålles med där ε = max ω R E(ω) E(ω) = W(ω)[ H(ω) D(ω)], över de frekvensintervall R där amplitudfunktionen D(ω) specificerats, dvs exkluderandes en eller flera övergångszoner mellan pass- och spärrband. W(ω) är en viktfunktion som är styckvis konstant över samma intervall som D(ω) och som viktar det tolererade ripplet så att det blir lika stort i alla intervall. 93

De önskade parametrarna För ett givet N (och därmed L) så söker vi L+2 okända variabler, dvs α(0), α(1),..., α(l) och ε och behöver således lika många ekvationer som beskriver felet för att lösa systemet. 94

Alterneringsteoremet För att en amplitudfunktion definierad som en linjärkombination av cosinusar, dvs H(ω) = L k=0 a(k)cos(ωk) ska vara den bästa, unika approximationen till D(ω), så är ett nödvändigt och tillräckligt villkor att E(ω) (genom H(ω)) åtminstone har L + 2 extremfrekvenser i de mängden R. Dessa extremfrekvenser är sådana att för ω 0 < ω 1 < < ω L+1, och E(ω i ) = E(ω i+1 ), i = 0,..., L + 1 ε = E(ω i ) = max ω R E(ω), i = 0,..., L + 1 Filtret måste således ha ekvirippelkaraktär. 95

Extremvärden hos A(ω) Utöver A(ω):s lokala min/max (L 1 st) finns extrempunkterna ω = 0, ω = π, ω = ω p och ω = ω s, dvs totalt L+3 extremvärden. OK att använda alterneringsteoremet. 96

Steg 3 Optimering Ett system med L + 2 ekvationer kan nu skapas genom att utvärdera minimeringskriteriet för L + 2 av extremfrekvenserna. E(ω i ) = W(ω i ) L k=0 α(k)(cos ω i ) k D(ω i ) = ( 1) i ε, 0 i L+1 ger de okända storheterna α(0),..., α(l) och ε, under förutsättning att extremvärdenas frekvenser är kända. Termen ( 1) i beror på den alternerande egenskapen hos amplitudfunktionen. Problemet är att extremfrekvenserna är okända... 97

Steg 3, forts Optimering Remez utbytesalgoritm är en mycket effektiv procedur för att bestämma extremvärdenas frekvenser ( extremfrekvenser ) hos det trigonometriska polynomet. Algoritmen startar med en försöksmängd med frekvenser R 0 = {ω0 0,..., ω0 L+1 } som sedan systematiskt byts ut mot nya tills den eftersökta mängden med extremfrekvenser erhålls. Utbytet sker iterativt på följande vis: 1. Lös ekvationssystemet på föregående sida. Lösningen har ett fel som oscillerar med amplituden ε k på mängden med extremfrekvenser R k för iteration k. 98

2. Beräkna A(ω i ) och interpolera mellan dessa extremfrekvenser för att få fram amplitudfunktionen i tillräckligt tätt antal punkter. 3. Sök frekvensaxeln för att se om, och ev. var, ε k+1 = max ω E k (ω) är större än felet ε k som beräknades i steg 1. 4. Om ε k+1 ε k är litet, avsluta proceduren. Om ej, bestäm extremfrekvenserna i R k+1 och gå till steg 1. Med extremfrekvenserna i R k tillgängliga så kan det eftersökta ekvirippelfiltret beräknas och designen avslutas! 99

Remez utbytesalgoritm I detta fall är ε k för litet. 100

Remez utbytesalgoritm exempel 101

Föreläsning 4: Algoritmer för DSP Leif Sörnmo 11 mars 2009 102

Översikt Filterstrukturers beräkningsbarhet DFT och Goertzels rekursiva beräkningsalgoritm DFT och effektiv beräkning m.h.a. FFT 103

Beräkningsbarhet av filterstrukturer Ett digitalt filter kan beskrivas med ett antal differensekvationer som relaterar ut- till insignal. Filtret nedan kan t.ex. beskrivas med sex ekvationer: 104

Beräkningsbarhet av filterstrukturer, forts Ekvationerna är följande: w 1 (n) = x(n) αw 5 (n) w 2 (n) = w 1 (n) δw 3 (n) w 3 (n) = w 2 (n 1) w 4 (n) = w 3 (n) + εw 2 (n) w 5 (n) = w 4 (n 1) y(n) = βw 1 (n) + γw 5 (n) Hur möjliga är dessa att beräkna?? 105

Beräkningsbarhet av filterstrukturer, forts Ekvationerna är inte möjliga att beräkna p.g.a. att t.ex. beräkning av w 1 (n) kräver kunskap om w 5 (n) som först beräknas i näst sista steget; p.s.s. kräver beräkning av w 2 (n) kunskap om w 3 (n) som först beräknas i påföljande steg. Ekvationerna är ej beräkningsbara. Vi behöver en allmän metod för att avgöra ett filters beräkningsbarhet. 106

Matrisrepresentation Det tidigare ekvationssystemet kan uttryckas i matrisform som: w 1 (n) w 2 (n) w 3 (n) w 4 (n) w 5 (n) y(n) = + x(n) 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 α 0 1 0 δ 0 0 0 0 0 0 0 0 0 0 ε 1 0 0 0 0 0 0 0 0 0 β 0 0 0 γ 0 w 1 (n 1) w 2 (n 1) w 3 (n 1) w 4 (n 1) w 5 (n 1) y(n 1) w 1 (n) w 2 (n) w 3 (n) w 4 (n) w 5 (n) y(n) 107

Kompakt matrisrepresentation Det tidigare ekvationssystemet kan kompakt uttryckas som: y(n) = x(n) + Fy(n) + Gy(n 1) y(n) = [ w 1 (n) w 2 (n) w 3 (n) w 4 (n) w 5 (n) y(n) ] T x(n) = [ x(n) 0 0 0 0 0 ] T F = 0 0 0 0 α 0 1 0 δ 0 0 0 0 0 0 0 0 0 0 ε 1 0 0 0 0 0 0 0 α 0 β 0 0 0 γ 0, G = 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 108

Kompakt representation och beräkningsbarhet Ett filter är beräkningsbart om alla element i och ovanför diagonalen i matrisen F är lika med noll. I vårt specifika fall: filtret är inte beräkningsbart eftersom flera element skilda från noll finns ovanför diagonalen. 109

Beräkningsbart filter - ändra ordningen! w 3 (n) w 5 (n) w 1 (n) w 2 (n) y(n) w 4 (n) = + 0 0 x(n) 0 0 0 + 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 α 0 0 0 0 δ 0 1 0 0 0 0 γ β 0 0 0 1 0 0 ε 0 0 w 3 (n 1) w 5 (n 1) w 1 (n 1) w 2 (n 1) y(n 1) w 4 (n 1) w 3 (n) w 5 (n) w 1 (n) w 2 (n) y(n) w 4 (n) 110

Precedensgrafen hjälpmedel för systematisk bedömning av beräkningsbarhet Filtret ovan kan ritas om till en s.k. precedensgraf där varje signalvariabel w i (n) representeras med en nod och varje multiplikation eller fördröjning med en gren. Resultatet blir då 111

Reducerad precedensgraf En reducerad precedensgraf erhålles om alla grenar tas bort som representerar fördröjningar eller utgår från ingångsnoden. För vårt tidigare exempel erhålls då 112

Gruppering av noder 1 Algoritm för gruppering av noder: Inkludera alla noder i en mängd { N 1 } som bara har utåtgående grenar. Inkludera alla noder i en mängd { N 2 } som bara har utåtgående grenar och som startar från noder i { N 1 }. o.s.v. Denna process avslutas när en mängd { N f } erhållits som bara innefattar inkommande grenar. 113

Gruppering av noder 2 Med denna gruppering av noder blir filtret beräkningsbart genom att först bestämma de signalvariabler som tillhör { N 1 }. Därefter bestäms de signalvariabler som tillhör { N 2 } baserat på det som redan bestämts i { N 1 }, o.s.v. För vårt tidigare exempel erhålls då { N 1 } = { w 3 (n), w 5 (n)} { N 2 } = { w 1 (n)} { N 3 } = { w 2 (n)} { N 4 } = { w 4 (n), y(n)} 114

Gruppering av noder 3 Grupperingen i noder och den sekvensiella strukturen i beräkningen av signalvariabler kan grafiskt representeras på följande vis: 115

Implementation av digitala filter I Matlab finns ett flertal funktioner för att simulera (=beräkna utsignalen från) filter med givna täljar- och nämnarpolynom. Några av dessa är filter - Direkt II t implementation filtfilt - Zero-phase using forward and backward filtering 116

Effektiva algoritmer är ett måste! Digital signalbehandling fick sitt definitiva genombrott när DFT:n kunde beräknas effektivt med FFT:n. Utvecklingen av effektiva (=snabba) versioner av en algoritm utgör en extremt viktig del i digital signalbehandling, och har haft en avgörande betydelse för framgångsrik komprimering av audiosignaler och video. 117

Diskreta Fouriertransformen (DFT) Beräkning av ett värde i DFT:n X(k) = X(e jω ) ω= 2πk N = N 1 n=0 x(n)e j2πkn/n, 0 k N 1 kräver N komplexa multiplikationer och N 1 komplexa additioner. För att beräkna alla N värdena behövs således N 2 komplexa multiplikationer och (N 1)N komplexa additioner. Man kan visa att det motsvarande antalet reella multiplikationer/additioner är 4N 2 /(4N 2)N. Slutsats: uppsnabbning av beräkningarna är helt nödvändig! 118

Goertzels algoritm för beräkning av DFT Motiv: vi vill beräkna DFT:n rekursivt för endast en viss frekvens X(k) så att multiplikationer kan tjänas! För ett givet k vill vi beräkna: X(k) = N 1 n=0 x(n)e j2πkn/n = x(0) + x(1)e j2πk/n + + x(n 1)e j2πk(n 1)/N Låt oss studera följande rekursion y k (n) = x(n) + e j2πk/n y k (n 1), n = 0,..., N med begynnelsevillkoren y k ( 1) = 0 och x(n) = 0. 119

Goertzels algoritm för beräkning av DFT 2 Följaktligen y k (0) = x(0) + e j2πk/n y k ( 1) = x(0) y k (1) = x(1) + e j2πk/n y k (0) = x(1) + e j2πk/n x(0) y k (2) = x(2) + e j2πk/n y k (1) = x(2) + e j2πk/n x(1) + e j2πk2/n x(0). y k (N) = x(n) + e j2πk/n x(n 1) + + e j2πk(n 1)/N x(1) + e j2πkn/n x(0 Förlängning av y k (N) med e j2πkn/n = 1 ger y k (N) = x(0) + e j2πk/n x(1) + + e j2πk(n 1)/N x(n 1) som identifieras som definitionen på X(k), dvs X(k) = y k (N). Observera: Till skillnad från DFT:n så behöver endast en komplex exponential e j2πk/n beräknas i Goertzels algoritm. 120

Goertzels algoritm för beräkning av DFT 3 1 komplex multiplikation = 4 reella mult och 2 reella add 1 komplex addition = 2 reella add För varje enskild frekvens (dvs. DFT-sampel) krävs: N/N komplexa mult/add = 4N/4N reella mult/add För alla N frekvenserna krävs: 4N 2 /4N 2 reella mult/add, att jämföra med DFT:n som kräver 4N 2 /(4N 2)N reella mult/add, dvs färre add Så vad är egentligen vitsen med Goertzels algoritm? 121

Goertzels algoritm för beräkning av DFT 4 Detta är en effektivare struktur av Goertzels algoritm som kräver 2N +4/4N +4 reella mult/add för beräkning av enskild frekvens. 122

Snabba Fouriertransformen (FFT) Huvudidé: Dela upp DFT-summan successivt i DFT-summor med färre punkter så att periodicitet och symmetriegenskaper hos termen e j2πkn N kan utnyttjas effektivt. Resultat: Dramatisk uppsnabbning av DFT-beräkning, resulterandes i N log 2 N muliplikationer istället för de N 2 som krävs vid rakfram beräkning. 123

Snabba Fouriertransformen (FFT) 2 Låt oss göra en enkel uppdelning av DFTn, nämligen: X(k) = = = N 1 x(n)e j2πkn/n n=0 N 2 1 n=0 N 2 1 n=0 x(2n)e j2πk2n/n + N 2 1 n=0 x(2n)e j2πkn/n 2 + e j2πk/n x(2n + 1)e j2πk(2n+1)/n N 2 1 n=0 x(2n + 1)e j2πkn/n 2 dvs. summan av N/2-punkters DFT av x(2n) respektive x(2n+1) där den senare DFTn multipliceras med faktorn e j2πk/n. Denna DFT är periodisk med längden N/2. 124

Snabba Fouriertransformen (FFT) 3 Följaktligen kan vi då uttrycka X(k) som X(k) = X 0 ( k N/2 ) + e j2πk/n X 1 ( k N/2 ), 0 k N 1 där k N/2 = k modulo(n/2) och X 0 ( k N/2 ) N/2-punkters DFT av x 0 (n) = x(2n) X 1 ( k N/2 ) N/2-punkters DFT av x 1 (n) = x(2n + 1) z 1 2 2 125

Beräkning av DFT mha två N/2-punkters DFT Flödesgraf för fallet N = 8. 126

Beräkning av DFT mha 4 N/4-punkters DFT För fallet N = 8 så är detta den maximala uppdelningen, eftersom en 2-punkters DFT är den minsta möjliga! 127

Uppdelning av DFT: antal multiplikationer I varje steg krävs 8 komplexa mult. vilket med tre steg kräver 24 komplexa mult. allmänt krävs N log 2 N komplexa mult. 128

Fjärilsberäkningen den grundläggande FFT-modulen Ψ r+1 (α) = Ψ r (α) + W l N Ψ r(β) Ψ r+1 (β) = Ψ r (α) + W l+(n/2) N Ψ r (β) = Ψ r (α) WN l Ψ r(β) 129

FFT decimering i tid Den uppdelning av DFT:n som är gjord här kallas ( decimeringi-tid ) X(k) = = N 1 x(n)e j2πkn/n n=0 N 2 1 n=0 x(2n)e j2πk2n/n + N 2 1 n=0 x(2n + 1)e j2πk(2n+1)/n där varannat insignal-sampel går till vardera grenen. 130

FFT decimering i frekvens En alternativ DFT-uppdelning är ( decimering-i-frekvens ) X(k) = = N 1 x(n)e j2πkn/n n=0 N 2 1 n=0 x(n)e j2πkn/n + N 2 1 n=0 x(n + N 2 )e j2πk(n+n 2 )/N där FFT istället beräknas för konsekutiva block vilket leder till olika ekvationer för att beräkna de jämna och udda samplen av DFT:n. 131

Beräkning av DFT i Matlab I exempel 11.16 genomförs beräkningen av FFT för en sinussignal som har två olika frekvenser och visar därigenom på en viktig egenskap hos DFT:n. Missa inte att köra igenom detta exempel! 132

Föreläsning 5: Kvantisering Leif Sörnmo 11 mars 2009 133

Översikt Talrepresentation och aritmetik, kap. 11.8 11.9 Digitala filter och effekten av ändlig ordlängd, kap. 12.1 12.6 Inverkan på pol- och nollställesplacering Inverkan på frekvensfunktion Inverkan på utsignalen 134

Talrepresentation (Kap. 11) Fixtal och flyttal är de två vanligaste sätten att representera ett binärt tal: Fixtal η: representeras antingen som heltal där 0 η 2 B 1 eller som bråkdel 0 η 1 2 B. Flyttal η: representeras som η = M 2 E där M kallas mantissa och E exponent. 135

Representation av negativa tal Representation av b-bitars fixtals bråkdel (såväl pos. som neg.): kan göras på följande tre olika sätt (alla lika för positiva tal): 1. tecken-magnitud: s = 0 η = b a i 2 i, i=1 s = 1 η = b a i 2 i. 2. 1-komplement: som tecken-magnitud men där negativa tal istället representeras med komplementet. 3. 2-komplement: som 1-komplement men där 1 adderas till den minst signifikanta biten (LSB). Vanligast! i=1 136

Hur många bitar krävs för decimal noggrannhet? Ett tal som har d decimaler har en nogrannhet på ±0.5 10 d. Om samma tal ska representeras binärt med b bitar så blir istället noggrannheten ±0.5 2 b. Följaktligen för att behålla samma noggrannhet mellan de olika sätten att representera ett tal så behövs: 0.5 10 d = 0.5 2 b b = dlog 2 10 3.3d bitar Alltså: 8 bitar 2.1 decimaler, 16 bitar 4.8, 32 bitar 9.7. 137

Representation av decimaltal ett exempel Representera decimaltalet 0.95624 med 4 bitar m.h.a. 2-komplement (som innehåller en teckenbit och 3 decimalbitar), samt skatta antalet bitar som krävs för att representera detta decimaltal korrekt. Multiplicera med antalet tillgängliga bitar (förutom teckenbiten), dvs. 0.95624 2 3 = 7.64992, och avrunda till närmaste heltal neråt, dvs 7 som binärt är 0111 (dvs. största möjliga tal som kan representeras). Antalet bitar som krävs är således 3.3 5 = 16.5 17 bitar. 138

Fixtalsmultiplikation ett exempel Beräkna kvadraten på 0.5625 mha 2-komplementsaritmetik med en noggrannhet på 5 bitar. Produkten 01001 01001 = 0001010001 innehåller två teckenbitar varav den vänstra kan tas bort, och där de 4 minst signifikanta bitarna av de övriga åtta skiftas bort. Slutresultatet blir därför 00101 = 2 2 + 2 4 = 0.3125, att jämföra med det exakta värdet som är 0.31640625. 139

Fixtalsaddition ett exempel Beräkna ( 0.25 + 0.75) och (0.5 + 0.75 0.5) med 4 bitar. De ingående talen är binärt 0.25=0010, 0.5=0100 och 0.75=0110. Summa 1: 0110+1110=10100 som, om vi struntar i den mest vänstra biten, blir 0100=0.5. Summa 2: 0100+0110=01010 och därefter 1010+1100=10110 som, om vi struntar i den mest vänstra biten, blir 0110=0.75. 140

Flyttalsrepresentation IEEE standard Det sk ANSI/IEE-formatet är vanligast för flyttalsrepresentation och omfattar 32 eller 64 bitar. I ett 32 bitars ord ryms 8 bitar till exponent (E), 23 bitar till mantissa (M) och 1 teckenbit (S): Ett flyttal representeras som η = ( 1) S 2 E 127 M, 0 M 1. Exempel: för flyttalet 0 10000011 110000...000 så gäller att E = 10000011 = 131, M = 110000...000 = 0.75 och S = 0. Följaktligen är η = ( 1) 0 2 131 127 0.75 = 16 0.75 = 12 141

Flyttalsrepresentation IEEE addition/multiplikation Vi utgår från två flyttal X 1 = M 1 2 E 1 och X 2 = M 2 2 E 2. Addition leder till X = X 1 + X 2 = (M 1 + M 2 2 E 2 E 1 ) 2 E 1 om vi antar att X 1 > X 2. Här måste vi göra exponenterna lika stora för båda flyttalen, och i detta fall är det X 2 som ändras eftersom det är det mindre. Multiplikation leder till X = X 1 X 2 = (M 1 M 2 ) 2 E 1+E 2. 142

Kvantisering (Kap. 12) Värdet x kvantiseras med en funktion Q(x) till ett b-bitars värde medelst operationerna trunkering eller avrundning. 143

Kvantisering och digitala filter I samband med digitala filter finns flera frågor kring kvantisering. 1. Vad händer med ett filter när filterkoefficienter kvantiseras? IIR/FIR? 2. Hur påverkar kvantisering av insignalen systemet? Kommer kvantiseringsfelet på insignalen att förstärkas genom filtret? 3. Vad får kvantiseringen i det aritmetriska operationerna (t.ex. produkt) för effekt? 144

1. Kvantisering av filterkoefficienter Idealt så är en signals sampel och ett filters koefficienter angivna med oändlig precision; dock, dessa storheter måste i praktiken diskretiseras (ändlig precision) för att kunna implementeras i dator. Vad händer t.ex. med ett filters egenskaper när dess koefficienter representeras med ett ändligt antal bitar? 145

Kvantisering av filterkoefficienter, forts Ändlig ordlängd för att representera dess koefficienter påverkar ett filters: frekvensfunktion (dock, olika mycket påverkan beroende på den specifika filterstruktur som valts, dvs. direkt-form, kaskadkopplad, lattice, osv). stabilitet (gäller endast IIR-filter). Stabilitet som gäller vid oändlig ordlängd kan tyvärr inte garanteras vid ändlig ordlängd. 146

Elliptiskt IIR-filter (direkt-form) kvantisering antal bitar respektive 5 bitars kvantisering av filterkoefficienter. 147

Elliptiskt IIR-filter (kaskad) kvantisering Direkt-form (överst) och kaskadkopplad filterstruktur (under). 148

Ändlig ordlängd i IIR-filter ett exempel Ett bandpass IIR-filter har följande systemfunktion: H(z) = 1 1 + a 1 z 1 + a 2 z 2 där a 1 = 1.957558 och a 2 = 0.995813. Studera hur centerfrekvensen f c förändras om koefficienterna kvantiseras till 8 bitar! Okvantiserat: Nämnaren i H(z) kan skrivas om med polära koordinater (r, θ) som (1 2rcos(θ)z 1 + r 2 z 2 ) vilket ger att r = a 2 = 0.99795 och θ = arccos ( a ) 1 2r = 11.25 o, och alltså blir centerfrekvensen f c = 11.25/360 = 0.0312. Kvantiserat: Eftersom a 1 är större än 1 så behöver de 8 bitarna användas så att 1 bit går till tecken, 1 bit till heltalsdelen och 6 bitar till bråkdelen av koefficienterna. 149

Ändlig ordlängd i IIR-filter ett exempel, forts Med två-komplements kvantisering så erhåller vi följande: a 1q = 1.957558 2 6 125 10000011( 128 + 3) a 2q = 0.995913 2 6 63 00111111 som är liktydigt med a 1q = 125 = 1.953125 (att jämföra med 1.957558) 64 a 2q = 63 = 0.984375 (att jämföra med 0.995813) 64 Omräknat i polära koordinater blir de kvantiserade koefficienterna (r q, θ q ) = (0.992156,10.171853 o ) och därmed f c = 0.0283 (att jämföra med f c = 0.0312). 150

Ändlig ordlängd i IIR-filter polplaceringar Ett andra ordningens IIR-filter direkt form I och möjliga polplaceringar för 4 respektive 7 bitars kvantisering av filterkoefficienterna. 151

Ändlig ordlängd i IIR-filter polplaceringar 2 Ett andra ordningens IIR-filter sk kopplad form och möjliga polplaceringar för 4 respektive 7 bitars kvantisering av filterkoefficienterna. 152

Vilken struktur är minst känslig för kvantisering? H I (z) = z 2 z 2 Kz+L H II (z) = γz 2 z 2 (α+δ)z+(αδ βγ) H I (z) och H II (z) identiska om γ = 1, K = α + δ, L = αδ βγ. Ett svar på titelfrågan kan fås med simulering (som tidigare) eller genom matematisk analys. 153

Kvantisering: förflyttning av poler/nollställen 1 Betrakta ett polynom B(z) med enkla rötter: B(z) = N i=0 b i z i = N k=1 (z z k ) där b N = 1 som kan uttryckas i polär form z k = r k e jθ k. Kvantisering medför att b i förändras till b i + b i och således ˆB(z) = N i=0 (b i + b i )z i = B(z) + N i=0 ( b i )z i = N i=1 (z ẑ k ). 154

Kvantisering: förflyttning av poler/nollställen 2 För små förändringar b k så är ẑ k och z k nära varandra, varför ẑ k = z k + z k = (r k + r k )e j(θ k+ θ k ). Vidare, för mycket små förändringar b k så ẑ k (r k + r k )(1 + j θ k )e jθ k r k e jθ k + ( r k + jr k θ k )e jθ k om termer av högre ordning negligeras. Alltså: z k = ẑ k z k ( r k + jr k θ k )e jθ k 155

Kvantisering: förflyttning av poler/nollställen 3 Om alla koefficienterna b i för ett filter kan skrivas b i = f(α) där α = [ α 1 α R ] är en ny uppsättning variabler som beskriver filtret så kan propageringen av kvantiseringsfel mellan dessa variabeluppsättningar skrivas B = C α B = [ b 0 b N 1 ] T α = [ α 1 α R ] T b 0 b 0 b α 1 α 2... 0 α R b 1 b 1 b C = α 1 α 2... 1 α R....... b N 1 α 2... b N 1 α 1 b N 1 α R 156

Kvantisering: förflyttning av poler/nollställen 4 Om exempelvis K = 2r cos θ och L = r 2 så fortplantas fel enligt [ ] K = L [ 2cos θ 2rsin θ 2r 0 ] [ r θ ] 157

Vilken struktur är minst känslig för kvantisering? struktur I struktur II Ovan beskrivna analysteknik ger, efter diverse räknande, följande resultat: θ I = K 2rsin θ θ II = 1 r sin θ α + 1 r cos θ β. Slutsats: struktur I är känsligare för kvantisering om en pol ligger nära θ = 0 eller π, dvs. ett smalbandigt låg- eller högpassfilter. 158

Kvantisering av FIR-koefficienter (9.4.3) Ett filter h(n):s systemfunktion H(z) = N n=0 h(n)z n kan efter kvantisering beskrivas med Ĥ(z) = N n=0 (h(n) + e(n))z n = H(z) + E(z), dvs. en parallellkoppling av två system, varav det ena, E(z), beskriver felet förorsakat av kvantisering. En uppfattning om felets storlek fås genom följande omskrivningar: E(e jω ) N = n=0 e(n)e jωn N n=0 e(n) e jωn N n=0 e(n) (N+1) δ 2 där den sista olikheten bygger på antagandet om att avrundning leder till e(n) δ/2 (δ betecknar kvantiseringssteget). 159

Kvantisering av FIR-koefficienter ett exempel Logmagnitudfunktion okvantiserat 16 bitar 8 bitar Ekvirippel lågpassfilter, linjär fas designat med Parks-McClellans algoritm med specifikationer δ p = 0.01, δ s = 0.001 (dvs 60 db). 160

Utsignalens varians vid kvantiserad insignal Kvantiseringsbrus med variansen σe 2 förstärks i ett filter H(e jω ) till π σv 2 = σ2 e 2π π H(ejω ) 2 dω Normerat till insignalvariansen blir detta σ 2 v,n = 1 2π π π H(ejω ) 2 dω = 1 2πj C H(z)H(z 1 )z 1 dz 161

Utsignalens varians vid kvantiserad insignal Eftersom H(z) kan partialbråksuppdelas i första och andra ordningens rationella, reella och stabila överföringsfunktioner H i (z) H(z) = så kan utsignalvariansen skrivas σ 2 v,n = R k=1 1 2πj C R i=1 H k (z)h k (z 1 )z 1 dz + 2 H i (z) R 1 R k=1 l=k+1 1 2πj C H k (z)h l (z 1 )z 1 dz där I i (dvs den andra integralen) finns givna i tabell 12.4 för olika kombinationer av H k (z) och H l (z) 1 H k (z)h l (z 1 )z 1 dz. 2πj C 162

Kvantisering vid aritmetriska operationer Ett generellt linjärt filter beskrivs av följande differensekvation y(n) = N k=1 d k y(n k) + M k=0 p k x(n k). Om alla sampel och koefficienter i denna ekvation representeras som fixtal med (b + 1)-bitars noggrannhet, så måste längden på de (2b + 1)-bitars produkter som resulterar trunkeras till (b + 1). Denna operation kan representeras med y(n) = N k=1 Q[d k y(n k)] + M k=0 Q[p k x(n k)]. 163

Modeller för kvantiseringsbrus (a) (c) (b) (a) IIR filter med oändlig noggrannhet, (b) olinjär modell för kvantiseringsbrus där felet ges av e(n) = Q[bx(n)] bx(n), samt (c) linjär modell för kvantiseringsbrus (här: efter produkt före nästa addition), se nästa sida. 164

Linjär, statistisk modell för kvantiseringsbrus Den linjära brusmodellen är vanligast och enklast att hantera matematiskt! I denna modell antas att kvantiseringsfelen e i (n) är additiva (efter produkter antingen före eller efter nästa addition) och med följande statistiska egenskaper: svagt stationär, vit process (vit process = samplena är sinsemellan okorrelerade), rektangelfördelad täthetsfunktion över kvantiseringsintervallet, okorrelerad med 1. insignalen till kvantiseraren, 2. med alla andra kvantiseringsprocesser, samt 3. med insignalen x(n). 165

Kvantiseringsbrusets varians För (b + 1)-bitars kvantisering och 2-komplements trunkering så kommer felet att vara 2 b e(n) 0. Tillsammans med antagandet om rektangelfördelning så ges kvantiseringsbrusets varians av σ 2 e = 2 2b 12. Hur summerar sig kvantiseringsbruset från varje enskild operation i filtrets utsignal? Antagandet om en linjär modell ger att det totala felet kan skrivas som e(n) = e 0 (n) + e 1 (n) + e 2 (n) + e 3 (n) + e 4 (n). 166

Linjär, statistisk modell för kvant.brus, forts För att bestämma variansen hos filtrets utsignal så använder vi följande samband mellan in- och utsignal (sid 688): σ 2 f = σ2 e 2π π π H f(e jω ) 2 dω = σ 2 e n= h f (n) 2. Med antaganden om okorrelerade felsignaler och rektangelfördelning, så ges det totala felet e(n):s varians av σ 2 e = σ 2 e 0 + σ 2 e 1 + σ 2 e 2 + σ 2 e 3 + σ 2 e 4 = 5 2 2b 12, och som för ett generellt filter blir σ 2 e = (M + N 1)2 2b 12. 167

Linjär, statistisk modell för kvant.brus, forts Exempel: Vi ska bestämma den totala variansen för kvantiseringsbrusets i utsignalen om det digitala filtret definieras av H(z) = 1 1 az 1. Detta filter har impulssvaret h(n) = a n u(n) och således gäller att h f (n) = h(n). Utsignalens varians ges av σ 2 f = σ2 e = 2 2b 12 n= n=0 h f (n) 2 a 2n = 2 2b 12 ( 1 1 a 2 Detta resultat ska tolkas som att variansen ökar ju närmare polen, placerad vid z = a, kommer enhetscirkeln, och följaktligen måste vi då använda fler bitar för bibehållen varians. ). 168

Vad blir totala utsignalvariansen vid flera kvantiseringsbruskällor? Rita först upp filterstrukturen! Placera in kvantiseringsbruskällor efter varje produkt (före eller efter nästa addition). Vad blir överföringsfunktionen från var och en av bruskällorna? Sätt alla andra insignaler till noll. Använd sedan teorin för hur en brussignal går genom ett filter (partialbråksuppdela varje överföringsfunktion och använd tabell 12.4). Summera slutligen bidragen från varje kvantiseringsbruskälla. 169

Föreläsning 6: Multirate signalbehandling Leif Sörnmo 11 mars 2009 170

Single-rate och multi-rate system I single-rate system så är samplingsfrekvensen den samma vid systemets ingång som utgång liksom vid alla interna noder. I många system är det dock fördelaktigt att använda olika samplingsfrekvens i olika delar av systemet multi-rate system. 171

Till vad nytta? Audio: omvandling av samplingsfrekvens mellan t.ex. digital radio 32 khz; CD 44.1 khz; DAT 48 khz. Audio: förändring av tonhöjd, t.ex. för kompensation av svaj eller falsksång. Video: omvandling av samplingsfrekvens mellan systemen NTSC och PAL. Även: effektiv implementering av filterbankar för kompression av olika signaler, t.ex. audio. 172

Översikt Uppsampling och nersampling (kap. 13.1) Filterdesign vid ändring av samplingsfrekvens decimering och interpolering (kap. 13.2) Ändring av samplingsfrekvens i flera steg (kap. 13.3) Polyfas-filterstrukturer (kap. 13.4) 173

Ändring av samplingsfrekvens: uppsampling Uppsamplaren ökar samplingsfrekvensen med en heltalsfaktor L från den ursprungliga signal x(n), x u (n) = x(n/l), n = 0, ±L, ±2L,... 0, för övrigt, dvs. genom påfyllning av nollor mellan samplen. Denna operation, som är linjär men inte tidsinvariant, representeras med följande blockdiagram: 174

Ändring av samplingsfrekvens: uppsampling 175

Frekvenstolkning av uppsampling (L = 2) X u (z) = = n= m= x u (n)z n = n= neven x(n/2)z n x(m)z 2m = X(z 2 ) X u (e jω ) = X(e jω2 ) 176

Frekvenstolkning av uppsampling Det blir L 1 extra kopior av in-spektrat i basbandet. Detta är ett resultat av nollorna som lagts in. Således, ett spektrum som är bandbegränsat till lågpassregionen ser inte ut som ett lågfrekvent spektrum efter uppsampling. Lågpassfiltrering tar bort kopiorna i spektrat och ersätter nollorna med interpolerade värden. 177

Ändring av samplingsfrekvens: nersampling Nersamplaren minskar samplingsfrekvensen med en heltalsfaktor M från den ursprungliga signal x(n), y(n) = x(nm), dvs. genom att bara välja var M:te sampel. Denna operation, som är linjär men inte tidsinvariant, måste genomföras med stor försiktighet för att inte leda till distorsion! 178

Ändring av samplingsfrekvens: nersampling 179

Nersampling och resulterande spektrum Vi vill bestämma hur spektrum förändrar sig vid nersampling. Detta kräver att vi introducerar en hjälpsignal x int (n) som är definierad för alla tidpunkter n, dvs. x int (n) = x(n), n = 0, ±M, ±2M,... 0, för övrigt, med vilken vi kan uttrycka z-transformen för x(n) Y (z) = = n= k= x(mn)z n = n= x int (k)z k M = X int (z 1/M ). x int (Mn)z n 180

Nersampling och resulterande spektrum, forts Efter diverse räkningar erhålls att z-transformen för x int (n) är X int (z) = 1 M där W M = e j2π/m. Följaktligen M 1 k=0 X(zW k M ), Y (z) = 1 M som i frekvensplanet ges av M 1 k=0 X(z 1/M W k M ) Y (e jω ) = 1 M M 1 k=0 X(e j(ω 2πk)/M ). Detta uttryck tolkas som att resulterande spektrum är en summa av M ursprungliga spektra men där bredden skalats om med faktorn 1/M och skiftats till olika lägen längs med frekvensaxeln. 181

Frekvenstolkning av nersampling Exempel för M = 2 där det ursprungliga spektrumet inte leder till överlappning efter det att nersampling gjorts. 182

Frekvenstolkning av nersampling vikning Exempel för M = 2 där det ursprungliga spektrumet är så pass brett att det leder till överlappning efter nersampling ett välkänt fenomen som kallas vikningsdistorsion. 183

Kaskadkoppling och samplingsfrekvens 184

Interpolering & decimering två byggblock Digital lågpassfiltrering är nödvändig vid såväl interpolering som decimering för att hantera de oönskade effekter som uppstår vid dessa två operationer. 185

Interpolering och filterdesign 186

Interpolering och filterdesign Specifikationerna på det lågpassfilter som krävs efter uppsampling vid interpolering (ta bort kopior) med faktorn L ges av H(e jω ) = L, ω ω c /L 0, π/l ω π, där övergångszonen, bestämd av ω c, är bred nog att tillåta en rimlig filterdesign. För decimering med M gäller samma resonemang för det filter som behövs före nedsampling (undvika vikning), dvs. H(e jω ) = 1, ω ω c /M 0, π/m ω π. 187

Interpolering och decimering Komplexitet Tidigare har vi sagt att IIR-filter är mer beräkningseffektiva i det att även om de kräver fler beräkningar per ordning så kan samma prestanda som för ett FIR-filter åstadkommas med så mycket lägre ordning att det lönar sig att använda IIR. Detta gäller i single-rate system. En intressant fråga är vilken av filtertyperna FIR och IIR som passar bäst i system där samplingsfrekvensen varierar. 188

Interpolering och decimering FIR-komplexitet Vid t.ex. decimering med faktorn M ges utsignalen från ett FIRfilter h(n) av y[n] = v(nm) = N 1 m=0 h(m)x(nm m). Från detta uttryck kan vi se att filtreringen baseras på var M:te sampel i insignalen. Detta gör att komplexiteten reduceras med en faktor M. 189

Interpolering och decimering IIR-komplexitet Om vi jämför med IIR-filter så ges utsignalen där av H(z) = V (z) X(z) = P(z) D(z) och beskrivs av en differensekvation för täljaren v[n] och en differensekvation för nämnaren w[n]. w(nm) = d 1 w(nm 1) d K w(nm K) + x(n) v(nm) = p 0 w(nm) + p 1 w(nm 1) + + p K w(nm K). Här ser vi att täljarekvationen kräver K + 1 multiplikationer men beräknas bara för var M:te sampel. Nämnarekvationen kräver K multiplikationer oavsett när den beräknas. 190

Interpolering och decimering FIR! Antal multiplikationer per filtrerat sampel för R M,FIR = N R M,FIR DEC = N/M R M,IIR = (2K + 1) R M,IIR DEC = K + (K + 1)/M FIR-filter leder till färre antal multiplikationer. På samma sätt sparas en faktor L i beräkning vid interpolation eftersom den uppsamplade signalen huvudsakligen består av nollor. 191

Decimering och interpolering i Matlab decimate decimering interp interpolering resample ändring av samplingsfrekvensen med faktorn L/M. 192

Decimering i två eller tre steg - skillnad? 193

Polyfasuppdelning av signal En signal kan ekvivalent representeras av M stycken nersamplade (med en faktor M) signaler 194

Polyfasstruktur för effektiv decimering och interpolering Vi har tidigare sett att alla FIR-filter kan realiseras i polyfasstruktur. I vissa fall är det också möjligt att realisera IIR-filter i polyfasstruktur. Denna struktur är lika komplex som direktstrukturerna men det visar sig att den är speciellt lämplig vid decimering och interpolering. 195

Polyfasstruktur för effektiv decimering och interpolering 196

Föreläsning 7: Filterbankar Leif Sörnmo 11 mars 2009 197

Översikt Filterbankar (14) Uniform DFT-filterbank (14.1.2) L-bandsfilter, spec. halvbandsfilter (13.6) Quadrature mirror filter (QMF) -bank (14.2) 198

Vad är en filterbank? Analys-filterbank Syntes-filterbank Utsignalerna v 0 (n),..., v M 1 (n) från analys-filterbanken behandlas på lämpligt sätt, tex med en kodningsalgoritm, för att senare återskapas med syntes-filterbanken från ˆv 0 (n),...,ˆv L 1 (n). 199

Filterbank för kodning/avkodning av audiosignal Ofta innehåller en filterbank fler delband än vad den har som visas ovan, dvs. flera frekvensband kodas/avkodas. 200

Kodning/avkodning av audiosignal (56 kbit/s) Förstärkning för varje delbandsfilter (totalt 5 filter) Summan av alla delbandsfilters förstärkning, dvs nästan konstant 201

Kodning/avkodning av audiosignal (56 kbit/s), forts 202

Uniform DFT-filterbank (14.1.2) Lågpassfiltret H 0 (e jω ) överst har ω p och ω s runt π/m. 203

Uniform DFT-filterbank 2 De andra M 1 filtren fås genom att skifta prototypfiltret H 0 (e jω ) längs med frekvensaxeln i steg om 2πk/M, dvs. H k (e jω ) = H 0 (e jω e j2πk/m ), 0 k M 1. I tidsplanet ges impulssvaret för h k (n) av h k (n) = h 0 (n)e j2πkn/m, 0 k M 1. Om vi plottar H k (e jω ) för olika värde på k så erhålls diagrammet på föregående sida. Den resulterande filterbanken kallas uniform eftersom alla delbandsfilter ges av ekvidistanta frekvensskift av H 0 (e jω ), dvs. H k (e jω ) = H 0 (e j(ω 2πk/M) ) 204

Uniform DFT-filterbank med polyfasstruktur Detta är ett effektivt sätt att implementera DFT-filterbanken eftersom det visar sig att polyfasuppdelningen av H 0 (e jω ) kan användas också för att skapa de olika H k (e jω ). Hur de olika polyfaskomponenterna ska kombineras anges av en invers DFTmatris. 205

DFT analys-filterbank med polyfasstruktur 2 Vi utgår ifrån H 0 (z) uttryckt som ett M-bands polyfasfilter, dvs. H 0 (z) = M 1 l=0 z l E l (z M ) där E l (z) är den l:te polyfaskomponenten, E l (z) = e l (n)z n = n=0 h 0 (l + nm)z n, 0 l M 1 n=0 Polyfasform för filtren H k (z) erhölls med frekvensskift, som i z- planet svarar mot att z ersätts med ze j2πk/m, dvs. H k (z) = = M 1 l=0 M 1 l=0 z l e j2πkl/m E l (z M e j2πkm/m ) z l e j2πkl/m E l (z M ) 206

DFT analys-filterbank med polyfasstruktur 3 För specialfallet M = 2 så blir H 0 (z) = E 0 (z 2 ) + z 1 E 1 (z 2 ) och H 1 (z) blir H 1 (z) = 1 l=0 z l e j2πl/2 E l (z 2 e j2πk ) = E 0 (z 2 ) z 1 E 1 (z 2 ) 207

DFT analys-filterbank med polyfasstruktur 4 Z-transformen för alla M olika filter i banken kan skrivas som en produkt av två vektorer, och därefter samlas ihop i följande matrisekvation H 0 (z) H 1 (z). H M 1 (z) = 1 1... 1 1 e j2π/m... e j2π(m 1)/M...... 1 e j2π(m 1)/M... e j2π(m 1)2 /M E 0 (z M ) z 1 E 1 (z M ). z (M 1) E M 1 (z M ) eller mera kompakt uttryckt som vektorer och matris, H(z) = MD 1 E(z). Anledningen till att matrisen D här skrivs som inverterad beror på att D definierar den M M matris som används vid beräkning av en DFT; se mera om detta på nästa sida. 208

DFT och IDFT i matrisform Transformparet för DFT:n ges av X(k) = M 1 n=0 x(n)e j2πnk/m x(n) = 1 M M 1 k=0 X(k)e j2πnk/m Med beteckningarna x = [ x(0) x(1)... x(m 1) ] T, X = [ X(0) X(1) X(M 1) ] T, och D = 1 1... 1 1 e j2π/m e j2π(m 1)/M...... 1 e j2π(m 1)/M e j2π(m 1)2 /M så kan transformparet även uttryckas som X = Dx x = D 1 X 209

DFT analys-filterbank med polyfasstruktur prestanda För ett prototypfilter med N koefficienter så kräver denna typ av filterbank vid direkt implementering: N M multiplikationer polyfas-implementering: (M/2)log 2 M + N multiplikationer. Alltså, en dramatisk förbättring av prestanda! 210

DFT syntes-filterbank med polyfasstruktur 211

L-bandsfilter (13.6) Detta är en grupp av filter som är beräkningsmässigt attraktiva eftersom ett stort antal koefficienter är lika med noll, bevarar de ursprungliga samplens värde vid interpolering (dvs dessa går opåverkade genom interpolationsfiltret). Ett annat namn på dessa filter är Nyquistfilter. 212

Egenskaper hos L-bandsfilter Ett L-bandsfilters systemfunktion ges på polyfasform av H(z) = E 0 (z L ) + z 1 E 1 (z L ) + + z (k 1) E k 1 (z L ) + αz k + z (k+1) E k+1 (z L ) + + z (L 1) E L 1 (z L ) där en polyfaskomponent är konstant, dvs. E k (z L ) = αz k. Vid interpolering erhålls utsignalen som Y (z) = H(z)X(z L ), eller Y (z) = αz k X(z L ) + som i tidsplanet innebär att L 1 l=0 l k z l E l (z L )X(z L ) y(nl + k) = αx(n), dvs. insignalens sampel återfinns odistorderade i utsignalen, medan de övriga samplen i utsignalen interpoleras fram. 213

Impulssvar för L-bandsfilter Allmänt: h(ln) = α, n = 0 0, för övrigt. L = 3 214

Frekvenssvar för skiftade L-bandsfilter Om det är den första polyfaskomponenten E 0 (z L ) som är lika med α så kan man visa att L 1 k=0 H(zW k L ) = Lα. 215

Halvbandsfilter specialfall av L-bandsfilter Om L = 2 så kallas filtret för halvbandsfilter och ges då av H(z) = E 0 (z 2 ) + z 1 E 1 (z 2 ) = α + z 1 E 1 (z 2 ) där vi utnyttjat att E 0 (z 2 ) är den konstanta polyfaskomponenten, oftast vald med α = 2 1. Följaktligen är impulssvaret (varannat sampel) lika med h(2n) = 1 2, n = 0 0, för övrigt. För alla halvbandsfilter kan man visa att H(z) + H( z) = 1 2 + z 1 E 1 (z 2 ) + 1 2 z 1 E 1 (z 2 ) = 1 vilket har en intressant tolkning i frekvensplanet... 216

Halvbandsfilter specialfall av L-bandsfilter Om vi sätter z = e jω så erhålls H(e jω ) + H( 1 e jω ) = H(e jω ) + H(e j(π ω) ) = 1 som kan tolkas enligt nedan (h(n) antas vara FIR med N = 11). obs! varannan nolla obs! reell funktion obs! skiftad obs! summan=1 h(n), N = 11 H(e jω ) H(e j(π ω) ) H(e jω ) + H(e j(π ω) ) Eftersom flera koefficienter (ibland uppåt 50%) är noll sparas många multiplikationer. (N = 101 ger endast 25 mult.) 217

Frekvenssvar för halvbandsfilter detaljbild 218

Linjär-fas L-bandsfilter (13.6.3) Lågpass, linjär-fas, L-bandsfilter med brytfrekvens ω = L π kan designas med fönstermetoden. Om h LP (n) = 0 för n = ±L, ±2L,... så är det ett s.k. Nyquist-filter. 219

Quadrature-mirror filter bank QMF-bank Samma samplingshastighet på in- och utsignalen. 220

QMF-bank överföringsfkn för analysdelen De två filtrerade signalerna bestäms av V 0 (z) = X(z)H 0 (z) respektive V 1 (z) = X(z)H 1 (z). Nedsampling med en faktor 2 leder till följande in-/utsamband (se föreläsning 6) U 0 (z) = 1 2 X(z1/2 )H 0 (z 1/2 ) + 1 2 X( z1/2 )H 0 ( z 1/2 ) U 1 (z) = 1 2 X(z1/2 )H 1 (z 1/2 ) + 1 2 X( z1/2 )H 1 ( z 1/2 ) som på matrisform blir [ ] U0 (z) = 1 [ H0 (z 1/2 ) H 0 ( z 1/2 ] [ ) X(z 1/2 ) U 1 (z) 2 H 1 (z 1/2 ) H 1 ( z 1/2 ) X( z 1/2 ) ] 221

QMF-bank egenskaper hos delbandssignaler efter lågpassfiltrering av insignal efter nersampling med faktorn 2 efter högpassfiltrering av insignal efter nersampling med faktorn 2 Observera att vikningsdistorsion introduceras 222

QMF-bank överföringsfkn för syntesdelen Utsignalerna från syntesdelen av filterbanken ges av följande samband (se föreläsning 6) som på matrisform blir Y (z) = G 0 (z)u 0 (z 2 ) + G 1 (z)u 1 (z 2 ) Y (z) = [ G 0 (z) G 1 (z) ] [ U 0 (z 2 ) U 1 (z 2 ) ] Notera att lågpassfiltret G 0 (z) eliminerar det mesta av frekvensinnehållet i π/2 ω π, medan högpassfiltret G 1 (z) eliminerar det mesta av innehållet i 0 ω π/2. Eftersom frekvenssvaren hos de två filtren överlappar så sker ingen total elimination. 223

QMF-bank total överföringsfunktion Tidigare samband kombinerade leder till överföringsfunktionen för hela QMF-banken Y (z) = [ G 0 (z) G 1 (z) ] 1 [ ] [ ] H0 (z) H 0 ( z) X(z) 2 H 1 (z) H 1 ( z) X( z) Detta uttryck kan också skrivas som där de två funktionerna Y (z) = T(z)X(z) + A(z)X( z) T(z) = 1 2 [G 0(z)H 0 (z) + G 1 (z)h 1 (z)] A(z) = 1 2 [G 0(z)H 0 ( z) + G 1 (z)h 1 ( z)] beskriver egenskaper m.a.p. överföring respektive vikning. 224

QMF-bank egenskaper För att eliminera vikningsdistorsion i filterbanken önskar vi att: A(z) = 0 Funktionen T(z) beskriver hur pass väl en signal kan rekonstrueras: vi säger att filterbanken åstadkommer perfekt rekonstruktion om dvs. en ren fördröjning. T(z) = z k Dessa två, mycket önskvärda egenskaper sammanfattas med 1 [ G0 (z) G 1 (z) ] [ ] [ ] H 0 (z) H 0 ( z) z k T =. 2 H 1 (z) H 1 ( z) 0 225

QMF-bank standardversionen Om vi väljer följande analys- och syntesfilter: H 0 (z) = H(z), H 1 (z) = H( z), G 0 (z) = H(z), G 1 (z) = H( z) så elimineras vikningsdistorsionen, dvs. A(z) = 0. Detta är synnerligen anmärkningsvärt eftersom samplingsteoremet inte uppfylls i någon av filterbankens grenar. Med dessa filter fås kravet på rekonstruktion via T(z) som H 2 (z) H 2 ( z) = z k som med antagandet att H(z) är ett FIR filter med linjär fas, dvs på formen H(z) = H(z)z (N 1)/2 där H(z) har noll-fas och N antas vara jämn, leder till H 2 (z) + H 2 ( z) = 1. 226

QMF-bank standardversionen, forts Uttryckt i frekvensplanet blir detta H 2 (e jω ) + H 2 (e j(π ω) ) = 1. Alltså, den kvadrerade amplitudfunktionen A 2 (e jω ) är ett halvbands lågpassfilter medan A 2 (e j(π ω) ) är ett halvbands högpassfilter (dvs. en filtertyp som vi redan stött på!). Eftersom dessa två filterfunktioner är varandras spegelbilder i frekvensen ω = π 2 så kallas de kvadraturspegelfilter. 227

Tvåkanals QMF-bank med polyfasstruktur Om H 0 (z) antas ha polyfasstruktur, dvs H 0 (z) = E 0 (z 2 ) + z 1 E 1 (z 2 ) så ges analysfiltren av (kom ihåg H 1 (z) = H 0 ( z)) [ ] [ ] [ H0 (z) 1 1 E0 (z = 2 ] ) H 1 (z) 1 1 z 1 E 1 (z 2 ) och syntesfiltren av (kom ihåg G 1 (z) = G 0 ( z)) [ G0 (z) G 1 (z) ] = [ E 0 (z 2 ) z 1 E 1 (z 2 )] [ 1 1 1 1 En filterbank med denna struktur kan med de samband som gäller vid kaskadkoppling för filter och upp-/nersampling göras beräkningsmässigt mera effektiv. ]. 228

Tvåkanals QMF-bank med polyfasstruktur, forts Vilken av dessa två filterbankar är mest beräkningseffektiv? 229

Föreläsning 8a: Perceptuell kodning av digital audio Leif Sörnmo 11 mars 2009 230

Översikt Vilka fysiologiska insikter utnyttjas vid perceptuell kodning? Byggblock i en audiokodare Vad är MPEG? 231

Varför audiokompression? Dramatisk ökning av nätverksbaserad musik på senare år i form av internetradio och musikaffär för (legal) nerladdning, t.ex. Apples itunes Music Store. Bärbara musikspelare (MP3) med krav på att rymma hela musiksamlingar på tiotusentals låtar. Audio synkat till video, inklusive digital TV. 232

Systemkrav vid audiokompression Kompressionsgraden vanligen uttryckt i bithastighet för att uppnå en viss ljudkvalitet är naturligt nog det viktigaste kriteriet vid systemdesign. Möjlighet att uppnå olika ljudkvalitet för olika tillämpningar. Komplexitet hos kodare och, i synnerhet, avkodare. Fördröjning är framförallt viktig vid tvåvägskommunikation. Graden av redigerbarhet, dvs hur pass enkelt och noggrant kan man adressera sig i sekvensen av audiosampel? 233

Blockschema för kodare och dekodare kodare dekodare 234

Perceptuell modell Den avgörande frågan är Hur mycket brus kan vi introducera i en audiosignal utan att det märks? Svaret kan till stor del hittas inom området psykoakustik, dvs. det vetenskapliga område som beskriver sambandet mellan en akustisk händelse och hur det uppfattas av människoörat. Begreppet maskering är här centralt och exploateras för att uppnå en god kompressionsgrad. 235

Vad är maskering? Maskering beskriver den effekten som uppstår när ett svagt men likväl hörbart ljud inte längre hörs därför att ett starkare ljud inträffar samtidigt (eller nästan samtidigt). Maskeringseffekten beror på såväl tids- som frekvensegenskaper hos det starkare och det svagare ljudet. 236

Maskering i frekvensplanet vid tystnad Diagrammet visar tröskeln under vilken en svagare signal maskeras i frekvens av en starkare signal. Tre olika frekvenser hos den maskerande signalen anges, nämligen 250 Hz, 1 khz och 4 khz. 237

Maskering i frekvensplanet amplitudberoende Notera att maskeringseffekten är amplitudberoende och att den maskerar ett större frekvensområde när ljudet blir starkare. 238

Maskering i tidsplanet En svagare signal maskeras såväl före som efter en starkare signal i tiden en effekt som medger en begränsad tidsupplösning hos system för audiokompression. 239

Perceptuell audiokodning byggblock Filterbanken delar upp insignalen i lämpligt antal spektrala komponenter, som därefter kodas utifrån den kunskap som finns inbyggd i modellen för perception (läs maskering). 240

Perceptuell audiokodning extra byggblock Bättre kompressionsgrad kan uppnås med linjär prediktor för att ta bort redundans i signalen. Kodningen av stereosignaler kan göras mera effektiv än kodningen av två monosignaler pga den korrelation som existerar mellan de båda kanalerna. 241

Vilka egenskaper ska en filterbank ha? Val av frekvensupplösning. Låg eller hög? Likformiga eller ej likformiga frekvensband? Är egenskapen perfekt rekonstruktion önskvärd? Hur ska fönsterfunktionen se ut, dvs det fönster som extraherar ett block med sampel för analys av filterbanken? Fix eller adaptiv filterbanksstruktur? Den senare typen resulterar i bättre prestanda vad gäller kodningen av starka, transienta förlopp, men kräver då en mer komplex struktur. 242

Olika typer av filterbankar Uniform DFT-filterbank. Filterbank baserad på quadrature mirror filters (QMF). Filterbank baserad på diskreta cosinustransformen (DCT). Polyfasfilterbank. Wavelet-filterbankar (ingår ej i kursen). 243

Flerkanals QMF-filterbank 244

Hur kvantifieras ljudkvalitet? Subjektivt: Mean Opinion Score (MOS) är ett mått för subjektiv bedömning av tal&musik; definieras av en skala från 1 till 5. Begränsning: beroende på åldersgrupp, bakgrundsljudnivån i testrum, justering av ljudnivån, anläggningens kvalitet för återgivning, m.m. Objektivt: analys av den elektriska signalen som kommer direkt ut ur kodaren, och där bakgrundsljud adderats till enligt lämplig matematisk modell. Ett vanligt mått är det s.k. Perceptual Audio Quality Measure (PAQM) som dock inte beskrivs närmare i denna kurs. 245

Vad är MPEG? Moving Picture Experts Group (MPEG), etablerad 1988, är en arbetsgrupp inom ISO/IEC (International Standards Organization/International Electrotechnical Commission) som producerar internationella standarder för kompression, dekompression, och behandling av video och audio. Det finns f.n. tre typer av MPEG audiokodare, nämligen: 1. MPEG-1 Lager I/II/III, 2. MPEG-2 AAC (Advanced Audio Coding), och 3. MPEG-4 standarden som inkorporerar MPEG-2 AAC. 246

MPEG-1 Lager I och II 192 kbit/s (I), 128 kbit/s (II) 32, 44.1 och 48 khz polyfasfilterbank, 32 subband, fixt fönster Bitstream: kvantiseringsnivå för varje delband, skalfaktor för varje delband samt kvantiserade och normerade delbandssampel. 247

MPEG-1 Lager III (MP3) 248

Hur undvika blockeffekt Vid kodning av signalen sker en uppdelning i block, vilka sedan behandlas i filterbanken. Därefter kvantiseras resulterande samplen i utsignalen och skickas iväg. I avkodaren beräknas den inversa operation mha syntesfilterbanken och det rekonstruerade signalblocket läggs till i slutet av föregående signal. Eftersom varje block behandlas separat så kan blockkanteffekter uppstå i signalen. Denna effekt yttrar sig som en hörbar, periodisk störning uppstå i den rekonstruerade signalen. Botemedel: pre- och postfiltrering, som dock tyvärr reducerar förstärkningen och introducerar en lågpasseffekt vid kanterna. 249

Varför fungerar inte en talkodare lika bra för audiosignaler? En talkodare bygger på principer som är direkt relaterade till talapparaten, tex tonande ljud som a och icke-tonande som s. En audiokodare måste kunna hantera en rad olika signaler och måste därför bygga på mer generella designprinciper, lämpligen baserade på människans hörsel. 250

Sagt om audiokompression The art of perceptual audio coding is still in between research (with a solid scientific foundation) and engineering (where it is important that things work even if nobody knows why). citat från bokkapitlet av K. Brandenburg 251

Föreläsning 8b: Ljudeffekter i musik mha digital signalbehandling Leif Sörnmo 11 mars 2009 252

Översikt Efterklang kortfattad bakgrund Algoritmer för efterklang Algoritmer för flanger, phasing, bas, diskant, mm 253

Varför är efterklang så intressant? Efterklang uppstår när ljud reflekteras mot olika ytor och delas vanligen upp i tidig och sen efterklang. Efterklang är en viktig beståndsdel för vår perception och förväntas vara på ett visst sätt beroende på om vi befinner oss i en konsertlokal, på stan eller i skogen. Efterklangens karaktär påverkar alltså vår rumsliga uppfattning, men även andra egenskaper som ljudstyrka och klangfärg. Efterklang måste nästan jämt introduceras i musik för att inte göra den torr och livlös! Å andra sidan, för mycket... 254

Tidig och sen efterklang Tidig efterklang (även benämnt som eko) inträffar direkt efter det ursprungliga ljudet och uppfattas inte som separata ljudhändelser. Sen efterklang är vanligen förekommande i konsertlokaler och större kyrkor och definierar en bakgrundsambiens som distinkt skiljer sig från den tidiga efterklangen. Den sena efterklangens karaktär är framförallt avgörande om en konsertlokal bedöms ha bra akustik eller ej. 255

Hur kan efterklang simuleras? Fysikalisk ansats: att så noggrant som möjligt simulera hur ljudet fortplantar sig från källan till lyssnaren genom att först mäta upp rummets akustiska egenskaper. Denna ansats är ofta synonym med att man mäter upp ett rums impulssvar. Perceptuell ansats: att, på något sätt, reproducera de viktigaste egenskaperna i efterklangen så att det låter bra! 256

Impulssvar för ett trapphus Notera att båda typer av efterklang kan urskiljas; det tidiga omfattar knappt de första 100 millisekunderna. 257

Enklast möjliga algoritm för ekomodellering y(n) = x(n) + αx(n R), dvs H(z) = 1 + αz R 258

Enkel algoritm för multipla ekon y(n) = N 1 k=0 α k x(n kr), H(z) = N 1 k=0 α k z kr = 1 αn z NR 1 αz R 259

Enkel algoritm för multipla ekon, forts Detta filter brukar kallas kamfilter eftersom dess magnitudfunktion har taggar som på en kam: Den resulterande ekoeffekt är tyvärr undermålig. 260

Enkel algoritm för multipla ekon allpassfilter H(z) = α + z R, α < 1 1 + αz R 261

Tandfilter Den lågpassfiltrering som i verkligheten sker av efterklangen kan modelleras med följande filter H(z) = z R 1 z R G(z), där G(z) är ett FIR eller IIR lågpassfilter. Flera sådana filter, H(z), kan naturligtvis kaskadkopplas för att på så sätt ge en tätare ekodensitet. 262

Simulering av tvåkanaligt (binauralt), tidigt eko Schemat nedan tar en monosignal och producerar en stereosignal som har en stark spatiell effekt, bestående av direktljud och sex reflektioner varav tre används i varje kanal. Ekotiderna varierar mellan 10 och 80 ms. H LP (z) är ett enpols lågpassfilter med f c = 2 khz som simulerar riktningsinformation. 263

Datorros algoritm för efterklang 264

Algoritmer för kombinerat tidig/sen efterklang Schroeder, 1970 Moorer, 1979 I båda blockdiagrammen ovan ingår två delar vilka simulerar tidig resp. sen efterklang; den sena efterklangen modelleras väsentligen av filtret R(z) som har en exponentiellt avklingande envelopp. Parametern g reglerar balansen mellan tidig och sen efterklang. 265

Flanger -effekten Detta är en effekt som skapas genom att låta ljudet fördröjas (om än mycket lite) på ett tidsvariabelt sätt, definierat av y(n) = x(n) + αx(n β(n)) där fördröjningen β(n) varierar mellan 0 och R med frekvensen ω 0, β(n) = R 2 (1 cos(ω 0n)) Vad göra om β(n) inte är ett heltal, eller om samplingsfrekvensen är låg? 266

Chorus -effekten Chorus-effekten bygger på flanger-effekten genom att flera flangers med olika fördröjning och variationsmönster kombineras, dvs 267

Phasing -effekten Denna effekt erhålles genom att till originalsignalen lägga en amplitudskalad, bandspärrsfiltrerad signal. Resultatet blir att utsignalens fas varierar kraftigt och därmed får ett svävande ljud. 268

Bas, diskant och equalizers Ett första steg i designen av filter för bas- och diskantkontroll, såväl som equalizers, är följande första-ordningens filter H LP (z) = 1 α 2 1 + z 1 1 αz 1, H HP(z) = 1 + α 2 1 z 1 1 αz 1 Båda filtrens 3-dB brytfrekvens ω c bestäms av α på följande vis ( ) 2α ω c = arccos 1 + α 2 Vidare, om vi inför A 1 (z) = α z 1 1 αz 1 269

Bas, diskant och equalizers 2...så kan dessa filter istället skrivas som H LP (z) = 1 2 (1 A 1(z)), H HP (z) = 1 2 (1 + A 1(z)) En baskontroll kan enkelt åstadkommas med följande struktur G bas (z) = K 2 (1 A 1(z)) + 1 2 (1 + A 1(z)) Pss fås en diskantkontroll med följande struktur G disk (z) = 1 2 (1 A 1(z)) + K 2 (1 + A 1(z)) Filtren G bas (z) och G disk (z) har frekvenskaraktäristiker som påminner om en hylla (med variabel höjd) och kallas därför ibland shelving filter, se illustrerande diagram på nästa sida. 270

Bas, diskant och equalizers 3 Diskantkontrollen åstadkoms genom att byta koefficienter i den övre och undre grenen så att den övre följaktligen har K/2. 271

Föreläsning 9: 2D-signalbehandling Leif Sörnmo 11 mars 2009 272

Tillämpningar Bild- och videokompression (JPEG, MPEG) Medicinsk bildbehandling (MR, CT) Mönsterigenkänning (fingeravtryck) 273

Översikt Linjära transformer Diskreta cosinustransformen (JPEG) Wavelettransformen (JPEG2000) 2-D filtrering 274

Linjära transformer 1-D Definition: om x är en N 1 vektor och T en N N matris så definierar för k = 0,..., N 1, y(k) = N 1 n=0 t(k, n)x(n) alt. y = Tx den linjära transformen av x. Matrisen T är oftast ortonormal vilket innebär att TT H = I och följaktligen T 1 = T H. Raderna i T kallas ofta för basfunktioner. 275

1-D DFT Vi har redan stött på denna typ av transform i samband med DFT:n där T = D (se sid 802 i Mitra) och y = Dx där d(k, n) = 1 e j2πkn/n (notera att denna definition av d(k, n) N skiljer sig något från bokens pga av normeringsfaktorn som gör att D blir ortonormal). D = 1 1... 1 1 e j2π/n... e j2π(n 1)/N...... 1 e j2π(n 1)/N... e j2π(n 1)2 /N 276

1-D DCT Den 1-D diskreta cosinustransformen ges av X(k) = N 1 n=0 π(2n + 1)k x(n)cos( ) k = 0,1,..., N 1 2N För alla k kan DCT beräknas med hjälp av y = Cx där C = 1 1... 1 cos( π(1) 2N ) cos( π(1)(n 1) 2N. cos(π(2+1) 2N )... cos(π(2(n 1)+1)..... ) cos( π(2+1)(n 1) 2N )... cos( π(2(n 1)+1)(N 1) 2N ) 2N ) 277

DCT 1D-basfunktioner Basfunktioner för en 8-punkters DCT; numret i cirkeln relaterar sig till raden i transform-matrisen C. 278

1-D transformrepresentation En signal med längden N kan representeras som en linjärkombination av lika många basfunktioner. Vikterna i linjärkombinationen är den nya representationen av signalen och talar om hur de N basfunktionerna ska viktas för att summeras till den ursprungliga signalen. För DFT gäller att en signal exakt kan representeras av lika många frekvenser (jämnt fördelade över 2π). Vikterna i linjärkombinationen utgör ett spektrum och talar om hur frekvenserna (med fas) ska kombineras för att bygga upp signalen. 279

DCT kontra DFT DCT:n packar oftast energin i färre transformkoefficienter än vad DFT:n gör. Detta beror på att DFT:n förutsätter att den analyserade signalen är periodisk en utvidgning av existerande sampel enligt nedan. Eftersom den periodiska signalen kan innehålla språng så kommer fler koefficienter att krävas för att representera signalen, något som alltså är ofördelaktigt vid kompression. 280

DCT kontra DFT, forts DCT:n kan beräknas genom att ta den ursprungliga N-punkters signalen och förlänga den genom spegling, se nedan, så att en 2N-punkters signal erhålles. DCT:n erhålls väsentligen genom att ta de N första punkterna i den resulterande 2N-punkters DFT:n. Till skillnad från beräkningen av DFT:n så blir inte sprången lika uttalade här och ger därför bättre energipackning. 281

Basfunktioner: sinus och wavelets Ett alternativ till att mappa på basfunktioner av samma längd som signalen (och som dessutom är peridiska) är att använda basfunktioner med kortare längd (wavelets). Olika dilatation av dessa wavelets beskriver olika skalning av grundfrekvensen och representerar olika frekvenser. 282

Kontinuerliga wavelettransformen En mängd basfunktioner ( wavelets ) kan genereras från en moderwavelet ψ a,b (x) som translateras och skalas: ψ a,b (x) = 1 ( x b ψ a a Den kontinuerliga wavelettransformen W(a, b) av funtionen f(x) definieras då som W(a, b) = ) f(x)ψ a,b(x)dx 283

Dyadiska wavelettransformen Det är vanligt att man begränsar möjligheterna till translation och skalning genom att sätta a = 2 k och b = 2 k l vilket leder till att ψ k,l = 2 k/2 ψ(2 k t l). Den resulterande transformen blir dyadisk med en upplösning som representeras av 2 k. k=1 k=2 k=3 t 284

Haar-basfunktioner (dyadisk wavelet) 285

Haar-basfunktioner 286

Dyadiska DWT:n filterbank-tolkning Waveletkoefficienterna utgörs av de olika filternas utsignaler. Valet av wavelets (och därmed filter) kan göras på många olika vis men filterna blir alltid speglade i frekvensled. Exakt som analysdelen i en QMF-bank. 287

Haar-basfunktioner (olika detaljbeskrivningar) x(t) x 8 (t) y 8 (t) x 7 (t) y 7 (t) x 6 (t) y 6 (t) Amplitude x 5 (t) x 4 (t) y 5 (t) y 4 (t) x 3 (t) y 3 (t) x 2 (t) y 2 (t) x 1 (t) y 1 (t) x 0 (t) y 0 (t) 0 50 100 150 200 250 Time (ms) 0 50 100 150 200 250 Time (ms) 288

DWT Houstons skyline (analys) Notera att antalet sampel i plottarna minskar med en faktor två från nedre högra hörnet till övre vänstra (svårt att se pga av heldragna linjer) 289

DWT Houstons skyline (analys) Observera: lika många sampel i båda representationerna! 290

DWT Houstons skyline (syntes) Notera att antalet sampel i plottarna minskar med en faktor två från nedre högra hörnet till övre vänstra (svårt att se pga av heldragna linjer) 291

Linjära transformer 2-D Den 2-dimensionella transformen är definierad som G(m, n) = N 1 i=0 N 1 k=0 F(i, k)t(i, k, m, n) där F och G är N N matriser definierade av F(i, k) respektive G(m, n). T(i, k, m, n) kan tolkas som en N 2 N 2 matris med N rader där varje rad innehåller N stycken blockmatriser som är N N. Blocken indexeras mha m, n och elementen i varje blockmatris med i, k. 292

Linjära transformer separabel 2-D En 2-dimensionell transform sägs vara separabel om den kan delas upp i en produkt av radvisa och kolumnvisa komponenter, Eftersom vi kan skriva G(m, n) = T(i, k, m, n) = T r (i, m)t c (k, n) N 1 i=0 N 1 k=0 T r (i, m)f(i, k)t c (k, n) betyder detta att transformen kan beräknas i två steg, en radvis operation följd av en kolumnvis operation på den matris som resulterar från det första steget (eller vice versa). 293

Linjära transformer symmetrisk 2-D En 2-dimensionell transform sägs vara separabel och symmetrisk om de radvisa och kolumnvisa komponenterna är identiska, dvs. T r (i, m) T c (i, m) T(i, m), T(i, k, m, n) = T(i, m)t(k, n) och kan beräknas i två steg eftersom G(m, n) = alternativt G = TFT. N 1 i=0 N 1 k=0 T(i, m)f(i, k)t(k, n) Den 2-dimensionella DFT:n är både separabel och symmetrisk och kan därför beräknas med G = DFD, och följaktligen, eftersom D är ortonormal, ges den inversa transformen av F = D H GD H. 294

2-D DCT Den 2-D diskreta cosinustransformen definieras av N 1 N 1 ( ) ( π(2i + 1)m π(2k + 1)n G(m, n) = F(i, k)cos cos 2N 2N i=0 k=0 ) DCT:n kan också beräknas mha följande matrismultiplikation G = CFC där elementen i C definieras av C(i, m) = cos ( ) π(2i+1)m 2N. Vi noterar att DCT:n är reell. 295

DCT 2D-basfunktioner (basmatriser) Resulterande blockmatriser om de olika raderna i C (se föreg. bild) multipliceras med varandra. Dessa 8 8 blockmatriser viktas ihop med lämpliga koefficienter för att ge den rekonstruerade bilden. 296

Haar-transformen (wavelet) 2D-basfunktioner Bättre hantering av kanter fås med denna Haartransformen. 297

JPEG kompression Bilden delas först upp i färgkomponenter Varje färgkomponent i bilden delas sedan upp i makroblock (8x8 pixlar) där varje pixel till exempel representeras med 8 bitar med värden mellan 0 och 255. Dessa värden måste justeras att ligga kring 128 eftersom basfunktionerna i DCT är symmetriska kring noll. 298

JPEG kompression Varje makroblock transformeras mha 2-D DCT G(m, n) till en matris som anger hur de 8x8 stycken basmatriserna (varje 8x8 pixlar) ska viktas ihop för att återskapa den ursprungliga bilden. G(m,n) Lågfrekvens-basmatriserna är de som betyder mest för bilden. 299

JPEG kompression Kvantisering av en koefficient G(m, n) görs mha en kvantiseringstabell (se nedan) där Q(m, n) representerar elementet med index (m, n). Följande uttryck används för att beräkna varje kvantiserad koefficient G(m, n): G(m, n) = G(m, n) Q(m, n) + 0.5 Q(m,n) 300

JPEG kompression ett exempel Bilder komprimerade med JPEG-algoritmen för 0.5 bitar resp. 0.25 bitar per pixel. 301

Wavelet-baserad bildkompression Bygger på samma principer som filterbankstolkningen av 1-D DWT. Eftersom 2-D DWT är separabel motsvaras den av en 1-D DWT i varje riktning. Detta betyder filtrering och nedsampling i både x- och y-led. Hela bilden processas i ett block. 302

1-level 2D-DWT 303

3-level 2D-DWT Finessen är att de många nollorna kan kodas effektivt. 304