Modelovanie kanßlov²ch k≤dov v prostredφ Matlab, Communications Toolbox a Simulink
Kanßly v prostredφ Matlab
V Chipe 3/02 bol uveden² Communications Toolbox, ako jedna z d⌠le₧it²ch kni₧nφc programovΘho prostredia Matlab. Po ukß₧kach modelovania komunikaΦn²ch kanßlov prechßdzame na d⌠le₧it· dvojicu z komunikaΦnΘho re¥azca - kanßlov² kodΘr/dekodΘr.
K≤dovacie a dek≤dovacie techniky kanßlov²ch k≤dov (v Communications Toolboxe bloky patriace pod Error-Control Coding) sa pou₧φvaj· na korekciu ch²b pri prenose sprßv v digitßlnom komunikaΦnom systΘme. Vysielacia Φas¥ (kodΘr) pridßva k originßlnej sprßve redundantnΘ bity, ktorΘ s· v prijφmacej Φasti (dekodΘri) pou₧itΘ na korekciu chyby. Dvojicu kanßlov² kodΘr/dekodΘr je potrebnΘ zaradi¥ do prenosovΘho re¥azca v prφpade, ak prenosov² kanßl je silne zaÜumen² alebo prenßÜanΘ dßta s· ve╛mi citlivΘ na existuj·ci Üum. Preto sa aj v²ber samoopravnej k≤dovacej a dek≤dovacej techniky riadi Üpecifikami prenßÜan²ch dßt a druhom Üumu v prenosovom kanßle. Pri syntΘze takΘhoto digitßlneho komunikaΦnΘho systΘmu treba vychßdza¥ z nameran²ch charakteristφk kanßla alebo z jeho matematickΘho modelu (vi∩ prφspevok v Chipe 3/02).
V s·Φasnej dobe existuj· dve v²znamnΘ skupiny kanßlov²ch k≤dov - blokovΘ a konvoluΦnΘ. Obe s· v Üirokom sortimente podporovanΘ podkni₧nicou Communications Toolboxu v prostredφ Matlab. BlokovΘ k≤dy (praktick² v²znam maj· hlavne lineßrne, systematickΘ k≤dy) sa vyznaΦuj· t²m, ₧e kodΘr a dekodΘr je zariadenie bez pamΣte, t. j. k v²poΦtu novΘho k≤dovΘho slova nie je potrebnΘ si pamΣta¥ informaΦnΘ symboly z predchßdzaj·ceho k≤dovΘho slova (k≤dovΘ slova k≤du s· na sebe nezßvislΘ). Dek≤dovanie u blokov²ch k≤dov vyu₧φva matematickΘ vlastnosti lineßrnej algebry a Galoisov²ch koneΦn²ch polφ. Algoritmy s· viac vhodnΘ pre HW realizßciu, z d⌠vodu r²chlosti dek≤dovania, aj ke∩ v s·Φasnosti existuj· aj r²chle SW realizßcie.
U konvoluΦn²ch k≤dov, na rozdiel od blokov²ch, je tvorba k≤dov²ch slov na sebe zßvislß, a preto sa im hovorφ aj k≤dy s pamΣ¥ou. K v²poΦtu redundancie je potrebnΘ si pamΣta¥ urΦit² poΦet informaΦn²ch symbolov, o ve╛kosti tzv. k≤dovacieho zßberu (constraint length) dσ₧ky m, preto ich oznaΦujeme (n,k,m) k≤dy. K≤dovacφ pomer u oboch typov k≤dov sa oznaΦuje ako pomer vstupn²ch a v²stupn²ch symbolov k/n. KodΘr konvoluΦnΘho k≤du vlastne predstavuje automat s koneΦn²m poΦtom stavov. Dek≤dovanie konvoluΦn²ch k≤dov je zalo₧enΘ na maximßlnom pravdepodobnostnom dek≤dovanφ pod╛a Viterbiho algoritmu, ktor² podporuje aj Communications Toolbox. K²m u blokov²ch k≤dov prevlßdaj· lineßrne systematickΘ k≤dy, u konvoluΦn²ch k≤dov s· znßme lineßrne aj nelineßrne zapojenia kodΘrov pracuj·cich v re₧ime "hard decision" (pevnΘ rozhodnutie) a "soft decision" (rozhodnutie s v²berom). HW realizßcia dekodΘra konvoluΦnΘho k≤du sa v literat·re neuvßdza, ide v²luΦne o SW realizßciu, kde sa pre sprßvne urΦenie dek≤dovanej postupnosti pou₧φva grafickß pom⌠cka trellis diagram.
Pre blokovΘ aj konvoluΦnΘ k≤dy v Communications Toolboxe a Simulinku existuj· dva formßty pre zßpis vstupnej a v²stupnej postupnosti: sekvenΦn² a vektorov². Pri vektorovom vstupno-v²stupnom formßte kodΘr akceptuje dσ₧ku vstupnΘho vektora k a v²stupnΘho vektora n. Dσ₧ka vstupnΘho a v²stupnΘho vektora pre dekodΘr je inverznß ku kodΘru. Pred kodΘrom a za dek≤derom musia by¥ zapojenΘ pomocnΘ bloky Vec to Sca converter a Sca to Vec converter, ktorΘ menia vektorov· reprezentßciu na skalßrnu a naopak. U sekvenΦnΘho vstupnΘho a v²stupnΘho formßtu sa na vstupe kodΘra musφ najprv naplni¥ vstupn² buffer dσ₧kou postupnosti k a na v²stupe vyprßzdni¥ s dσ₧kou postupnosti n. Pri pou₧itφ tohto sp⌠sobu modelovania komunikaΦnΘho systΘmu v Simulinku je pre zabezpeΦenie sprßvnej funkcie dek≤dovania potrebnΘ nastavi¥ sprßvne ΦasovΘ oneskorenie jednotliv²ch blokov v dial≤gov²ch oknßch (vi∩ Chip 3/02).
BlokovΘ a konvoluΦnΘ k≤dy v prostredφ Communications Toolbox
V²chodzφm bodom konÜtrukcie kanßlov²ch k≤dov je minimßlna Hammingova vzdialenos¥ dmin (u blokov²ch k≤dov) a vo╛nß Hammingova vzdialenos¥ dfree (u konvoluΦn²ch k≤dov). KorekΦnΘ vlastnosti blokov²ch (n,k) k≤dov a konvoluΦn²ch (n,k,m) k≤dov s· potom danΘ vz¥ahmi (1):
kde u blokov²ch k≤dov je ( poΦet korigovan²ch ch²b v k≤dovom slove dσ₧ky n a u konvoluΦn²ch k≤dov je ( poΦet korigovan²ch ch²b v kvßzinekoneΦnej postupnosti, ktorΘ sa opakuj· s bezpeΦn²m intervalom (BI).
Communications Toolbox a Simulink podporuj· nasleduj·ce techniky k≤dovania a dek≤dovania:
Funkcie konvoluΦn²ch k≤dov v Communications Toolboxe rieÜia nasleduj·ce ·lohy:
* k≤dovanie a dek≤dovanie sprßvy;
* polynomickß reprezentßcia konvoluΦnΘho kodΘra;
* konverzia medzi binßrnou a oktßvovou reprezentßciou polyn≤mu;
* urΦenie prenosovej funkcie zo zapojenia kodΘra;
* zobrazenie trellis diagramu.
Ukß₧ky modelovania blokov²ch a konvoluΦn²ch k≤dov
Mo₧nosti podkni₧nice Error-Control Coding (ECC) Communications Toolboxu s· v prφspevku prezentovanΘ na dvoch modeloch, ktorΘ predstavuj· digitßlny komunikaΦn² systΘm s korekΦn²m kodΘrom/dekodΘrom. ┌lohou tejto dvojice je zak≤dova¥ a nßsledne opravi¥ sprßvu, ktorß je naruÜenß chybovou postupnos¥ou simulovanou modelom kanßla - Lmtd-b-err (Limited Binary Error Channel). Testovan² poΦet ch²b na v²stupe dekodΘrov (blok Error Rate) mo₧no porovna¥ s poΦtom ch²b v kanßle bez zapojenia dvojice kodΘr/dekodΘr. Oba modely s· realizovanΘ vo vektorovej forme. V modeli 1 sa zo zdroja (blok - Random Int) generuje nßhodnß postupnos¥ dekadick²ch Φφsel, ktorß je v konvertore (Sca to Vec convertor) zmenenß do binßrnej podoby. V modeli 2 je pou₧it² ako zdroj dßt blok Rd wksp (Read from workspace), kde sa synchronizovane, pod╛a predpφsanΘho Φasu vzorkovania, Φφta z pracovnΘho priestoru nßhodnß binßrna postupnos¥ predpφsanej dσ₧ky.
Model 1 (obr. 1) predstavuje digitßlny komunikaΦn² systΘm s Hammnigov²m (n,k) k≤dom typu (7,4).
Pre odbornφkov zaoberaj·cich sa problematikou k≤dovania s· znßme korekΦnΘ vlastnosti Hammingov²ch (n,k) k≤dov. Pre laick· verejnos¥ uve∩me, ₧e minimßlna Hammingova vzdialenos¥ k≤du (7,4) je dmin = 3 a poΦet korigovan²ch ch²b (, pod╛a (1) je (=1. Ide o tzv. "single-error correcting code" - k≤d opravuj·ci jednonßsobnΘ chyby v k≤dovom slove dσ₧ky n.
Model 2 (obr. 2) predstavuje digitßlny komunikaΦn² systΘm s konvoluΦn²m k≤dom (n,k,m), typu (2,1,2). Zapojenie kodΘra (obr. 3) je danΘ prenosovou funkciou (transfer function), ktorß v oktßvovej forme je tf = [5 7].
KorekΦnΘ vlastnosti k≤du, uvedenΘ v odbornej literat·re, s· nasledovnΘ: vo╛nß Hammingova vzdialenos¥ dfree=5, Φo pod╛a (1) odpovedß poΦtu korigovan²ch ch²b (=2, periodicky sa opakuj·cich s urΦit²m (v praxi empiricky zisten²m) bezpeΦn²m intervalom BI. Tento typ k≤du, na rozdiel od Hammingoveho, je tzv. "double error correcting code". Dek≤dovanie modelu 2 pou₧φva re₧im "hard decision" a princφp maximßlne pravdepodobnostnΘho dek≤dovania (MP) pod╛a Viterbiho, ktorΘho trellis diagram je znßzornen² na obr. 4. Na obrßzku je ukß₧ka v²beru najlepÜej cesty cez mre₧ov· Ütrukt·ru (trellis), ktorß odpovedß dek≤dovanej postupnosti, pre Φasov² interval 9 taktov. Ve╛kos¥ trellis diagramu mo₧no meni¥ v dial≤govom okne konvoluΦnΘho dekodΘra parametrom (path memory length).
Testy pre overenie korekΦn²ch vlastnostφ dekodΘrov, u oboch modelov, boli realizovanΘ pre dσ₧ku prenßÜanej postupnosti 10 000 binßrnych symbolov cez limitovan² binßrny symetrick² kanßl. Nastavenie dial≤govΘho okna modelu kanßla bolo uvedenΘ v predchßdzaj·com prφspevku. V prφpade HammingovΘho k≤du boli simulovanΘ jednonßsobnΘ chyby s pravdepodobnos¥ou perr = 10-2 , Φφm vzniklo v kanßle 26 jednonßsobn²ch ch²b.
Pre druh² model s konvoluΦn²m k≤dom boli simulovanΘ dvojnßsobnΘ chyby s pravdepodobnos¥ou perr = [0 10-2], Φφm vzniklo v kanßle 26 dvojnßsobn²ch ch²b. V²sledky testovaia po zapojenφ kodΘrov/dekodΘrov do prenosovΘho re¥azca s· uvedenΘ v tab. 1.
Z tabu╛ky je zrejmΘ, ₧e Hammingov dekodΘr opravil vÜetky jednonßsobnΘ chyby. KonvoluΦn² dekodΘr opravil z 26 dvojnßsobn²ch ch²b 23 a 3 dvojnßsobnΘ chyby neopravil. Je to sp⌠sobenΘ t²m, ₧e niektorΘ chyby boli nßhodne generovanΘ s menÜφm bezpeΦn²m intervalom medzi sebou, s ak²m je schopn² dekodΘr chyby opravova¥. Tßto skutoΦnos¥ sa dß v praxi po otestovanφ oÜetri¥ zvΣΦÜenφm ve╛kosti dek≤dovacieho okna alebo v²berom inej dvojice konvoluΦn² kodΘr/dekodΘr. Testy korekΦn²ch vlastnostφ dekodΘrov v simulovan²ch modeloch mo₧no pod╛a potreby opakova¥ pri zmenen²ch typoch chybov²ch postupnostφ (error pattern) a hodnotßch pravdepodobnosti ch²b perr .
Zßver
V prφspevku boli uvedenΘ sk·senosti s pou₧φvanφm d⌠le₧itej podkni₧nice Communications Toolboxu - Error Control Coding, z oblasti blokov²ch aj konvoluΦn²ch k≤dov. Treba skonÜtatova¥, ₧e v rßmci inovßcie programov²ch modulov Matlabu sa aj tßto pokni₧nica neustßle dopl≥uje o novΘ M funkcie a MDL bloky. Verzia Matlab 6.1 pou₧φva pre tvorbu MDL s·borov Communications Blockset. Z jeho rozÜφrenej ponuky spomeniem aspo≥ bloky Interleaver a Deinterleaver, ktor²ch ·lohou je sprßvne rozmiestni¥ dßta pred vstupom do kanßla a v²stupom z kanßla. Ide o ve╛mi d⌠le₧it· podporn· techniku, ktorß sa v praxi Φasto pou₧φva v kombinovanom k≤dovanφ. NajΦastejÜie ide o kombinßciu vonkajÜieho kodΘra (z mno₧iny blokov²ch k≤dov) a vn·tornΘho kodΘra (z mno₧iny konvoluΦn²ch k≤dov). Tento sp⌠sob k≤dovania sa pou₧φva napr. v systΘmoch digitßlnej televφzie DVD - T (Digital Video Broadcasting - Terrestrial).