- •Введение
- •1 Основы теории
- •1.1 Математический аппарат исследования дискретных сигналов и цифровых фильтров
- •1.2 Двоичные дискретные сигналы и фильтры
- •1.3 Двоичные последовательности Хаффмена
- •1.4 Формирование блоковых разделимых кодовых сигналов
- •1.5 Рекуррентные формирователи кодовых сигналов
- •1.6 Схемы и алгоритмы исправления ошибок в разделимых блоковых кодовых сигналах
- •1.7 Схемы и алгоритмы исправления ошибок в систематических кодовых сигналах
- •1.8 Схемы и алгоритмы исправления ошибок в несистематических кодовых сигналах
- •1.9 Декодирование сообщений
- •2 Задания на самостоятельную работу
- •3.1 Лабораторная работа №1: формирование и исследование последовательностей Хаффмена и неразделимых кодовых комбинаций.
- •3.6 Лабораторная работа №6: формирование и исследование рекуррентных несистематических кодовых последовательностей
- •3.7 Лабораторная работа №7: исследование схем оценки помеховых сигналов и восстановления начальных кодовых комбинаций несистематического кода
- •3.8 Лабораторная работа №8: исследование помехоустойчивости канала связи на основе разделимых кодовых сигналов
- •3.9 Лабораторная работа №9: исследование помехоустойчивости каналов связи на основе рекуррентных систематических кодов
- •3.10 Лабораторная работа №10: исследование помехоустойчивости каналов связи на основе рекуррентных несистематических кодов
- •3.11 Лабораторная работа №11: исследование эффективности декодирования сообщений по каналам связи с помехами
- •4 Исходные данные для проведения исследований
- •4.1 Лабораторная работа 1
- •4.2 Лабораторная работа 2
- •4.3 Лабораторная работа 3
- •4.4 Лабораторная работа 4
- •4.9 Лабораторная работа 9
- •4.10 Лабораторная работа 10
- •4.11 Лабораторная работа 11
- •5 Программное обеспечение компьютерных лабораторных исследований
- •Словарь терминов
- •5.1 Лабораторная работа № 1
- •5.2 Лабораторная работа № 2
- •5.3 Лабораторная работа № 3
- •5.4 Лабораторная работа № 4
- •5.5 Лабораторная работа № 5
- •5.6 Лабораторная работа № 6
- •5.7 Лабораторная работа № 7
- •5.8 Лабораторная работа № 8
- •5.9 Лабораторная работа № 9
- •5.10 Лабораторная работа № 10
- •5.11 Лабораторная работа № 11
1.2 Двоичные дискретные сигналы и фильтры
Двоичные дискретные сигналы могут принимать только два значения 1 и 0, например, 1011011100101001. Такие сигналы называются кодовыми комбинациями. Число символов в сигнале определяет его размер (значность). Кодовая комбинация 1011011 называется семизначной, а символы характеризуются разрядностью справа налево, от младшего разряда к старшему. Запишем зет-преобразование рассмотренной семизначной кодовой комбинации
S(z)=1+z-2+ z-3+ z-4+ z-5+ z-6.
В общем случае зет-преобразование двоичных сигналов ничем не отличается от преобразования обычных дискретных сигналов. Однако при описании процессов фильтрации операция суммирования двоичных сигналов имеет свои особенности. Правило суммирования двоичных сигналов базируется на законе сложения символов 0 и 1 по модулю 2: 00=0; 11=0; 10=1; 01=1. Закон умножения символов 0 и 1 такой же, как и для обычных чисел. Здесь знак означает сложение по модулю 2. Например, сумма символов рассмотренного семизначного двоичного сигнала
а сигнала 1111011 равна
Преобразование двоичных сигналов нерекурсивными и рекурсивными двоичными фильтрами описываются формулами
(1.2.1)
(1.2.2)
где ai и i – двоичные коэффициенты, принимающие только два значения 0 и 1.
Заметим, что операции сложения и вычитания двоичных символов не отличаются между собой, т. е. 1 1=0; 0 0=0; 1 0=1; 0 1=1.
Рассмотрим последовательные соединения нерекурсивного и рекурсивного фильтров
Преобразуем второе выражение к виду
и сравним с первым. В результате получим
(1.2.3)
Если коэффициенты нерекурсивного и рекурсивного фильтров выбрать равными друг другу (т.е. ai=i), то из (1.2.3) следует, что S1(k)=U(k): кодовая комбинация на выходе рекурсивного фильтра равна кодовой комбинации на входе нерекурсивного фильтра. Такие фильтры называются взаимными. Их дискретные передаточные функции равны
(1.2.4)
Полином называется формирующим. Из (1.2.4) следует
Таким образом, если дискретный двоичный сигнал U(k) преобразовать нерекурсивным фильтром
(1.2.5)
то его можно восстановить путем преобразования сигнала S(k) рекурсивным фильтром
(1.2.6)
Функции преобразования H(z) соответствует дискретный двоичный сигнал H(k) . Так как S1(z)=H(z)U1(z) и U2(z)=S2(z)/H(z), то нерекурсивный фильтр решает задачу перемножения двоичного сигнала U(k) на двоичный сигнал H(k), а рекурсивный фильтр – задачу деления S(k) сигнала на сигнал H(k). Если при этом S2(z)=S1(z)=S(z), то сигнал S(k) будет делиться на H(k) без остатка и U2(z)=U1(z)=U(z). Рекурсивные и нерекурсивные двоичные фильтры используются для формирования кодовых сигналов и схем оценки помех и восстановления кодовых комбинаций.
1.3 Двоичные последовательности Хаффмена
Двоичные цифровые фильтры можно использовать для формирования кодовых сигналов. Среди них особое место занимают фильтры Хаффмена, которые используются для получения двоичных последовательностей максимальной длины. Формирующие фильтры Хаффмена описываются уравнением
(1.3.1)
где суммирование выполняется по правилу сложения символов 1 и 0 (по модулю 2).
Фильтр (3.1) обладает следующим свойством: через определенное число символов они начинают повторяться. Длина последовательности до 1-го повторения зависит от выбора коэффициентов формирующего фильтра a1, a2, …, am. Значения коэффициентов формирующих приведены в таблице 3.1. При использовании этих фильтров последовательности S(k) имеют максимальную длину (до начала повторения).
Таблица 1.3.1
m |
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
a9 |
a10 |
a11 |
a12 |
a13 |
4 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
5 |
1 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
6 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
7 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
Продолжение таблицы 1.3.1
m |
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
a9 |
a10 |
a11 |
a12 |
a13 |
7 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
8 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
9 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
10 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
|
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
Окончание таблицы 1.3.1
m |
a0 |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
a9 |
a10 |
a11 |
a12 |
a13 |
10 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
|
|
|
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
|
|
|
|
11 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
|
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
|
|
12 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
|
|
13 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
В последовательности Хаффмена символы начинают повторяться через Nm значений, где Nm =2m-1.
Приведем несколько примеров:
m=4; a1=1; a2=0; a3=0; a4=1; начальная последовательность S(k)=1000 (k=1, 2, 3, 4)
S(k)=S(k-1)S(k-4)
1000111101011001001000…
m=5; a1=0; a2=1; a3=0; a4=0; a5=1; начальная последовательность – 11111
S(k)=S(k-2)S(k-5)
1111100110100100001010111011000111…
Изменяя начальные последовательность и коэффициенты формирующего фильтра, можно формировать различные последовательности Хаффмена.
Последовательности Хаффмена используются для формирования неразделимых блоковых кодовых комбинаций (кодовых слов). Различия между блоками численно характеризуются кодовым расстоянием
(1.3.2)
Отбираются такие кодовые комбинации, у которых d(i, j)>d, где d – задано.
Среди различных способов формирования неразделимых блоковых комбинаций наиболее простым является способ циклической перестановки некоторой исходной n-разрядной кодовой комбинации, взятой из последовательностей Хаффмена. Рассмотрим формирование циклических кодовых слов на примере 15-значной последовательности Хаффмена
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |