TSBK35 Kompression av ljud och bild Övningshäfte 0 februari 013 Innehåll I Problem 1 1 Informationsteori................................ 1 Källkodning................................... 3 3 Kvantisering................................... 8 4 Linjär prediktiv kodning............................ 11 5 Transform- och delbandskodning....................... 1 II Lösningar 17
Del I Problem 1 Informationsteori 1.1 Den stokastiska variabeln X tar värden i alfabetet {1,, 3, 4}. Sannolikheterna för de olika utfallen är Beräkna H(X). P X (1) = P X () = P X (3) = P X (4) = 0.5 1. Den stokastiska variabeln Y tar värden i alfabetet {1,, 3, 4}. Sannolikheterna för de olika utfallen är Beräkna H(Y). P Y (1) = 0.5, P Y () = 0.5, P Y (3) = P Y (4) = 0.15 1.3 Antag att X och Y i 1.1 och 1. är oberoende. Betrakta den stokastiska variabeln (X,Y). a) Bestäm P XY (x i,y j ). b) Beräkna H(X,Y) c) Visa att H(X,Y) = H(X)+H(Y) då X och Y är oberoende. d) Generalisering: Visa att H(X 1,X,...,X n ) = H(X 1 )+...+H(X n ) så länge alla variablerna är inbördes oberoende. 1.4 Z tar värden i {1,,3,4} a) Ge ett exempel på en sannolikhetsfördelning P Z som maximerar H(Z). Är P Z unik? b) Ge ett exempel på en sannolikhetsfunktion P Z som minimerar H(Z). Är P Z unik? 1
1.5 Låt den stokastiska variabeln U ta värden i det oändliga alfabetet {0,1,,...}, med sannolikhetsfunktionen P U (i) = q i (1 q), 0 < q < 1. a) Kontrollera att P U (i) = 1. i=0 b) Beräkna H(U) c) Beräkna väntevärdet E{U } 1.6 En likformigt fördelad stokastisk variabel tar värden ur alfabetet {0000,0001,0010,...,1011} (talen 0 till 11 skrivna som fyrabitars binära tal). a) Vad är entropin för den minst signifikanta biten? b) Vad är entropin för den mest signifikanta biten? c) Vad är entropin för hela fyrabitarsordet? 1.7 En första ordningens markovkälla X i med alfabet {0,1,} har övergångssannolikheter enligt figuren. Beräkna de stationära sannolikheterna för tillstånden. 0.8 0 0.5 0.1 0.1 0.5 1 0.5 0.5 1.8 Betrakta markovkällan i 1.7. a) Beräkna den minnesfria entropin. b) Beräkna blockentropin H(X i,x i+1 ). Jämför med H(X i )+H(X i+1 ) = H(X i ). c) Beräkna den betingade entropin H(X i X i 1 )
1.9 En delvis okänd binär stationär källa genererar alternerande skurar om nollor och ettor. Skurlängderna r är oberoende av varandra och har följande fördelningar P(r nollor) = q r 1 0 (1 q 0 ) P(r ettor) = q r 1 1 (1 q 1 ) a) Vadärmedelskurlängdernar 0 ochr 1 [symboler/skur]förnollorrespektiveettor? b) Vad är entropierna H 0 och H 1 för noll- respektive ettskurar [bitar/skur]? c) Vad är entropitakten för källan [bitar/symbol]? Föreslå en källmodell som genererar skurarna. Källkodning.1 En föreslagen kod för en källa med alfabet A = {1,...,8} har kodordslängderna l 1 =, l =, l 3 = 3, l 4 = 4, l 5 = 4, l 6 = 5, l 7 = 5 och l 8 = 6. Kan man konstruera en prefixkod med dessa längder?. En minnesfri källa har det oändliga alfabetet A = {1,,3,...,} och symbolsannolikheter P(i) = i, dvs P(1) = 0.5,P() = 0.5,P(3) = 0.15,... Konstruera en optimal binär prefixkod för källan och beräkna den förväntade datatakten R i bitar/symbol..3 En minnesfri källa har alfabetet A = {x, y, z} och symbolsannolikheterna a) Vad är källans entropi? P(x) = 0.6, P(y) = 0.3, P(z) = 0.1 b) Konstruera en huffmankod för enskilda symboler från källan och beräkna kodens medeldatatakt i bitar/symbol. c) Konstruera en huffmankod för par av symboler från källan och beräkna kodens medeldatatakt i bitar/symbol..4 Betrakta följande markovkälla av ordning 1, där p = 0.9: 1 p p a b p 1 p Konstruera huffmankoder för källan där vi kodar respektive 3 symboler i taget. Beräkna datatakterna för de två koderna. Vilken kod är bäst? 3
.5 Betrakta källan i problem.4. Den ger ifrån sig skurar av a och b. Istället för att koda symboler, kan man koda längden av varje skur. Vi skapar alltså en ny källa R som har ett oändligt alfabet av skurlängder B = {1,,3,...}. a) Vad är sannolikheten för en skur av längd r? b) Vad är medelskurlängden (i symboler/skur)? c) Vad är entropin för R (i bitar/skur)? d) Vad är entropitakten för källan (i bitar/symbol)?.6 Vi vill nu göra en enkel systematisk kod för skurlängderna från källan i.4. a) Konstruera en fyrabitars fixlängdskod för skurlängderna 1 till 15, dvs: skurlängd kodord 1 0000 0001 3 0010 4 0011 5 0100...... 14 1101 15 1110 Längre skurar kodas som 1111 följt av kodordet för en skur av längd-15, dvs skurlängden 16 kodas som 1111 0000, skurlängden 17 kodas som 1111 0001, skurlängden 4 kodas som 1111 1111 1001 och så vidare. Beräkna datatakten för koden i bitar/symbol. b) Ändra kordslängden till fem bitar och gör samma sak som ovan 4
.7 Vi vill sända dokument med en faxmaskin. Faxen klarar av färgerna svart och vitt. Experiment har visat att textområden och bildområden av dokumenten har olika statistiska egenskaper. Dokumenten läses av och kodas radvis, enligt en tidsdiskret stationär process. De följande betingade sannolikheterna har skattats från en stor mängd testdata Färg på Sannolikhet för färg på nästa bildpunkt nuvarande Textområde Bildområde bildpunkt svart vit svart vit svart 0.5 0.5 0.7 0.3 vit 0.1 0.9 0. 0.8 Sannolikheten att vi befinner oss i ett textområde är 4 5 och sannolikheten att vi befinner oss i ett bildområde är 1 5. Antag att de estimerade sannolikheterna är korrekta och besvara nedanstående frågor. a) Antag att vi kan försumma kostnaden för att koda vilka områden i dokumentet som är text och vilka områden som är bilder. Beräkna en övre gräns för den teoretiskt lägsta datatakten som vi kan koda dokument med, i bitar/bildpunkt. b) Konstruera en huffmankod för textområdena som har en datatakt på 0.65 bitar/bildpunkt eller mindre..8 Betrakta följande markovkälla av ordning 1 A 0.5 B 0. 0.1 0.5 0.8 C D 0.7 0.9 0.3 a) Visa att det är möjligt att koda utsignalen från källan med en datatakt som är mindre än 0.6 bitar/symbol. b) Konstruera huffmankoder för enstaka symboler och för par av symboler från källan. Beräkna de resulterande datatakterna..9 En minnesfri källa har alfabet A = {1,,3} och sannolikheter P = {0.6,0.,0.}. Vi vill koda sekvensen 3,1,1, med aritmetisk kodning. Ta fram kodordet. 5
.10 En minnesfri källa har alfabetet A = {a 1,a,a 3 } och symbolsannolikheterna P(a 1 ) = 0., P(a ) = 0.75 och P(a 3 ) = 0.05. Vi vill koda källan med aritmetisk kodning. Visa hur detta går till genom att koda sekvensen a 1 a a 3 a a Ange både det resulterande intervallet och motsvarande kodord. Man kan anta oändlig noggrannhet i alla beräkningar..11 En stationär första ordningens markovkälla X i har alfabet A = {a,b} och betingade sannolikheter P(x i x i 1 ) enligt P(a a) = 0.8, P(b a) = 0., P(a b) = 0.3, P(b b) = 0.7 Koda sekvensen abbba med aritmetisk kodning. Kodningen ska ta hänsyn till källans minne. Ange vilket intervall sekvensen motsvarar och vad kodordet blir. Antag att föregående symbol var a. Alla beräkningar kan antas kunna utföras med oändlig precision..1 Man vill kodaen stationär och binärminneskällamedalfabetet A = {a,b}. Följande parsannolikheter P(x i,x i+1 ) har mätts upp och kan antas vara de sanna: P(a,a) = 1/7 P(a,b) = 1/7 P(b,a) = 1/7 P(b,b) = 4/7 Konstruera ett kodord för sekvensen bbab genom att använda aritmetisk kodning. Koden ska vara baserad på betingade sannolikheter. Anta att symbolen närmast innan sekvensen som ska kodas är b. 6
.13 Ett system för att överföra enkla färgbilder använder färgerna vitt, svart, rött, blått grönt och gult. Källan modelleras som en första ordningens markovkälla med följande övergångssannolikheter Tillstånd sannolikhet för nästa tillstånd vitt svart rött blått grönt gult vitt 0.94 0.0 0.01 0.01 0.01 0.01 svart 0.05 0.50 0.15 0.10 0.15 0.05 rött 0.03 0.0 0.90 0.01 0.01 0.03 blått 0.0 0.0 0.0 0.90 0.03 0.01 grönt 0.0 0.0 0.01 0.03 0.90 0.0 gult 0.03 0.01 0.03 0.01 0.03 0.89 Vi använder aritmetisk kodning för att koda sekvenser från källan. Kodaren utnyttjar de betingade sannolikheterna vid kodningen. a) En sekvens börjar med rött, vitt, vitt. Vilket intervall motsvaras detta av? Antag att den föregående bildpunkten var röd. b) Avkodaren väntar på en ny sekvens. Bitströmmen 110100111100001100 tas emot. Vilka är de två första färgerna i denna sekvens? Den sista pixeln i föregående sekvens var svart..14 En källa har alfabetet A = {a,b}. Koda sekvensen ababbaaababbbbaaabaaaaaababba... med LZ77. Historiebufferten har storlek 16 och maximal matchlängd är 15. Kontrollera din lösning genom att avkoda kodorden..15 Koda sekvensen i uppgift.14 med LZ78..16 Koda sekvensen i uppgift.14 med LZW. 7
.17 En källa har alfabetet {a, b, c, d}. a) Koda sekvensen babadacccabbadabbccab med hjälp av LZW. Ange både den resulterande indexsekvensen och den slutliga ordboken. b) En sekvens från källan kodas med LZW och ger följande indexsekvens: < > < 0 > < 4 > < 6 > < 0 > < 1 > < 0 > < 3 > < 8 > < 5 > Startordboken är: index sekvens 0 a 1 b c 3 d Avkoda indexsekvensen. Ange även hur den slutliga ordboken ser ut..18 En källa har alfabetet {a, b, c, d, e, f}. En lång sekvens från källan kodas med LZW. Den resulterande indexsekvensen börjar som Startordboken är: 3, 0, 6, 8, 4, 1, 11, 7, 10, 1,... index sekvens 0 a 1 b c 3 d 4 e 5 f Avkoda indexsekvensen. Ange även hur den slutliga ordboken ser ut. 3 Kvantisering 3.1 Låt X vara en kontinuerlig stokastisk variabel, likformigt fördelad över ( T, T). Bestäm rekonstruktionspunkter och beslutsgränser för en trenivåers Lloyd-Maxkvantiserare och beräkna den förväntade distorsionen. 8
3. Låt X vara en kontinuerlig laplacefördelad stokastisk variabel: f(x) = 1 x a e a a) Bestäm rekonstruktionspunkter och beslutsgränser för en tvånivåers Lloyd- Max-kvantiserare och beräkna den förväntade distorsionen D = E {(X ˆX) } Tips: Förenkla problemet genom att anta vissa symmetrier. b) Som i uppgift a, men för tre nivåer istället. 3.3 En tidskontinuerlig elektrisk signal X(t) ska samplas och skalärkvantiseras. X(t) har spektraltätheten Φ(f ) R 0-15kHz f 15kHz och en likformigt fördelad amplitud. Konstruera en kodare för signalen sådan att den förväntade distorsionen inte överskrider 30 db och som håller datatakten så låg som möjligt. Ange alla antaganden som görs. 3.4 En normalfördelad stokastisk variabel med medelvärde 0 och varians σ = 5 kvantiseras optimalt till två nivåer. a) Hur stor blir distorsionen? b) Vad är entropin för den kvantiserade signalen? c) Vad är den teoretiskt lägsta datatakten (enligt rate-distortionfunktionen R(D)) vid samma distorsion som i uppgift a? 3.5 En gaussisk stokastisk variabel med medelvärde 0 och varians σ kvantiseras till fyra nivåer. Vilka värden på distorsionen kan man få? 3.6 På en vanlig ljud-cd är ljudet kvantiserat med 16 bits/sampel. Antag att ljudet kan beskrivas som en normalfördelad stokastisk process med medelvärde 0 och varians σ. Kvantiseraren som används är likformig i intervallet [ a,a], där a har valts så att a = 6σ. Ingen entropikodning görs. Hur mycket skulle man kunna tjäna (i SNR) om man använde en Lloyd-Maxkvantiserare istället för en likformig kvantiserare? 9
3.7 Detta problem exemplifierar huvudstegen i LBG-algoritmen för att träna kodböcker för vektorkvantiserare. Antag att vi vill kvantisera två närliggande bildpunkter i taget som en tvådimensionell vektor. Vi vill ha fyra rekonstruktionspunkter A, B, C och D. Vi använder 13 bildpunktspar (se figuren) som träningsdata. a) Beräkna medeldistorsionen (medelkvadratfelet) för träningsmängden, givet figurens rekonstruktionspunkter och beslutsområden. b) Hur bör rekonstruktionspunkterna modifieras för att minimera distorsionen? Beräkna den nya distorsionen. c) Givet de nya rekonstruktionspunkterna, hur ska beslutsområdena modifieras för att minimera distorsionen? 1 3 A 4 9 C 8 5 11 10 6 7 B 1 D 13 Punkt X Y 1-60 -30-30 -40 3-40 -0 4-30 -10 5-10 -15 6 10 0 7 0 5 8-5 10 9-5 40 10 0 5 11 0 50 1 35 5 13 50 55 A -40-40 B 15-15 C -15 15 D 40 40 3.8 En bild med 56 56 bildpunkter delas in i små block som sedan vektorkvantiseras så att den resulterande datatakten är 1.5 bit/bildpunkt. Antag att kodboken inte har någon struktur, så att vi måste göra en fullständig sökning för att hitta den rätta rekonstruktionspunkten för varje block. Antag dessutom att det går åt 1 µs/dimension för att beräkna avståndet mellan två block. a) Hur lång tid tar det att koda bilden om blockstorleken är 8 8 bildpunkter? b) Vad är den maximala blockstorleken om vi vill koda bilden på mindre än en sekund? c) Vad är den maximala blockstorleken om vi vill koda bilden på mindre än en minut? 10
4 Linjär prediktiv kodning 4.1 En tidsdiskret normalfördelad signal X i med medelvärde 0 och en autokorrelationsfunktion R XX (k) = E{X i X i+k } med följande värden i punkterna 0, 1 and : R XX (0) = 1.0, R XX (1) = 0.9, R XX () = 0.7 a) Bestäm den prediktor av ordning 1 som minimerar prediktionsfelets varians, samt beräkna denna varians. b) Bestäm den prediktor av ordning som minimerar prediktionsfelets varians, samt beräkna denna varians. 4. En tidsdiskret signal X i har medelvärde 0 och autokorrelationsfunktion R XX (k) = ρ k, ρ < 1. a) Bestäm den prediktor av ordning 1 som minimerar prediktionsfelets varians, samt beräkna denna varians. b) Bestäm den prediktor av ordning som minimerar prediktionsfelets varians, samt beräkna denna varians. 4.3 En musiksignal modelleras som en endimensionell tidsdiskret stationär normalfördelad processx n. Manskattar medelvärdet till 0och autokorrelationsfunktionens värden i några punkter till R XX (0) = 9.00, R XX (1) = 7.55, R XX () = 6.39, R XX (3) = 4.07 Autokorrelationsfunktionen definieras som R XX (k) = E{X n X n+k }. Konstruera en tvåstegsprediktor för signalen så att prediktionsfelets varians minimeras samt beräkna denna varians. Prediktionsfelet kvantiseras med en Lloyd-Max-kvantiserare till 64 nivåer, dvs datatakten är 6 bitar/sampel. Vad blir signal-brus-förhållandet? 4.4 En ljudsignal modelleras som en tidsdiskret stationär normalfördelad process X n med medelvärde 0 och autokorrelationsfunktion R XX (k) = E{X n X n+k }. R XX (0) = 17.0, R XX (1) = 15.3, R XX () = 1.9 Konstruera en tvåstegsprediktor för signalen så att prediktionsfelets varians minimeras samt beräkna denna varians. Prediktionsfelet kvantiseras skalärt och källkodas minnesfritt. Vilken är den lägsta datatakt vi kan använda om vi vill ha ett signal-brus-förhållande som är minst 40 db? 11
4.5 En bildkälla modelleras som en tvådimensionell normalfördelad process X i,j (där i och j är koordinater i bilden) med medelvärde noll. Autokorrelationsfunktionen R XX (k,l) = E{X i,j X i+k,j+l } har från en stor mängd testdata skattats till: R XX (0,0) = 6.00, R XX (1,0) = 5.40 R XX (0,1) = 5.58, R XX (1,1) = R XX (1, 1) = 5.10 Källan kodas med prediktorn p i,j = a 1 ˆX i 1,j +a ˆX i,j 1 Hitta de prediktorkoefficienter a 1 och a som minimerar prediktionsfelets varians. Antag att prediktionsfelet kvantiseras skalärt och källkodas minnesfritt. Vad är den lägsta datatakt som kan användas om vi vill att signal-brusförhållandet ska vara minst 38 db? 5 Transform- och delbandskodning 5.1 En ljudsignal modelleras som en tidsdiskret stationär normalfördelad process X i med medelvärde 0 och autokorrelationsfunktion R XX (k). R XX (k) = E{X i X i+k } = 0.94 k Om vi antar att kvantiseringen är fin, hur stor SNR-vinst (i db) kan man teoretiskt göra genom att transformkoda signalen med en hadamardtransform, jämfört med att kvantisera signalen direkt? Undersök resultatet för både en tvåpunkters och en fyrapunkters transform. 5. En ljudsignal modelleras som en tidsdiskret stationär normalfördelad process X n med medelvärde 0 och autokorrelationsfunktion R XX (k) = E{X n X n+k }. R XX (0) =.0, R XX (1) = 1.8, R XX () = 1.7 Signalen transformkodas med en 3-punkters DCT. Transformkomponenterna Lloyd- Max-kvantiseras så att medeldatatakten blir bitar/sampel. Fördela bitar till transformkomponenterna så att medeldistorsionen minimeras och beräkna det resulterande signal-brus-förhållandet. Vad får man för signal-brus-förhållande om man istället Lloyd-Maxkvantiserar X n direkt, utan transformen, till samma medeldatatakt som ovan? 1
5.3 En monoljudsignal modelleras som en tidsdiskret stationär normalfördelad process X n. Från en stor mängd testdata har man skattat medelvärdet E{X n } och autokorrelationsfunktionen R XX (k) = E{X n X n+k } enligt E{X n } = 0.000 R XX (0) = 0.307, R XX (1) = 0.64 R XX () = 0.3, R XX (3) = 0.53 Signal transformkodas med en 4-punkters hadamardtransform och Lloyd-Maxkvantiseras så att medeldatatakten blir bitar/sampel. Fördela bitar så att medeldistorsionen minimeras. Beräkna vilket signalbrusförhållande (i db) detta motsvarar. Hur hög datatakt måste vi ha för att uppnå minst lika stort signal-brusförhållande om vi Lloyd-Max-kvantiserat signalen direkt, utan att använda någon transform? 5.4 En bildkälla modelleras som en stationär tvådimensionell gaussprocess X i,j. Källan har följande statistiska egenskaper E{X i,j } = 0 E{X i,j X k,l } = 0.95 i k 0.9 j l Vi vill koda bilden genom att ta block om bildpunkter och utföra en separabel hadamardtransform på blocken. Transformkomponenterna ska sedan Lloyd-Maxkvantiseras. Den önskade datatakten är 1.75 bitar/bildpunkt. Hur ska bitarna fördelas mellan transformkomponenterna så att distorsionen minimeras? Vad är det resulterande signal-brus-förhållandet? 13
5.5 En tidsdiskret signal modelleras som en stationär normalfördelad process X[n] med medelvärde 0 och autokorrelationsfunktion R XX (k) = 0.9 k Signalen ska transformkodas till i medel bitar/sampel. Till vårt förfogande har vi transformenheter T som tar två insampel (a, b) som indata och producerar två transformkomponenter enligt { c = 1 (a+b) d = 1 (a b) Vi betraktar två sätt att kombinera transformenheterna. I båda fallen läses fyra konsekutiva sampel från X[n] in och fyra transformkomponenter genereras enligt figuren nedan Hur mycket ökar signal-brus-förhållande (i db) om vi använder transformkomponenterna vid B i stället för vid A? Lloyd-Max-kvantisering med optimal bittilldelning används i båda fallen. a b T c d A a b T c d B a b T c d.. 14
5.6 En bildkälla modelleras som en stationär, endimensionell gaussprocess X[n], E{X[n]} = 0 E{X[n]X[m]} = 0.85 n m Vi vill delbandskoda bilden enligt figuren nedan och Lloyd-Max-kvantisera så att den resulterande medeldatatakten blir bitar/bildpunkt. H 0 (z) Y 1 Q 1 H 0 (z) X H 1 (z) Y Q H 1 (z) Y 3 Q 3 Filtren som används är H 0 (z) = 1 (1+z 1 ) och H 1 (z) = 1 (1 z 1 ), d.v.s. den normerade summan respektive skillnaden mellan två närliggande sampel. Symbolen betecknar nersampling, d.v.s. att vartannat sampel kastas bort. Filtren H 0 och H 1 är ortogonala, normerade och insignalen kan återskapas perfekt från nersamplade utdata. a) Fördela bitar till kvantiserarna Q 1, Q och Q 3 såatt kravet pådatatakt uppfylls och så att distorsionen minimeras. b) Beräkna den förväntade distorsionen och jämför med den distorsion man får om man Lloyd-Max-kvantiserar insignalen direkt, utan delbandskodning. 15
5.7 En bild modelleras som en tvådimensionell gaussprocess X[i, j] (i och j är koordinater i bilden) med statistiken E{X[i,j]} = 0 E{X[i,j]X[k,l]} = 0.9 (i k) +(j l) / Vi vill koda bilden med en tvådimensionell delbandskodare och Lloyd-Maxkvantisera så att medeldatatakten blir bitar/bildpunkt. H 0h Y 1 4 Q 1 H 0v H 1h 4 Y Q X H 0h 4 Y 3 Q 3 H 1v H 1h 4 Y 4 Q 4 Signalen filtreras först vertikalt med filtren H 0v (lågpass) och H 1v (högpass) och därefter horisontellt med filtren H 0h (lågpass) och H 1h (högpass). Filtrena är enkla summa- och skillnadsfilter, d.v.s. h 0v [k,l] = (δ[k,l]+δ[k,l +1])/ h 1v [k,l] = (δ[k,l] δ[k,l +1])/ h 0h [k,l] = (δ[k,l]+δ[k +1,l])/ h 1h [k,l] = (δ[k,l] δ[k +1,l])/ Symbolen 4 betyder nersampling med en faktor 4, d.v.s. endast 1/4 av samplen behålls efter filtreringen. Fördela bitar till de fyra kvantiserarna Q 1,...,Q 4 så att medeldistorsionen minimeras. Beräkna den resulterande distorsionen. 16
Del II Lösningar 1.1 H(X) = 4 i=1 P X(i) logp X (i) = 4 1 4 log 1 4 = 1. H(Y) = 4 i=1 P Y(i) logp Y (i) = 1 log 1 1 4 log 1 4 1 8 log 1 8 = 1.75 1.3 a) Oberoende ger direkt att P XY (x i,y j ) = P X (x i ) P Y (y j ), dvs P XY y j 1 3 4 1 0.15 0.065 0.0315 0.0315 x i 0.15 0.065 0.0315 0.0315 3 0.15 0.065 0.0315 0.0315 4 0.15 0.065 0.0315 0.0315 b) H(X,Y) = 3.75. Detta kan beräknas från P XY eller med hjälp av kedjeregeln. Eftersom X och Y är oberoende gäller att H(Y X) = H(Y) (se nästa delproblem). c) H(X,Y) = P XY (x i,y j ) logp XY (x i,y j ) i j = P X (x i ) P Y (y j )(logp X (x i )+logp Y (y j )) i j = P Y (y j ) P X (x i ) logp X (x i ) ( ) P X (x i ) P Y (y j ) logp Y (y j ) i j j i = H(X)+H(Y) d) Betrakta (X 1,...,X n 1 ) som en stokastisk variabel och konstruera ett induktionsbevis. 1.4 a) P Z (z i ) = 1 4, z i ger maximal entropi. b) P Z (1) = 1, P Z () = P Z (3) = P Z (4) = 0 ger H(Z) = 0. Eftersom entropin alltid är icke-negativ är detta minimalt. Lösningen är inte unik. 1.5 a) Ledning: b) H(U) = i=0 q i = 1, q < 1. 1 q q logq (1 q) log(1 q) 1 q = h(q) 1 q 17
Ledning: c) E{U } = i q i = i=0 q 1 q q (1 q), q < 1. 1.6 a) H = 1 b) H = h( 8 1 ) = 8 1 log 1 8 + 4 1 log 1 4 c) H = log 1 3.58 0.9 Notera att detta är mindre än summan av entropierna för de olika bitarna, eftersom de olika bitarna inte är oberoende av varandra. 1.7 Övergångsmatrisen P för källan är P = 0.8 0.1 0.1 0.5 0.5 0 0.5 0 0.5 Den stationära fördelningen w = (w 0, w 1, w ) ges av ekvationssystemet w = w P. Ersätt någon av ekvationerna (vilken som helst) med ekvationen w 0 +w 1 +w = 1 och lös systemet. Det ger oss lösningen w = 1 (5, 1, 1) (0.714, 0.143, 0.143) 7 1.8 a) H(X i ) = 5 7 log 5 7 1 7 log 1 7 1.15 [bit/sym]. b) Blocksannolikheterna ges av symbolpar sannolikhet 00 5/7 0.8 = 8/14 01 5/7 0.1 = 1/14 0 5/7 0.1 = 1/14 10 1/7 0.5 = 1/14 11 1/7 0.5 = 1/14 1 0 0 1/7 0.5 = 1/14 1 0 1/7 0.5 = 1/14.09 [bitar/par]. ( 1.05 [bi- H(X i,x i+1 ) = 8 14 log 8 14 6 1 14 log 1 14 tar/symbol]). Entropin för par är mindre än gånger den minnesfria entropin. c) Enligt kedjeregeln är H(X i X i 1 ) = H(X i 1,X i ) H(X i 1 ) 0.94 18
1.9 a) r 0 = 1 1 q 0 och r 1 = 1 1 q 1. b) H 0 = r 0 h(q 0 ) and H 1 = r 1 h(q 1 ). c) Varannan skur är en nollskur och varannan en ettskur. Entropin för skurarna blir då H 0+H 1 och medelskurlängden blir r 0+r 1. Symbolentropin blir då H = H 0 +H 1 r 0 +r 1 ( ) q0 1 q En första ordningens markovkälla med P = 0 är en källa som 1 q 1 q 1 genererar sekvenser med den givna fördelningen..1 Ja, eftersom Krafts olikhet är uppfylld.. Kodträdet för en optimal kod ser ut som: 1 3.. 4 Denna kod ger datatakten (lika med kodordsmedellängden) R = i i = [bitar/symbol] i=1 Jämför datatkten med källans entropi..3 a) 0.6 log0.6 0.3 log0.3 0.1 log0.1 1.955 b) Kodordslängder samt exempel på kodord: symbol längd kodord x 1 0 y 10 z 11 Kodordsmedelängden är 1.4 bitar/kodord och medeldatatakten är 1.4 bitar/symbol. c) Kodordslängder (inte unika för denna fördelning) samt exempel på kodord: 19
symbol längd kodord xx 1 0 xy 3 100 xz 4 1100 yx 3 101 yy 4 1110 yz 5 11110 zx 4 1101 zy 6 111110 zz 6 111111 Kodordsmedelängden är.67 bitar/kodord och medeldatatakten är 1.335 bitar/symbol..4 Källans stationära fördelning är P(a) = P(b) = 0.5. Detta kan lätt inses eftersom källan är symmetrisk. Alternativt kan man lösa ekvationssystemet { P(a) = 0.9 P(a)+0.1 P(b) P(a)+P(b) = 1 Sannolikheter för par av symboler ges av P(x i,x i+1 ) = P(x i ) P(x i+1 x i ), vilket ger sannolikheterna {0.45, 0.05, 0.05, 0.45} SannolikheterförtresymbolergesavP(x i,x i+1,x i+ ) = P(x i ) P(x i+1 x i ) P(x i+ x i+1 ), vilket ger sannolikheterna {0.405, 0.045, 0.005, 0.045, 0.045, 0.005, 0.045, 0.405} Kodträden för de två koderna ser ut som aa bb ab ba l l = 1.65 R = = 0.85 l l =.04 R = 3 = 0.68 Det är bättre att koda tre symboler i taget..5 a) P(r) = p r 1 (1 p) b) r = r (1 p) p r 1 = 1 1 p = 1 = 10 [symboler/skur] 0.1 r=1 c) H(R) = (1 p) p r 1 log((1 p) p r 1 ) r=1 = (1 p) log(1 p) p r 1 (1 p) logp (r 1) p r 1 r=1 r=1 0
1 = (1 p) 1 p log(1 p) (1 p) p (1 p) logp = h(p) 4.690 [bitar/skur] 1 p d) H(R) = h(p) 0.469 [bitar/symbol] r Samma svar fås naturligtvis om vi räknar ut entropitakten direkt från källan..6 a) l = E{kodordslängd/skur} = 15 30 4 (1 p)p r 1 +8 (1 p)p r 1 +1 4 r=1 r=16 45 r=31 (1 p)p r 1 +... = (1 p)p r 1 +4p 15 (1 p)p r 1 +4p 30 (1 p)p r 1 +... = r=1 r=1 i=0 r=1 4 (1 p)p r 1 p 15i 1 = 4 1 5.0371 [bitar/skur] 1 p15 Från problem.5 vet vi att r = 10 [symboler/skur], därför blir datatakten 0.50371 [bitar/symbol]. Jämför detta med källans entropitakt. l r b) På samma sätt som i a) får vi 1 l = 5 1 5.1983 [bitar/skur] 1 p31 och datatakten 0.51983 [bitar/sym]. r=1.7 a) Den teoretiskt lägsta gränsen ges av entropitakten för källan. Den bästa modell av källan vi kangöra, givet deninformation vihar, är enmarkovkälla av ordning 1. I textområdena ser den ut som 0.5 0.5 S V 0.9 0.1 De stationära sannolikheterna för denna källa är w S = 1 6 och w V = 5 6 och entropitakten för när vi befinner oss i ett textområde är därför H t = w S h(0.5)+w V h(0.9) 0.5575 För bildområden blir, på samma sätt, entropitakten H b 0.7857 1
Den totala entropitakten för källan är därför H = 4 5 H t + 1 5 H b 0.60313 Detta är det bästa estimat vi kan göra, den riktiga entropitakten för källan kan vara lägre, om minnet är längre än bara en bildpunkt tillbaka, som vi antog. b) Den önskade datatakten kan uppnås genom att koda block om 3 symboler. Sannolikheterna för de 8 olika blocken kan beräknas som P(x i,x i+1,x i+ ) = P(x i ) P(x i+1 x i ) P(x x+ x i+1 ) De åtta sannolikheterna blir P = 1 {1 5 5 5 5 9 9 81} 10 Konstruera koden med huffmanalgoritmen. Den resulterande datatakten blir 0.65 bitar/bildpunkt..8 a) Det är möjligt att komma godtyckligt nära källans entropitakt. För den givna källan ges entropitakten av H(S n+1 S n ) = w A H(S n+1 S n = A)+w B H(S n+1 S n = B)+w C H(S n+1 S n = C) + w D H(S n+1 S n = D) där w A et.c. betecknar de stationära sannolikheterna för tillstånden. Dessa beräknas ur följande ekvationssystem, plus det faktum att de ska summera till 1. 0 0.5 0 0.5 (w A w B w C w D ) = 0 0. 0 0.8 0.1 0 0.9 0 (w A w B w C w D ) 0 0 0.7 0.3 (w A w B w C w D ) = 1 (56 35 560 80) 731 och entropitakten blir då H(S n+1 S n ) = 1 731 (56 h(0.5) +35 h(0.) +560 h(0.1)+80 h(0.3)) = 0.567 bitar/symbol. b) När vi kodar enstaka symboler använder vi de stationära sannolikheterna. Till exempel kan vi få följande kod symbol sannolikhet kodord längd A 56/731 110 3 B 35/731 111 3 C 560/731 0 1 D 80/731 10 som ger en datatakt på 993 1.36 bitar/symbol 731
Sannolikheterna för par av symboler beräknas enkelt ur P(xi,x i+1 ) = P(x i ) P(x i+1 x i ). Vi får till exempel följande kod. symbol sannolikhet kodord längd AB 8/731 1010 4 AD 8/731 1110 4 BB 7/731 10110 5 BD 8/731 1111 4 CA 56/731 100 3 CC 504/731 0 1 DC 56/731 110 3 DD 4/731 10111 5 Den resulterande datatakten är 1 1331 731 0.910 bitar/symbol.9 Intervallet som motsvarar sekvensen är [0.843, 0.8576). Storleken på intervallet är 0.0144, vilket, innebär att vi ska använda minst log0.0144 = 7 bitar i kodordet. Alternativ 1: Det minsta tal med 7 bitar som ligger i intervallet är (0.1101100) = 0.84375. Eftersom även (0.1101101) = 0.851565 ligger i intervallet räcker det med 7 bitar, och kodordet blir alltså 1101100. Alternativ : Mittpunkten på intervallet är 0.8504 = (0.110110011...). Trunkera till 7+1=8 bitar, vilket ger oss kodordet 11011001..10 Ommanlåtera 1 ligganärmast0blirdetresulterandeintervallet [0.18515 0.18934375), av storlek 0.0041875. Antalet bitar i kodordet måste vara minst eventuellt krävs 9 bitar. log 0.0041875 = 8 Alternativ 1: Det minsta talet med 8 bitar i intervallet är (0.00110000) = 0.1875. Tyvärr finns det tal som börjar på samma sätt som inte ligger i intervallet, alltså måstevianvända9bitar:(0.001011111) = 0.185546875. Kodordetblirdå001011111. Alternativ : Mittpunkten i intervallet är 0.18734375 = (0.001011111110...). Ta de första 9 bitarna som kodord: 001011111..11 Om delintervallet som hör till a alltid läggs närmast 0, så kommer det intervall som hör till den givna sekvensen att vara [0.716 0.7451). Det kommer att gå åt minst log (0.7451 0.716) = 6 bitar i kodaordet, eventuellt 7. Detminstabinäratal med6siffrorsomligger iintervalletär(0.101111) = 0.734375. Tyvärr finns det längre tal som börjar med dessa siffor som ligger utanför intervallet, vilket gör att vi måste använda 7 bitar i kodordet, t.ex. talet (0.1011101) = 3
0.76565, vilket alltså ger kodordet 1011101. Även kodordet 1011110 kommer att fungera. Alternativ lösning: Tag mittpunkten i intervallet 0.73336 = (0.1011101110...) och trunkera till 7 bitar, vilket ger oss kodordet 1011101..1 Sannolikheter för enskilad symboler fås ur marginalfördelningen P(a) = P(a,a)+P(a,b) = /7, P(b) = P(b,a)+P(b,b) = 5/7 De betingade sannolikheterna kan beräknas ur P(x i,x x+1 ) = P(x i )P(x i+1 x i ) vilket ger oss P(a a) = 0.5, P(b a) = 0.5, P(a b) = 0., P(b b) = 0.8 Intervallet som motsvarar sekvensen är [0.44, 0.488) Intervallstorleken är 0.064, vilket betyder att vi behöver minst log 0.064 = 4 bitar i vårt kodord. Alternativ 1: Det minsta tal med 4 bitar som ligger i intervallet är (0.0111) = 0.4375. Eftersom (0.1000) = 0.5 inte ligger i intervallet räcker det inte med 4 bitar, utan vi måste använda 5 bitar. Vi använder talet (0.01110) = 0.4375 och kodordet blir alltså 01110. Alternativ : Mittpunkten på intervallet är 0.456 = (0.0111010...) Trunkera till 4+1=5 bitar, vilket ger oss kodordet 01110..13 a) Under antagandet att vi har ordnat färgerna i samma ordning som i tabellen, med vitt närmast 0, så blir intervallet [0.05, 0.07538). Om du valde en annan symbolordning borde du i alla fall ha fått samma intervallängd. b) grönt, grönt.14 Offset 0 är längst till höger i historiebufferten Kodord: (offset, längd, ny symbol) Binärt kodord (0,0,a) 0000 0000 0 (0,0,b) 0000 0000 1 (1,,b) 0001 0010 1 (,1,a) 0010 0001 0 (6,5,b) 0110 0101 1 (8,6,a) 1000 0110 0 (1,4,b) 0001 0100 1 (15,3,a) 1111 0011 0 4
.15 Den kodade sekvensen av par <index, ny symbol> blir: < 0,a > < 0,b > < 1,b > <,a > < 1,a > < 4,b > <,b > < 4,a > < 3,a > < 5,a > < 5,b > < 3,b >... Om vi antar att ordboken har storleken 16 så går det åt 4+1 bitar för att koda varje par. Ordboken ser i detta läge ut som: index sekvens index sekvens index sekvens index sekvens 0-4 ba 8 baa 1 abb 1 a 5 aa 9 aba b 6 bab 10 aaa 3 ab 7 bb 11 aab.16 Den kodade sekvensen av <index> blir: < 0 > < 1 > < > < 3 > < 0 > < > < 4 > < 1 > < 5 > < 7 > < 6 > < 1 > < 3 > < 9 >... Om vi antar att ordboken har storleken 16 så går det åt 4 bitar för att koda varje index. Ordboken ser i detta läge ut som: index sekvens index sekvens index sekvens index sekvens 0 a 4 abb 8 abbb 1 aaa 1 b 5 baa 9 bb 13 aaab ab 6 aa 10 baaa 14 bab 3 ba 7 aba 11 abaa 15 bba.17 a) Indexsekvensen blir < 1 > < 0 > < 4 > < 3 > < 0 > < > < 9 > < 5 > < 6 > < 11 > < 10 > och ordboken ser i detta läge ut som index sekvens index sekvens index sekvens index sekvens 0 a 4 ba 8 ac 1 bada 1 b 5 ab 9 cc 13 abbc c 6 bad 10 cca 14 ccab 3 d 7 da 11 abb b) Den avkodade sekvensen är och ordboken ser i detta läge ut som cacacacabadabac index sekvens index sekvens index sekvens index sekvens 0 a 4 ca 8 ab 1 aba 1 b 5 ac 9 ba 13 ac c 6 cac 10 ad 3 d 7 caca 11 da 5
.18 Den avkodade sekvensen är och ordboken ser i detta läge ut som dadadadebbbadebbba... index sekvens index sekvens index sekvens index sekvens 0 a 4 e 8 dad 1 bba 1 b 5 f 9 dade 13 ade c 6 da 10 eb 14 ebb 3 d 7 ad 11 bb 15 bba 3.1 Tre rekonstruktionspunkter (y 1, y och y 3 ) och fyra beslutsgränser (b 0, b 1, b och b 3 ). Eftersom täthetsfunktionen är symmetrisk kring origo måste y 1 = y 3 och y = 0. De optimala beslutsgränserna ska ligga mitt emellan rekonstruktionspunkterna (förutom de två ändgränserna, som ska ligga i fördelningens ändpunkter). Vi får alltså b 0 = T, b 1 = y 1+y = y 3, b = y +y 3 = y 3 och b 3 = T. Återstår att räkna ut y 3. Den ska ligga i tyngdpunkten för sitt område, dvs y 3 = b3 b x f(x) dx b3 b f(x) dx Vi har och vilket ger oss b3 b3 b f(x) dx = b x f(x) dx = T y 3 / y 3 / x y 3 = T + y 3 1 T dx = 1 T 1 T dx = 1 4T = y 3 = T 3 ( T y ) 3 ( T ( y3 ) ) Rekonstruktionspunkter: y 1 = T 3, y = 0, y 3 = T 3. Beslutsgränser: b 0 = T, b 1 = T 3, b = T 3, b 3 = T. Observera att Lloyd-Max-kvantiseraren för en likformig fördelning är en likformig kvantiserare. Kvantiserarens distorsion ges av D = = 3 T T/3 T T/3 (x+ T 3 ) 1 T dx+ T/3 x dx = 3 T [ x 3 3 T/3 T/3 ] T/3 T/3 x 1 T T dx+ (x T 1 T/3 3 ) T dx = = T 7 6
3. Vi börjar med att beräkna fördelningens varians: σ = = = x f(x) dx = 0 [ x e x/a] + 0 0 [ axe x/a] + 0 0 x xe x/a dx = 1 a e x/a dx = ae x/a dx = [ a e x/a] = 0 a a) Tvårekonstruktionspunkter(y 1 ochy )ochtrebeslutsgränser(b 0,b 1 ochb ).Eftersomtäthetsfunktionenärsymmetriskkringorigomåstey 1 = y.deoptimala beslutsgränserna ska ligga mitt emellan rekonstruktionspunkterna (förutom de två ändgränserna, som ska ligga i fördelningens ändpunkter). Vi får alltså b 0 =, b 1 = y 1+y = 0 och b =. Återstår att räkna ut y. Den ska ligga i tyngdpunkten för sitt område, dvs y = b b 1 x f(x) dx b b 1 f(x) dx Vi har och b b b 1 x f(x) dx = b 1 f(x) dx = 0 x 0 [ 1 a e x/a dx = 1 ] e x/a 0 = 1 1 a e x/a dx = [ x e x/a] + 1 0 0 e x/a dx = = [ a e x/a] = a Vi får alltså rekonstruktionspunkterna y 1 = a = σ och y = a = σ Kvantiserarens distorsion ges av D = = 0 (x+a) f(x) dx+ 0 0 (x a) f(x) dx = x f(x) dx+a f(x) dx 4a = a +a 4a a = a = 1 σ 0 xf(x) dx = Jämför resultatet med formelsamlingen! b) Tre rekonstruktionspunkter (y 1, y och y 3 ) och fyra beslutsgränser (b 0, b 1, b och b 3 ). Eftersom täthetsfunktionen är symmetrisk kring origo måste y 1 = y 3 och y = 0. De optimala beslutsgränserna ska ligga mitt emellan rekonstruktionspunkterna (förutom de två ändgränserna, som ska ligga i fördelningens 7
ändpunkter). Vi får alltså b 0 =, b 1 = y 1+y = y 3, b = y +y 3 b 3 =. = y 3 Återstår att räkna ut y 3. Den ska ligga i tyngdpunkten för sitt område, dvs och y 3 = b3 b x f(x) dx b3 b f(x) dx Vi har b3 b f(x) dx = y 3 / f(x) dx = [ 1 ] e x/a = 1 y 3 / e y 3/a och b3 b x f(x) dx = vilket ger oss 1 x y 3 / a e x/a dx = [ x e x/a] 1 + y 3 / y 3 / e x/a dx = = y 3 4 e y 3/a + [ a e x/a] ( y3 = y 3 / 4 + a ) e y 3/a y 3 = y 3 +a = y 3 = a Rekonstruktionspunkter: y 1 = a, y = 0, y 3 = a. Beslutsgränser: b 0 =, b 1 = a, b = a, b 3 =. Kvantiserarens distorsion ges av D = = a (x+a) f(x) dx+ a a x f(x) dx+ x f(x) dx+8a f(x) dx 8a a a a (x a) f(x) dx = xf(x) dx = = a +4a e 1 8a e 1 = a (1 e 1 ) = σ (1 e 1 ) 0.64 σ 3.3 Sampla med den dubbla bandbredden, d.v.s. 30kHz. Detta kommer inte att ge någon distorsion på mottagarsidan, givet att rekonstruktionsfiltret är idealt. Antag att kvantiseringsbruset är okorrelerat med själva signalen. Spektraltätheten för bruset kommer då bara att adderas till signalens spektraltäthet. Variansen för den samplade signalen kommer inte heller att påverkas av en ideal pulsmodulator. Spektraltätheten för bruset kommer då bara att adderas till signalens spektraltäthet, både före och efter pulsmoduleringen. Eftersom variansen för en signal inte ändras av en ideal pulsmodulering kommer distorsionen att bero på den kvantiserare som används. Det naturliga valet för en likformig fördelning är förstås likformig kvantisering. Antag att signalen är likformigt fördelad mellan T och T. 8
Variansen för signalen är då σ = T 3. Låt antalet kvantiseringssteg vara N = R. Kvantiserarens steglängd blir = T N = T R Distorsionen för likformig kvantisering av en likformig fördelning är D = 1, vilket ger oss D = 1 = (T) R 1 = T R 3 = σ R vilket ger oss R = 1 log För att fåett SNR påminst30 dbkrävsatt σ D 103 vilket ger att (om vi begränsar oss till heltal) att R 5 [bitar/sampel] vilket motsvarar en datatakt på minst 150 kbit/s. σ D 3.4 a) Enligt tabellen är D σ 0.3634 = 1.817 b) Eftersom de två nivåerna är lika sannolika blir entropin H = 1 [bit/symbol] c) 1 σ log D 1 log 5 0.73 [bit/symbol] 1.817 3.5 Den lägsta distorsionen får man om kvantiseraren är en Lloyd-Max-kvantiserare (se tabell). Distorsionen kan förstås bli hur stor som helst, om vi väljer rekonstruktionspunkterna på ett dåligt sätt. Alltså: 0.1175 σ D < 3.6 Först måste vi göra vissa antaganden och approximationer. 16 bitar/sampel är en väldigt fin kvantisering, så vi kan anta att fördelningen är konstant inom varje kvantiseringsintervall. Eftersom a = 6σ kan vi försumma sannolikheten att kvantiseraren överstyr (den blir ungefär 10 9 ). Dessa approximationer ger att distorsionen för den likformiga kvantiseraren är D U 1. Antalet nivåer i kvantiseraren är vilket ger oss M = a = 16 D U 1 = a 16 = σ 36 16 3 3 Om vi använder Lloyd-Max-kvantisering istället för likformig kvantisering så blir distorsionen (se formelsamlingen) D M σ π 3 16 9
Skillnaden i SNR är 10 log 10 σ D M 10 log 10 σ D U = 10 log 10 D U D M = 7 = 10 log 10 3π 6.4 [db] 3 Man skulle alltså kunna tjäna 6.4 db på att använda Lloyd-Max-kvantisering istället för likformig kvantisering. 3.7 a) D 438 b) Varje rekonstruktionspunkt ska flyttas till medelvärdet av de träningsvektorer som ligger i dess region. Aflyttastill( 130 3, 30),B till(0 3, 10 3 ),C till( 40 3, 40 3 )ochdtill(31.5,38.75). Ny distorsion: D 340 c) För att minimera distorsionen ska varje träningsvektor kvantiseras till den rekonstruktionspunkt som ligger närmast. Det innebär att gränsen mellan två områden ska vara en linje mitt emellan rekonstruktionspunkterna, vinkelrät mot linjen som förbinder de två rekonstruktionspunkterna. Vektor 4 kommer nu hamna i område A istället för i område C. Ny distorsion: D 31 3.8 a) 1.64 10 0 år. Storleken på kodboken blir enorm eftersom 1.5 8 8 = 96 bitar används för att adressera den. Om blockstorleken är n bildpunkter, så är tiden för att koda en bild 56 n 1.5 n n = 1.5 n+16 [µs]. b) Två bildpunkter/block c) Sex bildpunkter/block. 4.1 a) p i = 0.9 X i 1, σ d = 0.19 b) p i = 7 19 X i 1 11 19 X i, σ d 0.163 4. a) p i = ρ X i 1, σ d = 1 ρ. b) p i = ρ X i 1 +0 X i, σ d = 1 ρ. (d.v.s. ingen skillnad gentemot prediktorn av ordning 1. Kommer någon linjär prediktor av högre ordning att vara bättre?) 30
4.3 Prediktionen ser ut som p i = a 1 ˆX i 1 +a ˆX i a 1 X i 1 +a X i Prediktionsfelets varians σ d ges av σ d = E{(X i p i ) } = = E{(X i a 1 X i 1 a X i ) } = = (1+a 1 +a )R XX(0) a 1 R XX (1) a R XX ()+a 1 a R XX (1) Derivera med avseende på a 1 respektive a och sätt lika med 0, vilket ger oss lösningen ( a1 a ) = ( RXX (0) R XX (1) R XX (1) R XX (0) ) 1 ( RXX (1) R XX () σ d.8108 ) ( 0.8769 0.0769 Prediktionsfelet kommer approximativt att vara gaussiskt, vilket ger oss distorsionen och signal-brus-förhållandet D π 3 SNR = 10 log 10 9.00 D σ d 6 0.001867 41.9 [db] ) 4.4 Prediktionen ser ut som p n = a 1 ˆX n 1 +a ˆX n a 1 X n 1 +a X n Prediktionsfelets varians σ d ges av σ d = E{(X n p n ) } E{(X n a 1 X n 1 a X n ) } = = (1+a 1 +a )R XX(0) a 1 R XX (1) a R XX ()+a 1 a R XX (1) Derivera med avseende på a 1 respektive a och sätt lika med 0, vilket ger oss lösningen ( a1 a ) = ( RXX (0) R XX (1) R XX (1) R XX (0) ) 1 ( RXX (1) R XX () σ d.9957 För att nå ett SNR på 40 db måste distorsionen uppfylla D σ x 10 4.0 ) ( 1.144 0.693 ) 31
Antag att vi gör bästa möjliga kvantisering, dvs likformig kvantisering följt av entropikodning. Prediktionsfelet kommer approximativt att vara gaussiskt, vilket ger oss distorsionen D πe 6 σ d R Alltså är den minsta datatakten vi kan använda R = 1 log π e σ d 104.0 6 σ x 5.65 bitar/sampel 4.5 Prediktionen ser ut som p i,j = a 1 ˆX i 1,j +a ˆX i,j 1 a 1 X i 1,j +a X i,j 1 Prediktionsfelets varians σ d ges av σ d = E{(X i,j p i,j ) } E{(X i,j a 1 X i 1,j a X i,j 1 ) } = = (1+a 1 +a )R XX(0,0) a 1 R XX (1,0) a R XX (0,1)+a 1 a R XX (1, 1) Derivera med avseende på a 1 respektive a och sätt lika med 0, och lös ekvationssystemet: ( a1 a ) = ( RXX (0,0) R XX (1, 1) R XX (1, 1) R XX (0,0) Prediktionsfelets varians: σd = 6.00 ( ) ( ) 5.40 a 1 a 5.58 ) 1 ( RXX (1,0) R XX (0,1) 0.5514 ) ( 0.3946 0.5946 Givet att kvantiseringen är fin så kommer prediktionsfelet approximativt att vara normalfördelat. Om vi gör likformig kvantisering följt av perfekt entropikodning blir den resulterande distorsionen D σ d πe 6 R För att nå ett SNR på 38 db måste distorsionen uppfylla D σ x 10 3.8 Alltså är den minsta datatakten vi kan använda ) R 1 log π e σ d 103.8 6 σ x 4.844 bitar/bildpunkt 3
5.1 Antag att den önskade datatakten är R bitar/sampel och att vi använder samma typ av kvantisering i alla fallen. Eftersom signalen är normalfördelad kommer alla transformkomponenter också att vara normalfördelade. Om signalen kvantiseras fint utan någon transformation får man distorsionen D o c σ X R där c beror på vilken typ av kvantisering som görs och σ X = R XX(0) = 1. Signalbrus-förhållandet blir SNR o = 10 log 10 σ X D o Transformmatris för en tvåpunkters hadamardtransform: A = 1 ( ) 1 1 1 1 Varianserna för de två transformkomponenterna blir σ 0 = 1.94 och σ 1 = 0.06. Om bitarna fördelas optimalt (R i = R+ 1 log och signalbrusförhållandet D c σ0 σ 1 R σ i σ 0 σ 1), får vi distorsionen SNR = 10 log 10 σ X D Transformmatris för en fyrapunkters hadamardtransform (utan sortering av basvektorerna): 1 1 1 1 A 4 = 1 1 1 1 1 1 1 1 1 1 1 1 1 Varianserna för de fyra transformkomponenterna blir σ 0 3.7089, σ 1 0.0583, σ 0.1711 och σ 3 0.0617. Om bitarna fördelas optimalt (R i = R+ 1 log och signalbrusförhållandet D 4 c 4 σ0 σ 1 σ σ 3 R σ i 4 σ 0 σ 1 σ σ 3), får vi distorsionen SNR 4 = 10 log 10 σ X D 4 33
Vinsten vid en tvåpunkters transform blir SNR SNR o = 10 log 10 σ X σ 0 σ 1 4.67 db Vinsten vid en fyrapunkters transform blir SNR 4 SNR o = 10 log 10 σx 4 σ 0 σ1 σ σ 3 6.60 db 5. Transformmatrisen (basvektorer i raderna) för en 3-punkters DCT ser ut som: 1/ 1/ 1/ 1/ 3 1/ 3 1/ 3 A = 3/ 0 3/ = 1/ 0 1/ 3 1/ 1 1/ 1/ 6 / 6 1/ 6 Varianser för de tre transformkomponenterna: σ 0 = E{θ 0 } = 1 3 E{(X 0 +X 1 +X ) } = = 1 3 (3R XX(0)+4R XX (1)+R XX ()) = 16.6 3 σ 1 = E{θ 1} = 1 E{(X 0 X ) } = 5.5333 = 1 (R XX(0) R XX ()) = 0.3 σ = E{θ } = 1 6 E{(X 0 X 1 +X ) } = = 1 6 (6R XX(0) 8R XX (1)+R XX ()) = 1 6 0.1667 Alternativt kan man räkna ut varianserna som diagonalelementen i A R X A T, där.0 1.8 1.7 R X = 1.8.0 1.8 1.7 1.8.0 Medeldatatakten ska vara bitar/sampel, så vi ska dela ut 3 = 6 bitar på de tre transformkomponenterna. Distorsionen minimeras om man ger 4 bitar till komponent 0, och en bit vardera till de två andra. Medeldistorsionen blir D 1 3 (0.009497 σ 0 +0.3634 σ 1 +0.3634 σ ) 0.07405 Signal-brus-förhållandet blir Utan transform får man distorsionen σx 10 log 10 D = 10 log.0 10 14.3 [db] D D Q 0.1175.0 = 0.35 34
som ger signal-brus-förhållandet 10 log 10.0 D Q 9.30 [db] 5.3 Transformmatris med sorterade basfunktioner (sorteringen är inte nödvändig för att lösa uppgiften) 1 1 1 1 A = 1 1 1 1 1 1 1 1 1 1 1 1 1 Korrelationsmatris för signalen R X = 0.307 0.64 0.3 0.53 0.64 0.307 0.64 0.3 0.3 0.64 0.307 0.64 0.53 0.3 0.64 0.307 Korrelationsmatris för transformkomponenterna. Varianser för transformkomponenterna i huvuddiagonalen R θ = AR X A T = 1.055 0 0.0055 0 0 0.0895 0 0.0055 0.0055 0 0.0785 0 0 0.0055 0 0.0075 Varianserna kan förstås också beräknas direkt från definitionen. Den bittilldelning som minimerar distorsionen är fyra bitar till den första komponenten, två bitar vardera till komponent två och tre och inga bitar till den sista komponenten. Den resulterande medeldistorsionen blir D = 0.009497 1.055+0.1175 0.0895+0.1175 0.0785+0.0075) 4 vilket ger SNR SNR = 10 log 10 0.307 D 15.18 [db] 0.009309 För att uppnå minst samma SNR utan transform med Lloyd-Max-kvantisering 0.307 måste vi använda 4 bitars kvantisering, vilket ger SNR 10 log 10 0.009497 0.307 0. db. Tre bitars kvantisering kommer inte att räcka, för det ger ett SNR som är 14.6 db. 5.4 En tvåpunkters hadamardtransform ges av transformmatrisen H = 1 ( ) 1 1 1 1 35
Vi tar block om bildpunkter som ( X00 X X = 01 X 10 X 11 ) och transformerar enligt ( ) θ00 θ Θ = 01 = H θ 10 θ X H T = 11 ( X00 +X 01 +X 10 +X 11 X 00 X 01 +X 10 X 11 ) = 1 X 00 +X 01 X 10 X 11 X 00 X 01 X 10 +X 11 Varianserna för de fyra transformkomponenterna är σ 00 = E{θ 00} = 3.744 σ 01 = E{θ 01 } = 0.156 σ 10 = E{θ 10 } = 0.096 σ 11 = E{θ 11 } = 0.004 Vi har total 4 1.75 = 7 bitar att fördela på de fyra transformkomponenterna. Medeldistorsionen minimeras om vi kvantiserar θ 00 med 4 bitar, θ 01 med bitar, θ 10 med 1 bit och θ 11 med 0 bitar. Den resulterande distorsionen blir då D 1 4 (0.009497 σ 00 +0.1175 σ 01 +0.3634 σ 10 +σ 11) 0.0319 och motsvarande SNR är 10 log 10 1 D 16.35 [db] 5.5 Om man uttrycker de två transformerna som matriser så får vi 1 1 0 0 1/ 1/ 1/ 1/ T 1 = 1 1 1 0 0 0 0 1 1 och T = 1/ 1/ 1/ 1/ 1/ 1/ 0 0 0 0 1 1 0 0 1/ 1/. 1 0.9 0.9 0.9 3 Låt R X = 0.9 1 0.9 0.9 0.9 0.9 1 0.9 vara korrelationsmatrisen för källan. Varianserna för transformkomponenterna kan nu hittas i diagonalerna för matriserna 0.9 3 0.9 0.9 1 T 1 R X T t 1 respektive T R X T t. Om vi iterativt tilldelar en bit i taget till den komponent som har den för tillfället största distorsionen, får vi följande tabeller (använd formelsamlingen) 36
Varianser 1.9 0.1 1.9 0.1 1 bit 0.6905 0.0363 0.6905 0.0363 bitar 0.3 0.3 3 bitar 0.0656 0.0656 Transform A Varianser 3.545 0.755 0.1 0.1 1 bit 1.808 0.1001 0.0363 0.0363 bitar 0.4141 0.034 3 bitar 0.117 4 bitar 0.0335 Transform B Eftersom båda transformerna är ortonormala kan vi jämföra distorsionerna direkt i transformplanet 10 log 10 0.0656+0.0363+0.0656+0.0363 0.0335+0.034+0.0363+0.0363 1.68 Transform B ger alltså ett SNR som är ungefär 1.68 db högre än transform A. 5.6 a) De resulterande varianserna för de olika Y-signalerna: σ Y 1 = 6.6091, σ Y = 0.7909 och σ Y 3 = 0.3. 4 bitar kommer att ges till Y 1, bitar till Y och 1 bit till Y 3. Observera att sampeltakten för Y 3 är dubbelt så hög som för Y 1 och Y. För varje 4 insampel så får man sampel på Y 3 och ett vardera på Y 1 och Y. Bitarna som fördelas till Y 3 räknas alltså dubbelt. Medeldatatakten blir då (4++ 1)/4 = bitar/sampel. b) D 1 (0.009497 6.6091+0.1175 0.7909+ 0.3634 0.3) 0.09343 4 En fyranivåers Lloyd-Max-kvantisering av insignalen ger distorsionen D = 0.1175 = 0.35, d.v.s. 4 db sämre än delbandskodaren. 5.7 Kodaren är ekvivalent med en transformkodare som använder hadamardtransformen på block om bildpunkter. De fyra transformkomponenterna är Y 1 [i,j] = (X[i,j] +X[i,j +1]+X[i+1,j]+X[i+1,j +1])/ Y [i,j] = (X[i,j] +X[i,j +1] X[i+1,j] X[i+1,j +1])/ Y 3 [i,j] = (X[i,j] X[i,j +1]+X[i+1,j] X[i+1,j +1])/ Y 4 [i,j] = (X[i,j] X[i,j +1] X[i+1,j]+X[i+1,j +1])/ med varianserna σ 1 = Var{Y 1 [i,j]} = 3.7071 σ = Var{Y [i,j]} = 0.1493 σ 3 = Var{Y 3 [i,j]} = 0.099 σ 4 = Var{Y 4[i,j]} = 0.0507 37
Datatakt bitar/bildpunkt fördela 4 = 8 bitar på de fyra kvantiserarna. Y 1 kommer att kvantiseras med 4 bitar, Y med bitar och Y 3 och Y 4 med en bit vardera. Det ger den resulterande medeldistorsionen D = (0.009497 σ 1 +0.1175 σ +0.3634 (σ 3 +σ 4))/4 0.06 38