Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AZhN_ochnoe_2017-2018-1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

Блоктық кодтар.

Кодтың қателерді тауып, түзету қабілеті артықтық символдардың бар болу шартымен анықталады. Кодтау құрылғысының кірісіне k ақпараттық екілік символдар тізбегі келіп түседі. Шығысында оған n екілік символдар тізбегі сәйкес келеді, мұнда n>k . Барлығы кірісінде 2k , шығысында 2n әртүрлі тізбектер болуы мүмкін. Шығыс тізбегінің 2n жалпы санының тек 2k тізбегі кірісіне сәйкес келеді, бұлар рұқсат етілген кодтық комбинациялар. Қалған мүмкін 2n-2k шығыс тізбегі ақпарат беруге қолданылмайды, бұлар рұқсат етілмеген кодтық комбинациялар.

Кедергілердің әсер етуіне байланысты әр 2k рұқсат етілген комбинациялар кез келген басқасына айлана алғандықтан барлығы 2n∙2k мүмкін болатын өткізу жағдайлары болады. Бұған кіретіндер: қатесіз 2k беру жағдайлары; 2k(2k-1) басқа рұқсат етілген комбинацияларға өту жағдайлары, бұлар табылмайтын қателерге сәйкес келеді; табылуы мүмкін 2k(2n-2k) рұқсат етілмеген комбинацияларға өту жағдайлары.

Барлық мүмкін болатын беру жағдайларының табылатын кодтық қате комбинацияларының бөлігін қате комбинацияларының бөлігін мыналар құрайды:

Қателерді түзету жағдайын қарастырайық. Декодтаудың кез келген әдісін әрқайсысы рұқсат етілген комбинациялардың біреуіне сәйкес келетін Mi (i=1,2…k) қиылыспайтын көпшілігінің 2k рұқсат етілмеген кодтық комбинациялардың барлық көпшілігіне бөлу анықтамасы ретінде қарастыруға болады. Mi көпшілігіне тиісті рұқсат етілмеген комбинацияларды алу кезінде Ai рұқсат етілген комбинациясы берілді деген шешім қабылданады. Алынған комбинация нақтылы Ai –дан түзелгенде, яғни 2n-2k жағдайынды, қате түзеледі.

Кодтық комбинациядағы бұрмаланған символдардың санын r қате қысқасы деп атайды.

Кодтық коррекциялаушы мүмкіндіктерінің кодтық ара қашықтықпен байланысы.

Кез келген екі кодтық комбинациялардың айырмашылық дәрежесі Хэмминг ойымен немесе қарапайым кодтық d олардың арасындағы ара қашықтықпен сипатталады.

(Екілік кодтың екі комбинациясының арасындағы кодтық ара қашықтықты алу үшін 2 модулі бойынша осы комбинациялардың қосындысы түрінде бірлік сандарын есептеу жеткілікті).

Мысалы: 01001111101

1100001010

0101110111 , d=7

Кодтық комбинациялардың рұқсат етілген кодтық барлық параметрлері бойынша алынған минималды ара қшықтықты d0 минималды кодтық ара қашықтық деп атайды.

Декодтау максималды шын тәрізді әдісі бойынша орындалады, егер қабылданған кодтық комбинация одан ең аз кодтық ара қашықтықта жатқан рұқсат етілгенмен. Бұл әдісті қолдану барысында:

  1. r қателерін табу үшін d0 ≥ r+1 талап етіледі;

  2. Барлық қысқалық қателерін S-ке дейін түзеу үшін d0 ≥ 2 S+1 ;

3. Барлық S қысқалық қателерін түзеу және бір мезгілде барлық r қысқалық қателерін табу үшін d0≥r+S+1.

Коррекциялаушы кодтың сапасын көрсеткіші-артықтық.

Rn=(n-k)/n

немесе Rk=(n-k)/k ,

мұндағы n – кодтың жалпы ұзындығы;

k – ақпараттық разрядтың саны (nи).

Оптималды деп артықтықтың минималды болыуында берілген коррекциялаушы кодтардың мүмкіндіктерін айтады. Практикалық есептеулер үшін d=3 минималды кодтық ара қашықтығы бар кодтың бақылау разрядының санын анықтау барысында ------ өрнегін қолдану ыңғайлы, егер n және кодтық комбинациясының толық ұзындығы белгілі болса, егер есептеулер барысында берілген nи ақпараттық символдардың санымен шығу ыңғайлы болса (жалпы өрнектерде квадраттық жақшалар үлке жағына жақын санға дейін дөңгелектенген мәні алынады дегенді көрсетеді).

Негізгі әдебиет: 2[197-211]; 3[130-133]; 10[33-40].

Қосымша әдебиет: 13[235-260]; 18[82-158].

Бақылау сұрақтары:

  1. Кедергісі бар кодтау туралы Шеннонның негізгі теоремасын қалыптастыр және түсіндір.

  2. Қатенің қысқасы деп нені айтады?

  3. Коррекциялаушы кодта ақпараттық разрядтардың саны қалай анықталады?

  4. Коррекциялаушы разрядтар неге байланысты?

  5. Минималды кодтық ара қашықтық деп нені айтады?

  6. Қандай коррекциялаушы кодтар оптималды деп аталады?

Дәріс №13. Циклдық код

Циклдық деп барлық жолдары матрица түзетін топтық код аталады, матрицалар берілген код үшін түзуші деп аталатын бір комбинацияны жиілік жылжыту арқылы алынуы мүмкін.

Циклдық код сипаттаған кезде кез-келген n- інші разрядтық екі мәнді санын (n - 1)-інші дәреженің көп мүшесі түрінде жазу ыңғайлы.

Мысалы, 10101 комбинациясы үшін

G (х) = 1*х4 + 0*х3 + 1*х2 + 0*х1 + 1*х0 = х4 + х2 +1.

Бұл комбинациялар әрекетін көпмүшелер әрекетімен қосуға мүмкіндік береді. Бұл кезде екі мәнді көпмүшелерді қосу х өзгермелінің әр түрлі дәрежелері кезінде mod2 бойынша көбейтіледі, көбейту – көбейтуге дәрежелі функцияларды көбейтудің қарапайым жолы (тәсілі) бойынша (бұл кезде бірдей дәрежелі кезінде коэффициенттер mod2 бойынша көбейтіледі, ал бөлу-бөлуге дәрежелік функцияларды болу тәсілі бойынша бұл кезде бөліну mod2 қосындыларымен ауыстырылады). Циклдық жылжу көпмүшенің х-ке көбейтілуіне сәйкес болады.

Циклдық кодтарды тұрғызу идеясы көпмүшелердің екімәнді сандарды кодтарында P(х) келтірмейтіндерді қолдануға негізделеді.

Келтірілмейтін мүше төменгі дәрежелердің көпмүшелерін көбейту түрінде көрсетіледі, ол бірге және өзі өзіне қалдықсыз бөлінеді.

Келтірілмейтін мүшелерге мысал:

F(х) циклдық кодтың шешілген кодтық комбинациялар екі тәсілмен алыныуы мүмкін.

1.Қарапайым кодтың Q(х) кодтық комбинациясының хr бір мүшесіне көбейтумен және осы көбейтіндіге R(х) қосумен Q(х)*хr көбейтіндісін P(х) r-інші дәрежелі ( r-корректірлі разрядтар саны): F(x) = Q(x) xr + R(x).

2. Q(х) кодтық операцияны түзуші көпмүшені көбейту арқылы:

F(x) = Q(x) P(x)

Бірінші тәсілді қолдану кезінде бөлінетін код, екіншісін қолданғанда бөлінбейтін код алынады.

Циклдық кодты түзудің бірінші тәсілі бойынша көбейтілетін шығарушы матрицаның жолдарын қалыптастыру үшін Q(х) кодының комбинациялары емес, тек бір разрядта бірге тең болатындар ғана алынады: Qi (x), (i = 1- k).

Циклдық кодты түзудің екінші тәсілі кезінде Gn,k көбейтілетін матрицасы r дәрежесінің P(x) полиномының xk-1 бір мүшесіне және алынған комбинациясының кезекті (k-1) жылжуларына көбейту арқылы алынады.

1.1 Мысал. n=7, k=4, P (x) = 1101-берілген. Бірінші және екінші тәсілдер көмегімен матрица құрастыру керек.

1) k = 4 болғандықтан, келесі жалғыз векторларды Qi (x)қолданамыз:

Q1 = 0001, Q2 = 0010, Q3 = 0100 , Q4 = 1000.

Q1(x) векторына келесі операцияларды жүргіземіз:

Q(x) xr / P(x) = 0001·1000/1101.

Бөлу нәтижесінде R1(x) = 101 қалдығын табамыз. Q2, Q3, Q4 ұқсас операциялардан соң R2(x) = 111, R3(x) = 011, R4(x) = 110 аламыз. Осылайша, матрица келесідегідей түрге ие болады:

Алынған матрица жолдары – кодтың бірінші үш комбинациялары. Бесінші комбинация нөлдік деп саналады, ал қалған он бір комбинация екінші модулі бойынша қосындыларымен көбейтілетін матрицаның барлық жолдарының сәйкестілік түзіледі.

2) Екінші тәсілде бірінші қатардың матрицаларын өрнектерден аламыз:

P(x) x k-1 = 1101· 1000, кезектегі (k-1) жолдар – комбинациялар циклдық жылжулар көмегімен алынған.

Осылайша, матрица келесі түрге ие болады:

Қателерді байқауға алынған кодтық комбинацияны түзуші полиномға бөлінуіне әкеледі. Қалдық қалуы қатенің бар екенін дәлелдейді. Циклдық кодтарда бөлуден қалған қалдық синдром ролін атқарады.

1.2 Мысал. Түзуші P(0,1) = 1101 полиномының қолдануымен құрастырылған (7,4); F7(0,1) = 1000110 кодтың шешілген комбинациясы берілген.

Қате төртінші разрядта жіберілген дейік. Онда алынған комбинация F7(0,1) = 1001110 болады. Қабылданған комбинацияны түзуші полиномға бөлеміз:

Қалдық қалу қатені дәлелдейді.

Қатені анықтау үшін синдром анализіне негізделген тәсілдердің бірін аламыз. d0 = 3 үшін:

1) алынған қалдықты W түзетілген қалдықтарды tu = 1, т.е. W > tu.сонымен салыстырамыз.

Қабылданған комбинацияның солға қарай бір разрядқа жылжуын жүргіземіз және P(x) бөлеміз

Жылжуды және бөлуді W ≤ = tu алынғанша қайталаймыз:

mod2 бойынша соңғы бөлуді соңғы қалдыққа көбейтеміз:

Соңғы бөлшекті соңғы қалдыққа қосу нәтижесінде алынған комбинацияның оңға төрт разрядқа циклдық жылжытамыз себебі, (біз алынған комбинацияны осының алдында төрт рет солға жылжыту)

0110100  0011010  0001101  1000110.

көрініп тұрғандай, соңғы комбинацияда қате жоқ.

1.3 Мысал. Түзуші матрицалар тәсілін қолдана отырып жалғыз қателерді төрт мәнді екі мәнді кодтың комбинацияларын барлық сәйкестілікке (нөлдік комбинациялардан басқа).

Шешімі:

1) Екі мәнді анықтайтын немесе жеке қателерді түзейтін код комбинациялар арасындағы кодтық ара қашықтықты қамтамасыз етуі тиіс d0 = 3, сондықтан қосымша матрицаның разрядтар саны nu = 3, ал әрбір қалдық үш разряд құрайды.

2) дәрежесі үшке тең немесе үлкен көпмән таңдаймыз, нөл емес сандар саны да үшке тең не көп болуы тиіс. Алынған көпмүше – x3 + x2 + 1.

3) Матрицаның жолдарын (бағаналарының) саны nu = 4, себебі бастапқы код төрт разрядтты.

4) нөлді бір санын түзуші көп мүшеге бөлу арқылы алынған әрбір қалдықтағы бір сандарының саны r  d0 – 1, болуы тиіс, яғни r  2.

5) 1 және 4, шарттарын сақтай отырып нөлді бірлерді түзуші көпмүшелереге бөлуден қалған қалдықтарды табамыз:

6 ) Түзуші матрицаны құрамыз:

х1 = 0001101

х2 = 0010111

х3 = 0100011

х4 = 1000110

7) Түзуші матрицаның жолдарының барлық мүмкінді үйлесуін mod2 арқылы қоса отырып ізделген кодтың барлық комбинацияларын табамыз.

Негізгі әдебиеттер:2[239-245]; 3[161-215]; 9[172-204]; 11[4-7].

Қосымша әдебиеттер: 18[114-158].

Бақылау сұрақтары:

              1. Дәлелдеуге жатпайтын көп мүшені анықта?

              2. Циклдық кодтың шешілген кодтық комбинациялардың екі тәсілін көрсетіңіз?

              3. Циклдық кодтта қатені қалай анықтайды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]