Научная статья на тему 'СИСТЕМА ЗАВАДОСТІЙКОГО КОДУВАННЯ ДАНИХ НА ПЛІС'

СИСТЕМА ЗАВАДОСТІЙКОГО КОДУВАННЯ ДАНИХ НА ПЛІС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
VHDL-модель / синтез / коди з низькою щільністю перевірок на парність / згорткове кодування / програмно-апаратна реалізація / VHDL-model / synthesis / low density pairing check codes / convolutional coding / implementation

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Філіппенко Інна Вікторівна, Кулак Ельвіра Миколаївна, Сергієнко Владислав Ігорович

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

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

Текст научной работы на тему «СИСТЕМА ЗАВАДОСТІЙКОГО КОДУВАННЯ ДАНИХ НА ПЛІС»

КОМП'ЮТЕРНА 1НЖЕНЕР1Я

УДК 681.326

СИСТЕМА ЗАВАДОСТ1ЙКОГО КОДУВАННЯ ДАНИХ НА ПЛ1С

Ф1Л1ППЕНКО 1.В., КУЛАКЕ.М., СЕРпенко в.1._

Розробляеться завадостшка система бездротово! передачi даних i3 застосуванням блокового кодування та реалiзацiею на ПЛ1С. Пропонуеться спосiб реалiзацl алгоритму LDPC-кодування на ПЛ1С, а також алгоритм декодування та схема LDPC-декодера з реалiзацiею на ПЛ1С.

Ключовi слова: VHDL-модель, синтез, коди з низькою щiльнiстю перевiрок на парнiсть, згорткове кодування, програмно-апаратна реалiзацiя. Key words: VHDL-model, synthesis, low density pairing check codes, convolutional coding, implementation. 1. Вступ

В епоху сучасних технологiй постiйно збшь-шуеться об'ем iнформацii, який завжди пере-даеться через канали зв'язку. В цих каналах постiйно виникають перешкоди, викликаш pi3-ними обставинами, наприклад погодш явища, випромiнювання вiд рiзних техшчних засобiв, вiдображення. Цi перешкоди псують якiсть зв'язку i призводять до втрати корисноi шфор-мацii.

У сучасних системах передачi iнформацii широко використовуються три методи кодування: первинне, економне i завадостiйке [1, 2]. Первин-не кодування шформаци дозволяе перетворювати дискретнi величини у кодовi комбiнацii. Прикладами таких кодiв е мiжнародний телеграфний код МТК-2, коди обмiну iнформацiею ЯК1-7, ЯК1-8. Первиннi коди зазвичай представляють у виглядi таблиць. Економне кодування дозволяе скоротити надмiрнiсть коду, шшими словами, стиснути данi. Такий метод кодування враховуе статистичш характеристики джерела повщом-лень i дае можливють представити знаки по-вiдомлення в середньому меншим числом кодо-вих символiв. Наприклад, значно скоротити надмiрнiсть переданих повiдомлень можна, якщо символам повщомлень, що найчастiше зустрiча-ються, поставити у вiдповiднiсть коротшi кодовi комбiнацii, а менш iмовiрним символам - довшь Операцiю скорочення надмiрностi джерела по-вiдомлень називають економним кодуванням. Економне кодування широко використовуеться в цифрових системах передачi шформаци для стиснення мовних, факсимшьних i телевiзiйних повiдомлень, якi мають велику надмiрнiсть. Пер-винне i економне кодування називають також кодуванням джерела.

ЗавадостШке кодування дозволяе виявляти i виправляти помилки, що виникають при пере-дачi повiдомлень по каналу зв'язку. Завадостшке кодування здiйснюеться шляхом введення до складу переданих кодових символiв надлишково! iнформацii (наприклад, перевiрочних символiв). Операцiю введення надмiрностi для шдвищення завадостiйкостi каналу зв'язку називають ка-нальним кодуванням. Завадостiйке кодування широко застосовуеться в системах зв'язку, в ЕОМ (електронна обчислювальна машина), в цифровш аудiо- i вiдеотехнiцi. Теорiя завадостшкого кодування базуеться на результатах дослщжень, проведених Клодом Шенноном [1]. Вш сформулював теорему для дискретного каналу з завадами: при будь-якiй швидкосп передачi двiйкових символiв, мен-шою, нiж пропускна здатнiсть каналу, юнуе такий код, при якому ймовiрнiсть помилкового декодування буде як завгодно мала. Побудова такого коду досягаеться цшою введення надмiр-ност^ тобто застосовуючи для передачi шфор-мацii код, який мае надмiрностi в кодових комбшащях, можна пiдвищити стiйкiсть каналу зв'язку перед перешкодами. Таю коди називають надмiрними або коригуючими. Коригуючi вла-стивостi надлишкових кодiв залежать вщ правил побудови цих кодiв i параметрiв коду (тривалостi символiв, числа розрядiв, надмiрностi). В даний час найбшьша увага придiляеться двш-ковим рiвномiрним коригуючим кодам [3]. Вони мають хорошi коригуючi властивостi i !х ре-алiзацiя досить проста.

Найбшьш часто застосовуються блоковi коди. При використанш блокових кодiв цифрова ш-формацiя передаеться у виглядi окремих кодових блокiв рiвноi довжини. Кодування i декодування кожного блоку здшснюеться незалежно один вiд одного, тобто кожнш буквi повiдомлення вщповщае блок з t символiв. Блоковий код нази-ваеться рiвномiрним, якщо п (значнiсть) зали-шаеться однаковою для всiх букв повiдомлення. Розрiзняють роздiльнi i нероздiльнi блоковi коди. При кодуванш роздiльними кодами кодовi опе-рацii складаються з двох роздшьних частин: ш-формацiйноi та перевiрочноi. Iнформацiйнi та перевiрочнi розряди у вшх кодових комбiнацiях роздшьного коду займають однi й т ж позицii. При кодуваннi нероздшьними кодами роздiлити символи вихiдноi послщовност на iнформацiйнi та перевiрочнi неможливо.

Безперервними називаються такi коди, в яких введення надлишкових символiв у послщовносп iнформацiйних символiв здiйснюеться безпере-рвно, без подiлу 11 на незалежш блоки.

Рис. 1. Схема згорткового кодування та декодування в радюлшп з шумами

В завадостшкому кодуваннi розрiзняють згорт-кове кодування, турбокодування, LDPC-кодування (Low Density Parity Check Codes) -коди з низькою щшьшстю перевiрок на парнiсть [4]. Згортков1 коди основаш на перетворенш нескшчено1 вхщно1 послiдовностi бiнарних сим-волiв, в якiй на кожен символ вхщно! послщов-ностi припадае понад один символ [3]. Основна щея турбокодування полягае в використаннi гге-рацшно1 процедури декодування за допомогою декодерiв з «м'якими» рiшеннями на виходi [2]. LDPC-коди вiдносяться до блокових кодiв [2, 5, 6]. Основною вщмшнютю блокових кодiв вщ згорткових е те, що для кодування шформацп iнформацiйний потiк подшяеться на блоки певно! довжини, зваш iнформацiйними словами, i до кожного з цих блокiв додаеться блок пе-ревiрочних даних (надмiрна частина). В результат ще1 операцн виходить кодове слово. Вiдмiннiстю LDPC-кодiв вiд звичайних блокових кодiв е те, що !х перевiрочнi матриц е розрщже-ними, тобто мютять малу кiлькiсть одиниць. Унiверсального правила, за яким можна визна-чити, чи е матриця розрщженою, немае. Все за-лежить вiд методу генерацн перевiрочноl i по-роджуючо! матриць.

В останнi роки зусиллями втизняних та за-рубiжних вчених освоенi методи коригуючого кодування, як забезпечують енергетичний виграш 6-7дБ в каналах з постшними параметрами та Гаусовим шумом, що дозволило тдвищити завадостшюсть систем зв'язку з космiчними апа-ратами. 1з теори шформацп вiдомо, що ефектив-ними е достатньо довп коди з параметрами, подiбними до параметрiв випадкового шуму [3]. При цьому з ростом довжини коду складшсть алгоритму декодування (апаратна або програмна складшсть декодера) значно зростае. Тому прак-

тично важливою задачею спещатспв з кодування залишаеться задача пошуку та синтезу кодiв з високою коригуючою здатшстю, i, в цей же час, з прийнятною складшстю реатзацп декодера. Перспективними та рекомендованими до за-стосування CCSDS (Consultative Committee for Space Data Systems) на сьогодш е згортковi коди та LDPC-коди.

В результат порiвняльного аналiзу рiзноманiт-них кодiв, як використовуються в бездротових системах зв'язку, були обраш два види зава-достiйкого кодування для подальшого моделю-вання, а саме: згорткове кодування з (171, 133) породжувальним полшомом i LDPC-кодування з довжиною шформацшного слова 128, 1024, 4096 бгг, рiзними швидкостями коду та bit-flipping алгоритмом для декодування.

Цей алгоритм кодування дозволить реатзувати завадостшку систему передачi даних. Вш також може бути реатзований на ПЛ1С (програмоваш логiчнi штегральш схеми), що дозволить знизити затримку при кодуванш та декодуваннi шформацп.

Об'ект досл1дження: завадостшю системи безд-ротово1 передачi даних. Предмет досл1дження\ методи побудови завадостшких систем бездро-тово! передачi даних шляхом застосування блокового кодування з використанням ПЛ1С. Цть роботи: розробити IP Core (Intellectual Property Core - ядро штелектуально1 власносп) пристрою кодеку завадостшко1 системи передачi даних на ПЛ1С. Для досягнення цш необхiдно вирiшити такi задач1\

1) анатз та порiвняння методiв кодування даних;

2) вибiр методу завадостшкого кодування;

3) адаптацiя обраного алгоритму кодування для реатзацп його на ПЛ1С;

4) розробка алгоритму кодування/декодування для реалiзащí його на ПЛ1С;

5) розробка VHDL-моделi кодеку (VHDL - (Very high speed integrated circuits) Hardware Description Language - мова опису апаратури високошвид-юсних iнтегральних схем), верифжащя вихiдноí моделi кодеку та його моделi пiсля iмплемента-цй;

6) реалiзацiя пристрою на мiкросхемi ПЛ1С;

7) проведення дiагностичного експерименту.

2. Пор1вняльний анал1з ефективност1 згортко-вого кодування та LDPC-кодування

Для моделювання згорткового кодування в канат зв'язку з QPSK модулящею (Quadrature Phase Shift Keying - квадратурна фазова маншу-ляцiя) була побудована функщональна модель в програмному пакет MATLAB Simulink (рис. 1). Моделювання завадостшкого LDPC-кодування даних в радюлшЙ з QPSK модуляцiею виконува-лося також за допомогою програмного пакета MATLAB. Щоб закодувати шформацшну послiдовнiсть, потрiбно перемножити ii з пород-жуючою матрицею G обраного варiанту пари LDPC матриць (перевiрочна та породжуюча). Перевiрочнi та породжуючi матрицi для довжин iнформацiйного слова 128, 1024 та 4096 бгг були рекомендован CCSDS [4, 5]. В умовах, коли передавач знаходиться далеко вщ приймача та мае обмежену потужнють, з якою може передавати повщомлення, дуже важливу роль грае кодування та енергетичний виграш, який воно може забезпечити при застосуванш. Графж залежностi iмовiрностi бггово'! помилки з р1зними видами кодування показаний на рис. 2.

нал/шум при застосуванш LDPC-кодiв прямуе до межi Шеннона.

Отже, виходячи з вище зазначеного, використан-ня LDPC-кодування дозволяе реалiзувати систему передачi даних з достатньо малою ймовiрнiстю помилки на бiт, i вщповщно може бути застосоване в радюлЫях зв'язку з космiчними апаратами. Через це для програмно-апаратно'1 реалiзащí було вибране саме LDPC-кодування з довжиною коду 128. 3. Розробка структури i yhdl-моделi LDPC-кодеку

Розроблено модуль кодера, оснований на алго-ритмi кодування запропонованому в [4]. Цей алгоритм наведений на рис. 3. Вш якнайкраще тд-ходить для використання на ПЛ1С, оскiльки ви-користовуе зсувш регiстри, що дозволяе значно збшьшити швидкiсть кодування порiвняно з ко-дуванням, коли використовуються ресурси про-цесора.

Породжуючу матрицю для цього коду згенеро-вано таким чином, що для вщтворення матриц на кодерi не обов'язково зберiгати всю матрицю. Достатньо зберйати кожен шютнадцятий рядок матрицi, якi називаються циркулянтами. 1нш1 рядки, а саме 60 (15*4), можна вщтворити через використання цикичного зсуву над рядком циркулянта, як наведено на рис. 3. Для цього вико-ристовуеться такий модуль.

Залежн1сть iMoeipHocri невиправлено! помилки в!д вщношення с/ш

• Uncooed QPSK 'Camotitomtcodng (171,133) LDPC coding kngtfi=1024, R=1/2. 100«егаЬоп LDPC coding tength=1024. R=4.S 100 iteration LDPC codkig tength=128 R=1/2.100 («ration LDPC codrg lengthМ09в. R-1/2. 100 iteration LDPC coding kngth-4096, RM/5.100 iteration

10 Eb/No, (

Рис. 2. Графiк для порiвняльного аналiзу рiзних видiв кодування

З рис. 2 видно, що при застосуванш в канал1 зв'язку LDPC-кодування показники бггово*1 помилки при тих самих значеннях сшввщношення сигнал/шум кращ^ навiть при жорсткому деко-дуваннi, нiж при згортковому кодуванш. Моделювання LDPC-кодування проводилося для дов-жини iнформацiйного слова 128, 1024 та 4096 бгга, а з ростом довжини шформацшного слова залежнють бггово*1 помилки вщ вiдношення сиг-

2Mlm = 8 shift registers, reloaded with circulant patterns once per m rotations

li i i i i P li i i M P ■H

X

x

Length KM input message, shifted in one bit

f2M

"7

ii шеььауе, ^ )it3tatime/-

, One 2/W-wide conditional addition

Y per message bit —

.KM

2M

KM + 2M K + 2

Systematic output codeword

Рис. 3. Алгоритм LDPC-кодування даних 1снуе чотири простих зсувних репстри. Щ рег1стри виконують операцпо циюпчного зсуву вправо. Вони об'еднаш в один репстр, шо нази-ваеться shift register. Цей pericTp мае три вхщш сигнали: clk, load та load_vector. Перший з них робить зсув даних, як показано на рис. 3. Load та load_vector дозволяють загрузити новi данi (циркулянт) в цей зсувний репстр. Для цього необ-хщно передати даш по шинi load_vector, а потам подати строб даних. Таким чином, використову-ючи цей зсувний репстр, можна не зберйати всю породжуючу матрицю, а лише перший, Ым-надцятий, тридцять третiй та сорок дев'ятий рядки ще! матрищ. Для зберЬання цих рядкiв використовуеться пакет f file encoder. Для

Рис. 4. Схе

вщтворення ycix шших рядкiв використовуеться зсувний pericTp shift_register. Маючи cnoci6 вiдтворити усю породжуючу мат-рицю, е можливiсть виконувати кодування. Для цього iнформацiя, що потрапляе на кодер, вщра-зу потрапляе як шформацшна частина (див. рис. 3) кодового слова (шформаци, яка буде пе-редаватися по каналу зв'язку). Дат перший б^ iнформацiйного слова помножуеться на перший циркулянт. Результат записуеться в кодову ча-стину кодового слова, а циркулянт записуеться в зсувний репстр, для подальшого формування породжуючо! матрицi. Потiм проводиться опе-рацiя зсуву зсувного репстра i проводиться мно-ження вже другого шформацшного бiта на зна-чення зсувного регiстра. Результат складаеться по модулю два з кодовою частиною кодового слова, що вже збережений в кодера Такi операци проводяться ще 14 разiв. Потiм вiдбyваеться змша циркулянта i операци повто-рюються. Пiсля проходження всiх циркyлянтiв буде отримана закодована шформащя (кодове слово), яка складаеться з шформацшно! та кодо-во! частин.

Було також розроблено схему декодеру, яка наведена на рис. 4. Функцюнуе вона так. На приймальнш сторош встановлюють LDPC-декодер, в якому записана вщповщна перевiроч-на матриця для декодування прийнятого кодового слова. Вхвдна послiдовнiсть з демодулятора, пiсля якого значення кодово! послiдовностi е двшковими, разом зi стробом, який сигналiзyе про надходження послiдовностi на вхщ декодера, поступае на механiзм сташв. Цей механiзм станiв записуе вхщну послiдовнiсть до внуфшньо! пам'ятi decoded та починае очшувати закiнчення першо! тераци декодування. У цей час даш з внутршньо1 пам'ятi поступають на вхiд блоку syndrome. У блощ вiдбyваеться перевiрка кодо-

декодеру

вого слова на паршсть з використанням пе-ревiрочноl матрицi.

Цей модуль дозволяе виявити, чи е у вхщного кодового слова хоча б одна не пройдена пе-ревiрка на паршсть. Якщо не пройденi перевiрки е, то вихщний сигнал модуля unary_inv_or буде дорiвнювати нулю, якщо ж yd перевiрки на парнiсть пройдеш, то вихiдний сигнал буде мати значення одинищ.

У цей же час значення проходження перевiрок на паршсть з модуля syndrome потрапляють на лiчильники непройдених перевiрок. Для кожного бга кодового слова створюеться свiй лiчильник який у двшковому виглядi вiдображае кiлькiсть непройдених перевiрок на парнiсть для даного бга.

В резyльтатi ще1 операци можна буде знайти бщ який не проходить максимальну кiлькiсть пе-ревiрок.

Пiсля цього значення виходiв модyлiв counts потрапляють в модуль algorithm. Цей модуль вщповщае за вибiр бiта для шверсп в процес декодування. В запропонованш реатзацп був ви-користаний алгоритм Bif Flipping. Його головною щеею е вибiр бiта, який не пройшов максимальну кшьюсть перевiрок на парнiсть, iз вшх бiтiв кодового слова, i повинен бути швертова-ний.

Для вибору цього бгга використовуеться послiдовне порiвняння кiлькостi непройдених перевiрок на паршсть для кожного бга. Для оп-тимiзацil цього процесу i шдвищення швидкост одше1 тераци декодування можна використати паралельний пошук максимального числа непройдених перевiрок, реалiзyвавши це комбшацшною схемою, але це понесе за собою велику кшьюсть витрачених ресуршв ПЛ1С.

В результат блок algorithm генеруе вектор виправлення помилок, який на позищях, що треба iнвертувати, виставляе одиницю, а на позищях, якi потрiбно залишити, без змш ставить нуль. Цей вектор потрапляе на наступний блок (див. рис. 4), в якому побггно виконуеться опе-ращя xor. Результат ще! операцн передаеться в механiзм сташв i у кiнцi кожно! терацн переза-писуеться у внутрiшню пам'ять. Ггерацп повто-рюються до моменту повного виправлення вшх помилок, або до того моменту, коли кшьюсть терацш перевищить порiг, заданий generic-константою.

Для верифшацп моделi кодера було використано середовище Active-HDL 9.1, в якому проведено симулящю роботи кодера (рис. 5). На вхщ такту-вання було подано меандр з частотою 10 МГц, на вхщ даних випадкове слово з 64-х бщ а на вхщ input_clk було подано строб. Результат кодуван-ня було перевiрено за допомогою MATLAB. Для перевiрки роботи декодера також було вико-ристане середовище Active-HDL 9.1, в якому проведено симулящю роботи декодера (рис. 6). На вхщ тактування було подано меандр з частотою 10 МГц, на вхщ даних спочатку було подано ну-льове кодове слово та строб. Як видно з рис. 6, декодер в^азу визначив, що подане на нього кодове слово е правильним, та вийшов з циклу де-кодування з нульовою кшьюстю ггерацш.

Signal name Value Stimulator 40 80 , 120 ' ' 160 ' ' ' 200 • • ' 210 • ' ' 280 • ■ 320 360 • ' ' 400 ' ' ' 440

а «г shittjoadjredor ...uuuuuuuuu uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

а »r snift_cutput .01000010001 Z2(mmymmmmmmmmmmmmmmmxmmm>: 01001110101010100010001011111010010001100101111011101010000

лг shin_en 0

лг shittjoad 0

nr state state_wait slat« wait X state.shifting X X slate.shilting X X state_shilting X X stale.shifting X" state_wait

а и outputj ...00101010010 IDCXIÔCXDOOCOOCCXOOOŒ^WOCXŒ^^ 111111100110110010111011111011110000000110111001010100010101001

»7 0 0 У 1 У 2 у 3 X 0

"i 16 0 ^лштттт[1шттшш1ттттш1шшшшш 16

■г iteration 0 штшштшшшшшшшшшшпшшпшшш

а лг input ...00100110100 X в1М11ШШ1Ш™М01ГО11ШШ0»0МШГГО1М

a ■ input data ...61DDAC8934 Formula A697D760DAC893t

o- input dk 0 Formula

► elk 1Ю0 Clock ЖШГШШШ1Ш1Ши1ПШ1ШУШ1ШШЛПШ1ШШ1Ш1ШЛШи¥1Ш1Ш1ШГШ

a « output ...BEF01B95152 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU X A697D761DDAC8934FESCBBEF01B95152

«valid 1 1

Рис. 5. Часова дiаграма роботи кодера

Signal name w state a decodedjnput Value state_wait ...0000000000000000000000000000000000 Stimulator

XX XX .»»- X X «.._«.. S us

X x 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 X

El" decoded_output 00000000000000000000000000000000 X 00000000000000000000000000000001 X

iu-decoded set 0 П П П

m decoded reset и

iu- FinalNumlteration... H «r counts 0 ..., 0,0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0, 0

X 1.0.0,0.0.0,1,0.0.0,0.0.0,0.110.1.0.0.0.0.0.1.1,0.0.0,0.10.0,0.0.0,0.0.0,0.0.1.0,0.111,0.0.0,0.0.0,0.10.0,0.110.0.0.0.0.0.0.0.0.0.0,0, h 0.0.0,0.0.0,0.0.0,0.0.0.0.0.0. X

«r all_zero «rclk 1 1 to 0 1 1 лллдлтлпллпплтдттплл^^

El" new_decoded 00000000000000000000000000000001

«J- dell_iter 0 » XiXXXX XXX XX X XX X XXXX XX X XX XXX X XXX XXX XXX XXX XXX XXX XX XXX XXX XX XXX XX XXX XXX

»r algo_start 0 ...0000000000000000000000000000000001 0 1 to 0 Formula Formula Clock 1 1

d- input_dk d- clk_not_bfg П П

лштлтдтштлтлтлдллштшшщт

o-rst 0 Formula и

El -o output ...0000000000000000000000000000000000 i омооооооооооооооооооомммооооооооооооооооооомммооооооооооо

-o IsValid 1 1 1

-o waiting 1 III

-o FinalNumlterations 0 X •

Рис. 6. Часова дiаграма роботи декодера

Пюля цього на вхщ даних декодера було подане слово з одшею помилкою та строб даних. Як видно з рис. 6, декодер визначив, що кодове слово не е в1рним (сигнал IsValid дор1внюе нулю), та почав цикл декодування з виправленням поми-лок. Пюля першо1 ггерацп декодер сформував вектор виправлення помилки, в якому правильно виставивши 6ît виправлення, зм1г вщновити первюну шформащю i вивести слово без помил-ки.

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

Оскшьки пристрiй, який проектуеться, в основному складаеться з елеменпв пам'ятi (тригерiв), синтез його було виконано на FPGA (Field-Programmable Gate Array - програмована кори-стувачем вентильна матриця). Хоча CPLD (Complex Programmable Logic Device - складний програмований логiчний пристрiй) мають бiльш високу швидкодiю, ïx використовують переваж-но для реалiзацiï лопчних функцiй великого числа змшних. Оскiльки для синтезу та iмплемента-цiï використовулося iнструментальне середовище Xilinx Progect Navigator V5.1, то вибiр мшро-схеми FPGA проводився з елементноï база фiрми Xilinx.

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

31 I Site Type I Used I Fixed I Available I Utili I

33 1 Slice LUTs* 1 259 1 0 1 53200 1 0. 49

34 1 LUT as Logic 1 259 1 0 1 53200 1 0. 49

35 1 LUT as Memory 1 0 1 0 1 17400 1 0. 00

36 1 Slice Registers 1 410 1 0 1 106400 1 0. 39

37 1 Register as Flip Flop 1 345 1 0 1 106400 1 0. 32

38 1 Register as Latch 1 65 1 0 1 106400 1 0. 06

39 1 F7 Muxes 1 8 1 0 1 26600 1 0. 03

40 1 F8 Muxes 1 4 1 0 1 13300 1 0. 03

Рис. 7. Використаш ресурси при синт^ кодера Загальна кшьюсть використаних ресурсiв для синтеза декодера наведено на рис. 8. Було також виконано моделювання кодеку шсля iмплементаци, та его прошивка на кристал1 XILINX XC7Z035-2LFBG676i.

31 1 Site Type 1 Used 1 Fixed 1 Available 1 Util%

33 1 Slice LUTs* 1 750 1 0 1 53200 1 1.41

34 1 LUT as Logic 1 750 1 0 1 53200 1 1.41

35 1 LUT as Memory 1 0 1 0 1 17400 1 0.00

36 1 Slice Registers 1 528 1 0 1 106400 1 0.50

37 1 Register as Flip Flop 1 528 1 0 1 106400 1 0.50

38 1 Register as Latch 1 0 1 0 1 106400 1 0.00

39 1 F7 Muxes 1 163 1 0 1 26600 1 0.61

40 1 F8 Muxes 1 78 1 0 1 13300 1 0.59

41+-------------------------+--------------+-----------+--------

Рис. 8. Використаш ресурси при синт^ декодера 4. Дiагностичний експеримент

Перед проведенням дiагностичного експеримен-ту були поставленi двi мети. Першим етапом необхiдно було перевiрити працездатнiсть ро-зроблених модулiв кодера i декодера в реальнш радюлшп. Метою другого етапу було отримати яюсний аналiз роботи даних модулiв. Для проведення першого етапу дiагностичного експерименту використовувалися двi плати PicoZed SDR AD9361 Development Kit з вбудова-ними приймачами Analog Devices AD9361 з плоскими антенами i системами на кристалах XILINX XC7Z035-2LFBG676i, якi мiстять двоя-дернi ARM Cortex-A9 процесори i ПЛ1С (FPGA). В даному експеримент використовувалися приймачi та ПЛ1С, на яких були прошит розроб-ленi модулi LDPC-кодера i декодера. Експери-мент проводився в лабораторних умовах без ви-користання пiдсилювачiв потужностi i з викори-станням аттенюаторiв для додаткового зниження рiвня потужностi сигналу, що передаеться.

У процес пiдготовки до проведення дiагностич-ного експерименту була побудована схема, яка наведена на рис. 9.

У схемi дiагностичного експерименту е два при-стро! дiагностування. Пристрш 1 складаеться з генератора шформацп 1, LDPC-кодера i модулятора.

Генератор шформацп 1 вщповщае за формування потоку заздалепдь вiдомих пакета даних, як надходять на LDPC-кодер. У модулi LDPC-кодера вщбуваеться безпосередньо кодування шформацп, яка надалi передаеться на модулятор, пiсля чого поступае в радюканал. Пристрiй 2 складаеться з демодулятора, LDPC-декодера, генератора шформацп 2 i модуля порiвняння. Демодулятор демодулюе данi з радюканалу i передае !х на LDPC-декодер i модуль порiвняння. Розроблений модуль LDPC-декодера виконуе декодування i передае пакети даних на модуль порiвняння. В цей же час генератор шформацп 2 генеруе пакети шформацп, в тш же послщовносп, що i модуль генерацп ш-формацп 1, та передае !х на модуль порiвняння. Все це дозволяе зробити порiвняння трьох по-токiв даних: идеального (з генератора шформацп 2), з помилками шсля радюканалу (з демодулятора) i з виправленими помилками (з LDPC- декодера). Порiвняння потокiв у даному експерименп дозволяе визначити, чи виникають помил-ки в радiоканалi i чи справляеться LDPC-декодер з ними.

Для проведення аналiзу отриманих результата було проведено ряд експеримента з рiзними вiдносинами сигнал/шум. Для iмiтацil рiзних радiоканалiв використовувалася змiна вщсташ мiж антенами пристро!в 1 i 2. Було проведено два експерименти, в яких антени знаходилися на вiдстанi 10 см i 10 м вщповщно. Перший експеримент показав, що даш, якi вiдправлялися з пристрою 1, потрапляли через радюканал в пристрш 2 без спотворень. 1нформащя на модул1 порiвняння збпалася для всiх трьох потокiв даних.

Пристрш 2

Вщстань М1Ж аитснами

Рис. 9. Схема дiагностичного експерименту (етап 1)

Пристрш 1

Рис. 10. Схема дiагностичного експерименту (етап 2)

Таблиця 1

Кшьюсть помилок, доданих в переданий пакет шформацп Загальна юльюсть проведе-них теспв (пакета) для данл кiлькостi доданих помилок Юльюсть виправлених паке™ Кшьюсть невиправлених пакетш Ввдсоток виправлених пакетш

10 52 38 14 73%

11 40 26 14 65%

12 39 21 18 54%

13 36 17 19 47%

14 33 7 26 21%

15 32 5 27 16%

16 30 3 27 10%

Таблиця 2

Кшьюсть помилок, доданих в переданий пакет шформацп Загальна юльюсть проведе-них тестш (пакетш), для даноï юлькосп доданих помилок Кшьюсть виправлених паке™ Кшьюсть не виправлених пакетш Ввдсоток виправлених пакетш

8 18 10 8 56%

13 19 8 11 42%

16 18 8 10 44%

19 18 7 11 38%

23 18 6 12 33%

28 18 2 16 11%

29 18 2 16 11%

Другий експеримент (рис. 10) показав, що ш-формащя, яка була передана через радюканал. спотворювалася, але LDPC-декодер виконував виправлення помилок. В середньому в радюка-налi виникала одна помилка на 1000 бгг. Для яюсного аналiзу роботи розроблених при-стро1в був проведений другий етап дiагностич-ного експерименту. Метою було визначити, скiльки помилок в прийнятих пакетах здатний виправити LDPC-декодер. Метою також було визначити, чи е рiзниця в результатах роботи залежно вiд вiдносного розташування помилок в пакет. Для проведення даного експерименту була побудована така схема (див. рис. 10). Вщмшшстю дано1 схеми вщ попередньо1 е те, що експеримент проводився всередиш одного пристрою. Для iмiтацiï передачi даних по радюкана-лу використовувався такий шдхщ. Данi з генератора шформацп подавалися на LDPC-кодер, на якому вщбувалося кодування пакета. Пiсля цьо-го до сформованого пакету за допомогою опе-рацiï суми по модулю два додавалися помилки, згенерованi модулем генерацiï помилок. Тшьки пiсля цього данi з помилками подавалися на LDPC-декодер, в якому вщбувалося декодування i передача отриманих даних на модуль порiвнян-ня. В результатi використання даного тдходу пiд

час проведення експерименту контролювалася кiлькiсть i вiдносне розташування помилок в пе-реданих пакетах. Експеримент проводився для рiзноï кiлькостi помилок в пакета При аналiзi результата експеримента було видiлено двi основш групи помилок в прийнятих пакетах: помилки, розташоваш в пакетах випад-ковим чином, та помилки, розташоваш поспшь (пакетнi помилки). Аналiз показав, що даш групи помилок необхщно розглядати окремо, оскшьки вони показують рiзнi статистичнi данi. Результа-ти експеримента щодо роботи декодера при випадковому розташуваннi помилок в прийнято-му пакетi наведенi в табл. 1. Результати експеримента щодо роботи декодера при пакетному розташуванш помилок в прийнятому пакет наведеш вiдповiдно в табл. 2. Якщо порiвняти значення вiдсотка виправлених пакета для двох видшених груп появи помилок, то можна помiтити, з якогось моменту (а саме вщ 13 помилок в пакет) LDPC-декодер краще справ-ляеться з пакетними помилками, шж з випадково освiченими (рис. 11). Це можна пояснити тим, що для декодування використовуються перевiрочнi матрицi з малою кшьюстю перевiрок на парнiсть i щ перевiрки розташованi псевдовипадковим чином.

Рис. 11. Пор1вняння результатов для пакетних i випадкових помилок Це дозволяе отримувати шформащю для декодування певного бгга пакета не тшьки вгд сусiднiх бгг, але i вiд далеко розташованих бтв. Дана особливiсть дозволяе не використовувати пере-межитель i деперемежитель в схемi радiолiнiï, що е економiею апаратних i часових ресурав всього пристрою.

Проведений дiагностичний експеримент показав таке: 1) спроектоваш модулГ LDPC-кодера i декодера виконують свою функцiональну задачу, а саме забезпечують стШкють шд час передачi ш-формацiï; 2) LDPC-коди краще справляються з пакетними помилками, шж з випадково розташо-ваними. 5. Висновки

В результат роботи було виконано:

1) вибГр методу завадостiйкого кодування;

2) реаизащя на ПЛ1С (FPGA) обраного алгоритму кодування;

3) розробка алгоритму декодування для ре-алiзацiï його на ПЛ1С;

4) розробка VHDL-моделi кодеку, верифiкацiя вихгдно' моделi кодеку, моделi кодеку шсля Гм-плементаци;

5) проведення дГагностичного експерименту. Наукова новизна: 1) Отримано подальший розви-ток алгоритму LDPC-кодування для реалГзацп його на ПЛ1С шляхом використання зсувних репстрГв i суматорГв та керуючого автомата. 2) Розроблено алгоритм та схеми LDPC-декодера на ПЛ1С з використанням зсувних репстрГв i су-маторГв, виконуючого та керуючого автомата, який синхрошзуе роботу блоюв пристрою. Практична значущ1сть: розроблеш модулГ мо-жуть бути використаш для реаизацп завадостш-кого LDPC- кодування шформацп у висо-кошвидюсних системах передачГ даних, а саме вгдеоданих Гз супутниюв, дрошв, безпшотниюв. Результати роботи можна використовувати як готовГ модулГ при розробщ рГзномаштних при-стро'в, в яких використовуеться завадостшке кодування, наприклад, в радюлшп зв'язку з космГчними апаратами.

Литература: 1. Прокис Д. Цифровая связь / Д. Прокис. М.: Радио и связь, 2000. 800 с. 2. Волков JI.H. Системы цифровой радиосвязи: базовые методы и характеристики / JI.H. Волков, М.С. Немировский, Ю.С. Шинаков: М.: Эко-Трендз, 2005. 392с. 3. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение / Р. Морелос-Сарагоса. М.: Техносфера, 2005. 320 с. 4. Experimental specification. Short block length LDPC codes for TC synchronization and channel coding / Consultative Committee for Space Data Systems 01.04.2015. W.: Space data systems, 2015. 39 p. 5. TM synchronization and channel coding: Recommended standard 131.0-B-2. 01.08.2011. W.: Standard USA, 2011. 93 p. 6. Radio frequency and modulation systems - part 1 earth stations and spacecraft: Recommended standard 401.0-B. 01.12.2013. W.: Standard USA, 2013. 244 p. Transliterates bibliography:

1. Prokis D. Cifrovaja svjaz' / D. Prokis. M.: Radio i svjaz', 2000. 800 s.

2. Volkov L.N. Sistemy cifrovoj radiosvjazi: bazovye metody i harakteristiki / L.N. Volkov, M.S. Nemirovskij, Ju.S. Shinakov: M.: Jeko-Trendz, 2005. 392s.

3. Morelos-Saragosa R. Iskusstvo pomehoustojchivogo kodirovanija. Metody, algoritmy, primenenie / R. Morelos-Saragosa: M.: Tehnosfera, 2005. 320s.

4. Experimental specification. Short block length LDPC codes for TC synchronization and channel coding / Consultative Committee for Space Data Systems 01.04.2015. W.: Space data systems, 2015. 39 p.

5. TM synchronization and channel coding: Recommended standard 131.0-B-2. 01.08.2011. W.: Standard USA, 2011. 93 p.

6. Radio frequency and modulation systems - part 1 earth stations and spacecraft: Recommended standard 401.0-B. 01.12.2013. W.: Standard USA, 2013. 244 p.

Надшшла до редколегй 11.12.2019 Рецензент: д-р техн. наук, проф. Кривуля Г.Ф. ФШппенко 1нна BiKTopiBHa, канд. техн. наук, доцент кафедри АПОТ ХНУРЕ. HayKOBi штереси: про-ектування цифрових присгрот на бaзi мкроконтрол-лерiв, цифровi фшьтри. Адреса: Украша, 61166, Харюв, пр. Науки, 14, тел. 702-13-26. Кулак Ельвipa МиколаУвна, канд. техн. наук, доцент кафедри АПОТ ХНУРЕ. Hayковi штереси: автомати-зоване проектування цифрових автома^в, тестопри-датне проектування. Адреса: Украша, 61166, Харюв, пр. Науки, 14, тел. 702-13-26.

Серпенко Владислав 1горович, студент ХНУРЕ. Hayковi штереси: автоматизоване проектування цифрових пристро!в. Адрес: Украша, 61166, Харюв, пр. Науки, 14, тел. 702-13-26.

Filippenko Inna Victorovna, PhD, Associate Professor, Design Automation Department, KNURE. Scientific interests: design based on microcontrollers, digital filters. Address: Ukraine, 61166, Kharkiv, Nauka Avenue, 14, tel. 702-13-26.

Kulak Elvira Nikolaevna, PhD, Associate Professor, Design Automation Department, KNURE. Scientific interests: automated design of digital machines, HDL. Address: Ukraine, 61166, Kharkiv, Nauka Avenue, 14, tel. 702-13-26.

Serhiienko Vladyslav Iigorovich, student, KNURE. Scientific interests: automated design of digital units. Address: Ukraine, 61166, Kharkiv, Nauka Avenue, 14, tel. 702-13-26.

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