2007 Никольская "Разработка программных средств для помехоустойчивого кодирования и декодирования на основе низкоплотностных кодов"
1. Московский государственный университет
приборостроения и информатики
Дипломный проект на тему:
«Разработка программных средств для
помехоустойчивого кодирования и
декодирования на основе
низкоплотностных кодов»
Выполнила
Никольская Ольга
Александровна
Руководитель
Мельников Алексей
Олегович
Москва 2007
2. Структурная схема цифровойСтруктурная схема цифровой
передачи данныхпередачи данных
2
Кодер Модуляция
Канал с
шумом
ДемодуляцияДекодер
Приёмник
информации
Помехоустойчивое
кодирование
Источник
информации
3. Постановка задачиПостановка задачи
1. Создание блока кодирования на основе
разреженной матрицы
2. Реализация алгоритма итерационного
декодирования
3. Создание модуля для сравнения
полученных результатов
3
4. Виды ошибок при передаче данныхВиды ошибок при передаче данных
4
Ошибки зашумления
Ошибки искажения
Источник
информации
Приёмник
информации
Канал с
шумом
шум
5. Методы повышения надёжностиМетоды повышения надёжности
передачипередачи
5
На основе повторной
передачи (ARQ)
На основе прямого
исправления ошибок (FEC)
Источник
(добавление
контрольных битов)
Приёмник
(исправление
ошибок)
узел А
узел А
узел А узел Б
узел Б
узел Б
5 4 3 2 1
NAK 2
2 повторная
передача Сохраняем
кадры 3 4 5
повторная
передача
5 4 3 2
занятость
канала
Нет сохраняемых
кадров
6. Классификация помехоустойчивых (Классификация помехоустойчивых (FECFEC))
кодовкодов
6
Помехоустойчивые
коды
Непрерывные
(рекуррентные)
коды
Блочные коды Свёрточные коды
Неравномерные кодыРавномерные коды
Разделимые коды Неразделимые коды
Систематические
коды, линейные
Несистематические
коды, нелинейные
Коды с поэлементным
формированием
проверочной группы
Коды с формированием
проверочной группы в
«целом»
Циклические коды БЧХ коды
Коды с проверкой
на чётность
Код Морзе
Равновесные коды
Итеративные коды
Комбинационные коды
Коды Хемминга
8. Свойства линейных блочных кодовСвойства линейных блочных кодов
8
( , )( ) 0T
i n kv x H× =1)
2)
/
( , )( ) ( )T
i n k iv x H S x× =
3)
mindМинимальное кодовое расстояние
( , ) ( , ) 0T
n k n kG H× =
( , ) ,,n k k k mG I R= ,( , ) ,k m
T
n k mH R I=
(5,3)
1 0 0 0 1
01 0 11
0 0 11 0
G
÷= ÷
÷
(5,3)
0111 0
11 0 01
H
= ÷
Порождающая матрица Проверочная матрица
9. 11111
1 11 11
1 11 11
1 1111
1 111
n
H
÷
÷
÷
÷=
÷
÷
÷
÷
14243
m
1 11
1 11
1 11
1 11
1 1 1
n
H
÷
÷
÷
÷=
÷
÷
÷
÷
1442443
m
( ),
1/ 2
O T m n
где T
≈ × ×
=
(1/2 5 10) (25)O O× × =
( ),
3...10
O R m
где R
≈ ×
=
(3 5) (15)O O× =
Линейные блочные
коды
Низкоплотностные коды
Проверочная
матрица
Сложность
алгоритмов
В общем
случае
Для данной
матрицы [5x10]
Низкоплотностные коды (Низкоплотностные коды (LDPCLDPC))
9
10. Представление проверочной матрицыПредставление проверочной матрицы
1 2 3 4 5 6 7v v v v v v v
Граф Таннера
10
1110100
0111010
1101001
H
÷= ÷
÷
v-узлы
с-узлы
1 0 1 0 0 1 1v =
0T
v H× =
1c 2c 3c
Х
11. Формирование проверочной матрицыФормирование проверочной матрицы
0H =
1 0( )Hπ =
2 0( )Hπ =
=H =
1) на основе случайной последовательности
Матрица, построенная по алгоритму Галлагера.
2) Детерминированные методы построения проверочной
матрицы
Матрица, построенная по алгоритму наложения Маккея.
0 1 0 2 0
1 2
( ) ( )
{9,8,4,1,7,2,6,5,3}; {5,4,6,8,2,9,1,3,7}.
H H H Hπ π
π π= =
1 0 1
1 0
0 0 1
1
1 0 0
1 1
1
1
1 0
1
1
1
11
n
m
mn m−
1 {1,5,9,10,11,2,6,3,7,12,4,8}π =
2 {1,5,9,6,7,10,2,3,11,4,8,12}π =
12. Процедура кодированияПроцедура кодирования LDPCLDPC
12
Кодирование с использованием нижнетреугольной
формы проверочной матрицы
1
, ,
1 1
n m i
i i j j i j n m j
j j
p H s H p
− −
+ −
= =
= +∑ ∑
( , )C s p=
1000011000
0100001100
0010000110
0001000011
1000100001
H
÷
÷
÷=
÷
÷
÷
13. Процедура итерационногоПроцедура итерационного
декодированиядекодирования
Pr{ 1 }
( ) log
Pr{ 0 }
i
i
i
c y
L c
c y
=
= ÷ ÷=
13
Декодирование в вероятностном домене MPA-алгоритм
Pr( 1 )ic y=
с-узлы
v-узлы
с-узлы
v-узлы
0c 0c
1c 2c
0v
0v
0y
1v 2v
Подграф графа Таннера, состоящий
из столбца матрицы (11100…0)Т
.
Подграф графа Таннера, состоящий
из строки матрицы (11100…0).
Критерий завершения декодирования
Декодирование в логарифмическом домене SPA-
алгоритм
Логарифмическое отношение
правдоподобия (LLR)
( , )( ) 0T
i n kv x H× =
14. Блок кодера
Установка
начальных
значений
Начало
Создание
проверочной
матрицы
Получение тестовой
информационной
последовательности бит
1
1
Имитация передачи
данных через
беспроводной канал
связи
Разбиение информационной
последовательности на
сообщения
Вычисление
проверочных бит
Объединение сообщения и проверочных
бит в кодовое слово
Блок декодера
Конец
Сравнение с исходной
информационной
последовательностью
Вывод
результатов
моделирования
Передача результата
обработки сообщения от v-
узлов к с-узлам.
Передача результата
обработки сообщения от с-
узлов к v-узлам.
Для каждого
сообщения
Алгоритм программных
средств
14
15. Результаты моделирования
0 2 4 6 8 10 12 14 16 18 20
10
-6
10
-5
10
-4
10
-3
10
-2
10
-1
10
0
SNR
BER
15
0
10
1
10−
2
10−
4
10−
5
10−
LDPC код
свёрточный код
без кодирования
16. Ленточный график разработки ПС
Смета затрат на разработку ПС
Основные технико-экономические
показатели проекта
Структура затрат
на разработку
ПС
Организационно-экономический раздел
16
17. Результаты и выводы
Реализован модуль помехоустойчивого кодирования и
декодирования с использованием разреженной матрицы
В частности реализован алгоритм передачи сообщений
для декодирования в вероятностном домене
Реализован алгоритм передачи сообщений для
декодирования в логарифмическом домене и проведено
сравнение
Исследования проводились для моделей каналов с
релеевским и райсовским распределениями, при этом
результаты моделирования показали, что для
рассматриваемого круга моделей каналов эффективность
логарифмического LDPC декодера оказалась всюду выше
используемого в современных системах декодера Витерби
в диапозоне сигнал/шум от 1 до 20 dB
17