Кодуєм повідомлення методом Хеммінга

Теоретичні відомості

Цифрове подання інформації можна коротко зробити таким чином. Якщо сигнал, який був дискретизований за часом і рівнем, потім подається у цифровому вигляді, то такий процес називається аналого-цифровим перетворенням. Оскільки в порівнянні із, наприклад, записаним на носії (касеті чи пластинці) аналоговим сигналом, цифровий запис характеризується високим відношенням сигнал-шум і широким динамічним діапазоном (відношенням мінімального сигналу до максимального неспотвореного сигналу) і забезпечує високу якість відтворення, наприклад, звуку.

При цифровому кодуванні дискретної інформації застосовують потенціальні й імпульсні коди.

У потенціальних кодах для подання логічних одиниць і нулів використовується тільки значення потенціалу сигналу, а його перепади, що формують закінчені імпульси, до уваги не беруться. Імпульсні коди дозволяють подати двійкові дані або імпульсами певної полярності, або частиною імпульсу – перепадом потенціалу певного напрямку.

 

Порядок виконання

Генерування сигналу

 

clear all;
f=16;
fd=512;
i=1:1:1024;
y = 2.5+(2.5*i/1024).*sin(2*pi*i*f/fd);

 


Формуємо сигнал 8 розрядним АЦП

Функція округлення Y = fix(X)

Y = fix(X) округлює елементи до нуля, в результаті масиву цілих чисел. Для складних, уявні та дійсні частини округлює самостійно.

Вихід модульованого АСП масив стрічок
y_ADC = fix(255*y/(max(y)));
plot(255*(y/max(y)));
hold on
plot(y_ADC);

code = encode(y_ADC,15,11,’hamming);

codebin = dec2bin (code);перевірка кодів

 

Рисунок 1 Графік згенерованого сигналу

 

Кодуєм повідомлення методом Хеммінга

Для моделювання каналу зв’язку використовуємо функцію генерації імпульсного шуму яка вносить збурення в випадково обрані m слів повідомлення
grid on
hold off;

Функція перевірочної та породжує матриць для коду Хеммінга
h= hammgen(8);

H = hammgen виробляє m-к-n перевірочну матрицю для коду Хеммінга з довжиною кодового слова довжини n = 2^m-1. Вхідний м є позитивним числом,

 

більшим або рівним 3. Повідомлення довжина коду n-m. Пол є вектором-рядком, що містить коефіцієнти, в порядку зростання ступенів двійковий примітивний поліном для GF (2 ^ m), який використовується для отримання коду Хеммінга. hammgen видає помилку, якщо код являє собою многочлен, насправді, примітивний.


for i = 1:1:1024

Перетворення рядка двійкового числа в десяткове число
y_code(i) = bin2dec(num2str(h(:,y_ADC(i))'));

bin2dec інтерпретує двійковий бінарні рядки і повертає еквівалентне десяткове число.

Рисунок 2– Графік повідомлення закодованого методом Хеммінга


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: