DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Дослідження кодоутворення та принципів побудови кодерів і декодерів ітеративних кодів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Захисту інформації
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Засоби передачі інформації в системах технічного захисту інформації
Група:
ЗІ-31
Коротко про документ

Про що ця робота

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

У роботі розглядаються

  • Ітеративні коди
  • Кодування та декодування
  • Синдром помилки
  • Теорія інформації
  • Програмна реалізація
  • Захист інформації

Зміст і розділи

  1. Мета роботи
  2. Виконання
  3. Здійснемо декодування
  4. Основні параметри досліджуваного ік
  5. Текст програми для кодування ітеративним кодом
  6. Результат програми
  7. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають дисципліни із захисту інформації та теорії кодування.
Викладачі:Не вказано

Ключові поняття

ітеративний кодсиндром помилкиматрицяконтрольний розрядінформаційний елементпомилкадвійковий кодпрограма

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ  ЗВІТ до лабораторної роботи №3 з курсу: «Засоби передачі інформації у системах технічного захисту інформації» на тему: «ДОСЛІДЖЕННЯ КОДОУТВОРЕННЯ ТА ПРИНЦИПІВ ПОБУДОВИ КОДЕРІВ І ДЕКОДЕРІВ ІТЕРАТИВНИХ КОДІВ» Мета роботи - вивчити принципи побудови ітеративних кодів, дослідити перетворення двійкового коду в двоступеневий ітеративний код та формування синдрому помилки, одержати практичні навики розробки функціональних схем кодерів і декодерів. Виконання: Номер залікової книжки – 1009021 Складемо вихідну матрицю згідно номера залікової книжки: І11 І12 І13 І14 І15 І16 І17  І21 І22 І23 І24 І25 І26 І27  І31 І32 І33 І34 І35 І36 І37  І41 І42 І43 І44 І45 І46 І47   0 0 0 0 0 1 1  0 0 0 0 0 1 1  0 0 0 1 1 0 0  0 0 0 1 1 0 0   Закодуємо одержану матрицю ітеративним кодом: І11 І12 І13 І14 І15 І16 І17 Кр1  І21 І22 І23 І24 І25 І26 І27 Кр2  І31 І32 І33 І34 І35 І36 І37 Кр3  І41 І42 І43 І44 І45 І46 І47 Кр4  Кс1 Кс2 Кс3 Кс4 Кс5 Кс6 Кс7 Кср   0 0 0 0 0 1 1 0  0 0 0 0 0 1 1 0  0 0 0 1 1 0 0 0  0 0 0 1 1 0 0 0  0 0 0 0 0 0 0 0   Кр1 = І11 + І12 + І13 + І14 + І15 + І16 + І17 = 0 Кр2 = І21 + І22 + І23 + І24 + І25 + І26 + І27 = 0 Кр3 = І31 + І32 + І33 + І34 + І35 + І36 + І37 = 0 Кр4 = І41 + І42 + І43 + І44 + І45 + І46 + І47 = 0 Кс1 = І11 + І21 + І31 + І41 = 0 Кс2 = І12 + І22 + І32 + І42 = 0 Кс3 = І13 + І23 + І33 + І43 = 0 Кс4 = І14 + І24 + І34 + І44 = 0 Кс5 = І15 + І25 + І35 + І45 = 0 Кс6 = І16 + І26 + І36 + І46 = 0 Кс7 = І17 + І27 + І37 + І47 = 0 Здійснимо декодування: Помилка відсутня Матриця матиме такий вигляд: 0 0 0 0 0 1 1 0 Ір1  0 0 0 0 0 1 1 0 Ір2  0 0 0 1 1 0 0 0 Ір3  0 0 0 1 1 0 0 0 Ір4  0 0 0 0 0 0 0 0 Ір5  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=0, Ір2 =0,Ір3 = 0, Ір4=0, Ір5=0; Іс1=0, Іс2=0, Іс3=0, Іс4=0, Іс5=0, Іс6=0, Іс7=0 Іс8=0. Синдроми помилок дорівнюють нулю, отже, помилка відсутня. Одна помилка Внесемо помилку у елемент І17, тоді вихідна матриця матиме вигляд: 0 0 0 0 0 1 0 0 Ір1  0 0 0 0 0 1 1 0 Ір2  0 0 0 1 1 0 0 0 Ір3  0 0 0 1 1 0 0 0 Ір4  0 0 0 0 0 0 0 0 Ір5  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=1, Ір2 =0, Ір3 = 0, Ір4=1,Ір5=0; Іс1=0, Іс2=1, Іс3=0, Іс4=1, Іс5=0, Іс6=0, Іс7=1, Іс8 =0. Синдроми Ір1 та Іс7 дорівнюють одиниці, звідси випливає,що помилка є у елементі І17. Дві помилки Внесемо помилки у елементи І17 та І26, тоді вихідна матриця матиме вигляд: 0 0 0 0 0 1 0 0 Ір1  0 0 0 0 0 0 1 0 Ір2  0 0 0 1 1 0 0 0 Ір3  0 0 0 1 1 0 0 0 Ір4  0 0 0 0 0 0 0 0 Ір5  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=1, Ір2 =1, Ір3 = 0, Ір4=0,Ір5=0;Іс1=0, Іс2=0, Іс3=0, Іс4=0, Іс5=0, Іс6=1, Іс7=1, Іс8=0. Три помилки Внесемо помилки у елементи І17, І26 та І24. Тоді вихідна матриця матиме вигляд: 0 0 0 0 0 1 0 0 Ір1  0 0 0 1 0 0 1 0 Ір2  0 0 0 1 1 0 0 0 Ір3  0 0 0 1 1 0 0 0 Ір4  0 0 0 0 0 0 0 0 Іср  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=1, Ір2 =0, Ір3 = 1, Ір4=0, Ір5=0; Іс1=0, Іс2=0, Іс3=0, Іс4=1, Іс5=0, Іс6=1, Іс7=1,Іс8=0. Чотири помилки Внесемо помилки у елементи І11, І17, І41 та І47. Тоді вихідна матриця матиме вигляд: 1 0 0 0 0 1 0 0 Ір1  0 0 0 0 0 1 1 0 Ір2  0 0 0 1 1 0 0 0 Ір3  1 0 0 1 1 0 1 0 Ір4  0 0 0 0 0 0 0 0 Іср  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=0, Ір2 =0, Ір3 = 0, Ір4=0, Ір5=0; Іс1=0, Іс2=0, Іс3=0, Іс4=0, Іс5=0, Іс6=0, Іс7=0,Іс8=0. Отже, помилку не виявлено. Шість помилок Внесемо помилки у елементи І12, І13 , І14 ,І22 ,І23 та І32. Тоді вихідна матриця матиме вигляд: 0 0 0 0 0 1 0 0 Ір1  0 0 0 1 0 0 1 0 Ір2  0 0 0 0 1 0 0 0 Ір3  0 0 0 0 0 0 0 0 Ір4  0 0 0 0 0 0 0 0 Іср  Іс1 Іс2 Іс3 Іс4 Іс5 Іс6 Іс7 Іс8    Виходячи із матриці: Ір1=1, Ір2 =0, Ір3 = 1, Ір4=0, Ір5=0; Іс1=0, Іс2=0, Іс3=0, Іс4=1, Іс5=1, Іс6=1, Іс7=1, Іс8=0. Визначимо основні параметри досліджуваного ІК: У даному коді кількість контрольних символів nк = 12. Для коду з nк = 12 використовується блок інформаційних елементів розміру 4×7 ( з nі1 = 4 рядками і nі2 = 7 стовпцями). Отже, nі = 28. Загальна кількість розрядів n = nк + nі = 12 + 28 = 40. Надлишковість R = nк / n = 12/40 = 0,3. Порахуємо загальну кількість чотиризначних помилок, що можуть виникати при передачі ІК: N4 = Cn4 = n1*n2(n1*n2-1)(n1*n2-2)(n1*n2-3) / 4! = 91390 Кількість невиявлених помилок: N4H = Cn12*Cn22 = n1(n1-1)n2(n2-1) / 2!*2! = 280 Кількість помилок, які можуть бути виявлені: N = N4- N4H = 91110 Помилка відсутня / / Одна помилка / / Часова діаграма з 1 помилкою / Дві помилки / /Часова діаграма з 2 помилками / Три помилки / Часова діаграма з 3 помилками / Чотири помилки / Часова діаграма з 4 помилками / Шість помилок / /Часова діаграма з 6 помилками / Текст програми для кодування ітеративним кодом #include <stdio.h> #define NI1 5 #define NI2 8 main() { printf("\n"); int k = 0, i, j, sum2 = 0; int KK[NI1][NI2] = {{0, 0 ,0 ,0, 0, 1, 1}, {0, 0, 0, 0, 0, 1, 1}, {0, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0}}; // Інформаційні комбінації for (i = 0; i < NI1-1; i++) { for (j = 0; j < NI2-1; j++) { printf("%7d", KK[i][j]); } printf("\n"); } printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); for (i = 0; i < (NI1-1); i++) // Формування контрольних розрядів по рядках { for (j = 0; j < (NI2-1); j++) { sum2 ^= KK[i][j]; } if (sum2) KK[i][j] = 1; else KK[i][j] = 0; sum2 = 0; } for (j = 0; j < (NI2-1); j++) // Формування контрольних розрядів по стовпцях { for (i = 0; i < (NI1-1); i++) { sum2 ^= KK[i][j]; } if (sum2) KK[i][j] = 1; else KK[i][j] = 0; sum2 = 0; } for (j = 0; j < (NI2-1); j++) // Формування контрольно розряду по стовпцях { sum2 ^= KK[NI1-1][j]; } if (sum2) KK[NI1-1][j] = 1; else KK[NI1-1][j] = 0; sum2 = 0; for (i = 0; i < (NI1-1); i++) // Формування контрольного розряду по рядках { sum2 ^= KK[i][NI2-1]; } if (sum2) KK[i][NI2-1] = 1; else KK[i][NI2-1] = 0; for (i = 0; i < NI1; i++) { for (j = 0; j < NI2; j++) { printf("%7d", KK[i][j]); } printf("\n"); } printf("\n");printf("\n");printf("\n"); printf("Set distortion (if no, enter zero): "); // Задання спотворення scanf("%d", &sum2); while (sum2) { printf("Row: "); scanf("%d", &i); printf("Column: "); scanf("%d", &j); if (KK[i-1][j-1]) KK[i-1][j-1] = 0; else KK[i-1][j-1] = 1; printf("Set distortion (if no, enter zero): "); scanf("%d", &sum2); } sum2 = 0; for (i = 0; i < NI1; i++) // Перевірка розрядів по рядках { for (j = 0; j < NI2; j++) sum2 ^= KK[i][j]; if (sum2) k = 1; sum2 = 0; } for (j = 0; j < NI2; j++) // Перевірка розрядів по стовпцях { for (i = 0; i < NI1; i++) sum2 ^= KK[i][j]; if (sum2) k = 1; sum2 = 0; } if (k) printf("Error"); else printf("Error not found"); } 7.Результат програми: 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 Висновок: У даній лабораторній роботі я вивчив принципи побудови ітеративних кодів, дослідив перетворення двійкового коду в двоступеневий ітеративний код та формування синдрому помилки.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!