Декодер Вітербі

Розробка програми декодера Вітербі на мові VHDL, що приймає на вхід символи з дискретного каналу зв’язку, закодовані кодером Вітербі з породжуючим поліномом. Схема вибору блоку зворотного проходження (traceback (ТВ). Перевірка програми на ПЛІС Cyclone II.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 12.06.2016
Размер файла 491,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Вступ

Мета

Практично засвоїти основні розділи з дисципліни „ Основи автоматизованого програмування систем захисту інформації ”.

Закріпити основні принципи розробки програм на мові VHDL.

Навчитися працювати з науково-технічною літературою в галузі програмування.

Закріпити навички програмування ПЛІС в середовищі Quartus II мовою VHDL.

Цілі та задачі курсового проектування:

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

Розроблена програма написана мовою VHDL. Алгоритм програми простий та водночас дієвий. В майбутньому алгоритм можна використати за основу у розробці більш складної схеми декодера Вітербі.

Зміст розрахункової задачі

Розробити програму декодера Вітербі на мові VHDL та перевірити її на ПЛІС Cyclone II.

Опис декодера Вітербі з поліномом (91,121)

Робота декодера Вітербі на виході дискретного канала зв'язку заснована на факті, що очікувані символи були закодовані кодером Вітербі на вході дискретного каналу.

Кодер

Відповідно розглянемо кодер Вітербі з породжуючим поліномом (91,121) в десятковій системі числення.

За один такт кодер кодує вхідний символ двома символами. Швидкість кодера дорівнює Ѕ. В таблиці нижче наведено кодові комбінації і стани кодера в момент кодування.

Початковий стан

Вих. Симв. Вх = 0

Наступний стан

000000

00

000000

000001

11

000010

10

000001

000011

01

000100

00

000010

000101

11

000110

10

000011

000111

01

001000

11

000100

001001

00

001010

01

000101

001011

10

001100

11

000110

001101

00

001110

01

000111

001111

10

010000

11

001000

010001

00

010010

01

001001

010011

10

010100

11

001010

010101

00

010110

01

001011

010111

10

011000

00

001100

011001

11

011010

10

001101

011011

01

011100

00

001110

011101

11

011110

10

001111

011111

01

100000

01

010000

100001

10

100010

11

010001

100011

00

100100

01

010010

100101

10

100110

11

010011

100111

00

101000

10

010100

101001

01

101010

00

010101

101011

11

101100

10

010110

101101

01

101110

00

010111

101111

11

110000

10

011000

110001

01

110010

00

011001

110011

11

110100

10

011010

110101

01

110110

00

011011

110111

11

111000

01

011100

111001

10

111010

11

011101

111011

00

111100

01

011110

111101

10

111110

11

011111

111111

00

Початковий стан

Вих. Симв. Вх = 1

Наступний стан

000000

11

100000

000001

00

000010

01

100001

000011

10

000100

11

100010

000101

00

000110

01

100011

000111

10

001000

00

100100

001001

11

001010

10

100101

001011

01

001100

00

100110

001101

11

001110

10

100111

001111

01

010000

00

101000

010001

11

010010

10

101001

010011

01

010100

00

101010

010101

11

010110

10

101011

010111

01

011000

11

101100

011001

00

011010

01

101101

011011

10

011100

11

101110

011101

00

011110

01

101111

011111

10

100000

10

110000

100001

01

100010

00

110001

100011

11

100100

10

110010

100101

01

100110

00

110011

100111

11

101000

01

110100

101001

10

101010

11

110101

101011

00

101100

01

110110

101101

10

101110

11

110111

101111

00

110000

01

111000

110001

10

110010

11

111001

110011

00

110100

01

111010

110101

10

110110

11

111011

110111

00

111000

10

111100

111001

01

111010

00

111101

111011

11

111100

10

111110

111101

01

111110

00

111111

111111

11

Табл. 1. Кодові комбінації і стани кодера в момент кодування

Декодер

На основі цих станів складається треліс і розробляється декодер Вітербі з таким же поліномом.

Розглянемо загальну схему декодера Вітербі:

Рис. 1. Загальна схема декодера Вітербі

Декодер складається з чотирьох основних блоків:

Декодуючий блок Вітербі (vit).

Блок зворотного проходження (traceback).

Блок пам'яті (sync_mem).

Вихідний блок (filo).

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

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

Декодуючий блок Вітербі

Схема декодую чого блоку представлена нижче:

Рис. 2. Схема декодуючого блоку Вітербі

Як видно зі схеми, декодуючий блок складається з двох основних видів блоків:

Блок контролю(ctr).

Блок вибору (pe).

Блок контролю

Блок контролю синхронізує роботу 16-ти блоків вибору для видачі 32 рішень декодування.

Блок вибору

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

В свою чергу, блок вибору також складається з декількох блоків. Розглянемо його схему:

Рис. 3. Схема блока вибору

Блок вибору складається з двох основних блоків:

SMU(Survivor Memory Unit)

Butfly2.

Блок Butfly2 проводить основні обчислення метрик станів, за рахунок блоку «Додати, порівняти, вибрати», що міститься в ньому.

Блок SMU приймає метрики станів від блоку Butfly2. Даний модуль декодує передані біти, проходячи по максимально правдоподібному шляху кодової решітки, вибраному в результаті ACS рекурсії.

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

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

Розглянемо блок Butfly2.

Рис. 3. Схема блока Butfly2

Блок Butfly2 складається з двох блоків:

Brametr2.

ACS2. декодер вітербі символ канал

Brametr2 приймає кодовані символи, перевіряє їх коректність і перенаправляє на ACS2 для проведення операції «Додати, порівняти, вибрати».

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

Блок зворотного проходження (traceback (ТВ)).

Блок TB відповідає за реалізацію TB алгоритму. Декодування біт в TB алгоритмі відбувається при проходженні в зворотному напрямку по максимально правдоподібному шляху кодової решітки. TB алгоритм оперує блоками даних величиною рівною довжині шляху декодування D. Збільшення D призводить до покращення характеристик декодування, але і до збільшення затримки (latency) блока і потрібного об'єму пам'яті.

Блок пам'яті

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

Вихідний блок

Оскільки кодування біт в TB алгоритмі здійснюється з кінця блоку, то декодовані біти виходять з TB модуля в оберненому порядку. З метою С целью впорядкування біт використовується блок LIFO (Last Input First Output). Таким чином, дані з декодера поступають в правильному порядку.

Заключення

Під час виконання курсового проекту було:

Закріплено та поглиблено знання з навчальної дисципліни «Основи автоматизованого проектування засобів захисту інформації».

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

Сформовано основні принци розробки та програмування ПЛІС на мові VHDL.

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

Размещено на Allbest.ru

...

Подобные документы

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

    курсовая работа [2,9 M], добавлен 05.12.2012

  • Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.

    курсовая работа [852,8 K], добавлен 30.11.2011

  • Загальний алгоритм програми. Алгоритм проходження тесту. Алгоритм загрузки тесту в пам'ять програми. Програма "Тестер" на мові програмування TurboPascal в середовищі Borland Delphi 7. Інтерфейс програми "Тестер". Зовнішній вигляд вікна результату.

    контрольная работа [177,0 K], добавлен 26.02.2010

  • Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.

    курсовая работа [710,7 K], добавлен 04.12.2014

  • Створення комп'ютерної програми на мові програмування С++ для ведення обліку мобільних телефонів на складі-магазині. Вимоги до апаратного та програмного забезпечення. Схема зв'язку між складовими частинами програми. Інструкція користувача, тестування.

    дипломная работа [4,2 M], добавлен 06.06.2012

  • Розробка структурної та принципипової схеми мікропроцесорної системи, їх структура и головні елементи. Розробка програми мікропроцесора, а також пристрою для блоку воду-виводу, схеми дешифратора. Інтерфейс і закономірності зв’язку в комп’ютером.

    курсовая работа [639,9 K], добавлен 09.09.2015

  • Призначення менеджеру пристроїв. Обґрунтування вибору мови програмування. Розробка структурної схеми і опис діалогового інтерфейсу програми. Блок-схема програмного додатку, основні функції і алгоритм його роботи. Методики і інструкція його тестування.

    курсовая работа [3,4 M], добавлен 17.11.2014

  • Розробка програми реєстрації і автоматизованого створення звіту на рік по викраденим машинам. Математична модель задачі, структура зберігаючих даних. Створення алгоритмів основної програми на мові Turbo Pascal і процедур Vvod і Red. Вихідний код програми.

    курсовая работа [25,4 K], добавлен 07.10.2010

  • Розробка програми, яка вираховує з введених чисел парні та непарні та додає парні числа. Особливості синтаксису й семантики операторів мови С++. Перевірка коректності введення кількості чисел. Написання коду програми, проведення її тестування на прикладі.

    лабораторная работа [860,5 K], добавлен 20.12.2012

  • Програми, які виводять на екран характеристики комп'ютера. Розробка програми "Монітор використання ресурсів комп’ютера" на мові програмування ASM-86. Алгоритм програми та її реалізація. Системні вимоги, інструкція для користувача, лістинг програми.

    курсовая работа [22,2 K], добавлен 08.08.2009

  • Розробка програми "Авто" для введення та збереження інформації про власників та їхні автомобілі. Побудова математичної моделі. Критерії вибору та пошуку даних. Структура введених та збережених у файлах програми даних. Алгоритм основної програми та її код.

    курсовая работа [20,3 K], добавлен 07.10.2010

  • Обґрунтування вибору автоматизованої системи для створення конструкторської документації. Проектування 3D моделі і креслення деталі в системі SolidWorks. Розробка API програми. Призначення деталі "прес-форма". Розробка керуючої програми для устаткування.

    курсовая работа [3,3 M], добавлен 16.12.2013

  • Мова Асемблера, її можливості та команди. Розробка алгоритму програми, його реалізація в програмі на мові Асемблера. Введення елементів матриці та обчислення cуми елементів, у яких молодший біт дорівнює нулю. Методи створення програми роботи з матрицями.

    контрольная работа [50,3 K], добавлен 12.08.2012

  • Створення двух файлів В1 і В2 з шести двоцифрових цифр з введенням в довільному порядку цифр з клавіатури із записуванням парних цифр в файл В3, а непарних - у файл В4. Процес розробки програми за допомогою мови "Асемблер". Блок-схема алгоритму задачі.

    курсовая работа [37,6 K], добавлен 26.11.2011

  • Розробка програми, яка б дозволяла протестувати знання з дисципліни "Програмування на мові С", виставити оцінку. Опис та обґрунтування методу організації вхідних та вихідних даних, вибору складу технічних та програмних засобів. Проведення лістингу.

    курсовая работа [11,0 K], добавлен 08.08.2009

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

    курсовая работа [1,3 M], добавлен 23.06.2010

  • Розробка принципової електричної схеми системи управління конвеєрною лінією, яка складається з трьох послідовних конвеєрів. Реалізація алгоритму роботи на мові сходинкових діаграм LD. Розробка керуючої програми для мікроконтролерів Zelio Logic та ОВЕН.

    курсовая работа [230,2 K], добавлен 15.06.2015

  • Розробка ефективних засобів навчання. Виявлення системи, способів, що сприяють підвищенню активності учнів. Призначення та область використання програми електронний довідник. Розробка алгоритму програми. Обґрунтування вибору мови і системи програмування.

    курсовая работа [161,7 K], добавлен 02.06.2014

  • Створення програми розв’язку розгалужених прикладів. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Попередня підготовка вхідних даних. Формат, описання та спосіб їх кодування. Опис і тестування програми, її виклик і завантаження.

    курсовая работа [150,3 K], добавлен 01.04.2016

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.