Научная статья на тему 'Реалізація декодера Вітербі на FPGA для систем супутникового зв’язку'

Реалізація декодера Вітербі на FPGA для систем супутникового зв’язку Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
326
89
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЛІС / пряме виправлення помилок / декодер Вітербі / трейліс діаграма / ПЛИС / прямое исправление ошибок / декодер Витерби / трейлис диаграмма / FPGA / Forward Error Correction / decoder Viterbi / trellis diagram

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Павленко М. П., Бичков В. Є., Правда В. І.

Сверточное кодирование и декодирование с помощью алгоритма Витерби – это мощный метод исправления ошибок. В этой статье представлено краткое описание реализации декодера Витерби на FPGA на языке описания аппаратуры Verilog для системы беспроводной связи Thuraya. Главная идея этого проекта – оптимизация ресурсов при реализации декодера на ПЛИС платформе. В этом проекте декодер реализован на FPGA фирмы Altera Cyclone III. Параметры кода: кодовое ограничение 5, скорость кодирования – 1/4. Декодер Витерби может работать на частоте 90 МГц.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FPGA Implementation of Viterbi Decoder for Satellite System

Convolutional encoding with Viterbi decoding is a powerful method for forward error correction. This paper presents a short overview of a Viterbi decoder FPGA (Field-Programmable Gate Array) implementation for Thuraya wireless communication sys-tem in Verilog HDL (Hardware Description Language). The main goal of this project was re-source-optimized implementation of the decoder on the target platform. In this project, Viterbi Decoder is implemented on Altera Cyclone III FPGA. The transmitter is of constraint length 5 and of rate 1/4. The Viterbi decoder can operate at a frequency of 90 MHz.

Текст научной работы на тему «Реалізація декодера Вітербі на FPGA для систем супутникового зв’язку»

Теорія та засоби телекомунікацій

ТЕОРІЯ ТА ЗАСОБИ ТЕЛЕКОМУНІКАЦІЙ

УДК 621.396.6

РЕАЛІЗАЦІЯ ДЕКОДЕРА ВІТЕРБІ НА FPGA ДЛЯ СИСТЕМ СУПУТНИКОВОГО ЗВ’ЯЗКУ

Павленко М.П., магістрант; Бичков В.Є., асистент,

Правда В.І., к.т.н., професор

Національний технічний університет України «Київський політехнічний інститут», м.Київ, Україна

Вступ

Усім відомо, що при бездротовій передачі даних через канал зв’язку на сигнал діють згасання, шуми, інтерференція, багатопромінність, як наслідок - отримуються данні з помилками. Згорткове кодування і декодування за допомогою алгоритму Вітербі - це потужний метод корекції помилок, який широко використовується в сучасних системах бездротового зв'язку . Алгоритми згорткового кодування і декодування відомі досить давно, проте апаратна їх реалізація на сучасній елементній базі досить гостра проблема і сьогодні. Оскільки при високій швидкості передачі даних і глибині завадостійкого кодування, потрібно забезпечити високий паралелізм обрахунків. У цій статті приведена реалізація декодера Вітербі на базі FPGA (Field-Programmable Gate Array) Cyclone Ш фірми Altera для системи супу-тникового зв’язку стандарту Thuraya.

Мета статті - розкрити основні особливості апаратної реалізації декодера Вітербі.

Канальне кодування - це потужне і ефективне рішення, яке застосовується для захисту даних від помилок при передачі. В загальному випадку для FEC (Forward Error Correction) використовують блочні і згорткові коди.

Для захисту від помилок у каналах радіозв'язку систем стандарту Thuraya використовується завадостійке канальне кодування сигналу, яке здійснюється шляхом введення до складу переданого сигналу досить великого обсягу додаткової (надлишкової) інформації. У стандарті Thuraya канальне кодування реалізується у вигляді 4-х процедур: блочного кодування (block-encoding); згорткового кодування (convolutional encoding); -перемеження (interleaving) та скремблювання (scrambling).

При блочному кодуванні вхідна інформація розбивається на блоки по k символів, які перетворюються по певному закону в n-символьні блоки, де

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

71

Теорія та засоби телекомунікацій

n>k. Блочне кодування призначене, в основному, для виявлення одиночних і групових помилок в каналі зв'язку і в певних випадках для їх виправлення.

При згортковому кодуванні кожен символ вхідний інформаційної послідовності, що складається з k біт, перетворюється в n-бітовий символ вихідної послідовності, причому n>k. Згорткове кодування є потужним засобом боротьби з поодинокими помилками, хоча і не забезпечує їх виявлення.

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

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

Зі зростаючим попитом на цифрові телекомунікації з’явився підвищений інтерес для побудови швидкісних алгоритмів завадостійкого кодування на базі одного кристалу SoC (System on Chip). Сучасні програмовані вентильні матриці FPGA і системи автоматизованого проектування дають змогу реалізувати алгоритми завадостійкого декодування з пропускною здатністю Гбіт/с без використання процесорів і пам’яті поза межами кристалу.

Згортковий код

Згорткове кодування забезпечує перетворення k вхідних біт в n біт вихідної послідовності, причому n>k. Кожен біт вихідної послідовності отримується в результаті суми по модулю 2 кількох попередніх бітів вхідної послідовності. Згорткові кодери зазвичай позначаються як n, k, K, де n - кількість біт в одному символі вихідної послідовності, які формуються за один такт роботи кодера; k - кількість біт в одному символі вхідної послідовності , що надходять на вхід кодера за один такт; K - довжина обмеження (constraint length), тобто числове значення, яке відповідає довжині зсуваючого регістру, який бере участь у формуванні одного вихідного символу (символи можуть складатися з одного чи кількох біт). При цьому відношення R =k / n називається швидкістю кодування.

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

В даній статті розглядаються особливості побудови декодера Вітербі

72

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

Теорія та засоби телекомунікацій

для логічного каналу RACH (Random access channel). Кодер RACH каналу доповнений блоком Puncturing, який виконує мультиплексування і прорідження вихідної послідовності для зниження бітового потоку з маскою

т

P(2;1)=[1 1 0 0] . Параметри згорткового коду: R=1/4; K=5;

Алгоритм Вітербі

В 1967 році Вітербі розробив і проаналізував алгоритм [1] декодування, в основі якого лежить принцип максимальної правдоподібності. Є і інші методи декодування згорткових кодів (наприклад алгоритм Фано), але найменш ресурсоємким залишається алгоритм Вітербі. Задачу декодування згорткового коду розглядають як задачу знаходження шляху на решітчастій діаграмі за допомогою деяких правил. Необхідно вибрати такий шлях, який найкраще узгоджується з прийнятою послідовністю. Для цього потрібно на кожному кроці надходження вхідних даних обрахувати метрики для кожного шляху на решітці[2]. Вітербі показав, якщо в один і той

іг і

же вузол (кількість вузлів 2 -) входять два шляхи зі своїми метриками, то шлях з гіршою метрикою вже ніколи не стане кращим і його можна відкинути, і розглядати далі тільки один шлях ("виживший”). Тобто на кожному кроці в кожному вузлі відкидаються шляхи з гіршою метрикою і записуються в пам'ять лише "виживші” шляхи з інформацією про проходження по трейліс діаграмі, за допомогою якої відтворюється бітова послідовність, яка подавалася на кодер.

Структура декодера Вітербі

В загальному випадку структура декодера Вітербі, яка реалізована на FPGA, зображена на рис. 1.

Рис.1. Структурна схема декодера Вітербі

Блок вузлових метрик (ВМ) порівнює вхідний символ з усіма можливими символами, які б могли утворитися в результаті роботи кодера, тобто розраховується вузлова метрика Хемінга, схема на рис.2 детальніше ілюструє роботу блока. Очікувані символи формуються при усіх можливих переходах на трейліс діаграмі з урахуванням особливостей коду.

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

73

Теорія та засоби телекомунікацій

Рис.3. Структурна схема ACS блоку ВМ_1, ВМ_2 - вузлові метрики; ПМ_1, ПМ_2 - повні метрики

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

В момент часу t (на рис. 4) в кожному вузлі є свій “виживший” шлях зі своїм значенням метрики, яка називається повна метрика (інформація про них зберігаються в пам’яті декодера (рис. 1)).

На наступному кроці t+1 в кожний вузол входять вже два шляхи, повні метрики який складаються з повних метрик вузлів, з яких вони прийшли, і вузлових метрик, які утворилися в результаті переходу. Тому задачею блока ACS і є підрахунок нових повних метрик для кожного вузла діаграми, порівняння їх між собою в кожному вузлі, відкидання шляху з найгіршою метрикою, зберігання “вижившого” шляху і декодованого символу в пам’ять декодера.

В пам’яті декодера (рис.1) міститься інформація про кожен вузол в даний момент часу (повна метрика і декодовані символи). Під час роботи декодера ця інформація постійно оновлюється.

Оскільки в RACH каналі використовується блок даних довжиною 163 символів, то для збереження декодованих бітів потрібно мати 2К-1 163-х розрядних регістрів. Після отримання цілого блоку даних схема синхронізації передає інформацію про кожен вузол в схему прийняття рішення, в якій обирається той регістр декодованих даних, повна метрика вузла якого найменша.

FPGA

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

Рис.4. Діаграма переходів

74

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

Теорія та засоби телекомунікацій

пристроїв.

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

Основними перевагами ПЛІС при застосуванні в засобах обробки сигналів являються:

- висока швидкодія;

- можливість реалізації складних паралельних алгоритмів;

- наявність засобів САПР, що дозволяють провести повне моделювання системи;

- можливість програмування або зміни конфігурації безпосередньо в системі;

- сумісність при переведенні алгоритмів на рівні мов опису апаратури (VHDL, AHDL, Verilog та ін.);

Нині швидкодія ПЛІС досягла величин близько 500 - 600 МГц, що дозволяє реалізовувати алгоритми в радіодіапазоні.

Висновки

Алгоритм декодування Вітербі описаний на мові програмування апаратури Verilog і реалізований на FPGA Cyclone III фірми Altera в середовищі розробника апаратури Quartus II 11.0.

В наведеному звіті компіляції можна побачити ресурси кристала, які були затрачені на реалізацію, при максимальній тактовій частоті 90 МГ ц.

Total logic elements -- Combinational with no register -- Register only

-- Combinational with a register

Logic element usage by number of LUT inputs

--4 input functions

—3 input functions

-- <=2 input functions

-- Register only

Total registers

-- Dedicated logic registers

-- I/O registers

Total LABs: partially or completely used M9Ks

Total block memory bits

Total block memory implementation bits

1,030 / 119,088 ( < 1 % )

536

45

449

220 377 3 8 8 45

494 / 121,673 ( < 1 % )

494 / 1 1 9,088 ( < 1 % )

0 / 2,585 ( 0 % )

85 / 7,443 ( 1 % )

2 / 432 ( < 1 % )

2,907 / 3,981,312 ( < 1 %) 18,432 / 3,981,312 ( < 1 % )

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

75

Теорія та засоби телекомунікацій

Література

1. Бернард Скляр. Цифровая связь. М., Вильямс,2007

2. Дж. Кларк, мл., Дж. Кейн. Кодирование с исправлением ошибок в системах цифровой связи. М., Радио и связь, 1987

3. Стешенко В.Б., Петров А.В. Апаратнная реализация декодера Витерби

4. Hema. S, Suresh Babu. V., Ramesh P. FPGA Implementation of Viterbi Decoder.

5. Milos Pilipovic, Marija Tadic. FPGA Implementation of Soft Input Viterbi Decoder for CDMA2000 System.

6. Behzad Momahed Heravi, Bahram Honary. Multi-rate Parameterized Viterbi Decoding for Partial Reconfiguration.

Павленко М.П., Бичков В.Є., Правда В.І. Реалізація декодера Вітербі на FPGA для систем супутникового зв’язку. Згорткове кодування і декодування за допомогою алгоритму Вітербі - це потужний метод корекції помилок. В цій статті представлений короткий опис реалізації декодера Вітербі на FPGA на мові опису апаратури Verilog для системи бездротового зв’язку Thuraya. Головна ідея цього проекту- оптимізація ресурсів при реалізації декодера на ПЛІС платформі. В цьому проекті декодер Вітербі реалізовано на FPGA фірми Altera Cyclone III. Параметри коду: кодове обмеження - 5, швидкість кодування - 1/4. Декодер Вітербі може працювати на частоті 90 МГц.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ключові слова: ПЛІС, пряме виправлення помилок, декодер Вітербі, трейліс діаграма.

Павленко Н.П., Бычков В.Е., Правда В.И. Реализация декодера Витерби на FPGA для систем спутниковой связи. Сверточное кодирование и декодирование с помощью алгоритма Витерби - это мощный метод исправления ошибок. В этой статье представлено краткое описание реализации декодера Витерби на FPGA на языке описания аппаратуры Verilog для системы беспроводной связи Thuraya. Главная идея этого проекта - оптимизация ресурсов при реализации декодера на ПЛИС платформе. В этом проекте декодер реализован на FPGA фирмы Altera Cyclone III. Параметры кода: кодовое ограничение 5, скорость кодирования - 1/4. Декодер Витерби может работать на частоте 90 МГц.

Ключевые слова: ПЛИС, прямое исправление ошибок, декодер Витерби, трейлис диаграмма.

Pavlenko M.P., Bychkov V.E., Pravda V.I. FPGA Implementation of Viterbi Decoder

for Satellite System. Convolutional encoding with Viterbi decoding is a powerful method for forward error correction. This paper presents a short overview of a Viterbi decoder FPGA (Field-Programmable Gate Array) implementation for Thuraya wireless communication system in Verilog HDL (Hardware Description Language). The main goal of this project was resource-optimized implementation of the decoder on the target platform. In this project, Viterbi Decoder is implemented on Altera Cyclone III FPGA. The transmitter is of constraint length 5 and of rate 1/4. The Viterbi decoder can operate at a frequency of 90 MHz.

Key words: FPGA, Forward Error Correction, decoder Viterbi, trellis diagram.

76

Вісник Національного технічного університету України "КПІ" Серія — Радіотехніка. Радіоапаратобудування.-2012.-№49

i Надоели баннеры? Вы всегда можете отключить рекламу.