Декодер Вітербі
Розробка програми декодера Вітербі на мові 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