3 Teori för symmetriska system
3 Teori för symmetriska system
3 Teori för symmetriska system
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.