многоканальный последовательный декодер витерби
Классы МПК: | H03M13/41 с использованием алгоритма Витерби или процессора Витерби H04J13/00 Кодовые многоканальные системы H04L25/08 модификации устройств для уменьшения помех; модификации устройств для уменьшения помех, обусловленных повреждениями в линиях |
Автор(ы): | Келин Тимур Георгиевич (RU), Мурзинов Дмитрий Дмитриевич (RU), Пятков Дмитрий Алексеевич (RU) |
Патентообладатель(и): | Келин Тимур Георгиевич (RU) |
Приоритеты: |
подача заявки:
2010-02-27 публикация патента:
20.06.2011 |
Изобретение относится к системам последовательного декодирования потоков данных в канале с шумом, в частности к последовательному декодеру Витерби для сверточных перфорированных и неперфорированных кодов со структурой «один вход - несколько выходов» (SIMO). Технический результат заключается в обеспечении возможности обработки кодированных блоков конечной длины для конструкций следующих типов: терминированной, усеченной, кольцевой (циклической). Указанный технический результат достигается созданием многоканального последовательного декодера Витерби, содержащего следующие функциональные блоки, взаимосвязанные между собой: входной буфер, формирователь сигнала чтения слова данных из входного буфера, дешифратор поля команд слова данных, блок регистров параметров каналов, блок обработки команды «обнуление путевых метрик», блок обработки команды «установка значения заданной путевой метрики», блок обработки команды «считывание бита из пути с заданным номером», блок обработки команды «обработка входных отсчетов», ОЗУ путей декодирования и путевых метрик, блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, блок формирования адреса ячейки ОЗУ путей декодирования и путевых метрик и блок регистров выходных данных каналов декодирования. 2 з.п. ф-лы, 3 ил.
Формула изобретения
1. Многоканальный последовательный декодер Витерби, содержащий входной буфер, формирователь сигнала чтения слова данных из входного буфера, дешифратор поля команд слова данных, блок регистров параметров каналов, блок обработки команды «обнуление путевых метрик», блок обработки команды «установка значения заданной путевой метрики», блок обработки команды «считывание бита из пути с заданным номером», блок обработки команды «обработка входных отсчетов», ОЗУ путей декодирования и путевых метрик, блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, блок формирования адреса ячейки ОЗУ путей декодирования и путевых метрик и блок регистров выходных данных каналов декодирования, при этом входы-выходы блока обработки команды «обнуление путевых метрик», блока обработки команды «установка значения заданной путевой метрики», блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов» и их первые выходы объединены соответственно первой и второй шинами, ко второй шине подключен также первый вход блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик, второй и третий входы которого соединены соответственно с первым и вторым выходами блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, первый вход которого соединен с первыми входами соответственно блока регистров параметров каналов, блока регистров выходных данных каналов декодирования и первым выходом входного буфера, второй выход которого соединен с первым входом дешифратора поля команд слова данных, второй вход которого соединен со входом входного буфера и выходом формирователя сигнала чтения слова данных из входного буфера, первый вход которого соединен с третьим выходом входного буфера, четвертый и пятый выходы которого соединены с первым и вторым входами блока обработки команды «установка значения заданной путевой метрики», а шестой выход входного буфера соединен с первым входом блока обработки команды «обработка входных отсчетов», выход блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик соединен со входом ОЗУ путей декодирования и путевых метрик, соединенного с первой шиной, второй вход формирователя сигнала чтения слова данных из входного буфера соединен со вторым входом блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования и вторым выходом блока обработки команды «обработка входных отсчетов», при этом блок обработки команды «считывание бита из пути с заданным номером» и блок обработки команды «обработка входных отсчетов» соединены со вторым входом блока регистров выходных данных каналов декодирования, вторые выходы блока обработки команды «обнуление путевых метрик», блока обработки команды «установка значения заданной путевой метрики» и блока обработки команды «считывание бита из пути с заданным номером» соединены соответственно с третьим, четвертым и пятым входами формирователя сигнала чтения слова данных из входного буфера, а выходы дешифратора поля команд слова данных соединены соответственно со вторыми входами блока обработки команды «обнуление путевых метрик», блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов», а также с третьим входом блока обработки команды «установка значения заданной путевой метрики», при этом третьи входы блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов» соединены с первым выходом блока регистров параметров каналов, второй выход которого соединен с четвертым входом блока обработки команды «обработка входных отсчетов».
2. Многоканальный последовательный декодер Витерби по п.1, отличающийся тем, что введены блок счетчиков выходных данных каналов декодирования, блок интеграторов и блок вычисления параметров плотности распределения условных вероятностей для расчета реберных метрик, выход которого соединен с пятым входом блока обработки команды «обработка входных отсчетов», а вход соединен с первыми входами блока счетчиков выходных данных каналов декодирования, блока интеграторов и первым выходом входного буфера, второй вход блока счетчиков выходных данных каналов декодирования соединен со вторым входом блока регистров выходных данных каналов декодирования, при этом четвертые выходы блока обработки команды «обработка входных отсчетов» соединены со вторыми входами блока интеграторов, третьи входы которого соединены с третьими выходами блока регистров параметров каналов.
3. Многоканальный последовательный декодер Витерби по п.1, отличающийся тем, что блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования содержит дешифратор, регистр базового адреса свободной области ОЗУ путей декодирования и путевых метрик, набор регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, количество которых определяется количеством каналов декодирования, и мультиплексор, при этом один из входов указанного блока соединен с одним из входов дешифратора и входом регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик, а другой вход указанного блока соединен с другим входом дешифратора и одним из входов мультиплексора, другие входы которого соединены с выходами регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, выходы дешифратора соединены с входами регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, другие входы регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик соединены с выходом указанного регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик, который также соединен с выходом указанного блока, выход мультиплексора соединен с выходом указанного блока и со вторым входом указанного регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик.
Описание изобретения к патенту
Изобретение относится к системам последовательного декодирования потоков данных в канале с шумом, более конкретно, к последовательному декодеру Витерби для сверточных перфорированных и неперфорированных кодов со структурой «один вход - несколько выходов» (SIMO - single input multiple outputs).
Входные данные для каналов декодирования обрабатываются последовательно, т.е. обработка входных данных для следующего канала декодирования начинается лишь после завершения обработки входных данных для текущего канала декодирования.
Сверточное кодирование широко используется в спутниковых каналах передачи данных, например в каналах передачи данных спутниковых радионавигационных систем (GPS L5, GPS L2C, Galileo), а также в системах передачи дифференциальных поправок с геостационарных спутников (WAAS, EGNOS).
Известны многоканальные последовательные декодеры Витерби, выполняющие функции декодирования потока данных (см., например, US 7246298, H03M 13/00, 2007, US 73430704, H03M 13/00, 2008, WO 2009077340, H03M 13/41, 2009, US 2008298513, H03L 13/41, 2008, RU 2252487, H03M 13/00, 2005, и др.)
Указанные технические решения позволяют обрабатывать только непрерывные потоки данных со сверточным кодированием.
Наиболее близким по технической сути к предложенному является многоскоростной декодер для системы связи, в котором исходные информационные биты, передаваемые с одной из первой совокупности заранее определенных скоростей Ri передачи исходных информационных битов, кодируют для получения данных кодовых символов, данные кодовых символов передаются в кадрах, содержащих данные кодовых символов, представляющих собой первый и (Ni-1) повторяющихся вариантов кодированных исходных информационных битов, где Ni и i - ненулевые положительные целые числа, при этом многоскоростной декодер предназначен для создания на выходе декодированных информационных битов, соответствующих первому варианту кодированных исходных информационных битов, и содержит средство входного буфера для приема и запоминания по меньшей мере одного кадра данных кодовых символов, средство последовательного декодирования, связанное со средством входного буфера, для создания пакета i декодированных информационных битов, соответствующих каждой из по меньшей мере двух заранее определенных скоростей Ri передачи исходных информационных битов в ответ на данные кодовых символов, средство выходного буфера, связанное со средством последовательного декодирования для запоминания по меньшей мере двух пакетов Pi декодированных информационных данных, средство передачи символов в средстве входного буфера для выбора множества Si данных кодовых символов, соответствующих первому варианту кодированных исходных информационных битов по меньшей мере для каждой из двух заранее определенных скоростей передачи i исходных информационных битов и для передачи множества Si на средство последовательного декодирования, и средство метрики качества в средстве последовательного декодирования для создания меры качества Qi для каждого пакета P i декодированных информационных битов, причем мера качества Qi представляет ошибки в данных кодовых символов, связанных с каждым пакетом Pi декодированных информационных битов, при этом средство последовательного декодирования содержит средство символьной метрики для назначения значения символьной метрики каждому кодовому символу в соответствии со вторым алгоритмом кодирования, средство вычисления метрики ветвей, связанное со средством символьной метрики, для создания пары значений метрики ветвей, представляющих взвешенную вероятность передачи исходного информационного бита, соответствующего каждому кодовому символу, из средства входного буфера, в ответ на упомянутое значение символьной метрики, средство пути решения, связанное со средством вычисления метрики ветвей, для создания и запоминания значения решения метрики состояния для каждой возможной передачи исходного информационного бита, соответствующего каждому упомянутому кодовому символу средства входного буфера, в ответ на соответствующие значения метрик ветвей и средство обратного звена пути, связанное со средством пути решения, для выбора наиболее вероятного пути решения для каждой передачи исходных информационных битов и для создания соответствующих декодированных информационных битов (см. RU 2222110, H03M 13/41, 2004 или US 5710784).
Указанный декодер декодирует при различных скоростях передачи данных, связанных с многоскоростными вокодерами, а также может декодировать при неизвестной скорости передачи данных либо в непрерывном режиме, либо в режимах синхронизированных пакетов.
Технический результат заявленного технического решения заключается в обеспечении возможности обработки кодированных блоков конечной длины для конструкций следующего типа:
- терминированная конструкция (с произвольным терминатором);
- усеченная конструкция;
- кольцевая (циклическая или циклически замкнутая) конструкция.
Указанный технический результат достигается тем, что предлагается многоканальный последовательный декодер Витерби, содержащий входной буфер, формирователь сигнала чтения слова данных из входного буфера, дешифратор поля команд слова данных, блок регистров параметров каналов, блок обработки команды «обнуление путевых метрик», блок обработки команды «установка значения заданной путевой метрики», блок обработки команды «считывание бита из пути с заданным номером», блок обработки команды «обработка входных отсчетов», ОЗУ путей декодирования и путевых метрик, блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, блок формирования адреса ячейки ОЗУ путей декодирования и путевых метрик и блок регистров выходных данных каналов декодирования, при этом входы-выходы блока обработки команды «обнуление путевых метрик», блока обработки команды «установка значения заданной путевой метрики, блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов» и их первые выходы объединены соответственно первой и второй шинами, ко второй шине подключен также первый вход блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик, второй и третий входы которого соединены соответственно в первым и вторым выходами блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, первый вход которого соединен с первыми входами соответственно блока регистров параметров каналов, блока регистров выходных данных каналов декодирования и первым выходом входного буфера, второй выход которого соединен с первым входом дешифратора поля команд слова данных, второй вход которого соединен со входом входного буфера и выходом формирователя сигнала чтения слова данных из входного буфера, первый вход которого соединен с третьим выходом входного буфера, четвертый и пятый выходы которого соединены с первым и вторым входами блока обработки команды «установка значения заданной путевой метрики», а шестой выход входного буфера соединен с первым входом блока обработки команды «обработка входных отсчетов», выход блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик соединен со входом ОЗУ путей декодирования и путевых метрик, соединенного с первой шиной, второй вход формирователя сигнала чтения слова данных из входного буфера соединен со вторым входом блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования и вторым выходом блока обработки команды «обработка входных отсчетов», при этом блок обработки команды «считывание бита из пути с заданным номером» и блок обработки команды «обработка входных отсчетов» соединены со вторым входом блока регистров выходных данных каналов декодирования, вторые выходы блока обработки команды «обнуление путевых метрик», блока обработки команды «установка значения заданной путевой метрики» и блока обработки команды «считывание бита из пути с заданным номером» соединены соответственно с третьим, четвертым и пятым входами формирователя сигнала чтения слова данных из входного буфера, а выходы дешифратора поля команд слова данных соединены соответственно со вторыми входами блока обработки команды «обнуление путевых метрик», блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов», а также с третьим входом блока обработки команды «установка значения заданной путевой метрики», при этом третьи входы блока обработки команды «считывание бита из пути с заданным номером» и блока обработки команды «обработка входных отсчетов» соединены с первым выходом блока регистров параметров каналов, второй выход которого соединен с четвертым входом блока обработки команды «обработка входных отсчетов».
Дополнительные отличия заключаются в том, что введены блок счетчиков выходных данных каналов декодирования, блок интеграторов и блок вычисления параметров плотности распределения условных вероятностей для расчета реберных метрик, выход которого соединен с пятым входом блока обработки команды «обработка входных отсчетов», а вход соединен с первыми входами блока счетчиков выходных данных каналов декодирования, блока интеграторов и первым выходом входного буфера, второй вход блока счетчиков выходных данных каналов декодирования соединен со вторым входом блока регистров выходных данных каналов декодирования, при этом четвертые выходы блока обработки команды «обработка входных отсчетов» соединены со вторыми входами блока интеграторов, третьи входы которого соединены с третьими выходами блока регистров параметров каналов.
Предметом изобретения является также блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования, содержащий дешифратор, регистр базового адреса свободной области ОЗУ путей декодирования и путевых метрик, набор регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, количество которых определяется количеством каналов декодирования, и мультиплексор, при этом один из входов указанного блока формирования базового адреса области ОЗУ соединен с одним из входов дешифратора и входом регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик, а другой вход указанного блока формирования базового адреса области ОЗУ соединен с другим входом дешифратора и одним из входов мультиплексора, другие входы которого соединены с выходами регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, выходы дешифратора соединены с входами регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, другие входы регистров указанного набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик соединены с выходом указанного регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик, который также соединен с выходом указанного блока формирования базового адреса области ОЗУ, выход мультиплексора соединен с выходом указанного блока формирования базового адреса области ОЗУ и со вторым входом указанного регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик.
На фиг.1 представлена структурная схема многоканального последовательного декодера Витерби.
На фиг.2 представлена блок-схема блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования.
На фиг.3 представлена таблица 1, в которой приведены возможные значения отсчетов с выхода демодулятора.
Многоканальный последовательный декодер Витерби содержит входной буфер 1, формирователь сигнала чтения слова данных из входного буфера 2, дешифратор поля команд слова данных 3, блок регистров параметров каналов 4, блок обработки команды «обнуление путевых метрик» 5, блок обработки команды «установка значения заданной путевой метрики» 6, блок обработки команды «считывание бита из пути с заданным номером» 7, блок обработки команды «обработка входных отсчетов» 8, ОЗУ путей декодирования и путевых метрик 9, блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10, блок формирования адреса ячейки ОЗУ путей декодирования и путевых метрик 11 и блок регистров выходных данных каналов декодирования 12, а также блок счетчиков выходных данных каналов декодирования 13, блок интеграторов 14 и блок вычисления параметров плотности распределения условных вероятностей для расчета реберных метрик 15.
Блок формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10 состоит из дешифратора 16, регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17, набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик 18-1,18-2 18-М, количество регистров М в наборе определяется количеством каналов декодирования, и мультиплексора 19.
Многоканальный последовательный декодер Витерби работает следующим образом.
Входное слово данных, содержащее поля номера текущего канала, кода команды, номера пути декодирования, значения путевой метрики, а также данных для обработки, поступившее на вход многоканального последовательного декодера Витерби, попадает во входной буфер 1, предназначенный для хранения входного слова данных на время, пока блоки многоканального последовательного декодера Витерби обрабатывают слова данных, поступившие ранее. Глубина входного буфера 1 выбирается исходя из соотношения пикового темпа поступления входных слов данных и максимального времени, которое тратится на обработку слова данных в самом «медленном» из блоков обработки команд 5, 6, 7 или 8. Обычно таким блоком является блок обработки команды «обработка входных отсчетов» 8, в котором выполняется наибольшее количество операций при обработке слов данных.
Если входной буфер 1 содержит хотя бы одно слово данных, то он формирует сигнал, который поступает на вход формирователя сигнала чтения слова данных из входного буфера 2 вместе с сигналами от блоков обработки команд 5, 6, 7 или 8 соответственно, индицирующих о готовности этих блоков к обработке очередного слова данных. Если все блоки обработки команд 5, 6, 7 или 8 готовы к обработке очередного слова данных (активное состояние сигналов) и входной буфер 1 содержит хотя бы одно слово данных, то формирователь сигнала чтения слова данных из входного буфера 2 формирует сигнал чтения одного слова данных из входного буфера 1. Значения из полей считанного слова данных поступают на входы блоков обработки команд 5, 6, 7 или 8. Значение из поля номера текущего канала декодирования поступает на входы:
- блока регистров параметров каналов 4, где выбирает регистр, в котором содержатся значения параметров текущего канала, используемые при работе блоков обработки команд «считывание бита из пути с заданным номером» 7 и «обработка входных отсчетов» 8;
- блока регистров выходных данных каналов декодирования 12, где выбирает регистр для хранения выходных данных декодера для текущего канала, сформированных в процессе работы блоков обработки команд «считывание бита из пути с заданным номером» 7 и «обработка входных отсчетов» 8;
- блока счетчиков выходных данных каналов декодирования 13, где выбирает регистр кольцевого счетчика для текущего канала, фиксирующего количество данных декодера, сформированных в процессе работы блоков обработки команд «считывание бита из пути с заданным номером» 7 и «обработка входных отсчетов» 8;
- блока интеграторов 14, где выбирает интеграторы для формирования среднего значения оценок параметров качества текущего канала, сформированных в процессе работы блока обработки команды «обработка входных отсчетов» 8;
- блока вычисления параметров плотности распределения условных вероятностей для расчета реберных метрик 15, где выбирает регистр, в котором содержатся значения параметров текущего канала, используемые при расчете реберных метрик в блоке обработки команды «обработка входных отсчетов» 8;
- блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10, где формируется базовый адрес блока ОЗУ, содержащего пути декодирования и значения путевых метрик для текущего канала декодирования, а также базовый адрес свободного блока в ОЗУ путей декодирования и путевых метрик 9.
Значение из поля кода команды поступает на дешифратор поля команд слова данных 3, где в зависимости от значения поля формируется один из сигналов запуска вычислений в блоках обработки команд 5, 6, 7 или 8 соответственно.
ОЗУ путей декодирования и путевых метрик 9 состоит из ячеек, каждая из которых включает поле пути декодирования и поле путевой метрики.
Разрядность поля пути декодирования равна максимальной для всех каналов декодирования длине пути декодирования и соответствует максимально возможному разрешенному значению параметра из блока регистров параметров каналов 4.
ОЗУ путей декодирования и путевых метрик 9 условно разделено на М+1 область, М из которых хранят текущие пути декодирования и путевые метрики каждого канала, а одна область свободная и используется для записи путей декодирования и путевых метрик, изменяемых в соответствии с алгоритмом декодирования Витерби в процессе работы блока обработки команды «обработка входных отсчетов» 8. Все области содержат равное количество ячеек ОЗУ с последовательными адресами. Это количество определяется максимальным порядком и свойствами разрешенных генераторных полиномов в кодерах, для которых выполняется декодирование.
При обработке текущего слова данных начальный (базовый) адрес рабочей области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования формируется в блоке формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10 в зависимости от номера текущего канала декодирования CHAN. Этот адрес хранится в регистре с номером текущего канала декодирования блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10. В этом же блоке формируется базовый адрес свободной области ОЗУ. Этот адрес хранится в специально отведенном регистре блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10.
В процессе работы блоки обработки команд 5, 6, 7 и 8 формируют сигнал выбора рабочей или свободной области ОЗУ и адрес смещения ячейки относительно базового адреса требуемой области. Полный адрес ячейки ОЗУ путей декодирования и путевых метрик 9 формируется в блоке формирования адреса ячейки ОЗУ путей декодирования и путевых метрик 11. Также блоки обработки команд 5, 6, 7 и 8 в процессе формируют сигналы чтения или записи для ОЗУ путей декодирования и путевых метрик 9, а также считывают или записывают содержимое ячеек ОЗУ.
В начале работы многоканального декодера Витерби регистры 18-1,18-2 18-М набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик содержат начальные (базовые) адреса рабочих областей ОЗУ, соответствующие каналам декодирования; регистр базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17 содержит базовый адрес свободной области ОЗУ путей декодирования и путевых метрик.
Значение из поля номера текущего канала декодирования поступает на вход мультиплексора 19, и на его выходе формируется базовый адрес рабочей области ОЗУ, соответствующий текущему номеру канала декодирования CHAN. На выходе регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17 формируется базовый адрес свободной области ОЗУ.
Также значение из поля номера текущего канала декодирования поступает на вход дешифратора 16. По окончании работы блока обработки команды «обработка входных отсчетов» 8, т.е. при переходе состояния сигнала на выходе блока из активного в неактивное, на одном из выходов дешифратора 16, соответствующем текущему номеру канала декодирования CHAN, формируется сигнал разрешения, поступающий на вход разрешения записи одного из регистров 18-1,18-2 18-М набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, соответствующего текущему номеру канала декодирования CHAN. На входы данных регистров 18-1,18-2 18-М набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик поступает базовый адрес свободной области ОЗУ с выхода регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17.
Также сигнал окончания работы блока обработки команды «обработка входных отсчетов» 8 поступает непосредственно на вход разрешения записи регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17. На вход данных регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17 поступает значение базового адреса рабочей области ОЗУ, соответствующего текущему номеру канала декодирования CHAN, с выхода мультиплексора 19.
Таким образом, после окончания работы блока обработки команды «обработка входных отсчетов» 8 содержимое регистра базового адреса свободной области ОЗУ путей декодирования и путевых метрик 17 меняется с содержимым одного из регистров 18-1,18-2 18-М набора регистров базовых адресов областей ОЗУ путей декодирования и путевых метрик, соответствующего номеру канала декодирования CHAN, который только что был обработан, т.е. базовым адресом рабочей области для канала декодирования, который только что был обработан, становится область, в которую в процессе работы блока обработки команды «обработка входных отсчетов» 8 производилась запись измененных в соответствии с алгоритмом декодирования Витерби путей декодирования и путевых метрик.
Блок обработки команды «обнуление путевых метрик» 5 при разрешении работы устанавливает в области ОЗУ путей декодирования и путевых метрик 9, базовый адрес, которой формируется на выходе блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10, все путевые метрики для указанного номера канала декодирования в значение «0», а также заполняет значением «0» все позиции памяти путей декодирования для текущего номера канала. В начале выполнения указанной операции блок обработки команды «обнуление путевых метрик» 5 устанавливает в неактивное состояние сигнал готовности к обработке очередного слова данных. По окончании выполнения указанной операции блок обработки команды «обнуление путевых метрик» 5 устанавливает сигнал готовности к обработке очередного слова данных в активное состояние.
Блок обработки команды «установка значения заданной путевой метрики» 6 при разрешении работы устанавливает значение поля путевой метрики из ячейки ОЗУ путей декодирования и путевых метрик 9, из области с базовым адресом, сформированным на выходе блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10, по смещению, соответствующему значению поля номера пути декодирования (полный адрес ячейки формируется на выходе блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик 11) в значение из поля путевой метрики текущего слова данных на выходе входного буфера 1. Путь декодирования при этом не изменяется. В начале выполнения указанной операции блок обработки команды «установка значения заданной путевой метрики» 6 устанавливает в неактивное состояние сигнал готовности к обработке очередного слова данных. По окончании выполнения указанной операции блок обработки «установка значения заданной путевой метрики» 6 устанавливает сигнал готовности к обработке очередного слова данных в активное состояние.
Блок обработки команды «считывание бита из пути декодирования с данным номером» 7 при разрешении работы считывает 1 бит поля пути декодирования из ячейки ОЗУ путей декодирования и путевых метрик 9, из области с базовым адресом, сформированным на выходе блока формирования базового адреса области ОЗУ путей декодирования и путевых метрик для текущего канала декодирования 10, по смещению, соответствующему значению поля номера пути декодирования (полный адрес ячейки формируется на выходе блока формирования адреса ячейки ОЗУ путей декодирования и путевых метрик 11). Позиция бита в поле пути декодирования определяется значением, установленным в блоке регистров параметров каналов 4 для текущего канала декодирования. В начале выполнения указанной операции блок обработки команды «считывание бита из пути декодирования с данным номером» 7 устанавливает в неактивное состояние сигнал готовности к обработке очередного слова данных.
По окончании выполнения указанной операции блок обработки «считывание бита из пути декодирования с данным номером» 7 устанавливает сигнал готовности к обработке очередного слова данных в активное состояние.
Блок обработки команды «обработка входных отсчетов» 8 при разрешении работы выполняет основные этапы декодирования для текущего номера канала декодирования в соответствии с алгоритмом Витерби: расчет метрик ребер, обновление полей путевых метрик и путей декодирования (выполняет операцию "прибавить-сравнить-выбрать") для ячеек из области ОЗУ путей декодирования и путевых метрик 9, соответствующей текущему номеру канала декодирования. Количество ячеек для обработки определяется порядком и свойствами генераторных полиномов для текущего канала декодирования, передаваемых в блок обработки команды «обработка входных отсчетов» 8 из блока регистров параметров каналов 4 в зависимости от текущего номера канала декодирования.
Обновленные значения путевых метрик и путей декодирования сохраняются в свободной области ОЗУ. В процессе работы блок обработки команды «обработка входных отсчетов» 8 сохраняет в своей внутренней памяти путь декодирования, для которого значение путевой метрики соответствует максимальному отношению правдоподобия. После обработки всех полей путевых метрик и путей декодирования для текущего канала декодирования блок обработки команды «обработка входных отсчетов» 8 считывает 1 бит из сохраненного пути декодирования. Позиция бита в сохраненном пути декодирования определяется значением, установленным в блоке регистров параметров каналов 4 для текущего канала декодирования CHAN.
В начале выполнения указанных операций блок обработки команды «обработка входных отсчетов» 8 устанавливает в неактивное состояние сигнал готовности к обработке очередного слова данных. По окончании выполнения указанной операции блок обработки «обработка входных отсчетов» 8 устанавливает сигнал готовности к обработке очередного слова данных в активное состояние.
Дополнительно блок обработки команды «обработка входных отсчетов» 8 формирует значения оценок параметров качества канала и вероятности ошибки при декодировании. Значения этих оценок поступают в блок интеграторов 14, в котором происходит их усреднение. Параметры интеграторов (постоянные времени интегрирования) для каждого из параметров для текущего канала декодирования передаются в блок интеграторов 14 из блока регистров параметров каналов 4. Выходные значения интеграторов могут быть считаны внешним устройством для принятия решения о качестве канала и о правильной синхронизации каналов декодирования.
Показатели качества канала и вероятности ошибки при декодировании в блоке вычислений параметров плотности распределения условных вероятностей для расчета реберных метрик 15 преобразуются в значение отношения сигнал-шум в канале. Это значение используется при расчете метрик ребер (условных вероятностей), что позволяет уменьшить вероятность ошибки при декодировании.
Полученный в процессе работы блоков обработки команд «считывание бита из пути декодирования с данным номером» 7 или «обработка входных отсчетов» 8 бит поступает на вход сдвигового регистра, соответствующего текущему каналу декодирования, в блоке регистров выходных данных каналов декодирования 12. Одновременно с этим происходит увеличение значения кольцевого счетчика, соответствующего текущему каналу декодирования, в блоке счетчиков выходных данных каналов декодирования 13. Значения регистров блоков 12 и 13 могут быть считаны внешним устройством для последующей обработки декодированных данных. Задержка в канале передачи равна сумме кодового ограничения кодера и установленному в блоке регистров параметров каналов 4 значению длины пути декодирования для данного канала декодирования.
Несколько слов о перфорированных кодах.
Значения входных отсчетов для блока обработки команды «обработка входных отсчетов» 8 могут быть представлены в формате знаковой величины (см., например, Таблицу 1 на фиг.3). Наличие среди разрешенных значений входных отсчетов т.н. «неопределенного значения» или «стирания», т.е. значения, для которого условные вероятности передачи любого символа равны, позволяет производить декодирование перфорированных сверточных кодов за счет добавления в последовательность входных отсчетов «неопределенных значений», соответствующих нулям матрицы перфорации.
Обработка непрерывных кодированных потоков осуществляется следующим образом.
При обработке каналом декодирования непрерывного кодированного потока необходимо перед началом работы в блоке регистров параметров каналов 4 для этого канала декодирования установить параметры образующих полиномов кодера, длину пути декодирования, параметры (постоянную времени) интеграторов для усреднения оцениваемых в процессе декодирования показателей качества. Затем во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «обнуление путевых метрик», и с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование.
Последующие слова данных, записываемые во входной буфер, с кодом в поле команды, соответствующим команде «обработка входных отсчетов», содержат поле номера канала декодирования, соответствующее номеру канала, в котором будет осуществляться декодирование, а также поле данных для обработки, соответствующее отсчетам, поступившим из канала связи. Декодированные данные считываются из регистра, соответствующего каналу декодирования, в блоке регистров выходных данных каналов декодирования 12.
Обработка кодированных блоков конечной длины с терминированной конструкцией осуществляется следующим образом.
При обработке каналом декодирования кодированного блока конечной длины с терминированной конструкцией необходимо перед началом приема кодированного блока в блоке регистров параметров каналов 4 для этого канала декодирования установить параметры образующих полиномов кодера, длину пути декодирования, параметры (постоянную времени) интеграторов для усреднения оцениваемых в процессе декодирования показателей качества. Затем во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «обнуление путевых метрик», и с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование. Следующим во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «установка значения заданной путевой метрики», с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование, с полем номера пути декодирования, соответствующим известному начальному состоянию сверточного кодера (обычно нулевому), и с полем путевой метрики, соответствующим максимальному возможному значению путевой метрики.
Последующие слова данных, записываемые во входной буфер, с кодом в поле команды, соответствующим команде «обработка входных отсчетов», содержат поле номера канала декодирования, соответствующее номеру канала, в котором будет осуществляться декодирование, а также поле данных для обработки, соответствующее отсчетам, поступившим из канала связи. По окончании приема кодированного блока во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «считывание бита из пути декодирования с данным номером», с полем номера пути декодирования, соответствующим известному конечному состоянию сверточного кодера. Декодированные данные считываются из регистра, соответствующего каналу декодирования, в блоке регистров выходных данных каналов декодирования 12.
Обработка кодированных блоков конечной длины с усеченной конструкцией осуществляется следующим образом.
При обработке каналом декодирования кодированного блока конечной длины с усеченной конструкцией необходимо перед началом приема кодированного блока в блоке регистров параметров каналов 4 для этого канала декодирования установить параметры образующих полиномов кодера, длину пути декодирования, параметры (постоянную времени) интеграторов для усреднения оцениваемых в процессе декодирования показателей качества. Затем во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «обнуление путевых метрик», и с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование. Следующим во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «установка значения заданной путевой метрики», с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование, с полем номера пути декодирования, соответствующим известному начальному состоянию сверточного кодера (обычно нулевому), и с полем путевой метрики, соответствующим максимальному возможному значению путевой метрики.
Последующие слова данных, записываемые во входной буфер, с кодом в поле команды, соответствующим команде «обработка входных отсчетов», содержат поле номера канала декодирования, соответствующее номеру канала, в котором будет осуществляться декодирование, а также поле данных для обработки, соответствующее отсчетам, поступившим из канала связи. По окончании приема кодированного блока во входной буфер записываются слова данных с кодом в поле команды, соответствующим команде «обработка входных отсчетов», которые содержат поле номера канала декодирования, соответствующее номеру канала, в котором будет осуществляться декодирование, а также поле данных для обработки, соответствующее неопределенным значениям входных отсчетов. Декодированные данные считываются из регистра, соответствующего каналу декодирования, в блоке регистров выходных данных каналов декодирования 12.
Обработка кодированных блоков конечной длины с кольцевой конструкцией осуществляется следующим образом.
При обработке каналом декодирования кодированного блока конечной длины с кольцевой конструкцией необходимо перед началом приема кодированного блока в блоке регистров параметров каналов 4 для этого канала декодирования установить параметры образующих полиномов кодера, длину пути декодирования, параметры (постоянную времени) интеграторов для усреднения оцениваемых в процессе декодирования показателей качества. Затем во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «обнуление путевых метрик», и с полем номера канала декодирования, соответствующим номеру канала, в котором будет осуществляться декодирование.
Последующие слова данных, записываемые во входной буфер, с кодом в поле команды, соответствующим команде «обработка входных отсчетов», содержат поле номера канала декодирования, соответствующее номеру канала, в котором будет осуществляться декодирование, а также поле данных для обработки, соответствующее отсчетам, поступившим из канала связи. По окончании приема кодированного блока во входной буфер записывается слово данных с кодом в поле команды, соответствующим команде «считывание бита из пути декодирования с данным номером», с полем номера пути декодирования, соответствующим начальному состоянию сверточного кодера, которое определяется первыми К битами кодированного блока (где К - кодовое ограничение). Декодированные данные считываются из регистра, соответствующего каналу декодирования, в блоке регистров выходных данных каналов декодирования 12.
Класс H03M13/41 с использованием алгоритма Витерби или процессора Витерби
Класс H04J13/00 Кодовые многоканальные системы
Класс H04L25/08 модификации устройств для уменьшения помех; модификации устройств для уменьшения помех, обусловленных повреждениями в линиях