Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

diplov / file1

.pdf
Скачиваний:
108
Добавлен:
12.05.2015
Размер:
13.4 Mб
Скачать

початкового моменту часу і закінчуючи поточним. Важливо також відмітити,

що достатньо побудувати K стовпців решітчастої діаграми, оскільки діаграма має періодичну структуру. Структура решітчастої діаграми повторюється після

K стовпців, тому достатньо побудувати 2∙K стовпців для розуміння роботи кодера.

Таким чином, робота кодера може бути представлена рухом (між послідовними станами) певним шляхом в решітчастій діаграмі. Нам відомо, що переходи між станами визначаються станом кодера і вхідним сигналом збудження. Відмітимо, що якщо декодеру відомо про стан кодера в початковий момент часу (який звичай характеризується нулями у всіх елементах пам'яті), в

такому випадку визначення послідовності інформаційних символів під час процесу кодування зводиться до визначення шляху кодера в решітчастій діаграмі. Отже, в основі алгоритму декодування лежить знаходження найбільш вірогідного шляху кодера на решітчастій діаграмі.

Декодування за допомогою згорткового кодера

Як і у випадку декодера блочних кодів, оптимальний в термінах максимальної правдоподібності декодер згорткових кодів вибирає найбільш близьке до прийнятої кодової комбінації кодове слово. В декодуванні з жорстким рішенням використовується відстань Хеммінга (кількість бітів на які відрізняються кодові комбінації). В декодуванні з м'яким рішенням використовується Евклідова відстань.

Ефективний метод декодовання запропонував в 1967 р. Ендрю Вітербі [43].

Алгоритм Витербі шукає оптимальну кодову послідовність, яка асоціюється з

―найкоротшим шляхом‖ (в термінах вибраної міри відстані) на решітчастій діаграмі рис. 1.11. Він знаходиться на основі побудови шляхів із поточних станів в наступні та визначення метрики шляху. Тобто, переходу між станами на решітчастій діаграмі ставиться у відповідність певна величина. Вона визначається як відстань між кодовою послідовністю, що відповідає даному переходу та прийнятою послідовністю. Це є відстань Хемінга Під час нового

41

переходу метрика кожного шляху збільшується на величину відстані Хемінга.

На кожному етапі декодування шлях який має найменше значення метрики вибирається, а решта шляхів відкидаються. Ці операції повторюються на кожному етапі декодування. Вибраний шлях називається ―повною гілкою‖.

Якщо шляхи мають однакове значення метрики оптимальний шлях вибирається довільно.

t1

t2

t3

а=00

2 (00)

1 (00)

 

Метрика шляху 3

 

0 (11)

1 (11)

b=10

c=01

d=11

Вхідний біт 0

Вхідний біт 1

Метрика шляху 3

2 (10)

Метрика шляху 2

0 (01)

Метрика шляху 0

Рис.1.11 Знаходження метрики шляхів

Розглянемо рисунок 1.11. Поряд із значенням метрики гілок в дужках вказано закодоване слово, яке виходить з кодера. Припустимо, що декодерові відомий початковий стан кодера.

інформаційні біти m:

1

1

передані закодовані слова U:

11

01

прийнята послідовність Z:

11

01

Перехід між станами 00 → 00 має метрику гілки 2 (оскільки відстань Хемінга між прийнятим словом 11 і вихідним словом кодера 00 рівна два).

42

Перехід між станами 00 → 10 має метрику гілки 0 (оскільки відстань Хемінга між прийнятим словом 11 і вихідним словом кодера 11 рівна нулю). Декодер вибере шлях з мінімальним значенням метрики – 0. Цьому переходу відповідає інформаційний біт 1 рис. 1.10. В момент часу t2 з кожного поточного стану наявні дві гілки переходів. Декодер визначить сумарну метрику шляхів та вибере шлях з найменшим значенням. Тобто декодер встановив, що між моментами часу t2 і t3 відбувся перехід із стану b = 10 в d = 11. Цьому переходу відповідає інформаційний біт 1. Таким чином буде відбуватися декодування решти інформації.

Отже вибір найкоротшого шляху до кожного стану є рекурсивною процедурою - найкоротший шлях визначається з урахуванням результатів пошуку в попередній момент.

Окрім алгоритму Вітербі існують інші методи декодування згорткових кодів, наприклад, алгоритм Фано (Fano), або алгебраїчне декодування. Проте алгоритм Вітербі має величезне практичне значення - завдяки ньому згорткові коди сталі доступними з погляду практичної реалізації. Він використовується в основних системах рухомого зв'язку другого і третього покоління - GSM, IS54/136, IS-95, UMTS і cdma 2000.

1.7. Перемежування

Під час передачі інформації виникаються помилки. Помилки можуть бути однократними, двократними. Такі помилки достатньо легко можна усунути використовуючи завадостійкі коди. Проте виникають ситуації, коли імпульсна завада спотворює підряд 10 або 15 бітів інформації – виникають пакетні помилки. Звичайні коди виправити такі помилки не можуть. Розроблений спеціальний клас кодів, який назвали кодами Ріда-Соломона (Reed-Solomon code, R-S code). Властивості таких кодів дозволяють виправляти пакетні помилки. Але реалізація кодерів та декодерів є досить складною. Тому додатково використовують дуже простий метод розбиття пакетної помилки на окремі групи – перемежування.

43

Перемежування використовується в передавачі на виході FEC-кодера, а де-

перемежування в приймачі перед декодером. Перемежування полягає в тому,

що сформовані кодером біти передаються каналом зв’язку не в тому порядку, в

якому вони були утворені, а іншому. Така модифікована послідовність може бути спотворена пакетом помилок., внаслідок особливостей передачі даних в каналі зв'язку. В приймачі прийняті біти переставляються так, щоб відновити початкову послідовність руху бітів. Пакетна помилка як виникла в процесі передачі таким чином розбивається на окремі помилки або групи меншого розміру. Тобто деперемежування ніби розсіює пакети помилок по всьому оброблюваному блоку бітів. Таким чином, на виході деперемежувача помилки стають статистично квазізалежними. Перемежувачі діляться на дві основні категорії: блокові і згорткові.

 

 

Напрям запису

 

 

 

 

Напрям запису

 

 

 

 

 

 

 

 

 

 

Напрям

 

 

 

 

 

Пакетні

Напрям

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

помилки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зчитування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зчитування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перемежування

Деперемежування

 

Рис.1.12 Блочне перемежування та деперемежування

В блоковому перемежувачі біти з виходу кодера записуються у вигляді двовимірної матриці в певному порядку. Найпростіший спосіб - записати біти у вигляді послідовних рядків. Після заповнення всієї матриці вхідними бітами починається етап зчитування. При цьому біти зчитуються в порядку,

відмінному від порядку запису. Зчитування проводиться по стовпцях. В

приймачі вхідні біти зберігаються в такій самій двовимірній матриці в тому ж порядку, в якому вони були зчитані в передавачі. Після заповненні матриці

44

прийнятими бітами вони зчитуються в тому ж порядку, в якому були записані в матрицю перемежувача. Запис по рядках і зчитування по стовпцях — найпростіший спосіб розсіювання пакетів помилок. Можна визначити іншу послідовність запису і зчитування в перемежувачі і деперемежувачі. Обидва процеси повинні бути комплементарні один одному. Послідовність адрес і розмір матриці, що визначає так звану глибину перемежування, повинні бути підібрані так, щоб пакетні помилки, які виникають в каналі після розсіювання виглядали випадковими.

Для коректної роботи перемежувача і деперемежувача необхідна синхронізація. Якщо часові рамки зчитування передавача і приймача будуть зсунуті один відносно іншого, порядок бітів на виході з деперемежувача не дасть правильних результатів. Тому, послідовність, яка передається часто починається з короткого синхронізуючого слова. Оскільки запис в матрицю і зчитування з неї проводяться одночасно, кількість матриць подвоюється. В

момент часу коли одна з них використовується для зберігання вхідних даних,

інша використовується для зчитування даних, записаних раніше. Після завершення операцій запису/зчитування змінюється функція матриць.

Здатність розсіювати пакетні помилки визначається глибиною перемежування. Тобто, необхідно збільшувати розміри матриці, щоб ефективно боротися з пакетними помилками. Збільшення розмірів матриці приведе до використання більшого об’єму пам’яті та зростання вимоги щодо синхронізації передачі. Цікавим є питання використання матриць змінного розміру та пошуку алгоритмів запису/зчитування біт в матрицю. Проте воно виходить за межі тем,

які розглядаються в даній книзі.

1.8. Каскадне кодування

Як зазначалося вище для боротьби з помилками великої кратності необхідно застосовувати складні коди та інші спеціальні заходи наприклад,

перемежування. Альтернативою використання коректуючих кодів, які здатні виправляти помилки великої кратності (що збільшують складність кодера та

45

декодера) є застосування каскадного кодування.

Інформація

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодер

 

 

Кодер

 

 

 

 

 

Декодер

 

 

Декодер

 

 

 

 

зовнішнього

 

 

внутрішнього

 

 

Канал

 

 

внутрішнього

 

 

зовнішнього

 

 

а1

 

 

 

 

 

 

 

 

аˆ1

 

коду

 

 

коду

 

 

 

 

 

коду

 

 

коду

 

 

 

R=K/N

 

 

r=k/n

 

 

 

 

 

 

 

 

Рис.1.13 Принцип каскадного кодування

Використання кількох кодів послідовно в техніці зв’язку отримала назву каскадного кодування. Ідея каскадного кодування була запропонована Форні

(Forney) в 1966 р. (рис. 1.13). Канальне кодування в передавачі реалізується двома кодерами. Перший називають кодером зовнішнього коду, або зовнішнім кодером. Коефіцієнт кодування першого кодера дорівнює:

R

K

,

(1.16)

N

 

 

 

де K - це кількість інформаційних бітів; N - довжина кодового слова. Кодер внутрішнього коду (внутрішній кодер) має такий коефіцієнтом кодування:

r

k

,

(1.17)

n

 

 

 

де k - кількість інформаційних бітів з виходу зовнішнього кодера; n - довжина кодового слова. Можна легко показати, що сумарний коефіцієнт кодування дорівнює rR = Kk/nN.

ˆ

R r

K

 

k

 

R

N

n

.

(1.18)

У приймачі потік даних з

виходу

 

каналу обробляється

декодером

46

внутрішнього коду, а інформаційні біти з його виходу відправляються на вхід декодера зовнішнього коду.

Розроблено кілька різних реалізацій внутрішніх і зовнішніх кодів. У

багатьох застосуваннях як внутрішній код використовується згортковий код, а

як зовнішній код використовується недвійковий код Ріда-Соломона. Завдання внутрішнього коду є виправити якомога більше помилок, обумовлених каналом передачі даних. Однак деякі комбінації помилок не можуть бути виправлені й приводять до появи пакетів помилок на виході декодера згорткового коду. Тоді,

пакети помилок що залишилися, виправляє декодер зовнішнього коду.

1.9. Турбо-кодування

Ідея турбо-кодування вперше була запропонована в 1993 р [8]. Приклад кодера турбо-коду (турбо-кодер) зображений на рис. 1.14, а відповідний йому декодер турбо-коду (турбо-декодер) - на рис. 1.15. Турбо-кодер на рис. 1.14

складається із двох кодерів рекурсивного систематичного коду (англ. Recursive Systematic Code - RSC), перемежувача і пристрою ущільнення та виколювання.

Рекурсивний систематичний код - це різновид згорткового коду, в якому вхідні інформаційні біти передаються безпосередньо на вихід, а надлишкові біти генеруються логічним колом яке містить регістр зсуву зі зворотним зв'язком.

Виявляється, що застосування двох паралельних RSC-кодерів з перемежувачем перед другим дозволяє генерувати коди з ―хорошими‖ властивостями наприклад, велика відстань Хемминга між кодовими словами. Важливу роль у продуктивності коду відіграє конструкція перемежувача.

Зазвичай використовуються нерівномірні (псевдовипадкові) перемежувачі.

У них зчитування й запис в пам’ять відбуваються псевдовипадковим чином. Як і в інших перемежувачах, процеси зчитування й запису комплементарні один одному. Для досягнення високої продуктивності коду пам'ять перемежувача повинна бути великою, що приводить до більших затримок кодування й декодування. Використання двох RSC-кодерів обумовлює найменшу кодову швидкість усього кодера R = 1/3 (для кожного вхідного біта генеруються три

47

вихідних біти). Однак її можна збільшити за допомогою перфорування коду.

C1

dk

Рекурсивний систематичний код

Хk

 

 

 

Т

Т

Т

Т

Лінія

 

 

 

Y1k

затримки (L1)

 

 

 

 

 

 

 

Y2k

Перемежування

 

 

 

 

 

 

 

 

Т

Т

Т

Т

 

 

 

 

C2

Рекурсивний систематичний код

Рис.1.14 Структур кодера турбо-коду

Мультиплексування та виколювання

Вихід

Декодер турбо-коду складається із двох декодерів з м'яким входом/м'яким виходом, розділених перемежувачем. Вихідний сигнал другого декодера надходить назад на вхід першого декодера. Декодування відбувається ітераційним способом у колі зворотного зв'язку. Два декодери використовують інформацію про стан каналу, котра складається з миттєвого значення амплітуди й шумових відхилень. Два декодери обробляють інформаційні сигнали,

надлишкові сигнали та значення логарифмічних відношень правдоподібності.

Ефективність турбо-декодера, виражена як функція BER від Eb/N0 підвищується зі збільшенням числа ітерацій у процесі декодування.

48

Петля зворотнього зв’язку

Вихід

Демультиплексування

zk

 

 

ˆ

 

 

 

ˆ

 

 

 

 

 

 

 

 

Деперемежування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

(dk )

1

(dn )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xk

 

 

Декодер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Декодер

 

 

 

 

 

 

 

 

 

 

 

 

Перемежування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DEC1

 

 

 

 

 

 

 

DEC

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y1k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Деперемежування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y2k

 

 

 

 

 

 

 

 

 

 

 

 

 

2 (dk )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Деперемежування

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вихід

ˆ

d k

Рис.1.15 Структура декодера турбо-коду

Турбо-коди можуть бути використані в системах, що вимагають дуже низьких BER і допускають більшу затримку, яка вноситься під час

декодування.

49

2.ЦИФРОВА МОДУЛЯЦІЯ

2.1.Загальні зауваження

Суть проблеми

Для чого потрібна модуляція і чим цифрова модуляція (або маніпуляція)

відрізняється від аналогової. Чому цифрова модуляція має значно більше видів,

порівняно з аналоговою, та які види модуляції використовуються в сучасних безпровідних технологіях.

Основні результати

Модуляція обов’язково використовуються в таких системах, де канал зв’язку характеризується заданим діапазоном частот fmin÷fmax. Саме такими є безпровідні канали зв’язку (рис. 2.1).

 

 

 

Модульований

Модульований

 

 

 

 

 

 

 

 

 

 

сигнал

 

 

сигнал

Інформаційний

Інформаційний

 

 

 

 

 

 

сигнал

 

 

 

 

 

сигнал

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Модулятор

 

 

Канал зв’язку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

з гармонічним

 

 

 

 

Демодулятор

 

 

 

 

 

 

 

 

 

fmin-fmax

 

 

 

 

 

 

 

 

несучим коливанням

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.2.1 Спрощена структурна схема безпровідної системи зв’язку

Основним призначенням модуляції (modulation) є перенесення інформаційного сигналу з області низьких частот в область більш високих частот fmin÷fmax, виділених для конкретного каналу зв’язку. Отже, модуляцією може бути названий процес накладання інформації (або модуляційного сигналу) на другий сигнал з більш високою частотою f0, яка називається несучою (carrier) частотою, причому, як правило f0 = (fmax-fmin)/2. В результаті отримуємо модульований сигнал. В якості несучого коливання в радіозв’язку практично завжди використовується гармонічний сигнал, тому що він займає найвужчий спектр, порівняно з іншими видами сигналів.

50

Соседние файлы в папке diplov