24.11.2013 Views

3 Teori för symmetriska system

3 Teori för symmetriska system

3 Teori för symmetriska system

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

70<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

iii. Sats. Medelkodordslängden w <strong>för</strong> en kompakterande, binär prefix-kod <strong>för</strong> en källa p<br />

uppfyller alltid w ≥ H(p). Vidare finns en prefixfri kod <strong>för</strong> vilken w ≤ H(p) + ε, <strong>för</strong><br />

godtyckligt valt ε > 0.<br />

iv. Sats. En prefixfri kod med minimal längd uppfyller:<br />

a. Om p i > p j så gäller l i ≤ l j.<br />

b. De två minst sannolika källsymbolerna har kodord med samma längd.<br />

c. Om det finns fler kodord med samma längd så överenstämmer de i alla bitar utom de sista.<br />

Resultatet i denna sats kan användas konstruktivt:<br />

Kombinera de två minst sannolika källsymbolerna till en "artificiell" symbol vars<br />

sannolikhet är summan av de två andras. Då uppstår en ny källa med antalet symboler<br />

reducerat med ett. Konstruera nu en optimal kod <strong>för</strong> denna nya källa &c.<br />

För att hitta kodord <strong>för</strong> de minst sannolika symbolerna i den ursprungliga källan, använd den<br />

optimala koden <strong>för</strong> den artificiella och lägg 0 respektive 1 till koden <strong>för</strong> den artificiella<br />

symbolen. Att detta faller väl ut följer av följande.<br />

v. Sats. Antag att de två minst sannolika källsymbolerna kombineras till en artificiell<br />

symbol och att C' är optimala koden <strong>för</strong> denna artificiella källa. Konstruera C från C' genom<br />

att till den artificiella symbolens kod lägga 0 respektive 1 <strong>för</strong> att forma koderna <strong>för</strong> de minst<br />

sannolika källsymbolerna i ursprungskällan och lämna de övriga kodorden lika. Då gäller att<br />

C är den optimala koden <strong>för</strong> originalkällan.<br />

Huffmankoden erhålls om denna procedur tillämpas rekursivt.<br />

vi. Exempel. Antag givet 7 källsymboler a, b, c, d, e, f och g med sannolikheter 3/8,<br />

3/16, 3/16, 1/8, 1/16, 1/32 respektive 1/32.<br />

Låt koden växa fram ur ett liggande träd med löven längst till vänster; se figur 3.3. I trädets<br />

grenar in<strong>för</strong>s successivt 0-or (gren uppåt) och 1-or (gren nedåt). Koden blir:<br />

Symbol Sannolikhet (pi) Kodord (xi) Kodordslängd (li)<br />

a 3/8 1 1<br />

b 3/16 011 3<br />

c 3/16 010 3<br />

d 1/8 001 3<br />

e 1/16 0001 4<br />

f 1/32 00001 5<br />

g 1/32 00000 5<br />

Tabell 3.4. En Huffmankodning<br />

Medelkodordslängden blir w = Σ p i l i = 2.44. Entropin är H(p) = 2. 37. Detta gav en ganska<br />

bra kod. Kod<strong>för</strong>bättringar kan erhållas om man betraktar N-gram i stället <strong>för</strong> 1-gram.<br />

vii. Exempel. Antag tre givna källsymboler a, b och c med sannolikheter 3/4, 3/16<br />

respektive 1/16.<br />

Huffmankoden <strong>för</strong> 1-gram har koderna 1, 01 respektive 00. Detta ger w = 1.25 och vi har<br />

H(p) = 1.012, vilket antyder att en <strong>för</strong>bättning på 20% vore möjlig.<br />

Huffmankodning av digram ger nedanstående tabell.<br />

Sannolikheterna i tabellen bildas som produkten av de enskilda symbolernas sannolikheter.<br />

Medelkodordslängden blir w = 2.09.<br />

Observera dock att kodorden står <strong>för</strong> två källsymboler. Kodhastigheten är alltså 1.045.<br />

Jäm<strong>för</strong> detta med 1.25 som är hastigheten <strong>för</strong> Huffmankoden <strong>för</strong> 1-gram och med 1.012 som<br />

är ursprungskällans entropi.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!