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

Föreläsning 1: Inledning till “Digital signalbehandling i audio ......Tidsdiskreta (LTI) system i tidsplanet • En vanlig grupp av tidsdiskreta LTI system är de med kon-stanta

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 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 attanvända, men att sidreferenserna då inte stämmer.

    Övningsbok: S. K. Mitra, Digital Signal Processing LaboratoryUsing 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ängskalan3 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ändi-ga).

    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 dis-kreta mätningar (ofta gjorda i tiden) eller från sampling aven tidskontinuerlig signal.

    • En tidsdiskret signal har definitionsmässigt avståndet 1 mel-lan samplen, utan enhet. Den snabbaste frekvens som kanrepresenteras är vartannat värde +A och vartannat −A. Den-na frekvens har perioden 2, utan enhet. Eftersom frekvensenär 1/T så är den maximala normerade frekvensen 0.5, utanenhet.

    • Det finns alltså inga Hertz eller sekunder i den digitala värl-den...

    7

  • Tidsdiskreta (LTI) system i tidsplanet

    • På samma sätt som ovan beskrivs ett tidsdiskret system meden 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 insigna-len 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 kon-stanta koefficienter och begränsad ordning som beskrivs av

    differensekvationen:

    y[n] = −N∑

    k=1

    dkd0y[n− k] +

    M∑

    k=0

    pkd0x[n− k].

    där max-värdet av M och N anger systemets ordning.

    • Dessa två representationer, dvs. impulssvar och differens-ekvation, ä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 avnuvarande och föregående sampel i insignalen x[n]:

    y[n] =M∑

    k=0

    pkd0x[n− k] =

    M∑

    k=0

    h[k]x[n− k].

    Längden hos h[n] bestäms av antalet sampel x[n] som an-vänds.

    • Filtret är IIR om y[n] beror av föregående sampel i y[n]:

    y[n] = −N∑

    k=1

    dkd0y[n− k] +

    M∑

    k=0

    pkd0x[n− k] =

    ∞∑

    k=0

    h[k]x[n− k].

    Impulssvaret h[n] är oändligt eftersom y[n] i sin tur beror avföregående sampel i utsignalen.

    10

  • Tidsdiskreta (LTI) system i tidsplanet

    Ett system är BIBO-stabilt om impulssvaret uppfyller

    ∞∑

    N=−∞|h[n]|

  • Tidsdiskreta signaler i frekvensplanet

    Discrete-time Fourier transform (DTFT) av signalen x[n] ges

    av

    X(ejω) =∞∑

    n=−∞x[n]e−jωn.

    X(ejω) är en komplex funktion som kan skrivas

    X(ejω) = |X(ejω)|ejθ(ω),där |X(ejω)| kallas amplitudspektrum och θ(ω) = arg{X(ejω)}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 ω = {−π, π}). Spekt-rumet är periodiskt utanför detta intervall.

    • Inom dessa intervall är magnitudspektrat en jämn funktionoch fasspektrat en udda funktion. Samma sak representeras

    i båda halvorna.

    • Inversa DTFT:n ges av

    x[n] =1

    ∫ π

    −πX(ejω)ejωndω.

    13

  • Tidsdiskreta signaler i frekvensplanet, forts

    Discrete-time Fourier transform (DTFT): Oändligt lång tids-

    diskret signal {−∞,∞} kan ekvivalent representeras av kontinu-erligt spektrum för det normerade frekvensintervallet {−0.5,0.5}eller motsvarande vinkelfrekvensintervall ω = {−π, π}. Spektrat ärperiodiskt 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 samplasmed N jämnt fördelade punkter (ωk =

    2πkN , 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(ejω) =∞∑

    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(ejω) =Y (ejω)

    X(ejω)=

    ∑Mk=0 pke

    −jωk∑Nk=0 dke

    −jωk .

    15

  • z-transformen

    z-transformen av ett impulssvar kallas filtrets överföringsfunk-

    tion,

    H(z) =∞∑

    n=−∞h[n]z−n,

    och utgör en generalisering av DTFT:n med bättre konvergens-

    egenskaper än DTFT:n och som ger enklare algebra.

    En oändligt lång tidsdiskret signal x[n] {−∞,∞} kan ekvivalentrepresenteras av X(z) i det komplexa talplanet. Om värden av-

    läses på enhetscirkeln i detta talplan, dvs. z = ejω, så fås dess

    DTFT.

    16

  • z-transformen och tidsdiskreta system

    Överföringsfunktionen för ett LTI system med konstanta koeffi-

    cienter och begränsad ordning kan skrivas

    H(z) =Y (z)

    X(z)=p0d0

    ∏Mk=1(1 − ξkz−1)

    ∏Nk=1(1 − λkz−1)

    =p0d0zN−M

    ∏Mk=1(z − ξk)

    ∏Nk=1(z − λk)

    ,

    där ξk kallas nollställen och λk kallas poler. BIBO-stabilitet mot-

    svarar att polerna ligger inom enhetscirkeln.

    17

  • Digital behandling av tidskontinuerliga signaler

    DigitalSignalbehandling

    AnalogtAntiviknings-

    filter

    AnalogtRekonstruktions-

    filterS/H A/DA/D D/A

    Sampling Interpolation

    Analogsignal

    Analogsignal

    Tidsdiskretasignaler

    Högtalare

    MikrofonSamplingsfrekvens

    Uppspelnings-frekvens

    18

  • Digital behandling av tidskontinuerliga signaler

    Vid sampling med perioden T (samplingsvinkelfrekvensen ΩT ) så

    kommer alla komponenter av typen

    xa,k(t) = A cos((Ω0 + kΩT )t+ φ), k = 0,±1,±2, ...att mappas på

    x[n] = xa,k(nT) = A cos(ω0n+ φ)

    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 (Samplings-teoremet, 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 antiviknings-

    filter (dvs. lågpassfilter) användas före sampling för att spärra

    frekvenser över Nyqvist-frekvensen. P.s.s. måste ett analogt re-

    konstruktionsfilter 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 iden-tiska som koefficienterna i överföringsfunktionen.

    • Kaskadform betyder att ett högre ordningens filter realiserassom en seriekoppling av flera första och andra ordningens

    överföringsfunktioner.

    • Polyfasrealisering betyder att signalen delas upp i block omL 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

    H(z) = E0(z2) + z−1E1(z2)

    med

    E0(z) = h[0] + h[2]z−1 + h[4]z−2 + h[6]z−3 + h[8]z−4

    E1(z) = h[1] + h[3]z−1 + h[5]z−2 + h[7]z−3

    30

  • Polyfasstruktur för FIR-filter används viddecimering av samplingsfrekvens

    (a) decimering medfaktor 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 iden-tiska koefficienterna i överföringsfunktionen.

    • Kaskadform betyder att ett högre ordningens filter realiserassom en seriekoppling av flera första och andra ordningens

    överföringsfunktioner.

    • Parallellrealisering betyder att överföringsfunktionen delasupp 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ågpass-

    filter designas – “bas & diskant”-kontroll. Notera att dessa filter

    är effektkomplementära, dvs att de tillsammans ger en förstärk-

    ning 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 ochdess implikationer)

    • signalbehandling vid olika samplingsfrekvenser (eng. ”multi-rate 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 ochbandspä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ärr-karaktä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 mhaav magnitud- och/eller fasfunktion.

    • I praktiken är dock specifikation av endast magnitud-funktionen det absolut vanligaste, och därför behandlas baradenna typ av design i kursen.

    • Fasfunktionen kan vid behov justeras med ett seriekopplatallpassfilter (”all-pass phase equalizer”).

    • Notera att ett filter även kan specificeras i termer av hurimpulssvaret 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änd-lig 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(ejω)| ≤ 1 + δp, |ω| ≤ ωpSpärrband: |G(ejω)| ≤ δ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

    Gmax

    där

    Gmax = max0≤ω≤π

    |G(ejω)|.

    46

  • Logaritmisk filterspecifikation

    • En specifikation anges ofta som en dämpning uttryckt i loga-ritmerad form, dvs.

    G(ω) = −20 log10 |G(ejω)|,angiven i decibel (dB).

    • Maximalt rippel i passbandet, αp, och minimal dämpning ispärrbandet, αs, ges då av

    αp = −20 log10(1 − δp) respektive αs = −20 log10 δs.

    47

  • Hertz och normerad frekvens

    I praktiken vill vi specificera ett digitalt filter i onormerad frekvens

    (Hertz), uttryckt i passbandets kantfrekvens Fp och spärrbandets

    kantfrekvens Fs.

    Omräkning till normerad frekvens ω görs med

    ω =Ω

    FT=

    2πF

    FT= 2πFT

    där F betecknar onormerad frekvens, FT 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 specifika-

    tioner: Fp = 7 kHz, Fs = 3 kHz och FT = 25 kHz.

    Omräkning till normerad frekvens blir då:

    ωp =2π · 7 · 10325 · 103 = 0.56 · π

    ωs =2π · 3 · 10325 · 103 = 0.24 · π

    49

  • IIR filterstruktur

    Överföringsfunktionen för ett IIR-filter ges av

    H(z) =p0 + p1z

    −1 + p2z−2 + . . .+ pMz−M

    d0 + d1z−1 + d2z−2 + . . .+ dNz−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 NFIR multiplikationer per utsampel (dock,FIR-filter med linjär fas behöver bara (NFIR + 1)/2 mult perutsampel), medan IIR-filter behöver 2NIIR+1 mult/utsampel.

    • För att uppfylla samma magnitudfunktion med FIR- sommed IIR-filter krävs dock betydligt större ordning, NFIR >>10NIIR, och därmed är FIR-filter mera beräkningskrävan-de.

    • Detta samband gäller inte om IIR måste kompletteras medett 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 motsva-

    rande för ett analogt prototyp-lågpassfilter.

    2. Bestäm överföringsfunktionen Ha(s) =Pa(s)Da(s)

    för det analoga

    prototyp-lågpassfiltret (index “a” betecknar “analog”).

    3. Transformera Ha(s) till den eftersökta digitala överförings-

    funktionen 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 analogafilter att göra.

    54

  • Val av filterordning

    • För IIR-filter ingår beräkning av den modellordning som krävsi designproceduren.

    • För FIR-filter finns olika approximationer som typiskt ärinverst 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älpav 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å enhetscir-keln i z-planet, och

    • att ett stabilt analogt filter Ha(s) transformeras på ett stabiltdigitalt filter G(z).

    57

  • Hur transformera från s- till z-planet?

    • Bilinjär transformation är den vanligaste transformationenoch definieras av

    s =2

    T

    (

    1 − z−11 + z−1

    )

    .

    Det intressanta och eftersökta sambandet mellan G(z) och

    Ha(s) ges av

    G(z) = Ha(s)

    s=2T

    (

    1−z−11+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 posi-tiva imaginära axeln i s-planet (dvs., från Ω = 0 till ∞) avbil-das 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 kallasför frekvensförvridning (”frequency warping”).

    60

  • Bilinjär transformation och frekvensaxeln

    Specifikt för s = jΩ, z = ejω och med T = 2 så har vi att

    jΩ =1 − e−jω1 + e−jω

    = j tan(ω/2), dvs Ω = tan(ω/2)

    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ämmade motsvarande analoga storheterna Ωp och Ωs (kap 9.2).

    2. Designa det analoga filtret Ha(s) med lämplig metod (kap4.4, 4.5).

    3. Bestäm det digitala filtret G(z) genom att transformera detanaloga filtret Ha(s) mha. (kap 9.2)

    G(z) = Ha(s)|s=(

    1−z−11+z−1

    )

    Fasen bevaras ej genom transformen.

    63

  • IIR filterdesign med frekvenstransformation(HP,BP,BS)

    Prewarpingav ωp och ωstill Ωp och Ωs

    Spec. avGD(z) Analog

    frekvenstransform(om HP,BP,BS)

    Design av analogtLP prototypfilter

    Spec. avHD(s)

    Spec. avHLP(s)

    HLP(s)

    Mitra 9.2 Mitra 4.5 Mitra 4.4

    Analogfrekvens transform

    (om HP,BP,BS)

    HD(s)

    Bilinjär transform

    GD(z)

    Mitra 4.5Mitra 9.2

    Bilinjär transform

    Mitra 9.2

    GLP(z)

    Digital spektral-transform till LP(om HP,BP,BS)

    GD(z)

    Mitra 9.5

    Mitra 9.4

    Mitra 9.5

    64

  • Exempel på IIR filterdesign som bygger påfrekvenstransformation

    På tavlan: Design av ett digitalt lågpassfilter mha bilinjär transfor-

    mation 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 ω̂cfå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 ochbandspä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å filterav standardtyperna lågpass, högpass, bandpass och bandspärr

    (kap 10.2).

    • Kriteriebaserad design av FIR-filter med linjär fas, sk “ekvi-rippelfilter”; 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

    hLP (n) =1

    ∫ π

    −πHLP (e

    jω)ejωndω ⇒ hLP (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

    hHP (n) =1

    ∫ π

    −πHHP (e

    jω)ejωndω ⇒ hHP (n) =

    1 − ωcπ , n = 0

    −sinωcnπn , n 6= 0

    71

  • Impulssvar för andra ideala filter

    • bandpass, bandspärr, multiband

    • Hilberttransformerare (= 90o fasförskjutning av signalen)

    HHT (ejω) =

    j, −π < ω < 0

    −j, 0 < ω < π

    • differentierare

    HDIF (ejω) = 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änd-bart, trunkeras (och skiftas åt höger för att bli kausalt).

    • Trunkering förändrar det ideala hos magnitudfunktionen ochintroducerar ett oscillatoriskt beteende (rippel) – Gibbs feno-men, se exemplet nedan för två olika filterlängder.

    0 0.2 0.4 0.6 0.8 10

    0.5

    1

    1.5

    ω/π

    Magnitude

    N = 20N = 60

    Mag

    nitu

    de

    73

  • Gibbs fenomen som faltning

    Trunkering innebär att hd(n) multipliceras med ett rektangu-

    lärt fönster w(n): en operation som i frekvensplanet svarar mot

    att Hd(ejω) faltas med fönstrets Fourier-transform Ψ(ejω).

    74

  • Gibbs fenomen

    • Antal rippel i såväl pass- som spärrband ökar med filterläng-den samtidigt som varje rippels bredd minskar.

    • Amplituden för det största ripplet är densamma för allafilterlängder (ca 11% av amplitudskillnaden mellan passband

    och spärrband i det ideala filtret).

    • Samma oscillatoriska beteende uppträder i magnitudfunktionfö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 mjuktsä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- tillspärrband i magnitudfunktionen.

    76

  • Vanliga fixa fönster

    • Hanning: w(n) = 0.5 + 0.5 cos(

    2πn2M+1

    )

    • Hamming: w(n) = 0.54 + 0.46 cos(

    2πn2M+1

    )

    • Blackman: w(n) = 0.42+0.5 cos(

    2πn2M+1

    )

    +0.08 cos(

    4πn2M+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 avdess 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 noll-

    genomgångarna närmast ω = 0) och

    – sidolobernas amplitud (uppmätt som skillnaden i ampli-

    tud, 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ångszo-nens bredd också ökar.

    • En minskning av sidlobernas amplitud leder till en förbättraddä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 0.05 0.1 0.15 0.2 0.25-60

    -50

    -40

    -30

    -20

    -10

    0Kaiserfönster, beta=2

    normerad frekvens

    mag

    nitu

    d (d

    b)

    0 0.05 0.1 0.15 0.2 0.25-60

    -50

    -40

    -30

    -20

    -10

    0Kaiserfönster, beta=4

    normerad frekvens

    mag

    nitu

    d (d

    b)

    82

  • Skattning av ordning på FIR-filter

    Ordningen bestäms med olika approximativa uttryck beroen-

    de 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 Ht(ejω), vars impulssvar

    ht(n) har den ändliga längden 2M + 1, som bäst approximerar

    den önskade frekvenssvaret Hd(ejω) utifrån det kvadratiska inte-

    gralfelet

    Φ =1

    ∫ π

    −π|Ht(ejω) −Hd(ejω)|2dω

    där

    Ht(ejω) =

    M∑

    n=−Mht(n)e

    −jωn.

    Hur ska ht(n) väljas?

    84

  • Trunkering minimerar kvadratfelet, forts

    Med hjälp av av Parsevals relation kan vi skriva

    Φ =1

    ∫ π

    −π|Ht(ejω) −Hd(ejω)|2dω

    =∞∑

    n=−∞|ht(n) − hd(n)|2

    =M∑

    n=−M|ht(n) − hd(n)|2 +

    −M−1∑

    n=−∞h2d(n) +

    ∞∑

    n=M+1

    h2d(n).

    Om impulssvaret ht(n) väljs som ht(n) = hd(n) för −M ≤ n ≤ M— dvs trunkering av hd(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 mini-

    meras 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(ejω) =N∑

    n=0

    h(n)e−jωn = (egenskapen h(n) = h(N − n))

    = e−jN2 ω

    h

    (

    N

    2

    )

    + 2

    N/2∑

    k=1

    h

    (

    N

    2− k

    )

    cos(ωk)

    Inför M = N2 , 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å deneftersökta cos-termen

    cos(ωk) = Re{

    (cosω+ j sinω)k}

    = Re

    k∑

    l=0

    (k

    l

    )

    (cosω)k−l(j sinω)l

    =

    k/2∑

    l=0

    ( k

    2l

    )

    (cosω)k−2l(−1)l(sinω)2l

    =

    k/2∑

    l=0

    ( k

    2l

    )

    (cosω)k−2l(−1)l(1 − cos2 ω)l =k∑

    l=0

    βl(cosω)l

    Alltså:

    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 detsk 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 passband0 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

    ε = maxω∈R

    |E(ω)|

    där

    E(ω) = W (ω)[H̆(ω) −D(ω)],över de frekvensintervall R där amplitudfunktionen D(ω) speci-ficerats, 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 to-

    lererade 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ärkombi-

    nation av cosinusar, dvs H̆(ω) =∑Lk=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 harL+2 extremfrekvenser i de mängden R. Dessa extremfrekvenserär sådana att för ω0 < ω1 < · · · < ωL+1,

    E(ωi) = −E(ωi+1), i = 0, . . . , L+ 1och

    ε = |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 ut-

    vä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örut-

    sättning att extremvärdenas frekvenser är kända. Termen (−1)iberor 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

    R0 = {ω00, . . . , ω0L+1} som sedan systematiskt byts ut mot nyatills den eftersökta mängden med extremfrekvenser erhålls. Ut-

    bytet 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 ex-

    tremfrekvenser Rk för iteration k.

    98

  • 2. Beräkna A(ωi) och interpolera mellan dessa extremfrekven-

    ser 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ω |Ek(ω)|är större än felet εk som beräknades i steg 1.

    4. Om |εk+1 − εk| är litet, avsluta proceduren. Om ej, bestämextremfrekvenserna i Rk+1 och gå till steg 1.

    Med extremfrekvenserna i Rk tillgängliga så kan det eftersöktaekvirippelfiltret 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:

    w1(n) = x(n) − αw5(n)w2(n) = w1(n) − δw3(n)w3(n) = w2(n− 1)w4(n) = w3(n) + εw2(n)

    w5(n) = w4(n− 1)y(n) = βw1(n) + γw5(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äk-

    ning av w1(n) kräver kunskap om w5(n) som först beräknas i näst

    sista steget; p.s.s. kräver beräkning av w2(n) kunskap om w3(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äknings-

    barhet.

    106

  • Matrisrepresentation

    Det tidigare ekvationssystemet kan uttryckas i matrisform som:

    w1(n)w2(n)w3(n)w4(n)w5(n)y(n)

    =

    x(n)00000

    +

    0 0 0 0 −α 01 0 −δ 0 0 00 0 0 0 0 00 ε 1 0 0 00 0 0 0 0 0β 0 0 0 γ 0

    w1(n)w2(n)w3(n)w4(n)w5(n)y(n)

    +

    0 0 0 0 0 00 0 0 0 0 00 1 0 0 0 00 0 0 0 0 00 0 0 1 0 00 0 0 0 0 0

    w1(n− 1)w2(n− 1)w3(n− 1)w4(n− 1)w5(n− 1)y(n− 1)

    107

  • Kompakt matrisrepresentation

    Det tidigare ekvationssystemet kan kompakt uttryckas som:

    y(n) = x(n) + Fy(n) + Gy(n− 1)y(n) =

    [

    w1(n) w2(n) w3(n) w4(n) w5(n) y(n)]T

    x(n) =[

    x(n) 0 0 0 0 0]T

    F =

    0 0 0 0 −α 01 0 −δ 0 0 00 0 0 0 0 00 ε 1 0 0 00 0 0 0 −α 0β 0 0 0 γ 0

    , G =

    0 0 0 0 0 00 0 0 0 0 00 1 0 0 0 00 0 0 0 0 00 0 0 1 0 00 0 0 0 0 0

    108

  • Kompakt representation och beräkningsbarhet

    Ett filter är beräkningsbart om alla element i och ovanför dia-

    gonalen 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!

    w3(n)w5(n)w1(n)w2(n)y(n)w4(n)

    =

    00

    x(n)000

    +

    0 0 0 0 0 00 0 0 0 0 00 −α 0 0 0 0−δ 0 1 0 0 00 γ β 0 0 01 0 0 ε 0 0

    w3(n)w5(n)w1(n)w2(n)y(n)w4(n)

    +

    0 0 0 1 0 00 0 0 0 0 10 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

    w3(n− 1)w5(n− 1)w1(n− 1)w2(n− 1)y(n− 1)w4(n− 1)

    110

  • Precedensgrafen – hjälpmedel försystematisk bedömning av beräkningsbarhet

    Filtret ovan kan ritas om till en s.k. precedensgraf där varjesignalvariabel wi(n) representeras med en nod och varje multi-plikation 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 { N1} som bara har utåtgå-ende grenar.

    • Inkludera alla noder i en mängd { N2} som bara har utåtgå-ende grenar och som startar från noder i { N1}.

    • o.s.v.

    • Denna process avslutas när en mängd { Nf} erhållits sombara 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 { N1}. Därefterbestäms de signalvariabler som tillhör { N2} baserat på det somredan bestämts i { N1}, o.s.v. För vårt tidigare exempel erhållsdå

    { N1} = { w3(n), w5(n)}{ N2} = { w1(n)}{ N3} = { w2(n)}{ N4} = { w4(n), y(n)}

    114

  • Gruppering av noder – 3

    Grupperingen i noder och den sekvensiella strukturen i beräk-

    ningen 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äk-

    na utsignalen från) filter med givna täljar- och nämnarpolynom.

    Några av dessa är

    • filter - Direkt IIt implementation

    • filtfilt - Zero-phase using forward and backward filtering

    116

  • Effektiva algoritmer är ett måste!

    • Digital signalbehandling fick sitt definitiva genombrott närDFT:n kunde beräknas effektivt med FFT:n.

    • Utvecklingen av effektiva (=snabba) versioner av en algoritmutgör en extremt viktig del i digital signalbehandling, och

    har haft

    • en avgörande betydelse för framgångsrik komprimering av au-diosignaler och video.

    117

  • Diskreta Fouriertransformen (DFT)

    Beräkning av ett värde i DFT:n

    X(k) = X(ejω)|ω=2πkN

    =N−1∑

    n=0

    x(n)e−j2πkn/N , 0 ≤ k ≤ N − 1

    kräver N komplexa multiplikationer och N − 1 komplexa additio-ner. För att beräkna alla N värdena behövs således N2 komplexa

    multiplikationer och (N − 1)N komplexa additioner.

    Man kan visa att det motsvarande antalet reella multiplika-

    tioner/additioner är 4N2/(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 fre-

    kvens 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

    yk(n) = x(n) + ej2πk/Nyk(n− 1), n = 0, . . . , N

    med begynnelsevillkoren yk(−1) = 0 och x(N) = 0.

    119

  • Goertzels algoritm för beräkning av DFT – 2

    Följaktligen

    yk(0) = x(0) + ej2πk/Nyk(−1) = x(0)

    yk(1) = x(1) + ej2πk/Nyk(0) = x(1) + e

    j2πk/Nx(0)

    yk(2) = x(2) + ej2πk/Nyk(1) = x(2) + e

    j2πk/Nx(1) + ej2πk2/Nx(0)...

    yk(N) = x(N) + ej2πk/Nx(N − 1) + · · · + ej2πk(N−1)/Nx(1) + ej2πkN/Nx(0)

    Förlängning av yk(N) med e−j2πkN/N = 1 ger

    yk(N) = x(0) + e−j2πk/Nx(1) + · · · + e−j2πk(N−1)/Nx(N − 1)

    som identifieras som definitionen på X(k), dvs X(k) = yk(N).

    Observera: Till skillnad från DFT:n så behöver endast en kom-plex exponential ej2π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:

    4N2/4N2 reella mult/add, att jämföra med DFT:n som kräver

    4N2/(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πknN kan utnyttjas effektivt.

    Resultat: Dramatisk uppsnabbning av DFT-beräkning, resulte-

    randes i N log2N muliplikationer istället för de N2 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∑

    n=0

    x(n)e−j2πkn/N

    =

    N2−1∑

    n=0

    x(2n)e−j2πk2n/N +

    N2−1∑

    n=0

    x(2n+ 1)e−j2πk(2n+1)/N

    =

    N2−1∑

    n=0

    x(2n)e−j2πkn/N2 + e−j2πk/N

    N2−1∑

    n=0

    x(2n+ 1)e−j2πkn/N2

    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 . DennaDFT är periodisk med längden N/2.

    124

  • Snabba Fouriertransformen (FFT) – 3

    Följaktligen kan vi då uttrycka X(k) som

    X(k) = X0(〈k〉N/2) + e−j2πk/NX1(〈k〉N/2), 0 ≤ k ≤ N − 1där 〈k〉N/2 = k · modulo(N/2) och

    X0(〈k〉N/2) — N/2-punkters DFT av x0(n) = x(2n)X1(〈k〉N/2) — N/2-punkters DFT av x1(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 · log2N komplexa mult.

    128

  • Fjärilsberäkningen —den grundläggande FFT-modulen

    Ψr+1(α) = Ψr(α) +WlNΨr(β)

    Ψr+1(β) = Ψr(α) +Wl+(N/2)N Ψr(β)

    = Ψr(α) −W lNΨr(β)

    129

  • FFT — decimering i tid

    Den uppdelning av DFT:n som är gjord här kallas (”decimering-

    i-tid”)

    X(k) =N−1∑

    n=0

    x(n)e−j2πkn/N

    =

    N2−1∑

    n=0

    x(2n)e−j2πk2n/N +

    N2−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∑

    n=0

    x(n)e−j2πkn/N

    =

    N2−1∑

    n=0

    x(n)e−j2πkn/N +

    N2−1∑

    n=0

    x(n+N

    2)e−j2πk(n+

    N2 )/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 sinus-

    signal 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 ≤ η ≤ 2B − 1eller som bråkdel 0 ≤ η ≤ 1 − 2−B.

    Flyttal η: representeras som η = M · 2E där M kallas mantissaoch 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∑

    i=1

    a−i2−i, s = 1 ⇒ η = −b∑

    i=1

    a−i2−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 adderastill den minst signifikanta biten (LSB). Vanligast!

    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 = d log2 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-komple-

    ment (som innehåller en teckenbit och 3 decimalbitar), samt

    skatta antalet bitar som krävs för att representera detta de-

    cimaltal korrekt.

    Multiplicera med antalet tillgängliga bitar (förutom teckenbiten),

    dvs. 0.95624 · 23 = 7.64992, och avrunda till närmaste heltalnerå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å teckenbitarvarav 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äm-fö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 flyttalsrepresentationoch omfattar 32 eller 64 bitar. I ett 32 bitars ord ryms 8 bitar tillexponent (E), 23 bitar till mantissa (M) och 1 teckenbit (S):

    Ett flyttal representeras som η = (−1)S2E−127M, 0 ≤M ≤ 1.

    Exempel: för flyttalet 0∆10000011∆110000...000 så gäller attE = 10000011 = 131, M = 110000...000 = 0.75 och S = 0.Följaktligen är

    η = (−1)0 · 2131−127 · 0.75 = 16 · 0.75 = 12141

  • Flyttalsrepresentation IEEE –addition/multiplikation

    Vi utgår från två flyttal X1 = M1 · 2E1 och X2 = M2 · 2E2.

    Addition leder till X = X1 +X2 = (M1 +M2 · 2E2−E1) · 2E1 omvi antar att X1 > X2. Här måste vi göra exponenterna lika stora

    för båda flyttalen, och i detta fall är det X2 som ändras eftersom

    det är det mindre.

    Multiplikation leder till X = X1 ·X2 = (M1 ·M2) · 2E1+E2.

    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 an-

    givna med oändlig precision; dock, dessa storheter måste i prak-

    tiken 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, kas-

    kadkopplad, lattice, osv).

    • stabilitet (gäller endast IIR-filter). Stabilitet som gäller vidoändlig ordlängd kan tyvärr inte garanteras vid ändlig ord-

    lä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 + a1z−1 + a2z−2

    där a1 = −1.957558 och a2 = 0.995813. Studera hur centerfre-kvensen fc förändras om koefficienterna kvantiseras till 8 bitar!

    Okvantiserat: Nämnaren i H(z) kan skrivas om med polärakoordinater (r, θ) som (1 − 2r cos(θ)z−1 + r2z−2) vilket ger attr =

    √a2 = 0.99795 och θ = arccos

    (

    −a12r)

    = 11.25o, och alltsåblir centerfrekvensen fc = 11.25/360 = 0.0312.

    Kvantiserat: Eftersom a1 är större än 1 så behöver de 8 bitarnaanvändas så att 1 bit går till tecken, 1 bit till heltalsdelen och 6bitar 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:

    a1q = −1.957558 · 26 ⇒ −125 ≡ 10000011(−128 + 3)a2q = 0.995913 · 26 ⇒ 63 ≡ 00111111

    som är liktydigt med

    a1q = −125

    64= −1.953125 (att jämföra med –1.957558)

    a2q =63

    64= 0.984375 (att jämföra med 0.995813)

    Omräknat i polära koordinater blir de kvantiserade koefficienterna

    (rq, θq) = (0.992156, 10.171853o) och därmed fc = 0.0283 (att

    jämföra med fc = 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 filterkoeff-

    icienterna.

    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 filterkoeff-

    icienterna.

    152

  • Vilken struktur är minst känslig för kvantisering?

    HI(z) =z2

    z2−Kz+L HII(z) =γz2

    z2−(α+δ)z+(αδ−βγ)

    HI(z) och HII(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

    bizi =

    N∏

    k=1

    (z − zk) där bN = 1

    som kan uttryckas i polär form

    zk = rkejθk.

    Kvantisering medför att bi förändras till bi + ∆bi och således

    B̂(z) =N∑

    i=0

    (bi + ∆bi)zi = B(z) +

    N∑

    i=0

    (∆bi)zi =

    N∏

    i=1

    (z − ẑk).

    154

  • Kvantisering: förflyttning av poler/nollställen – 2

    För små förändringar ∆bk så är ẑk och zk nära varandra, varför

    ẑk = zk + ∆zk = (rk + ∆rk)ej(θk+∆θk).

    Vidare, för mycket små förändringar ∆bk så

    ẑk ≈ (rk + ∆rk)(1 + j∆θk)ejθk ≈ rkejθk + (∆rk + jrk∆θk)ejθk

    om termer av högre ordning negligeras.

    Alltså:

    ∆zk = ẑk − zk ≈ (∆rk + jrk∆θk)ejθk

    155

  • Kvantisering: förflyttning av poler/nollställen – 3

    Om alla koefficienterna bi för ett filter kan skrivas bi = f(α) där

    α = [ α1 · · · αR ] är en ny uppsättning variabler som beskri-ver filtret så kan propageringen av kvantiseringsfel mellan dessa

    variabeluppsättningar skrivas

    ∆B = C · ∆α∆B = [ ∆b0 · · · ∆bN−1 ]T

    ∆α = [ ∆α1 · · · ∆αR ]T

    C =

    ∂b0∂α1

    ∂b0∂α2

    . . . ∂b0∂αR

    ∂b1∂α1

    ∂b1∂α2

    . . . ∂b1∂αR... ... . . . ...

    ∂bN−1∂α1

    ∂bN−1∂α2

    . . . ∂bN−1∂αR

    .

    156

  • Kvantisering: förflyttning av poler/nollställen – 4

    Om exempelvis

    K = 2r cos θ

    och

    L = r2

    så fortplantas fel enligt[

    ∆K∆L

    ]

    =

    [

    2cos θ −2r sin θ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öljanderesultat:

    ∆θI = − ∆K2r sin θ ∆θII = −1r sin θ∆α+

    1r cos θ∆β.

    Slutsats: struktur I är känsligare för kvantisering om en pol liggernä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) =∑Nn=0 h(n)z

    −n kan efterkvantisering 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), be-skriver felet förorsakat av kvantisering.

    En uppfattning om felets storlek fås genom följande omskrivning-ar:

    ∣E(ejω)∣

    ∣ =

    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 avrundningleder 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 σ2e förstärks i ett filter H(ejω)

    till

    σ2v =σ2e2π

    ∫ π

    −π|H(ejω)|2dω

    Normerat till insignalvariansen blir detta

    σ2v,n =1

    ∫ π

    −π|H(ejω)|2dω = 1

    2πj

    CH(z)H(z−1)z−1dz

    161

  • Utsignalens varians vid kvantiserad insignal

    Eftersom H(z) kan partialbråksuppdelas i första och andra ord-

    ningens rationella, reella och stabila överföringsfunktioner Hi(z)

    H(z) =R∑

    i=1

    Hi(z)

    så kan utsignalvariansen skrivas

    σ2v,n =

    R∑

    k=1

    1

    2πj

    C

    Hk(z)Hk(z−1)z−1dz+ 2

    R−1∑

    k=1

    R∑

    l=k+1

    1

    2πj

    C

    Hk(z)Hl(z−1)z−1dz

    där Ii (dvs den andra integralen) finns givna i tabell 12.4 för olika kombina-tioner av Hk(z) och Hl(z)

    1

    2πj

    C

    Hk(z)Hl(z−1)z−1dz.

    162

  • Kvantisering vid aritmetriska operationer

    Ett generellt linjärt filter beskrivs av följande differensekvation

    y(n) = −N∑

    k=1

    dky(n− k) +M∑

    k=0

    pkx(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[dky(n− k)] +M∑

    k=0

    Q[pkx(n− k)].

    163

  • Modeller för kvantiseringsbrus

    (a)

    (b)

    (c)

    (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 hanteramatematiskt! I denna modell antas att kvantiseringsfelen ei(n) äradditiva (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 sinse-mellan okorrelerade),

    • rektangelfördelad täthetsfunktion över kvantiseringsintervallet,

    • okorrelerad med 1. insignalen till kvantiseraren, 2. med allaandra 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 anta-gandet om rektangelfördelning så ges kvantiseringsbrusets va-

    rians av

    σ2e =2−2b

    12.

    Hur summerar sig kvantiseringsbruset från varje enskild opera-

    tion i filtrets utsignal? Antagandet om en linjär modell ger att

    det totala felet kan skrivas som

    e(n) = e0(n) + e1(n) + e2(n) + e3(n) + e4(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):

    σ2f =σ2e2π

    ∫ π

    −π|Hf(ejω)|2dω = σ2e

    ∞∑

    n=−∞|hf(n)|2.

    Med antaganden om okorrelerade felsignaler och rektangelfördel-

    ning, så ges det totala felet e(n):s varians av

    σ2e = σ2e0

    + σ2e1 + σ2e2

    + σ2e3 + σ2e4

    = 5 · 2−2b

    12,

    och som för ett generellt filter blir σ2e = (M +N − 1)2−2b12 .

    167

  • Linjär, statistisk modell för kvant.brus, forts

    Exempel: Vi ska bestämma den totala variansen för kvantise-ringsbrusets i utsignalen om det digitala filtret definieras av

    H(z) =1

    1 − az−1.

    Detta filter har impulssvaret h(n) = anu(n) och således gäller atthf(n) = h(n). Utsignalens varians ges av

    σ2f = σ2e

    ∞∑

    n=−∞|hf(n)|2

    =2−2b

    12

    ∞∑

    n=0

    |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åstevi då använda fler bitar för bibehållen varians.

    168

  • Vad blir totala utsignalvariansen vid flerakvantiseringsbruskällor?

    • Rita först upp filterstrukturen! Placera in kvantiseringsbrus-källor efter varje produkt (före eller efter nästa addition).

    • Vad blir överföringsfunktionen från var och en av bruskällor-na? Sätt alla andra insignaler till noll.

    • Använd sedan teorin för hur en brussignal går genom ett fil-ter (partialbråksuppdela varje överföringsfunktion och användtabell 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 vidsystemets ingång som utgång liksom vid alla interna noder.

    • I många system är det dock fördelaktigt att använda olikasamplingsfrekvens i olika delar av systemet – multi-rate sy-

    stem.

    171

  • Till vad nytta?

    • Audio: omvandling av samplingsfrekvens mellan t.ex. digitalradio 32 kHz; CD 44.1 kHz; DAT 48 kHz.

    • Audio: förändring av tonhöjd, t.ex. för kompensation av svajeller ”falsksång”.

    • Video: omvandling av samplingsfrekvens mellan systemen NTSCoch PAL.

    • Även: effektiv implementering av filterbankar för kompressionav olika signaler, t.ex. audio.

    172

  • Översikt

    • Uppsampling och nersampling (kap. 13.1)

    • Filterdesign vid ändring av samplingsfrekvens – decimeringoch 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),

    xu(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)

    Xu(z) =∞∑

    n=−∞xu(n)z

    −n =∞∑

    n=−∞neven

    x(n/2)z−n

    =∞∑

    m=−∞x(m)z−2m = X(z2) ⇒ Xu(ejω) = X(ejω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ågpassregion-en ser inte ut som ett lågfrekvent spektrum efter uppsamp-

    ling.

    • Lågpassfiltrering tar bort kopiorna i spektrat och ersätter nol-lorna 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 xint(n) som är

    definierad för alla tidpunkter n, dvs.

    xint(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=−∞x(Mn)z−n =

    ∞∑

    n=−∞xint(Mn)z

    −n

    =∞∑

    k=−∞xint(k)z

    − kM = Xint(z1/M).

    180

  • Nersampling och resulterande spektrum, forts

    Efter diverse räkningar erhålls att z-transformen för xint(n) är

    Xint(z) =1

    M

    M−1∑

    k=0

    X(zW−kM ),

    där WM = e−j2π/M . Följaktligen

    Y (z) =1

    M

    M−1∑

    k=0

    X(z1/MW−kM )

    som i frekvensplanet ges av

    Y (ejω) =1

    M

    M−1∑

    k=0

    X(ej(ω−2πk)/M).

    Detta uttryck tolkas som att resulterande spektrum är en sum-ma av M ursprungliga spektra men där bredden skalats om medfaktorn 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 uppsamp-

    ling vid interpolering (ta bort kopior) med faktorn L ges av

    |H(ejω)| =

    L, |ω| ≤ ωc/L0, π/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(ejω)| =

    1, |ω| ≤ ωc/M0, π/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 FIR-

    filter 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 dif-

    ferensekvation för nämnaren w[n].

    w(nM) = −d1w(nM − 1) − · · · − dKw(nM −K) + x(n)v(nM) = p0w(nM) + p1w(nM − 1) + · · · + pKw(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

    RM,FIR = N

    RM,FIR−DEC = N/M

    RM,IIR = (2K + 1)

    RM,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 ochinterpolering

    Vi har tidigare sett att alla FIR-filter kan realiseras i polyfasstruk-

    tur. I vissa fall är det också möjligt att realisera IIR-filter i polyfas-

    struktur. 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 ochinterpolering

    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 v0(n), . . . , vM−1(n) från analys-filterbanken behand-las 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 H0(ejω) överst har ωp och ωs runt π/M .

    203

  • Uniform DFT-filterbank – 2

    De andra M − 1 filtren fås genom att skifta prototypfiltretH0(e

    jω) längs med frekvensaxeln i steg om 2πk/M , dvs.

    Hk(ejω) = H0(e

    jωe−j2πk/M), 0 ≤ k ≤M − 1.I tidsplanet ges impulssvaret för hk(n) av

    hk(n) = h0(n)ej2πkn/M , 0 ≤ k ≤ M − 1.

    Om vi plottar |Hk(ejω)| för olika värde på k så erhålls diagrammetpå föregående sida. Den resulterande filterbanken kallas uniform

    eftersom alla delbandsfilter ges av ekvidistanta frekvensskift av

    H0(ejω), dvs.

    |Hk(ejω)| = |H0(ej(ω−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 H0(ejω) kan

    användas också för att skapa de olika Hk(ejω). Hur de olika po-

    lyfaskomponenterna ska kombineras anges av en invers DFT-

    matris.

    205

  • DFT analys-filterbank med polyfasstruktur – 2

    Vi utgår ifrån H0(z) uttryckt som ett M-bands polyfasfilter, dvs.

    H0(z) =

    M−1∑

    l=0

    z−lEl(zM)

    där El(z) är den l:te polyfaskomponenten,

    El(z) =

    ∞∑

    n=0

    el(n)z−n =

    ∞∑

    n=0

    h0(l+ nM)z−n, 0 ≤ l ≤M − 1

    Polyfasform för filtren Hk(z) erhölls med frekvensskift, som i z-planet svarar mot att z ersätts med ze−j2πk/M , dvs.

    Hk(z) =M−1∑

    l=0

    z−lej2πkl/MEl(zMe−j2πkM/M)

    =M−1∑

    l=0

    z−lej2πkl/MEl(zM)

    206

  • DFT analys-filterbank med polyfasstruktur – 3

    För specialfallet M = 2 så blir

    H0(z) = E0(z2) + z−1E1(z2)

    och H1(z) blir

    H1(z) =1∑

    l=0

    z−lej2πl/2El(z2e−j2πk)

    = E0(z2) − z−1E1(z2)

    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

    H0(z)H1(z)

    ...HM−1(z)

    =

    1 1 . . . 11 ej2π/M . . . ej2π(M−1)/M... ... . . . ...1 ej2π(M−1)/M . . . ej2π(M−1)

    2/M

    E0(zM)z−1E1(zM)

    ...z−(M−1)EM−1(zM)

    eller mera kompakt uttryckt som vektorer och matris,

    H(z) = MD−1E(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äkningav 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) = 1M

    M−1∑

    k=0

    X(k)ej2π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−1X

    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) log2M +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 antalkoefficienter är lika med noll,

    • bevarar de ursprungliga samplens värde vid interpolering (dvsdessa 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) = E0(zL) + z−1E1(zL) + · · · + z−(k−1)Ek−1(zL) + αz−k

    + z−(k+1)Ek+1(zL) + · · · + z−(L−1)EL−1(zL)

    där en polyfaskomponent är konstant, dvs. Ek(zL) = αz−k.

    Vid interpolering erhålls utsignalen som Y (z) = H(z)X(zL), eller

    Y (z) = αz−kX(zL) +L−1∑

    l=0l 6=k

    z−lEl(zL)X(zL)

    som i tidsplanet innebär att

    y(nL+ k) = αx(n),

    dvs. insignalens sampel återfinns odistorderade i utsignalen, me-dan 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 E0(zL) som är lika

    med α så kan man visa att∑L−1k=0H(zW

    kL) = Lα.

    215

  • Halvbandsfilter — specialfall av L-bandsfilter

    Om L = 2 så kallas filtret för halvbandsfilter och ges då av

    H(z) = E0(z2) + z−1E1(z2) = α+ z−1E1(z2)

    där vi utnyttjat att E0(z2) är den konstanta polyfaskomponenten,

    oftast vald med α = 12. Följaktligen är impulssvaret (varannat

    sampel) lika med

    h(2n) =

    12, n = 0

    0, för övrigt.

    För alla halvbandsfilter kan man visa att

    H(z) +H(−z) = 12

    + z−1E1(z2) +1

    2− z−1E1(z2) = 1

    vilket har en intressant tolkning i frekvensplanet...

    216

  • Halvbandsfilter — specialfall av L-bandsfilter

    Om vi sätter z = ejω så erhålls

    H(ejω) +H(−1 · ejω) = H(ejω) +H(ej(π−ω)) = 1som 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 = 11h(n), N = 11 H(ejω) H(ej(π−ω)) H(ejω) +H(ej(π−ω))

    Eftersom flera koefficienter (ibland uppåt 50%) är noll sparasmå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 de-

    signas med fönstermetoden. Om hLP (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 V0(z) = X(z)H0(z) re-

    spektive V1(z) = X(z)H1(z). Nedsampling med en faktor 2 leder

    till följande in-/utsamband (se föreläsning 6)

    U0(z) =1

    2X(z1/2)H0(z

    1/2) +1

    2X(−z1/2)H0(−z1/2)

    U1(z) =1

    2X(z1/2)H1(z

    1/2) +1

    2X(−z1/2)H1(−z1/2)

    som på matrisform blir[

    U0(z)U1(z)

    ]

    =1

    2

    [

    H0(z1/2) H0(−z1/2)

    H1(z1/2) H1(−z1/2)

    ] [

    X(z1/2)

    X(−z1/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 sam-

    band (se föreläsning 6)

    Y (z) = G0(z)U0(z2) +G1(z)U1(z

    2)

    som på matrisform blir

    Y (z) =[

    G0(z) G1(z)]

    [

    U0(z2)

    U1(z2)

    ]

    Notera att lågpassfiltret G0(z) eliminerar det mesta av frekvens-

    innehållet i π/2 ≤ ω ≤ π, medan högpassfiltret G1(z) eliminerardet mesta av innehållet i 0 ≤ ω ≤ π/2. Eftersom frekvenssvarenhos 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) =[

    G0(z) G1(z)]

    · 12

    [

    H0(z) H0(−z)H1(z) H1(−z)

    ] [

    X(z)X(−z)

    ]

    Detta uttryck kan också skrivas som

    Y (z) = T(z)X(z) +A(z)X(−z)där de två funktionerna

    T(z) =1

    2[G0(z)H0(z) +G1(z)H1(z)]

    A(z) =1

    2[G0(z)H0(−z) +G1(z)H1(−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 rekonstrue-

    ras: vi säger att filterbanken åstadkommer perfekt rekonstruk-

    tion om

    T(z) = z−k

    dvs. en ren fördröjning.

    Dessa två, mycket önskvärda egenskaper sammanfattas med

    1

    2

    [

    G0(z) G1(z)]

    [

    H0(z) H0(−z)H1(z) H1(−z)

    ]

    =

    [

    z−k0

    ]T

    .

    225

  • QMF-bank — standardversionen

    Om vi väljer följande analys- och syntesfilter:

    H0(z) = H(z), H1(z) = H(−z), G0(z) = H(z), G1(z) = −H(−z)så elimineras vikningsdistorsionen, dvs. A(