Знаймо![]() приховати рекламу
| Цей текст може містити помилки. Виявлення і виправлення помилокПлан:
ВведенняВиявлення помилок в техніці зв'язку - дія, спрямована на контроль цілісності даних при записі / відтворенні інформації або при її передачі лініями зв'язку. Виправлення помилок (корекція помилок) - процедура відновлення інформації після читання її з пристрою зберігання або каналу зв'язку. Для виявлення помилок використовують коди виявлення помилок, для виправлення - коригувальні коди (коди, що виправляють помилки, коди з корекцією помилок, перешкодостійкі коди). 1. Способи боротьби з помилкамиУ процесі зберігання даних і передачі інформації з мереж зв'язку неминуче виникають помилки. Контроль цілісності даних і виправлення помилок - важливі завдання на багатьох рівнях роботи з інформацією (зокрема, фізичному, канальному, транспортному рівнях мережевої моделі OSI). У системах зв'язку можливі кілька стратегій боротьби з помилками:
2. Коди виявлення та виправлення помилокКоригувальні коди - коди, що служать для виявлення або виправлення помилок, що виникають при передачі інформації під впливом перешкод, а також при її зберіганні. Для цього при записі (передачі) у корисні дані додають спеціальним чином структуровану надлишкову інформацію ( контрольне число), а при читанні (прийомі) її використовують для того, щоб виявити або виправити помилки. Природно, що кількість помилок, що можна виправити, обмежено і залежить від конкретного застосовуваного коду. З кодами, що виправляють помилки, тісно пов'язані коди виявлення помилок. На відміну від перших, останні можуть тільки встановити факт наявності помилки в переданих даних, але не виправити її. В дійсності, використовувані коди виявлення помилок належать до тих же класів кодів, що і коди, що виправляють помилки. Фактично, будь-який код, що виправляє помилки, може бути також використаний для виявлення помилок (при цьому він буде здатний виявити більше число помилок, ніж був здатний виправити). За способом роботи з даними коди, що виправляють помилки поділяються на блокові, що ділять інформацію на фрагменти постійної довжини і обробні кожен з них окремо, і сверточних, що працюють з даними як з безперервним потоком. 2.1. Блокові коди Нехай кодована інформація поділяється на фрагменти довжиною k біт, які перетворюються на кодові слова довжиною n біт. Тоді відповідний блоковий код зазвичай позначають Якщо вихідні k біт код залишає незмінними, і додає n - k перевірочних, такий код називається систематичним, інакше несистематичним. Поставити блоковий код можна по-різному, в тому числі таблицею, де кожній сукупності з k інформаційних біт зіставляється n біт кодового слова. Однак, хороший код повинен задовольняти, як мінімум, наступним критеріям:
Неважко бачити, що наведені вимоги суперечать один одному. Саме тому існує велика кількість кодів, кожен з яких придатний для свого кола завдань. Практично всі використовувані коди є лінійними. Це пов'язано з тим, що нелінійні коди значно складніше досліджувати, і для них важко забезпечити прийнятну легкість кодування і декодування. 2.1.1. Лінійні коди загального виглядуЛінійний блоковий код - такий код, що безліч його кодових слів утворює k -Мірне лінійне підпростір (назвемо його C ) В n -Мірному лінійному просторі, ізоморфне простору k -Бітних векторів. Це означає, що операція кодування відповідає множенню вихідного k -Бітного вектора на невироджених матрицю G , Звану породжує матрицею. Нехай 2.1.1.1. Мінімальна відстань і коригуюча здатність Відстанню Хеммінга (метрикою Хемінга) між двома кодовими словами
Мінімальна відстань Хемінга
Коригуюча здатність визначає, скільки помилок передачі коду (типу Таким чином отримавши перекручену кодову комбінацію з A t , Декодер приймає рішення, що вихідною була кодова комбінація A , Виправляючи тим самим не більше t помилок. Пояснимо на прикладі. Припустимо, що є два кодових слова A і B , Відстань Хемінга між ними дорівнює 3. Якщо було передано слово A , І канал вніс помилку в одному бите, вона може бути виправлена, тому що навіть в цьому випадку прийняте слово ближче до кодового слова A , Ніж до будь-якого іншого, і зокрема до B . Але якщо каналом були внесені помилки у двох бітах (в яких A відрізнялося від B ) То результат помилковою передачі A виявиться ближче до B , Ніж A , І декодер прийме рішення що передавалося слово B . 2.1.1.2. Коди ХемінгаКоди Хемінга - найпростіші лінійні коди з мінімальним відстанню 3, тобто здатні виправити одну помилку. Код Хемінга може бути представлений у такому вигляді, що синдром
2.1.1.3. Загальний метод декодування лінійних кодів Будь-який код (у тому числі нелінійний) можна декодувати за допомогою звичайної таблиці, де кожному значенню прийнятого слова Для лінійних кодів цей метод можна істотно спростити. При цьому для кожного прийнятого вектора 2.1.2. Лінійні циклічні кодиНезважаючи на те, що декодування лінійних кодів значно простіше декодування більшості нелінійних, для більшості кодів цей процес все ще досить складний. Циклічні коди, крім більш простого декодування, володіють і іншими важливими властивостями. Циклічним кодом є лінійний код, що володіє наступною властивістю: якщо Слова циклічного коду зручно представляти у вигляді многочленів. Наприклад, кодове слово Надалі, якщо не вказано інше, ми будемо вважати, що циклічний код є двійковим, тобто 2.1.2.1. Породжує (генераторний) поліномМожна показати, що всі кодові слова конкретного циклічного коду кратні певному породжує полиному g (x) . Породжує поліном є дільником x n - 1 . За допомогою породжує полінома здійснюється кодування циклічним кодом. Зокрема:
2.1.2.2. Коди CRCКоди CRC ( англ. cyclic redundancy check - Циклічна надлишкова перевірка) є систематичними кодами, призначеними не для виправлення помилок, а для їх виявлення. Вони використовують спосіб систематичного кодування, викладений вище: "контрольна сума" обчислюється шляхом ділення x n - k u (x) на g (x) . З огляду на те, що виправлення помилок не потрібно, перевірка правильності передачі може проводитися точно так само. Таким чином, вид полінома g (x) задає конкретний код CRC. Приклади найбільш популярних поліномів:
2.1.2.3. Коди БЧХКоди Боуза - Чоудхурі - Хоквінгема (БЧХ) є підкласом циклічних кодів. Їх відмітна властивість - можливість побудови коду БЧХ з мінімальним відстанню не менше заданого. Це важливо, тому що, взагалі кажучи, визначення мінімального відстані коду є дуже складне завдання. Математично полінома g (x) на множники в поле Галуа. 2.1.2.4. Коди корекції помилок Ріда - СоломонаКоди Ріда - Соломона - Недвійкова циклічні коди, що дозволяють виправляти помилки в блоках даних. Елементами кодового вектора є не біти, а групи бітів (блоки). Дуже поширені коди Ріда-Соломона, що працюють з байтами ( октетам). Математично коди Ріда - Соломона є кодами БЧХ. 2.1.3. Переваги та недоліки блокових кодівХоча блокові коди, як правило, добре справляються з рідкими, але великими пачками помилок, їх ефективність при частих, але невеликих помилки (наприклад, в каналі з АБГШ), менш висока. 2.2. Свёрточные кодыСвёрточные коды, в отличие от блоковых, не делят информацию на фрагменты и работают с ней как со сплошным потоком данных. Сверточних коди, як правило, породжуються дискретної лінійної інваріантної в часі системою. Тому, на відміну від більшості блокових кодів, сверточное кодування - дуже проста операція, чого не можна сказати про декодуванні. Кодування сверточних кодом проводиться за допомогою регістра зсуву, відводи від якого сумуються по модулю два. Таких сум може бути дві (найчастіше) або більше. Декодування сверточних кодів, як правило, проводиться за алгоритму Вітербо, який намагається відновити передану послідовність згідно умовою максимальної правдоподібності. 2.2.1. Переваги та недоліки сверточних кодівСверточних коди ефективно працюють в каналі з білим шумом, але погано справляються з пакетами помилок. Більш того, якщо декодер помиляється, на його виході завжди виникає низка помилок. 2.3. Каскадне кодування. Ітеративний декодуванняПереваги різних способів кодування можна об'єднати, застосувавши каскадне кодування. При цьому інформація спочатку кодується одним кодом, а потім іншим, в результаті виходить код-твір. Наприклад, популярною є наступна конструкція: дані кодуються кодом Ріда-Соломона, потім перемежовуються (при цьому символи, розташовані близько, поміщаються далеко один від одного) і кодуються сверточних кодом. На приймачі спочатку декодується сверточних код, потім здійснюється зворотне перемеженіє (при цьому пачки помилок на виході згортального декодера потрапляють в різні кодові слова коду Ріда - Соломона), і потім здійснюється декодування коду Ріда - Соломона. Деякі коди-твори спеціально сконструйовані для ітеративного декодування, при якому декодування здійснюється в кілька проходів, кожен з яких використовує інформацію від попереднього. Це дозволяє добитися великої ефективності, однак, декодування вимагає великих ресурсів. До таких відносять кодами турбо-коди і LDPC-коди (коди Галлагер). 2.4. Мережеве кодування2.5. Оцінка ефективності кодівЕфективність кодів визначається кількістю помилок, які той може виправити, кількістю надлишкової інформації, додавання якої вимагається, а також складністю реалізації кодування і декодування (як апаратної, так і у вигляді програми для ЕОМ). 2.5.1. Кордон Хемінга і досконалі кодиНехай є двійковий блоковий (N, k) код з коректує здатністю t . Тоді справедливо нерівність (зване кордоном Хемінга): Коди, що задовольняють цьому кордоні з рівністю, називаються досконалими. До досконалим кодами відносяться, наприклад, коди Хеммінга. Часто застосовуються на практиці коди з великою коректує здатністю (такі, як коди Ріда - Соломона) не є досконалими. 2.5.2. Енергетичний виграшПри передачі інформації по каналу зв'язку ймовірність помилки залежить від відносини сигнал / шум на вході демодулятора, таким чином при постійному рівні шуму вирішальне значення має потужність передавача. У системах супутникового і мобільного, а також інших типів зв'язку гостро стоїть питання економії енергії. Крім того, у певних системах зв'язку (наприклад, телефонного) необмежено підвищувати потужність сигналу не дають технічні обмеження. Оскільки завадостійке кодування дозволяє виправляти помилки, при його застосуванні потужність передавача можна знизити, залишаючи швидкість передачі інформації незмінною. Енергетичний виграш визначається як різниця відносин с / ш при наявності і відсутності кодування. 2.6. Застосування кодів, що виправляють помилкиКоди, що виправляють помилки, застосовуються:
Коди, що виявляють помилки, застосовуються в мережевих протоколах різних рівнів. 3. Автоматичний запит повторної передачіСистеми з автоматичним запитом повторної передачі (ARQ - Automatic Repeat reQuest) засновані на технології виявлення помилок. Поширені такі методи автоматичного запиту: 3.1. Запит ARQ із зупинками (stop-and-wait ARQ)Ідея цього методу полягає в тому, що передавач чекає від приймача підтвердження успішного прийому попереднього блоку даних перед тим як почати передачу наступного. У випадку, якщо блок даних був прийнятий з помилкою, приймач передає негативне підтвердження (negative acknowledgement, NAK), і передавач повторює передачу блоку. Даний метод підходить для напівдуплексного каналу зв'язку. Його недоліком є низька швидкість через високі накладних витрат на очікування. 3.2. Безперервний запит ARQ з поверненням (continuous ARQ with pullback)Для цього методу необхідний повнодуплексний канал. Передача даних від передавача до приймача проводиться одночасно. У випадку помилки передача поновлюється, починаючи з помилкового блоку (тобто, передається помилковий блок і всі наступні). 3.3. Безперервний запит ARQ з вибірковим повторенням (continuous ARQ with selective repeat)При цьому підході здійснюється передача тільки помилково прийнятих блоків даних. Література
Цей текст може містити помилки. Схожі роботи | скачати Схожі роботи: Методи виявлення екзопланет Комедія помилок Функція помилок Система відслідковування помилок Метод проб і помилок |