208 ТРУДЫ БГТУ. 2015. № 6. Физико-математические науки и информатика. С. 208-212
УДК 681.391
М. Ф. Кудлацкая
Белорусский государственный технологический университет
ПРОГРАММНАЯ ИМИТАЦИОННАЯ МОДЕЛЬ АДАПТИВНОГО МНОГОПОРОГОВОГО ДЕКОДИРОВАНИЯ ЛИНЕЙНЫХ БЛОЧНЫХ КОДОВ
В статье рассмотрены возможности программного средства, представляющего имитационную модель адаптивного многопорогового декодирования на основе итеративных кодов. Как известно, итеративные коды обладают высокой корректирующей способностью, но низкой скоростью. Для имитационной модели адаптивного многопорогового декодирования были разработаны 14 трехмерных итеративных кодов с числом линейно-независимых паритетов 5, 7 и 9. Модель позволяет использовать любой итеративный код, генерировать многократные ошибки заданной кратности, имитировать реальный канал передачи данных на основании заданной вероятности появления ошибки в канале. Программное средство разработано с применением современных технологий и обладает дружественным и достаточно функциональным интерфейсом. Описан принцип действия адаптивной системы, назначение и особенности отдельных блоков. В состав адаптивной системы входит блок декодирования, который включает блок анализа. Блок анализа позволяет локализовать единичную битовую ошибку, рассчитать коэффициент ошибок по битам BER (bit error rate - параметр ошибки по битам) и определить качество канала связи. Важной особенностью адаптивной системы является возможность расчета параметра BER в режиме передачи реального трафика с последующим выбором наиболее подходящего корректирующего кода.
Ключевые слова: кодирование, многопороговое декодирование, качество канала связи, итеративные коды, пороговое значение, проверочные символы, ошибочные биты.
M. F. Kudlatskaya
Belarusian State Technological University
THE PROGRAMME SIMULATION MODEL OF ADAPTIVE MULTITHRESHOLD DECODING OF LINEAR BLOCK CODES
The article describes the possibilities of the software representing the imitating model of adaptive multithreshold decoding on the basis of iterative codes. As it is known, iterative codes have a high correcting capacity, but a low code rate. Fourteen three-dimensional iterative codes with a number of linearly - independent parities 5, 7 and 9 were developed for the imitating model of adaptive multithre-shold decoding. The model allows us to use any iterative code, to generate multiple errors, to simulate real data channel, based on the given probability of an error in the channel. The software is developed with the use of modern technologies and possesses a friendly and rather functional interface. The principle of action of an adaptive system, the purpose and features of separate blocks is described. The decoding block which turns on the analysis block is a part of the adaptive system. The block of the analysis allows us to localize a single bit mistake, to calculate a bit error rate BER and to define the quality of a communication channel. The main features of the adaptive system is the possibility to calculate the BER in the transmission mode of the real traffic with a choice of the most suitable correcting code.
Key words: coding, multithreshold decoding, quality of the link, iterative codes, threshold, parity, error bits.
Введение. Современные средства помехоустойчивой защиты информации в большинстве случаев обеспечивают целостность и необходимую надежность передачи данных. Одним из способов обеспечения целостности информации, передаваемой по бинарному каналу связи, является итеративное кодирование.
Итеративные коды обладают рядом достоинств по сравнению с другими помехоустойчивыми кодами:
- высокая корректирующая способность (даже при вероятности ошибок в канале связи Р > 0,5);
- выбором соответствующего количества исходных помехоустойчивых кодов и их параметров можно обеспечить малую вероятность ошибочного приема информации, т. е. минимальную вероятность ошибок декодера;
- минимальная сложность аппаратной и программной реализации;
- возможность защиты информации от несанкционированного доступа и др.
Однако наряду с достоинствами для итеративных кодов характерны и недостатки:
1) высокая избыточность кодов;
2) большая задержка информации при декодировании;
3) высокая сложность реализации систем цикловой синхронизации распределителей информации кодека и др.
Как видно из описания, итеративное кодирование обладает двумя весомыми взаимозависимыми характеристиками - высокая корректирующая способность и большая избыточность кодов, которая в свою очередь влияет на кодовую скорость. Данная зависимость, как известно, носит обратный характер - чем ниже скорость кода, тем выше корректирующая способность. Адаптивная система кодирования (декодирования) на основе трехмерных итеративных кодов и многопорогового декодирования позволяет динамически изменять параметры кода в зависимости от качества канала [1]. Для оценки эффективности адаптивного многопорогового декодирования, повышения надежности передаваемой информации необходимо разработать компьютерную имитационную модель, включающую блок анализа, который определяет качество канала по рассчитанному коэффициенту ББЯ и принимает решение о выборе трехмерного итеративного кода.
Основная часть. С целью имитации процесса адаптивного декодирования разработано программное средство МРБ у.2.0. Программа разработана на языке С# с использованием технологии WPF, обладающей достаточным инструментарием для разработки дружественного и функционального интерфейса. Программная модель адаптивной системы кодирования (декодирования) включает следующие функциональные блоки:
- кодер (в запоминающем устройстве кодера хранится 14 проверочных матриц трехмерных итеративных кодов (табл. 1) [1]);
- многопороговый декодер [2];
- генератор независимых и пакетных многократных ошибок;
- имитация реального канала связи [2];
- алгоритм выбора пороговых значений для следующей стадии декодирования, позволяющий сократить время декодирования [3];
- алгоритм идентификации кратности ошибок, который позволяет определить число ошибочных бит [4];
- блок анализа, позволяющий рассчитать число ошибочных бит и определить качество канала.
Многопороговые декодеры считаются одними из самых быстродействующих. В методе многопорогового декодирования каждый информационный бит проверяется отдельно на каждой стадии. Под стадией многопорогового декодирования следует понимать декодирование кодового слова с заданным пороговым зна-
чением. В случае декодирования итеративных кодов под пороговым значением Т подразумевается число избыточных символов, указывающих на ошибочность проверяемого бита, при достижении которого информационный символ принимается за ошибочный. Стадии декодирования выполняются последовательно друг за другом. Таким образом, можно сказать, что идентификация и исправление ошибок в информационной последовательности выполняется несколько раз при различных пороговых значениях.
При декодировании итеративных кодов число стадий и пороговое значение зависят от числа паритетов. Так, например, при пяти паритетах целесообразно использовать трехста-дийное декодирование со следующими пороговыми значениями: Т1 = 5, Т2 > 4, Т3 > 3.
Моделирование адаптивной системы кодирования (декодирования) осуществляется в три этапа: кодирование, генерация ошибок, декодирование.
Первый шаг - этап итеративного кодирования. Для имитационной модели адаптивного многопорогового декодирования были разработаны 14 трехмерных итеративных кодов с числом линейно-независимых паритетов 5, 7 и 9 с минимальным кодовым расстоянием 6, 8 и 10 соответственно. Параметры используемых кодов представлены в табл. 1. Скорость кода выражена отношением длины к информационного слова к длине п кодового сообщения. На рис. 1 показан интерфейс блока кодирования.
Таблица 1
Параметры трехмерных итеративных кодов
Скорость кода к/п Количество паритетов
5 7 9
Длина информационной последовательности к
4/13 64
4/11 64
8/21 128
8/19 128
16/37 256
4/9 64 128 256
16/35 256
8/17
1/2 128 256
8/15 128
4/7 256
16/27 256
На первом этапе необходимо выбрать файлы, содержащие информационную последовательность и одну из 14 проверочных матриц, представленных в табл. 1. Для этого после
нажатия на кнопку «Открыть» появляется одноименное диалоговое окно, в котором пользователь выбирает необходимый файл.
Шаг 1. Кодирование
Файлы с данными: Информационная п оследо вател ь ность Проверочная матрица п оследо вательность 1. Укажите файл с информационной последовательностью: □;\АспирантураУМР0С#\МР0_5\МР0\МР0\ЬШе1еа5е' » Открыть 2. Укажите файл с проверочной матрицей: D:\AcnHpaH-iypaWIPD С#\МРО_5\МРО\МРО\Ып\Ке1еа5е' - [ Открыть
п оследо вател ь ность после декодирования Порождающая матрица 3. Указанную информационную последовательность необходимо закодировать. Кодер формирует проверочные .-. символы на основании проверочной матрицы. Кодировать |
Далее ] [ Справка | [ Отмена |
Рис. 1. Интерфейс блока кодирования
Указанная проверочная матрица, а также информационная последовательность являются входными данными на кодере. В результате кодирования на основании входных данных будут сформированы кодовое слово и порождающая матрица (путем транспонирования проверочной), записанные в файлы, которые доступны для просмотра в области «Файлы с данными». На рис. 2 представлен фрагмент проверочной матрицы итеративного кода с диагональными проверками с пятью паритетами, сформированной для информационного слова длиной 64 бит.
Рис. 2. Интерфейс блока генерации ошибок
На втором этапе в кодовом сообщении генерируются ошибки (рис. 2). Предлагается три способа генерации ошибок: инверсия битов пользователем самостоятельно, генерация оши-
бок по вероятности, что позволяет имитировать реальный канал передачи данных, автоматическая генерация многократных независимых и пакетных ошибок.
В первом случае пользователь открывает файл с кодовой последовательностью и самостоятельно инвертирует биты, имитируя одну многократную или однократную ошибку, после декодирования можно открыть файл и убедиться, что ошибка была исправлена.
Имитация реального канала связи подразумевает генерацию ошибок с заданной вероятностью: пользователю необходимо указать вероятность возникновения ошибки заданного типа и кратности, т. е. установить качество канала. Далее используется генератор псевдослучайных чисел Вихрь Мерсенна для генерации вероятности возникновения какой-либо ошибки. Если сгенерированная вероятность совпадает с заданным качеством канала, то в кодовом слове инвертируются биты на ошибочные и осуществляется декодирование. Такой способ генерации ошибок позволяет определить вероятность ошибки после декодирования.
Для программной генерации ошибок пользователю необходимо указать тип и кратность ошибки. Данный способ подразумевает генерацию всех возможных ошибок заданной кратности в кодовом слове, число таких ошибок рассчитывается по формуле (1). При этом каждый раз при генерировании новой ошибки заданной кратности кодовое слово с ошибкой поступает на декодер. С помощью порождающей матрицы декодер исправляет ошибку, а затем на основании проверочной матрицы пересчитывает проверочные символы, формируя тем самым новое кодовое слово:
п!
с: = ( п\. ,, (1)
(п - т),т,
где т - кратность генерируемой ошибки; п -длина кодовой последовательности, которая вычисляется по формуле
п = к + г, (2)
где к - количество информационных битов; г -количество проверочных символов.
Следующий этап - многопороговое декодирование (рис. 3). На третьем шаге необходимо установить параметры декодера (пороговое значение на каждой стадии), выбрать используемые алгоритмы (алгоритм выбора пороговых значений [3], алгоритм идентификации кратности ошибки [4]).
Блок декодирования в моделируемой адаптивной системе включает многопороговый декодер и блок анализа, который в свою очередь
состоит из блока определения кратности исправляемой ошибки и блока определения качества канала. Блок идентификации кратности ошибки, используя алгоритм идентификации кратности исправляемой ошибки, определяет число ошибочных бит с некоторой вероятностью (табл. 2) автоматически в процессе декодирования.
системе есть возможность изменять параметр ошибок по битам при передаче реального трафика, так как используется алгоритм идентификации кратности ошибок.
После того как был рассчитан параметр БЕЯ, система определяет качество канала по табл. 3.
Установите параметры декодера:
Номер стадии * Пороговое значение "
: 5
2 4
3 3
Очистить таблицу
Параметры по умолчанию
пропустить стадии, на которых ошибки не будут исправлены |У1 применить алгоритм определения кратности ошибки
* т. к. была использована матрица с числом паритетов 5, то процесс декодирования осуществляется в В стадии
** для достижения наилучшего эффекта исправления ошибок рекомендуется устанавливать пороговые значения по порядку, начиная с максимального
Таблица 3
Рис. 3. Интерфейс блока декодирования
Число ошибочных бит суммируется, после того как было передано 106 бит, в блоке определения качества канала рассчитывается коэффициент ошибок по битам BER (bit error rate -параметр ошибки по битам) (3).
Таблица 2
Вероятность определения кратности ошибки в процессе декодирования
Длина информационной последовательности Кратность ошибки
1 2 3
Вероятность определения ошибки
64 1 0,99 0,98
128 0,99 0,74 0,76
256 0,92 0,95 0,73
Коэффициент БЕЯ является одним из основных параметров при измерении цифрового бинарного канала и равен отношению числа битовых ошибок к общему числу бит, переданных за время проведения теста по каналу:
N
BER = - ош
N
(3)
общ
где Жош - число ошибочных бит; ^общ - общее число переданных бит.
Стоит отметить, что коэффициент БЕЯ измеряют в режиме с отключением связи, при передаче тестовой последовательности. В данной
Определение качества канала по коэффициенту BER
Категория Значение BER
A (высокое) BER ^ 0
B (хорошее) 10-8 < BER < 10-7
C (среднее) 10-7 < BER < 10-5
D (низкое) 10-4 < BER < 10-3
E (деградация) BER < 10-3
Качество канала предлагается условно разделить на пять категорий: А (высокое), Б (хорошее), С (среднее), Б (низкое) и Е (деградация). В ходе передачи при любой категории качества канала, за исключением А, анализатор уменьшает скорость кода, а затем при необходимости увеличивает количество паритетов в коде, т. е. далее будет использоваться другой код. При следующей передаче в случае неудовлетворительного качества канала анализатор повысит число паритетов. В случае ухудшения, отсутствия изменений или незначительного улучшения блок анализа выбирает код с меньшим объемом информационной части.
При достижении приемлемого качества канала (категории А и В) будет происходить обратный процесс: уменьшение числа паритетов и увеличение скорости кода, т. е. если нет необходимости использовать код с более высокой скоростью, то возможен возврат к коду с более низкой скоростью (движение вниз по табл. 1). В процессе передачи периодически происходит пересчет значения БЕЯ и переключение на различные трехмерные итеративные коды.
Таким образом, система кодирования (декодирования) на основе многомерных итеративных кодов и многопорогового декодера позволяет определять коэффициент БЕЯ при передаче реального трафика и динамически изменять параметры кодов с целью повышения надежности и производительности системы передачи информации, фактически адаптируясь к изменяющимся условиям передачи и приводя к изменению вероятности появления ошибок определенного типа.
Заключение. Разработанное программное средство, не имеющее аналогов, позволяет моделировать процесс кодирования, декодирования, реальный канал передачи данных.
Описанная адаптивная система кодирования (декодирования) данных на основе итеративных кодов и многопорогового декодирования позволяет динамически изменять параметры используемых итеративных кодов, что дает возможность использовать более быстрый код,
увеличивая тем самым скорость передачи информации. Также есть возможность определять количество ошибочных бит, что в свою очередь позволяет оценить качество канала по коэффициенту ошибок по битам БЕЯ в режиме без отключения связи.
Литература
1. Виткова М. Ф., Романенко Д. М. Адаптивная система кодирования (декодирования) на основе многомерных итеративных кодов и многопороговых декодеров // Труды БГТУ. 2014. № 6: Физ.-мат. науки и информатика. С. 116-120.
2. Романенко Д. М., Шиман Д. В., Виткова М. Ф. Многопороговое мажоритарное декодирование низкоплотностных кодов // Труды БГТУ. 2011. № 6: Физ.-мат. науки и информатика. С. 128-132.
3. Виткова М. Ф., Романенко Д. М. Адаптивное многопороговое декодирование многомерных итеративных кодов // Труды БГТУ. 2012. № 6: Физ.-мат. науки и информатика. С. 134-138.
4. Urbanovich P. P., Romanenko D. M., Vitkova M. F. The algorithm for determining the errors multiplicity by multithreshold decoding of iterative codes // Electrical Review. Poland: Lublinie, 2013. P. 148.
References
1. Vitkova M. F., Romanenko D. M. The adaptive system of coding (decoding) based on the multidimensional iterative codes and multithreshold decoders. Trudy BGTU [Proceedings of BSTU], 2014, no. 6: Physical-mathematical sciences and informatics, pp. 116-120 (In Russian).
2. Romanenko D. M., Shiman D. V., Vitkova M. F. The multithreshold majority decoding of low-density codes. Trudy BGTU [Proceedings of BSTU], 2011, no. 6: Physical-mathematical sciences and informatics, pp. 128-132 (In Russian).
3. Vitkova M. F., Romanenko D. M. The adaptive multithreshold decoding of multidimensional iterative codes. Trudy BGTU [Proceedings of BSTU], 2012, no. 6: Physical-mathematical sciences and informatics, pp. 134-138 (In Russian).
4. Urbanovich P. P., Romanenko D. M., Vitkova M. F. The algorithm for determining the errors multiplicity by multithreshold decoding of iterative codes. Electrical Review. Poland, Lublinie, 2013, pp. 148.
Информация об авторе
Кудлацкая Марина Федоровна - аспирант. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: [email protected]
Information about the author
Kudlatskaya Marina Fedorovna - graduate student. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: [email protected]
Поступила 12.03.2015