Виявлення та виправлення помилок: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Sanya3 (обговорення | внесок)
мНемає опису редагування
Sanya3 (обговорення | внесок)
мНемає опису редагування
Рядок 1:
'''Ви́явлення помилок''' в [[техніка зв'язку|техніці зв'язку]] - — дія, спрямована на контроль цілісності даних при запису / відтворенні інформації або при її передачі по лініях зв'язку. '''Виправлення помилок''' (корекція помилок) - — процедура відновлення інформації після читання її з [[комп'ютерна пам'ять|пристрою зберігання]] або [[канал зв'язку|каналу зв'язку]].
 
Для виявлення помилок використовують коди виявлення помилок, для виправлення - — коригувальні коди (коди, що виправляють помилки, коди з корекцією помилок, завадостійкі коди).
 
[[Клод Шеннон|К. Шеннон]] сформулював теорему для випадку передачі дискретної інформації з каналу із завадами, яка стверджує, що ймовірність помилкового декодування прийнятих сигналів може бути забезпечена як завгодно малою шляхом вибору відповідного способу кодування сигналів.
Рядок 7:
Під завадостійкими кодами розуміють коди, що дозволяють виявляти або виявляти і виправляти помилки, які виникають у результаті впливу завад.
 
Завадостійкість кодування забезпечується за рахунок введення надмірності в кодові комбінації, тобто за рахунок того, що не всі символи в кодових комбінаціях використовуються для передачі інформації.<ref>[http://posibnyky.vntu.edu.ua/e_s/index.htm Електронні системи: навчальний посібник / Й. &nbsp;Й. &nbsp;Білинський, К. &nbsp;В. &nbsp;Огороднік, М. &nbsp;Й. &nbsp;Юкиш.&nbsp;— Вінниця : ВНТУ, 2011.&nbsp;— 208 с.]</ref>
 
== Способи боротьби з помилками ==
У процесі зберігання даних і передачі інформації з мереж зв'язку неминуче виникають помилки. Контроль цілісності даних і виправлення помилок -&nbsp;— важливі завдання на багатьох рівнях роботи з інформацією (зокрема, фізичному, канальному, транспортному рівнях мережевої моделі [[OSI]]).
 
У системах зв'язку можливі кілька стратегій боротьби з помилками:
 
* Виявлення помилок у блоках даних і автоматичний запит повторної передачі пошкоджених блоків -&nbsp;— цей підхід застосовується, в основному, на канальному і транспортному рівнях;
* Виявлення помилок у блоках даних і відкидання пошкоджених блоків -&nbsp;— такий підхід іноді застосовується в системах потокового мультимедіа, де важлива затримка передачі і немає часу на повторну передачу;
* Виправлення помилок (англ. [[FEC|forward error correction]]) застосовується на фізичному рівні.
 
== Коди виявлення та виправлення помилок ==
Коригувальні коди -&nbsp;— коди, які слугують для виявлення або виправлення помилок, що виникають при передачі інформації під впливом завад, а також при її зберіганні.
 
Для цього при запису (передачі) у корисні дані додають спеціальним чином структуровану надлишкову інформацію (контрольне число), а при читанні (прийомі) її використовують для того, щоб виявити або виправити помилки. Природно, що число помилок, яке можна виправити, обмежена і залежить від конкретного застосовуваного коду.
Рядок 27:
В дійсності, використовувані коди виявлення помилок належать до тих же класів кодів, що і коди, що виправляють помилки. Фактично будь-який код, що виправляє помилки, може бути також використаний для виявлення помилок (при цьому він буде здатний виявити більше число помилок, ніж був здатний виправити).
 
Всі завадостійкі коди можна розділити на два основних класи: блокові і неперервні (рекуррентні або ланцюгові).<br/>
Як блокові, так і неперервні коди в залежності від методів внесення надмірності розділяються на роздільні і нероздільні.<br/>
Більшість відомих роздільних кодів складають систематичні коди. У цих кодів перевірні символи визначаються в результаті проведення лінійних операцій над певними інформаційними символами. Для випадку двійкових кодів кожний перевірний символ вибирається таким, щоб його сума за модулем два з певними інформаційними символами стала рівною нулю. Декодування зводиться до перевірки на парність певних груп символів. У результаті таких перевірок дається інформація про наявність помилок, а в разі потреби -&nbsp;— про позицію символів, де є помилки.
 
== Блокові коди ==
Рядок 47:
Практично всі використовувані коди є лінійними. Це пов'язано з тим, що нелінійні коди значно складніше досліджувати, і для них важко забезпечити прийнятну легкість кодування та декодування.
 
== Згорткові коди ==
[[Згортка|Згорткові]] коди, на відміну від блокових, не ділять інформацію на фрагменти і працюють з нею як із суцільним потоком даних.
 
Згорткові коди, як правило, породжуються дискретною лінійною інваріантною в часі системою. Тому, на відміну від більшості блокових кодів, згорткове кодування -&nbsp;— дуже проста операція, чого не можна сказати про декодування.
 
Кодування зготковим кодом проводиться за допомогою регістра зсуву, відводи від якого підсумовуються по модулю два. Таких сум може бути дві (найчастіше) або більше.
Рядок 61:
== Див. також ==
*
 
== Посилання ==
* [http://posibnyky.vntu.edu.ua/e_s/index.htm Електронні системи: навчальний посібник / Й. &nbsp;Й. &nbsp;Білинський, К. &nbsp;В. &nbsp;Огороднік, М. &nbsp;Й. &nbsp;Юкиш.&nbsp;— Вінниця : ВНТУ, 2011.&nbsp;— 208 с.]
 
{{telecom-stub}}