Теоретичні відомості
Цифрове подання інформації можна коротко зробити таким чином. Якщо сигнал, який був дискретизований за часом і рівнем, потім подається у цифровому вигляді, то такий процес називається аналого-цифровим перетворенням. Оскільки в порівнянні із, наприклад, записаним на носії (касеті чи пластинці) аналоговим сигналом, цифровий запис характеризується високим відношенням сигнал-шум і широким динамічним діапазоном (відношенням мінімального сигналу до максимального неспотвореного сигналу) і забезпечує високу якість відтворення, наприклад, звуку.
При цифровому кодуванні дискретної інформації застосовують потенціальні й імпульсні коди.
У потенціальних кодах для подання логічних одиниць і нулів використовується тільки значення потенціалу сигналу, а його перепади, що формують закінчені імпульси, до уваги не беруться. Імпульсні коди дозволяють подати двійкові дані або імпульсами певної полярності, або частиною імпульсу – перепадом потенціалу певного напрямку.
|
|
Порядок виконання
Генерування сигналу
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– Графік повідомлення закодованого методом Хеммінга