Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки
Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Информатика, программирование » Теорія кодування в середовищі MATLAB

Реферат Теорія кодування в середовищі MATLAB

Федеральне агентство з освіти Російської Федерації

Державне освітня установа

Вищого професійної освіти

Володимирський Державний Університет

Доповідь

з теорії кодування

на тему:

Теорія кодування в середовищі MATLAB

Володимир 2010


Пакет Communications Toolbox

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

- Засоби обчислень в кінцевих полях Галуа.

- Засоби візуалізації сигналів: Глазкова діаграма, сигнальне сузір'я і ін

- Спеціальні засоби візуалізації нестаціонарних параметрів каналу.

- Засоби обчислення, аналізу і порівняння коефіцієнта бітової помилки (BER).

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

Генерація перевірочної та породжує матриць для коду Хеммінга

- Синтаксис:

h = hammgen (m); h = hammgen (m, pol); [h, g] = hammgen (...); [h, g, n, k] = hammgen (...);

- Опис:

Для всіх варіантів синтаксису довжина кодового слова позначається як n. Величина n дорівнює 2 m - 1 для деякого цілочисельного m, більшого чи рівного трьом. Довжина блоку вихідного повідомлення позначається як k, вона дорівнює n - m.

Приклад:

Наведена нижче команда виводить на екран перевірочну і породжує матриці для коду Хеммінга з довжиною кодового слова 7 = 2 3 - 1 і довжиною блоку вихідного повідомлення 4 = 7 - 3.

[h, g, n, k] = Hammgen (3)

h = 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 g = 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 n = 7 k = 4

Наступна команда використовує явно заданий примітивний поліном 1 + x 2 + x 3 , показуючи тим самим, що вид перевірочної матриці залежить від вибору примітивного полінома. Щоб у цьому переконатися, порівняйте виведену нижче матрицю h1 з матрицею h з попереднього прикладу.

h1 = hammgen (3, [1 0 1 1])

h1 = 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1

Генерація породжує полінома для циклічного коду

- Синтаксис:

pol = Cyclpoly (n, k); pol = cyclpoly (n, k, opt);

- Опис:

Для всіх варіантів синтаксису поліном представляється у вигляді рядка, що містить коефіцієнти полінома в порядку зростання ступенів.

pol = cyclpoly (n, k)


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

pol = Cyclpoly (n, k, opt)

Виробляє пошук одного або декількох нетривіальних породжують поліномів для циклічних кодів з довжиною кодового слова n і довжиною блоку вихідного повідомлення k. Результат pol залежить від вхідного параметра opt.

Приклад:

Перша з наведених нижче команд дає уявлення для трьох породжують поліномів циклічного коду (15, 4).

Друга команда показує, що породжує поліномом з максимальною вагою (числом ненульових коефіцієнтів) є 1 + x + x 2 + x 3 + x 5 + x 7 + x 8 + x 11 .

Третя команда демонструє, що для циклічного коду (15, 4) не існує породжують поліномів з вагою (числом ненульових коефіцієнтів), рівним трьом.

c1 = Cyclpoly (15,4, 'all') c1 = 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 1 c2 = cyclpoly (15,4, 'max') c2 = 1 1 1 1 0 1 0 1 1 0 0 1 c3 = cyclpoly (15,4,3) No generator polynomial satisfies the given constraints. c3 = []

Генерація перевірочної та породжує матриць для циклічного коду

- Синтаксис:

parmat = Cyclgen (n, pol); parmat = cyclgen (n, pol, opt); [parmat, genmat] = cyclgen (...); [parmat, genmat, k] = Cyclgen (...);

- Опис:

n - довжина кодового слова

k - розмір блоку вихідного повідомлення.

Поліном може породити циклічний код з довжиною кодового слова n і розміром блоку вихідного повідомлення k тоді і тільки тоді, коли цей поліном має ступінь (n - k) і є дільником поліному x n - 1. (У двійковому кінцевому полі GF (2) x n - 1 - це те ж саме, що і x n + 1.) Звідси випливає, що k дорівнює n мінус ступінь породжує полінома. Вхідний параметр opt визначає, повинна підсумкова матриця відповідати систематичного або несистематичного коду.

Приклад:

pol = Cyclpoly (7,4); [parmat, genmat, k] = cyclgen (7, pol) parmat = 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 genmat = 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 k = 4

>> [Parmat, genmat, k] = cyclgen (7, cyclpoly (7,4), 'nonsys')

parmat =

1 1 1 0 1 0 0

0 1 1 1 0 1 0

0 0 1 1 1 0 1

genmat =

1 0 1 1 0 0 0

0 1 0 1 1 0 0

0 0 1 0 1 1 0

0 0 0 1 0 1 1

k =

4

// отримана перевірочна матриця відповідає несистематичний циклічному коду


Перетворення породжує матриці в перевірочну і назад

- Синтаксис:

parmat = Gen2par (genmat); genmat = gen2par (parmat);

- Опис:

parmat = gen2par (genmat)

Перетворює двійкову породжує матрицю genmat, представлену в стандартній формі, в відповідну перевірочну матрицю parmat.

genmat = gen2par (parmat)

Перетворює двійкову перевірочну матрицю parmat, представлену в стандартній формі, в відповідну породжує матрицю genmat.

Приклад:

Наведені нижче команди перетворять перевірочну матрицю для коду Хеммінга в відповідну породжує матрицю і назад.

parmat = Hammgen (3)

parmat =

1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1

genmat = Gen2par (parmat)

genmat =

1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1

parmat2 = Gen2par (genmat)% Результат повинен бути дорівнює parmat

parmat2 =

1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1

Розрахунок кодового відстані для лінійного блокового коду

- Синтаксис:

wt = gfweight (genmat); wt = gfweight (genmat, 'gen'); wt = gfweight (parmat, 'par'); wt = Gfweight (genpoly, n);

- Опис:

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

wt = gfweight (genmat)

Повертає кодове відстань для лінійного блокового коду з породжує матрицею genmat.

wt = gfweight (genmat, 'gen')

Повертає кодове відстань для лінійного блокового коду з породжує матрицею genmat.

wt = gfweight (parmat, 'par')

Повертає кодове відстань для лінійного блокового коду з перевірочної матрицею parmat.

wt = gfweight (genpoly, n)

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

Приклад:

Наведені нижче команди показують три способи обчислення кодового відстані для циклічного коду (7,4).

n = 7;% породжує поліном для циклічного коду (7,4) genpoly = cyclpoly (n, 4)

genpoly =

1 0 1 1

>> [Parmat, genmat] = cyclgen (n, genpoly)

parmat =

1 0 0 1 1 1 0

0 1 0 0 1 1 1

0 0 1 1 1 0 1

genmat =

1 0 1 1 0 0 0

1 1 1 0 1 0 0

1 1 0 0 0 1 0

0 1 1 0 0 0 1 wts = [gfweight (genmat, 'gen'), gfweight (parmat, 'par'), gfweight (genpoly, n)] wts =

3 3 березня

Генерація таблиці залежності векторів помилок від синдрому (таблиці декодування) для двійкових кодів

- Синтаксис:

t = syndtable (parmat);

- Опис:

t = syndtable (parmat)

Повертає таблицю декодування для двійкового коригуючого коду з довжиною кодового слова n і довжиною повідомлення k. Параметр parmat - перевірочна матриця коду, що має (n - k) рядків і n стовпців. Результат t - двійкова матриця, що містить 2 n - k рядків і n стовпців. r-й рядок матриці t являє собою вектор помилок для прийнятого двійкового кодового слова, синдром декодування якого має десяткове цілочисельне значення r - 1. (Синдром декодування дорівнює добутку прийнятого кодового слова і транспонованої перевірочної матриці.) Іншими словами, рядки матриці t являють собою лідери суміжних класів (Coset leaders) зі стандартного розташування (standard array) для даного коду.

Приклад:

Для коду Хеммінга (7, 4).

m = 3; n = 2 ^ m-1; k = nm; parmat = hammgen (m)% Перевірочна матриця parmat =

1 0 0 1 0 1 1

0 1 0 1 1 1 0

0 0 1 0 1 1 1

trt = syndtable (parmat)% Таблиця декодування trt =

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0

Нехай прийняте кодове слово - [1 1 0 1 1 0 0]

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

parmat * [1; 1; 0; 1; 1; 0; 0]

ans =

2

3

1

У двійковій системі числення отримали - [0 1 1]. Десяткове значення синдрому 3. Відповідний вектор помилок, таким чином, слід брати з четвертої (3 + 1) рядки таблиці декодування:

trt (4, :)

ans =

0 0 0 0 1 0 0

Отже слід інвертувати п'ятий розряд прийнятого кодового слова -

[1 1 0 1 0 0 0]



Друкувати реферат
Замовити реферат
Товары
загрузка...
Наверх Зворотнiй зв'язок