УСТРОЙСТВО ДЕКОДИРОВАНИЯ РТСМ
PTCM DECODER

Изобретение относится к системам телекоммуникаций и может найти применение в приемниках цифровой информации для исправления ошибок, возникающих в спутниковых каналах передачи информации, например, в системе DVB-DSNG (Digital Video Broadcasting - Digital Satellite News Gathering) [1] или системе DVB-S (Digital Video Broadcasting - Satellite) [2].
Известно устройство декодирования РТСМ (Pragmatic Trellis Coded Modulation), предназначенное для работы в составе приемника цифровой информации, использующего сигнальные созвездия M-PSK [3]. Устройство содержит табличный преобразователь значений синфазной и квадратурной компонент сигнала в полярную систему координат, табличный вычислитель значений метрик ветвей для декодера Витерби, декодер Витерби, детектор интенсивности нормализации декодера Витерби, кодер сверточного кода, табличный формирователь значений секторов, буфер задержки, логику поворота секторов, блок оценки значений некодируемых бит, декодер разрешения фазовой неопределенности, дифференциальный декодер.
Фазовая неоднозначность I,Q-сигнала устраняется в устройстве [3] путем вращения значений секторов в случае обнаружения высокой интенсивности нормализации декодера Витерби и использования декодера разрешения фазовой неопределенности вместе с дифференциальным декодером. Наличие этих декодеров в устройстве обусловлено применяемым дифференциальным кодированием бит данных.
Недостатками устройства [3] являются:
- ограниченная область его применения. Устройство [3] предназначено для сигнальных созвездий M-PSK, но не поддерживает QAM (16QAM используется в системе DVB-DSNG);
- применение дифференциального кодирования приводит к размножению ошибок, что снижает помехоустойчивость приема информации из канала.
Известно устройство декодирования РТСМ, предназначенное для работы в составе приемника цифровой информации, использующего сигнальные созвездия M-PSK [4]. Устройство содержит блок оценки фазы I,Q-сигнала, два фазовращателя, блок задержки оценки фазы сигнала, выделитель группы символов сверточного кода, декодер сверточного кода, кодер сверточного кода, детектор секторов сигнального созвездия, контроллер кадровой синхронизации и три мультиплексора.
Контроллер кадровой синхронизации в известном устройстве разрешает фазовую неоднозначность I,Q-сигнала, анализируя кадровые синхронизирующие слова и поворачивая фазу в двух фазовращателях. Кадровые синхронизирующие слова должны при этом представляться как битами, закодированными сверточным кодом, так и некодируемыми битами.
Недостатком устройства является ограниченная область его применения. РТСМ-декодер [4] предназначен для сигнальных созвездий M-PSK, но так же, как и устройство [3], не поддерживает QAM. Кроме того, введенные для компенсации сдвига фазы I,Q-сигнала, блок оценки фазы I,Q-сигнала и фазовращатели манипулируют многоразрядными двоичными числами, что определяет относительную затратность аппаратных решений.
Наиболее близким по технической сущности к заявляемому изобретению является выбранное в качестве прототипа устройство, предназначенное для приема цифровой информации из спутникового канала системы DVB-DSNG [5]. Устройство содержит I,Q-демодулятор, перестраиваемый преобразователь фазы I,Q-сигнала, декодер внутреннего кода, использующий алгоритм Витерби, детектор заголовка транспортного потока, детектор поворота фазы, буфер задержки, декодер внешнего кода (кода Рида-Соломона).
Устройство-прототип разрешает фазовую неоднозначность сигнала на выходе I,Q-демодулятора путем вращения фазы сигнала на входе декодера внутреннего кода. Для определения необходимого угла поворота фазы анализируются заголовки пакетов транспортного потока (синхробайты) и сигнал отказа от декодирования декодера внешнего кода.
Недостатком прототипа является относительно высокая сложность реализации перестраиваемого преобразователя фазы, обусловленная необходимостью выполнения вычислений над многоразрядными двоичными числами, представляющими I и Q компоненты сигнала. Кроме того, включение преобразователя фазы перед декодером внутреннего кода приводит к увеличению временной задержки поступления данных в декодер внешнего кода при осуществлении поворота фазы.
Технической задачей изобретения является уменьшение аппаратной сложности устройства декодирования РТСМ (РТСМ-декодера) и вносимой им временной задержки в условиях возможной фазовой неопределенности I,Q-сигнала на выходе демодулятора.
00
01
10
11
Поставленная техническая задача решается тем, что в известное устройство, содержащее буфер I,Q-компонент сигнала, декодер Витерби, блок кадровой синхронизации, причем первые входы, вторые входы, третий вход и четвертый вход буфера I,Q-компонент сигнала являются соответственно входами I, Q, С1 и С2 устройства декодирования РТСМ, согласно изобретению введены блок перестановки с инверсией мягких решений, блок кодирования и перфорации, блок перестановки с инверсией закодированных символов, первый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, второй элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, блок синхронизации декодера Витерби, блок оценки некодированных бит в режимах 8PSK, блок оценки некодированных бит в режимах 16QAM, компенсатор фазового сдвига в режимах 8PSK, компенсатор фазового сдвига в режимах 16QAM, мультиплексор некодированных данных, блок сборки данных, причем первые и вторые входы блока перестановки с инверсией мягких решений являются соответственно входами soft_C1 и soft_C2 устройства декодирования РТСМ, первые и вторые выходы блока перестановки с инверсией мягких решений соединены соответственно с первыми и вторыми входами декодера Витерби, первый выход декодера Витерби соединен с первым входом блока кодирования и перфорации и с первым входом блока кадровой синхронизации, первый и второй выходы блока кодирования и перфорации соединены соответственно с первым и вторым входами блока перестановки с инверсией закодированных символов, первый выход блока перестановки с инверсией закодированных символов соединен со вторым входом второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, с третьим входом блока оценки некодированных бит в режимах 8PSK, с третьим входом блока оценки некодированных бит в режимах 16QAM и с седьмым входом компенсатора фазового сдвига в режимах 8PSK, второй выход блока перестановки с инверсией закодированных символов соединен со вторым входом первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, с четвертым входом блока оценки некодированных бит в режимах 8PSK, с четвертым входом блока оценки некодированных бит в режимах 16QAM и с шестым входом компенсатора фазового сдвига в режимах 8PSK, первые выходы буфера I,Q-компонент сигнала соединены с первыми входами блока оценки некодированных бит в режимах 8PSK и с первыми входами блока оценки некодированных бит в режимах 16QAM, вторые выходы буфера I,Q-компонент сигнала соединены со вторыми входами блока оценки некодированных бит в режимах 8PSK и со вторыми входами блока оценки некодированных бит в режимах 16QAM, третий выход буфера I,Q-компонент сигнала соединен с первым входом второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, четвертый выход буфера I,Q-компонент сигнала соединен с первым входом первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, выход первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен с первым входом блока синхронизации декодера Витерби, выход второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен со вторым входом блока синхронизации декодера Витерби, первый выход блока синхронизации декодера Витерби соединен с третьим входом блока перестановки с инверсией мягких решений, с третьим входом блока перестановки с инверсией закодированных символов, с первым входом компенсатора фазового сдвига в режимах 8PSK и с первым входом компенсатора фазового сдвига в режимах 16QAM, второй выход блока синхронизации декодера Витерби соединен с третьим входом декодера Витерби, второй выход декодера Витерби соединен с третьим входом блока синхронизации декодера Витерби, третий выход блока синхронизации декодера Витерби является выходом no_vit_sync устройства декодирования РТСМ, четвертый выход блока синхронизации декодера Витерби соединен со вторым входом блока кадровой синхронизации и является выходом vit_sync_detect устройства декодирования РТСМ, пятый выход блока синхронизации декодера Витерби соединен со вторым входом блока кодирования и перфорации, третий выход блока кодирования и перфорации соединен с четвертым входом блока синхронизации декодера Витерби, первый выход блока кадровой синхронизации соединен с четвертым входом компенсатора фазового сдвига в режимах 8PSK и с четвертым входом компенсатора фазового сдвига в режимах 16QAM, второй выход блока кадровой синхронизации соединен с третьим входом блока сборки данных и является выходом frame_sync_detect устройства декодирования РТСМ, третьи выходы блока кадровой синхронизации соединены с четвертыми входами блока сборки данных, первый выход блока оценки некодированных бит в режимах 8PSK соединен со вторым входом компенсатора фазового сдвига в режимах 8PSK, второй выход блока оценки некодированных бит в режимах 8PSK соединен с третьим входом компенсатора фазового сдвига в режимах 8PSK, первый выход блока оценки некодированных бит в режимах 16QAM соединен со вторым входом компенсатора фазового сдвига в режимах 16QAM, второй выход блока оценки некодированных бит в режимах 16QAM соединен с третьим входом компенсатора фазового сдвига в режимах 16QAM, пятый вход компенсатора фазового сдвига в режимах 8PSK является входом ext_phase_shift устройства декодирования РТСМ, первый выход компенсатора фазового сдвига в режимах 8PSK соединен с первым входом мультиплексора некодированных данных, второй выход компенсатора фазового сдвига в режимах 8PSK соединен со вторым входом мультиплексора некодированных данных, первый выход компенсатора фазового сдвига в режимах 16QAM соединен с третьим входом мультиплексора некодированных данных, второй выход компенсатора фазового сдвига в режимах 16QAM соединен с четвертым входом мультиплексора некодированных данных, первый выход мультиплексора некодированных данных соединен с первым входом блока сборки данных, второй выход мультиплексора некодированных данных соединен со вторым входом блока сборки данных, первые выходы блока сборки данных являются выходами data_out устройства декодирования РТСМ, причем блок перестановки с инверсией мягких решений содержит первый вычитатель, первый мультиплексор, второй мультиплексор, первый буферный регистр, второй буферный регистр, причем управляющий вход первого мультиплексора соединен с управляющим входом второго мультиплексора и является третьим входом блока перестановки с инверсией мягких решений, первые входы данных первого мультиплексора соединены со входами вычитаемого первого вычитателя и являются первыми входами блока перестановки с инверсией мягких решений, вторые входы данных первого мультиплексора соединены с первыми входами данных второго мультиплексора и являются вторыми входами блока перестановки с инверсией мягких решений, входы уменьшаемого первого вычитателя соединены с шиной константы '15', выходы первого вычитателя соединены со вторыми входами данных второго мультиплексора, выходы первого мультиплексора соединены со входами данных первого буферного регистра, выходы второго мультиплексора соединены со входами данных второго буферного регистра, выходы первого буферного регистра являются первыми выходами блока перестановки с инверсией мягких решений, выходы второго буферного регистра являются вторыми выходами блока перестановки с инверсией мягких решений, причем блок перестановки с инверсией закодированных символов содержит первый инвертор, третий мультиплексор, четвертый мультиплексор, первый D-триггер, второй D-триггер, причем управляющий вход третьего мультиплексора соединен с управляющим входом четвертого мультиплексора и является третьим входом блока перестановки с инверсией закодированных символов, первый вход данных третьего мультиплексора соединен со входом первого инвертора и является вторым входом блока перестановки с инверсией закодированных символов, второй вход данных третьего мультиплексора соединен со вторым входом данных четвертого мультиплексора и является первым входом блока перестановки с инверсией закодированных символов, выход первого инвертора соединен с первым входом данных четвертого мультиплексора, выход третьего мультиплексора соединен с D-входом первого D-триггера, выход четвертого мультиплексора соединен с D-входом второго D-триггера, выход первого D-триггера является вторым выходом блока перестановки с инверсией закодированных символов, выход второго D-триггера является первым выходом блока перестановки с инверсией закодированных символов, причем блок синхронизации декодера Витерби содержит первый элемент И, второй элемент И, третий элемент И, четвертый элемент И, первый счетчик, первый RS-триггер, Т-триггер, пятый элемент И, первый элемент ИЛИ, первый компаратор, шестой элемент И, седьмой элемент И, третий элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, восьмой элемент И, девятый элемент И, десятый элемент И, одиннадцатый элемент И, второй счетчик, пятый мультиплексор, второй RS-триггер, второй компаратор, двенадцатый элемент И, третий счетчик, третий RS-триггер, четвертый RS-триггер, четвертый счетчик, тринадцатый элемент И, третий компаратор, пятый RS-триггер, причем нулевой разряд первых входов первого компаратора соединен с первым входом первого элемента И, первым, инверсным входом второго элемента И, первым входом первого элемента ИЛИ, с R-входом синхронного сброса Т-триггера, со вторым, инверсным входом седьмого элемента И и соединен с шиной 8PSK_5689 устройства декодирования РТСМ, разряды с первого по двенадцатый первых входов первого компаратора соединены с шиной константы единицы, второй вход первого элемента И соединен со вторым входом второго элемента И, с третьим входом пятого элемента И, со вторым входом третьего элемента И, с первым входом четвертого элемента И, со вторым входом девятого элемента И, со вторым входом десятого элемента И, со вторым входом одиннадцатого элемента И и соединен с шиной C2C1_valid устройства декодирования РТСМ, выход первого элемента И соединен со входом инкремента на единицу первого счетчика, выход второго элемента И соединен со входом инкремента на два первого счетчика, инверсный R-вход асинхронного сброса первого счетчика соединен с инверсным R-входом асинхронного сброса первого RS-триггера, с инверсным R-входом асинхронного сброса Т-триггера, с инверсным R-входом асинхронного сброса второго счетчика, с инверсным R-входом асинхронного сброса второго RS-триггера, с инверсным R-входом асинхронного сброса третьего счетчика, с инверсным R-входом асинхронного сброса третьего RS-триггера, с инверсным R-входом асинхронного сброса четвертого RS-триггера, с инверсным R-входом асинхронного сброса пятого RS-триггера, с инверсным R-входом асинхронного сброса четвертого счетчика и соединен с шиной сброса reset устройства декодирования РТСМ, выходы первого счетчика соединены со вторыми входами первого компаратора, пятый разряд выходов первого счетчика соединен с первым входом пятого элемента И, десятый разряд выходов первого счетчика соединен со вторым входом пятого элемента И, выход первого компаратора соединен с первым входом третьего элемента И, с четвертым входом четвертого элемента И, с третьим входом одиннадцатого элемента И, выход третьего элемента И соединен с R-входом синхронного сброса первого RS-триггера, выход пятого элемента И соединен с S-входом первого RS-триггера, выход четвертого элемента И соединен с Т-входом Т-триггера и со вторым входом шестого элемента И, выход Т-триггера соединен со вторым входом первого элемента ИЛИ и является первым выходом блока синхронизации декодера Витерби, выход первого элемента ИЛИ соединен с первым входом шестого элемента И, выход первого RS-триггера соединен с инверсным R-входом синхронного сброса второго счетчика, выход шестого элемента И соединен со входом инкремента на единицу третьего счетчика, со вторым входом двенадцатого элемента И, с S-входом третьего RS-триггера, с S-входом четвертого RS-триггера, первый вход седьмого элемента И является первым входом блока синхронизации декодера Витерби, выход седьмого элемента И соединен с первым входом третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и с первым входом восьмого элемента И, второй вход третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен со вторым входом восьмого элемента И и является вторым входом блока синхронизации декодера Витерби, выход третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен с первым входом девятого элемента И, выход восьмого элемента И соединен с первым входом десятого элемента И, выход девятого элемента И соединен со входом инкремента на единицу второго счетчика, выход десятого элемента И соединен со входом инкремента на два второго счетчика, выходы второго счетчика соединены с первыми входами второго компаратора, первые входы, вторые входы, третьи входы, четвертые входы, пятые входы, шестые входы, седьмые входы, восьмые входы, девятые входы и десятые входы данных пятого мультиплексора соединены соответственно с шинами thres_QPSK12, thres_QPSK23, thres_QPSK34, thres_QPSK56, thres_QPSK78, thres_8PSK23, thres_8PSK56, thres_8PSK89, thres_16QAM34, thres_16QAM78 устройства декодирования РТСМ, управляющие входы пятого мультиплексора соединены с шиной выбора режима кодирования и модуляции mode устройства декодирования РТСМ, выходы пятого мультиплексора соединены со вторыми входами второго компаратора, выход второго компаратора соединен с первым входом одиннадцатого элемента И и со вторым, инверсным входом четвертого элемента И, выход одиннадцатого элемента И соединен с S-входом второго RS-триггера, выход второго RS-триггера соединен с третьим, инверсным входом четвертого элемента И и является четвертым выходом блока синхронизации декодера Витерби, первые входы третьего компаратора соединены с шиной n_last_state_cnt_sym устройства декодирования РТСМ, выходы третьего счетчика соединены со вторыми входами третьего компаратора, выход третьего компаратора соединен с R-входом синхронного сброса третьего счетчика и с первым входом двенадцатого элемента И, выход двенадцатого элемента И соединен с первым входом тринадцатого элемента И и со входом инкремента на единицу четвертого счетчика, R-вход третьего RS-триггера является третьим входом блока синхронизации декодера Витерби, выход третьего RS-триггера является вторым выходом блока синхронизации декодера Витерби, R-вход четвертого RS-триггера является четвертым входом блока синхронизации декодера Витерби, выход четвертого RS-триггера является пятым выходом блока синхронизации декодера Витерби, нулевой разряд выходов четвертого счетчика соединен со вторым входом тринадцатого элемента И, первый разряд выходов четвертого счетчика соединен с третьим входом тринадцатого элемента И, выход тринадцатого элемента И соединен с S-входом пятого RS-триггера, выход пятого RS-триггера является третьим выходом блока синхронизации декодера Витерби, причем блок кадровой синхронизации содержит первый регистр сдвига, селектор кода '47h', селектор кода 'B8h', второй элемент ИЛИ, четырнадцатый элемент И, пятнадцатый элемент И, шестнадцатый элемент И, семнадцатый элемент И, третий элемент ИЛИ, восемнадцатый элемент И, четвертый элемент ИЛИ, девятнадцатый элемент И, пятый элемент ИЛИ, двадцатый элемент И, шестой элемент ИЛИ, пятый счетчик, шестой счетчик, седьмой счетчик, восьмой счетчик, четвертый компаратор, первый дешифратор, селектор кода '7h', двадцать первый элемент И, блок инверторов, шестой RS-триггер, седьмой элемент ИЛИ, двадцать второй элемент И, двадцать третий элемент И, двадцать четвертый элемент И, двадцать пятый элемент И, восьмой элемент ИЛИ, первый шинный формирователь, второй шинный формирователь, третий шинный формирователь, четвертый шинный формирователь, пятый шинный формирователь, шестой шинный формирователь, седьмой шинный формирователь, шестой мультиплексор, девятый счетчик, сумматор, седьмой мультиплексор, девятый элемент ИЛИ, пятый компаратор, второй вычитатель, третий буферный регистр, восьмой мультиплексор, селектор нулевого кода, причем вход первого регистра сдвига является первым входом блока кадровой синхронизации, выходы первого регистра сдвига соединены со входами данных блока инверторов, со входами селектора кода '47h' и со входами селектора кода 'B8h', выход селектора кода '47h' соединен со вторым входом четырнадцатого элемента И и с первым, инверсным входом пятнадцатого элемента И, выход селектора кода 'B8h' соединен со вторым входом шестнадцатого элемента И и с первым, инверсным входом семнадцатого элемента И, первый вход четырнадцатого элемента И соединен с первым входом шестнадцатого элемента И, с инверсным R-входом синхронного сброса шестого RS-триггера, с инверсным R-входом синхронного сброса седьмого счетчика и является вторым входом блока кадровой синхронизации, выход четырнадцатого элемента И соединен со входом инкремента на единицу пятого счетчика, со вторым входом пятого элемента ИЛИ, с первым входом двадцатого элемента И и с первым входом шестого элемента ИЛИ, выход пятнадцатого элемента И соединен с первым входом третьего элемента ИЛИ, выход шестнадцатого элемента И соединен со вторым входом четвертого элемента ИЛИ, с первым входом девятнадцатого элемента И, со входом инкремента на единицу шестого счетчика и со вторым входом шестого элемента ИЛИ, выход семнадцатого элемента И соединен со вторым входом третьего элемента ИЛИ, выход третьего элемента ИЛИ соединен с первым входом четвертого элемента ИЛИ, с первым входом пятого элемента ИЛИ и со входом декремента на единицу седьмого счетчика, выход четвертого элемента ИЛИ соединен со входом декремента на единицу пятого счетчика, выход девятнадцатого элемента И соединен с R-входом синхронного сброса пятого счетчика, выход пятого элемента ИЛИ соединен со входом декремента на единицу шестого счетчика, выход двадцатого элемента И соединен с R-входом синхронного сброса шестого счетчика, выходы пятого счетчика соединены с первыми входами четвертого компаратора, выходы шестого счетчика соединены со вторыми входами четвертого компаратора, выход четвертого компаратора соединен с управляющим входом блока инверторов и является первым выходом блока кадровой синхронизации, выходы блока инверторов являются третьими выходами блока кадровой синхронизации, выход шестого элемента ИЛИ соединен со входом инкремента на единицу седьмого счетчика и с первым входом двадцать первого элемента И, выходы седьмого счетчика соединены со входами первого дешифратора, пятнадцатый разряд выходов первого дешифратора соединен со вторым входом двадцать первого элемента И, нулевой разряд выходов первого дешифратора соединен с третьим, инверсным входом пятнадцатого элемента И, с третьим, инверсным входом семнадцатого элемента И, с первым входом второго элемента ИЛИ, со вторым входом девятнадцатого элемента И, со вторым входом двадцатого элемента И, с инверсным входом инкремента на единицу восьмого счетчика, с R-входом синхронного сброса восьмого счетчика, с первым, инверсным входом двадцать пятого элемента И, с первым входом восьмого элемента ИЛИ, со вторым входом седьмого элемента ИЛИ, с управляющим входом седьмого мультиплексора и с первым входом девятого элемента ИЛИ, выход второго элемента ИЛИ соединен с третьим входом четырнадцатого элемента И и с третьим входом шестнадцатого элемента И, выход восемнадцатого элемента И соединен со вторым входом пятнадцатого элемента И, со вторым входом семнадцатого элемента И, со вторым входом второго элемента ИЛИ и с третьим входом двадцать первого элемента И, выход двадцать первого элемента И соединен с S-входом шестого RS-триггера и с шиной SB_pos_out устройства декодирования РТСМ, выход шестого RS-триггера соединен со вторым, инверсным входом восемнадцатого элемента И и является вторым выходом блока кадровой синхронизации, выходы восьмого счетчика соединены со входами селектора кода '7h', выход селектора кода '7h' соединен со вторым входом двадцать пятого элемента И, с первым входом двадцать второго элемента И и со вторым входом девятого элемента ИЛИ, управляющий вход шестого мультиплексора соединен с первым входом двадцать третьего элемента И, со вторым входом двадцать четвертого элемента И и с шиной 16QAM78 устройства декодирования РТСМ, первые входы данных шестого мультиплексора соединены с шиной константы '0', вторые входы данных шестого мультиплексора соединены с шиной константы '2', выходы шестого мультиплексора соединены с первыми входами пятого компаратора, выход двадцать пятого элемента И соединен со входом инкремента на единицу девятого счетчика, выход двадцать второго элемента И соединен со вторым входом восьмого элемента ИЛИ, выход восьмого элемента ИЛИ соединен с R-входом синхронного сброса девятого счетчика, выходы девятого счетчика соединены со вторыми входами пятого компаратора, выход пятого компаратора соединен с четвертым входом двадцать первого элемента И, со вторым входом двадцать второго элемента И и с первым входом седьмого элемента ИЛИ, выход седьмого элемента ИЛИ соединен со вторым, инверсным входом двадцать третьего элемента И и с первым входом двадцать четвертого элемента И, входы данных первого шинного формирователя соединены с шиной константы '2', управляющий вход первого шинного формирователя соединен с шиной 8PSK23 устройства декодирования РТСМ, входы данных второго шинного формирователя соединены с шиной константы '5', управляющий вход второго шинного формирователя соединен с шиной 8PSK56 устройства декодирования РТСМ, входы данных третьего шинного формирователя соединены с шиной константы '4', управляющий вход третьего шинного формирователя соединен с шиной 8PSK89 устройства декодирования РТСМ, входы данных четвертого шинного формирователя соединены с шиной константы '2', выход двадцать третьего элемента И соединен с управляющим входом четвертого шинного формирователя, входы данных пятого шинного формирователя соединены с шиной константы '3', выход двадцать четвертого элемента И соединен с управляющим входом пятого шинного формирователя, входы данных шестого шинного формирователя соединены с шиной константы '1', управляющий вход шестого шинного формирователя соединен с шиной QPSK устройства декодирования РТСМ, входы данных седьмого шинного формирователя соединены с шиной константы '3', управляющий вход седьмого шинного формирователя соединен с шиной 16QAM34 устройства декодирования РТСМ, выходы первого шинного формирователя соединены с выходами второго шинного формирователя, с выходами третьего шинного формирователя, с выходами четвертого шинного формирователя, с выходами пятого шинного формирователя, с выходами шестого шинного формирователя, с выходами седьмого шинного формирователя, с тремя младшими разрядами первых входов сумматора и с тремя младшими разрядами вторых входов данных седьмого мультиплексора, пять старших разрядов первых входов сумматора и пять старших разрядов вторых входов данных седьмого мультиплексора соединены с шиной константы '0', выходы сумматора соединены с восемью младшими разрядами входов уменьшаемого второго вычитателя и со вторыми входами данных восьмого мультиплексора, старший разряд входов уменьшаемого второго вычитателя соединен с шиной константы '0', входы вычитаемого второго вычитателя соединены с шиной константы '204', младшие разряды выходов второго вычитателя соединены с первыми входами данных восьмого мультиплексора, старший, знаковый разряд выходов второго вычитателя соединен с управляющим входом восьмого мультиплексора, выходы восьмого мультиплексора соединены с первыми входами данных седьмого мультиплексора, выходы седьмого мультиплексора соединены со входами данных третьего буферного регистра, выходы третьего буферного регистра соединены со вторыми входами сумматора и со входами селектора нулевого кода, выход девятого элемента ИЛИ соединен с управляющим входом третьего буферного регистра, выход селектора нулевого кода соединен с первым входом восемнадцатого элемента И, причем блок оценки некодированных бит в режимах 8PSK содержит второй инвертор, девятый мультиплексор, десятый мультиплексор, одиннадцатый мультиплексор, первый умножитель, второй умножитель, шестой компаратор, седьмой компаратор, двадцать шестой элемент И, двадцать седьмой элемент И, десятый элемент ИЛИ, двадцать восьмой элемент И, четвертый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, третий D-триггер, четвертый D-триггер, причем управляющий вход девятого мультиплексора соединен с первым, инверсным входом двадцать восьмого элемента И и с шиной 8PSK23 устройства декодирования РТСМ, первый вход двадцать шестого элемента И соединен с первым, инверсным входом двадцать седьмого элемента И, со входом второго инвертора, с нулевым разрядом вторых входов данных девятого мультиплексора, с управляющим входом одиннадцатого мультиплексора и является третьим входом блока оценки некодированных бит в режимах 8PSK, первый разряд вторых входов данных девятого мультиплексора является четвертым входом данных блока оценки некодированных бит в режимах 8PSK, нулевой разряд первых входов данных девятого мультиплексора соединен с шиной константы '0', выход второго инвертора соединен с первым разрядом первых входов данных девятого мультиплексора, выходы девятого мультиплексора соединены с управляющими входами десятого мультиплексора, первые входы данных десятого мультиплексора соединены с шиной константы K устройства декодирования РТСМ, вторые входы данных десятого мультиплексора соединены с первыми входами данных одиннадцатого мультиплексора и с шиной константы K устройства декодирования РТСМ, третьи входы данных десятого мультиплексора соединены с шиной константы K устройства декодирования РТСМ, четвертые входы данных десятого мультиплексора соединены со вторыми входами данных одиннадцатого мультиплексора и с шиной константы K устройства декодирования РТСМ, выходы десятого мультиплексора соединены с первыми входами первого умножителя, выходы одиннадцатого мультиплексора соединены со вторыми входами второго умножителя, вторые входы первого умножителя соединены с первыми входами второго умножителя и являются первыми входами блока оценки некодированных бит в режимах 8PSK, выходы первого умножителя соединены с первыми входами шестого компаратора, выходы второго умножителя соединены со вторыми входами седьмого компаратора, вторые входы шестого компаратора соединены с первыми входами седьмого компаратора и являются вторыми входами блока оценки некодированных бит в режимах 8PSK, выход шестого компаратора соединен со вторым входом четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, выход седьмого компаратора соединен со вторым входом двадцать шестого элемента И, со вторым, инверсным входом двадцать седьмого элемента И и с D-входом четвертого D-триггера, выход двадцать шестого элемента И соединен с первым входом десятого элемента ИЛИ, выход двадцать седьмого элемента И соединен со вторым входом десятого элемента ИЛИ, выход десятого элемента ИЛИ соединен со вторым входом двадцать восьмого элемента И, выход двадцать восьмого элемента И соединен с первым входом четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, выход четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен с D-входом третьего D-триггера, выход третьего D-триггера является первым выходом блока оценки некодированных бит в режимах 8PSK, выход четвертого D-триггера является вторым выходом блока оценки некодированных бит в режимах 8PSK, причем блок оценки некодированных бит в режимах 16QAM содержит двенадцатый мультиплексор, тринадцатый мультиплексор, восьмой компаратор, девятый компаратор, пятый D-триггер, шестой D-триггер, причем первые входы восьмого компаратора являются первыми входами блока оценки некодированных бит в режимах 16QAM, управляющий вход двенадцатого мультиплексора является третьим входом блока оценки некодированных бит в режимах 16QAM, первые входы данных двенадцатого мультиплексора соединены со вторыми входами данных тринадцатого мультиплексора и с шиной константы -const_16QAM устройства декодирования РТСМ, вторые входы данных двенадцатого мультиплексора соединены с первыми входами данных тринадцатого мультиплексора и с шиной +const_16QAM устройства декодирования РТСМ, управляющий вход тринадцатого мультиплексора является четвертым входом блока оценки некодированных бит в режимах 16QAM, вторые входы девятого компаратора являются вторыми входами блока оценки некодированных бит в режимах 16QAM, выходы двенадцатого мультиплексора соединены со вторыми входами восьмого компаратора, выходы тринадцатого мультиплексора соединены с первыми входами девятого компаратора, выход восьмого компаратора соединен с D-входом пятого D-триггера, выход девятого компаратора соединен с D-входом шестого D-триггера, выход пятого D-триггера является первым выходом блока оценки некодированных бит в режимах 16QAM, выход шестого D-триггера является вторым выходом блока оценки некодированных бит в режимах 16QAM, причем компенсатор фазового сдвига в режимах 8PSK содержит двадцать девятый элемент И, тридцатый элемент И, тридцать первый элемент И, пятый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, тридцать второй элемент И, тридцать третий элемент И, тридцать четвертый элемент И, одиннадцатый элемент ИЛИ, двенадцатый элемент ИЛИ, третий инвертор, четвертый инвертор, пятый инвертор, шестой инвертор, четырнадцатый мультиплексор, шестой элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, седьмой инвертор, восьмой инвертор, пятнадцатый мультиплексор, шестнадцатый мультиплексор, седьмой элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, тридцать пятый элемент И, тридцать шестой элемент И, тридцать седьмой элемент И, тридцать восьмой элемент И, тридцать девятый элемент И, сороковой элемент И, сорок первый элемент И, сорок второй элемент И, сорок третий элемент И, сорок четвертый элемент И, сорок пятый элемент И, сорок шестой элемент И, тринадцатый элемент ИЛИ, четырнадцатый элемент ИЛИ, пятнадцатый элемент ИЛИ, шестнадцатый элемент ИЛИ, девятый инвертор, десятый инвертор, семнадцатый мультиплексор, причем первый вход данных четырнадцатого мультиплексора соединен с первым, инверсным входом двадцать девятого элемента И, с первым входом тридцатого элемента И, с первым входом тридцать первого элемента И, с первым входом пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, с первым входом тридцать второго элемента И, с первым, инверсным входом тридцать третьего элемента И, с первым, инверсным входом тридцать четвертого элемента И, со входом третьего инвертора, с первым и пятым входами данных пятнадцатого мультиплексора, со входом седьмого инвертора, с первым входом шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, со вторым входом седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, со вторым, инверсным входом тридцать пятого элемента И, со вторым входом тридцать седьмого элемента И, со вторым входом тридцать восьмого элемента И, со вторым, инверсным входом сорокового элемента И, со вторым, инверсным входом сорок первого элемента И, со вторым входом сорок третьего элемента И, со вторым входом сорок четвертого элемента И, со вторым, инверсным входом сорок шестого элемента И и является вторым входом компенсатора фазового сдвига в режимах 8PSK,
второй, инверсный вход двадцать девятого элемента И соединен со вторым входом тридцатого элемента И, с третьим, инверсным входом тридцать второго элемента И, со вторым входом тридцать четвертого элемента И, со вторым входом шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, с третьим, инверсным входом тридцать пятого элемента И, со вторым входом тридцать шестого элемента И, с третьим входом тридцать восьмого элемента И, со вторым, инверсным входом тридцать девятого элемента И, с третьим, инверсным входом сорок первого элемента И, со вторым входом сорок второго элемента И, с третьим входом сорок четвертого элемента И, со вторым, инверсным входом сорок пятого элемента И и является седьмым входом компенсатора фазового сдвига в режимах 8PSK, третий, инверсный вход двадцать девятого элемента И соединен со вторым входом тридцать первого элемента И, со вторым входом пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, со вторым входом тридцать второго элемента И, со вторым, инверсным входом тридцать третьего элемента И и является шестым входом компенсатора фазового сдвига в режимах 8PSK,
выход двадцать девятого элемента И соединен с первым входом одиннадцатого элемента ИЛИ, выход тридцатого элемента И соединен со вторым входом одиннадцатого элемента ИЛИ, выход тридцать первого элемента И соединен с третьим входом одиннадцатого элемента ИЛИ, выход одиннадцатого элемента ИЛИ соединен со вторым входом данных четырнадцатого мультиплексора и со входом четвертого инвертора, инверсный выход пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен с третьим входом данных четырнадцатого мультиплексора и со входом пятого инвертора, выход тридцать второго элемента И соединен с первым входом двенадцатого элемента ИЛИ, выход тридцать третьего элемента И соединен со вторым входом двенадцатого элемента ИЛИ, выход тридцать четвертого элемента И соединен с третьим входом двенадцатого элемента ИЛИ, выход двенадцатого элемента ИЛИ соединен с четвертым входом данных четырнадцатого мультиплексора и со входом шестого инвертора, выход третьего инвертора соединен с пятым входом данных четырнадцатого мультиплексора, выход четвертого инвертора соединен с шестым входом данных четырнадцатого мультиплексора, выход пятого инвертора соединен с седьмым входом данных четырнадцатого мультиплексора, выход шестого инвертора соединен с восьмым входом данных четырнадцатого мультиплексора, второй разряд управляющих входов четырнадцатого мультиплексора соединен с первым разрядом управляющих входов пятнадцатого мультиплексора, с первым разрядом управляющих входов семнадцатого мультиплексора и является нулевым разрядом пятых входов компенсатора фазового сдвига в режимах 8PSK, первый разряд управляющих входов четырнадцатого мультиплексора соединен с нулевым разрядом управляющих входов пятнадцатого мультиплексора, с нулевым разрядом управляющих входов семнадцатого мультиплексора и является четвертым входом компенсатора фазового сдвига в режимах 8PSK, нулевой разряд управляющих входов четырнадцатого мультиплексора является первым входом компенсатора фазового сдвига в режимах 8PSK, выход четырнадцатого мультиплексора соединен с первым входом данных шестнадцатого мультиплексора, второй разряд управляющих входов пятнадцатого мультиплексора соединен со вторым разрядом управляющих входов семнадцатого мультиплексора и является первым разрядом пятых входов компенсатора фазового сдвига в режимах 8PSK, выход седьмого инвертора соединен с третьим и седьмым входами данных пятнадцатого мультиплексора, выход шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен со входом восьмого инвертора, с четвертым и восьмым входами данных пятнадцатого мультиплексора, выход восьмого инвертора соединен со вторым и шестым входами данных пятнадцатого мультиплексора, выход пятнадцатого мультиплексора соединен со вторым входом данных шестнадцатого мультиплексора, управляющий вход шестнадцатого мультиплексора соединен с шиной 8PSK23 устройства декодирования РТСМ, выход шестнадцатого мультиплексора является первым выходом компенсатора фазового сдвига в режимах 8PSK, первый вход данных семнадцатого мультиплексора соединен с первым входом седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, со входом десятого инвертора, с первым, инверсным входом тридцать пятого элемента И, с первым входом тридцать шестого элемента И, с первым входом тридцать седьмого элемента И, с первым входом тридцать восьмого элемента И, с первым, инверсным входом тридцать девятого элемента И, с первым, инверсным входом сорокового элемента И, с первым входом сорок первого элемента И, с первым, инверсным входом сорок второго элемента И, с первым, инверсным входом сорок третьего элемента И, с первым, инверсным входом сорок четвертого элемента И, с первым входом сорок пятого элемента И, с первым входом сорок шестого элемента И и является третьим входом компенсатора фазового сдвига в режимах 8PSK, выход седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ соединен со входом девятого инвертора и с седьмым входом данных семнадцатого мультиплексора, выход девятого инвертора соединен с третьим входом данных семнадцатого мультиплексора, выход десятого инвертора соединен с пятым входом данных семнадцатого мультиплексора, выход тридцать пятого элемента И соединен с первым входом тринадцатого элемента ИЛИ, выход тридцать шестого элемента И соединен со вторым входом тринадцатого элемента ИЛИ, выход тридцать седьмого элемента И соединен с третьим входом тринадцатого элемента ИЛИ, выход тринадцатого элемента ИЛИ соединен со вторым входом данных семнадцатого мультиплексора, выход тридцать восьмого элемента И соединен с первым входом четырнадцатого элемента ИЛИ, выход тридцать девятого элемента И соединен со вторым входом четырнадцатого элемента ИЛИ, выход сорокового элемента И соединен с третьим входом четырнадцатого элемента ИЛИ, выход четырнадцатого элемента ИЛИ соединен с четвертым входом данных семнадцатого мультиплексора, выход сорок первого элемента И соединен с первым входом пятнадцатого элемента ИЛИ, выход сорок второго элемента И соединен со вторым входом пятнадцатого элемента ИЛИ, выход сорок третьего элемента И соединен с третьим входом пятнадцатого элемента ИЛИ, выход пятнадцатого элемента ИЛИ соединен с шестым входом данных семнадцатого мультиплексора, выход сорок четвертого элемента И соединен с первым входом шестнадцатого элемента ИЛИ, выход сорок пятого элемента И соединен со вторым входом шестнадцатого элемента ИЛИ, выход сорок шестого элемента И соединен с третьим входом шестнадцатого элемента ИЛИ, выход шестнадцатого элемента ИЛИ соединен с восьмым входом данных семнадцатого мультиплексора, выход семнадцатого мультиплексора является вторым выходом компенсатора фазового сдвига в режимах 8PSK, причем компенсатор фазового сдвига в режимах 16QAM содержит одиннадцатый инвертор, двенадцатый инвертор, восемнадцатый мультиплексор, девятнадцатый мультиплексор, причем первый вход данных восемнадцатого мультиплексора соединен со входом одиннадцатого инвертора, с четвертым входом данных девятнадцатого мультиплексора и является вторым входом компенсатора фазового сдвига в режимах 16QAM, второй вход данных восемнадцатого мультиплексора соединен со входом двенадцатого инвертора, с первым входом данных девятнадцатого мультиплексора и является третьим входом компенсатора фазового сдвига в режимах 16QAM, выход одиннадцатого инвертора соединен с третьим входом данных восемнадцатого мультиплексора и со вторым входом данных девятнадцатого мультиплексора, выход двенадцатого инвертора соединен с четвертым входом данных восемнадцатого мультиплексора и с третьим входом данных девятнадцатого мультиплексора, нулевой разряд управляющих входов восемнадцатого мультиплексора соединен с нулевым разрядом управляющих входов девятнадцатого мультиплексора и является первым входом компенсатора фазового сдвига в режимах 16QAM, первый разряд управляющих входов восемнадцатого мультиплексора соединен с первым разрядом управляющих входов девятнадцатого мультиплексора и является четвертым входом компенсатора фазового сдвига в режимах 16QAM, выход восемнадцатого мультиплексора является первым выходом компенсатора фазового сдвига в режимах 16QAM, выход девятнадцатого мультиплексора является вторым выходом компенсатора фазового сдвига в режимах 16QAM, причем блок сборки данных содержит второй регистр сдвига, четвертый буферный регистр, пятый буферный регистр, буфер задержки кодированных символов, буфер задержки некодированных символов, двадцатый мультиплексор, десятый счетчик, второй дешифратор, десятый компаратор, сорок седьмой элемент И, семнадцатый элемент ИЛИ, причем входы данных четвертого буферного регистра являются четвертыми входами блока сборки данных, выходы четвертого буферного регистра соединены со входами буфера задержки кодированных символов, выходы буфера задержки кодированных символов соединены с первыми входами данных двадцатого мультиплексора, первый вход второго регистра сдвига является первым входом блока сборки данных, второй вход второго регистра сдвига является вторым входом блока сборки данных, вход выбора величины сдвига второго регистра сдвига соединен с шиной 8PSK23 устройства декодирования РТСМ, выходы второго регистра сдвига соединены со входами данных пятого буферного регистра, выходы пятого буферного регистра соединены со входами буфера задержки некодированных символов, выходы буфера задержки некодированных символов соединены со вторыми входами данных двадцатого мультиплексора, выходы двадцатого мультиплексора являются выходами блока сборки данных, первый вход сорок седьмого элемента И соединен с шиной 16QAM78 устройства декодирования РТСМ, инверсный R-вход асинхронного сброса десятого счетчика соединен с шиной сброса reset устройства декодирования РТСМ, выходы десятого счетчика соединены со входами второго дешифратора и с первыми входами десятого компаратора, нулевой разряд выходов второго дешифратора соединен с первым входом семнадцатого элемента ИЛИ, третий разряд выходов второго дешифратора соединен со вторым входом сорок седьмого элемента И, выход сорок седьмого элемента И соединен со вторым входом семнадцатого элемента ИЛИ, пятый разряд выходов второго дешифратора соединен с третьим входом семнадцатого элемента ИЛИ, выход семнадцатого элемента ИЛИ соединен с управляющим входом двадцатого мультиплексора, вторые входы десятого компаратора соединены с шиной n_last_state_cnt_A_L устройства декодирования РТСМ, выход десятого компаратора соединен с R-входом синхронного сброса десятого счетчика.
Взаимодействие введенных функциональных блоков позволяет использовать предлагаемое устройство в составе приемников систем DVB-DSNG или DVB-S, поскольку устройство поддерживает все режимы кодирования и модуляции, определенные в стандарте DVB-DSNG (QPSK, 8PSK, 16QAM), которые, в свою очередь, включают в себя все режимы стандарта DVB-S. Введение компенсаторов фазового сдвига для разрешения фазовой неоднозначности сигнала на выходе I,Q-демодулятора после декодера Витерби позволяет значительно снизить аппаратную сложность устройства, поскольку при этом исключаются операции с многоразрядными числами до декодера Витерби. Это также уменьшает временную задержку выдачи данных устройством после установления кадровой синхронизации.
Сущность изобретения заключается в следующем. Разрешение фазовой неоднозначности I,Q-сигнала на выходе I,Q-демодулятора приемника осуществляется в предлагаемом устройстве в процессе его синхронизации с использованием свойств внутреннего (сверточного) кода, последовательности синхробайт и свойств внешнего (блочного) кода Рида-Соломона. Компенсация возможного фазового сдвига I,Q-сигнала осуществляется распределенно различными блоками устройства. Фазовый сдвиг для бит данных, закодированных сверточным кодом, компенсируется в блоке перестановки с инверсией мягких решений и блоке кадровой синхронизации. Компенсация фазового сдвига для бит данных, не кодированных сверточным кодом, осуществляется компенсатором фазового сдвига в режимах 8PSK или компенсатором фазового сдвига в режимах 16QAM с использованием результатов работы декодера Витерби, блока синхронизации декодера Витерби и блока кадровой синхронизации.
На фиг.1 приведена функциональная схема устройства декодирования РТСМ. На фиг.2 приведена функциональная схема блока перестановки с инверсией мягких решений. На фиг.3 приведена функциональная схема блока перестановки с инверсией закодированных символов. На фиг.4 приведена функциональная схема блока синхронизации декодера Витерби. На фиг.5 приведена функциональная схема блока кадровой синхронизации. На фиг.6 приведена функциональная схема блока оценки некодированных бит в режимах 8PSK. На фиг.7 приведена функциональная схема блока оценки некодированных бит в режимах 16QAM. На фиг.8 приведена функциональная схема компенсатора фазового сдвига в режимах 8PSK. На фиг.9 приведена функциональная схема компенсатора фазового сдвига в режимах 16QAM. На фиг.10 приведена функциональная схема блока сборки данных. На фиг.11 приведена структурная схема системы передачи данных по стандарту DVB-DSNG. На фиг.12 приведен формат передачи данных систем DVB-DSNG и DVB-S. На фиг.13 приведена структурная схема РТСМ-кодера системы DVB-DSNG. На фиг.14 приведена таблица, поясняющая принцип работы параллельно-параллельного преобразователя. На фиг.15 приведена функциональная схема кодера базового сверточного кода, применяемого в системах DVB-DSNG и DVB-S. На фиг.16 приведена таблица, определяющая перфорированные (выколотые) сверточные коды с различными скоростями, получаемые из базового сверточного кода со скоростью 1/2 в соответствии со стандартами DVB-DSNG и DVB-S. На фиг.17 приведена таблица, поясняющая принцип преобразования данных символьным секвенсором. На фиг.18 приведены сигнальные созвездия для различных режимов кодирования и модуляции, применяемых в системе DVB-DSNG. На фиг.19 приведены таблицы трансформации символов сигнального созвездия при сдвигах фазы I,Q-сигнала для различных режимов кодирования и модуляции. На фиг.20 приведено содержание этапов синхронизации РТСМ-декодера в зависимости от режима кодирования и модуляции. На фиг.21 приведена блок-схема алгоритма установления кадровой синхронизации. На фиг.22 приведены решающие правила для восстановления некодированных бит в режиме 8PSK-2/3. На фиг.23 приведены решающие правила для режимов 8PSK-5/6,8/9. На фиг.24 приведена таблица, поясняющая вычисление некодированных бит в режимах кодирования и модуляции 8PSK. На фиг.25 приведены решающие правила для режимов 16QAM-3/4, 7/8. На фиг.26 приведена таблица, поясняющая вычисление некодированных бит в режимах кодирования и модуляции 16QAM. На фиг.27 приведена таблица, поясняющая функционирование счетчика байтов блока сборки данных в зависимости от режима кодирования и модуляции.
В описании устройства и на чертежах используются следующие обозначения:
ETSI - European Telecommunications Standards Institute (Европейский институт стандартизации в электросвязи);
DVB-S - Digital Video Broadcasting - Satellite (аббревиатура, принятая в стандартах ETSI для обозначения системы спутникового цифрового видео (телевизионного) вещания);
DVB-DSNG - Digital Video Broadcasting - Digital Satellite News Gathering (аббревиатура, принятая в стандартах ETSI для обозначения спутниковой системы сбора новостей с цифровой передачей);
РТСМ - Pragmatic Trellis Coded Modulation (практическая решетчатая кодовая модуляция);
M-PSK - M-ary Phase Shift Keying (М-фазная манипуляция);
QPSK - Quaternary Phase Shift Keying (четырехфазная манипуляция);
8PSK - Eight Phase Shift Keying (восьмифазная манипуляция);
QAM - Quadrature Amplitude Modulation (квадратурная амплитудная модуляция);
16QAM-Sixteen Quadrature Amplitude Modulation (16-точечная квадратурная амплитудная модуляция);
СК - сверточный код;
1CBPS - 1 Coded Bit Per Symbol (один закодированный бит на символ);
2CBPS - 2 Coded Bits Per Symbol (два закодированных бита на символ);
PC-код - код Рида-Соломона;
FIFO - буферная память для задержки данных (например, набор регистров, последовательно соединенных m-разрядными шинами);
Т-триггер (RS-триггер, D-триггер, Т-триггер);
RG - буферный регистр, регистр сдвига;
MUX - мультиплексор;
SM - сумматор;
SB - вычитатель;
СТ2 - двоичный счетчик;
BF - шинный формирователь;
MUL - умножитель;
DC - дешифратор.
Устройство декодирования РТСМ (фиг.1) содержит буфер I,Q-компонент сигнала (1), блок перестановки с инверсией мягких решений (2), декодер Витерби (3), блок кодирования и перфорации (4), блок перестановки с инверсией закодированных символов (5), первый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (6), второй элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (7), блок синхронизации декодера Витерби (8), блок кадровой синхронизации (9), блок оценки некодированных бит в режимах 8PSK (10), блок оценки некодированных бит в режимах 16QAM (11), компенсатор фазового сдвига в режимах 8PSK (12), компенсатор фазового сдвига в режимах 16QAM (13), мультиплексор некодированных данных (14), блок сборки данных (15).
На входы буфера компонент I,Q-сигнала (1) подаются соответственно следующие входные данные: семиразрядная I-компонента I,Q-сигнала, семиразрядная Q-компонента I,Q-сигнала, одноразрядные "жесткие" решения С1 и С2. На первые и вторые входы блока перестановки с инверсией мягких решений (2) подаются соответственно следующие входные данные: четырехразрядные "мягкие" решения soft_C1 и soft_C2.
Первые и вторые выходы блока перестановки с инверсией мягких решений (2) соединены соответственно с первыми и вторыми входами декодера Витерби (3). Первый выход декодера Витерби (3) соединен с первым входом блока кодирования и перфорации (4) и с первым входом блока кадровой синхронизации (9). Первый и второй выходы блока кодирования и перфорации (4) соединены соответственно с первым и вторым входами блока перестановки с инверсией закодированных символов (5). Первый выход блока перестановки с инверсией закодированных символов (5) соединен со вторым входом второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (7), с третьим входом блока оценки некодированных бит в режимах 8PSK (10), с третьим входом блока оценки некодированных бит в режимах 16QAM (11) и с седьмым входом компенсатора фазового сдвига в режимах 8PSK (12).
Второй выход блока перестановки с инверсией закодированных символов (5) соединен со вторым входом первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (6), с четвертым входом блока оценки некодированных бит в режимах 8PSK (10), с четвертым входом блока оценки некодированных бит в режимах 16QAM (11) и с шестым входом компенсатора фазового сдвига в режимах 8PSK (12).
Первые выходы буфера I,Q-компонент сигнала (1) соединены с первыми входами блока оценки некодированных бит в режимах 8PSK (10) и с первыми входами блока оценки некодированных бит в режимах 16QAM (11). Вторые выходы буфера I,Q-компонент сигнала (1) соединены со вторыми входами блока оценки некодированных бит в режимах 8PSK (10) и со вторыми входами блока оценки некодированных бит в режимах 16QAM (11). Третий выход буфера I,Q-компонент сигнала (1) соединен с первым входом второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (7). Четвертый выход буфера I,Q-компонент сигнала (1) соединен с первым входом первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (6). Выход первого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (6) соединен с первым входом блока синхронизации декодера Витерби (8), выход второго элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (7) соединен со вторым входом блока синхронизации декодера Витерби (8).
Первый выход блока синхронизации декодера Витерби (8) соединен с третьим входом блока перестановки с инверсией мягких решений (2), с третьим входом блока перестановки с инверсией закодированных символов (5), с первым входом компенсатора фазового сдвига в режимах 8PSK (12) и с первым входом компенсатора фазового сдвига в режимах 16QAM (13). Второй выход блока синхронизации декодера Витерби (8) соединен с третьим входом декодера Витерби (3). Второй выход декодера Витерби (3) соединен с третьим входом блока синхронизации декодера Витерби (8). Третий выход блока синхронизации декодера Витерби (8) является выходом no_vit_sync
устройства декодирования РТСМ. Четвертый выход блока синхронизации декодера Витерби (8) соединен со вторым входом блока кадровой синхронизации (9) и является выходом vit_sync_detect устройства декодирования РТСМ. Пятый выход блока синхронизации декодера Витерби (8) соединен со вторым входом блока кодирования и перфорации (4). Третий выход блока кодирования и перфорации (4) соединен с четвертым входом блока синхронизации декодера Витерби (8).
Первый выход блока кадровой синхронизации (9) соединен с четвертым входом компенсатора фазового сдвига в режимах 8PSK (12) и с четвертым входом компенсатора фазового сдвига в режимах 16QAM (13). Второй выход блока кадровой синхронизации (9) соединен с третьим входом блока сборки данных (15) и является выходом frame_sync_detect устройства декодирования РТСМ. Третьи выходы блока кадровой синхронизации (9) соединены с четвертыми входами блока сборки данных (15). Первый выход блока оценки некодированных бит в режимах 8PSK (10) соединен со вторым входом компенсатора фазового сдвига в режимах 8PSK (12). Второй выход блока оценки некодированных бит в режимах 8PSK (10) соединен с третьим входом компенсатора фазового сдвига в режимах 8PSK (12). Первый выход блока оценки некодированных бит в режимах 16QAM (11) соединен со вторым входом компенсатора фазового сдвига в режимах 16QAM (13). Второй выход блока оценки некодированных бит в режимах 16QAM (11) соединен с третьим входом компенсатора фазового сдвига в режимах 16QAM (13). Пятый вход компенсатора фазового сдвига в режимах 8PSK (12) является входом ext_phase_shift устройства декодирования РТСМ.
Первый выход компенсатора фазового сдвига в режимах 8PSK (12) соединен с первым входом мультиплексора некодированных данных (14). Второй выход компенсатора фазового сдвига в режимах 8PSK (12) соединен со вторым входом мультиплексора некодированных данных (14). Первый выход компенсатора фазового сдвига в режимах 16QAM (13) соединен с третьим входом мультиплексора некодированных данных (14). Второй выход компенсатора фазового сдвига в режимах 16QAM (13) соединен с четвертым входом мультиплексора некодированных данных (14). Первый выход мультиплексора некодированных данных (14) соединен с первым входом блока сборки данных (15), второй выход мультиплексора некодированных данных (14) соединен со вторым входом блока сборки данных (15). Первые выходы блока сборки данных (15) являются выходами data_out устройства декодирования РТСМ.
Блок перестановки с инверсией мягких решений (2) (фиг.2) содержит первый вычитатель (16), первый мультиплексор (17), второй мультиплексор (18), первый буферный регистр (19), второй буферный регистр (20). Управляющий вход первого мультиплексора (17) соединен с управляющим входом второго мультиплексора (18) и является третьим входом блока перестановки с инверсией мягких решений (2). Первые входы данных первого мультиплексора (17) соединены со входами вычитаемого первого вычитателя (16) и являются первыми входами блока перестановки с инверсией мягких решений (2). Вторые входы данных первого мультиплексора (17) соединены с первыми входами данных второго мультиплексора (18) и являются вторыми входами блока перестановки с инверсией мягких решений (2). Входы уменьшаемого первого вычитателя (16) соединены с шиной константы '15'. Выходы первого вычитателя (16) соединены со вторыми входами данных второго мультиплексора (18). Выходы первого мультиплексора (17) соединены со входами данных первого буферного регистра (19). Выходы второго мультиплексора (18) соединены со входами данных второго буферного регистра (20). Выходы первого буферного регистра (19) являются первыми выходами блока перестановки с инверсией мягких решений (2). Выходы второго буферного регистра (20) являются вторыми выходами блока перестановки с инверсией мягких решений (2).
Блок перестановки с инверсией закодированных символов (5) (фиг.3) содержит первый инвертор (21), третий мультиплексор (22), четвертый мультиплексор (23), первый D-триггер (24), второй D-триггер (25). Управляющий вход третьего мультиплексора (22) соединен с управляющим входом четвертого мультиплексора (23) и является третьим входом блока перестановки с инверсией закодированных символов (5). Первый вход данных третьего мультиплексора (22) соединен со входом первого инвертора (21) и является вторым входом блока перестановки с инверсией закодированных символов (5). Второй вход данных третьего мультиплексора (22) соединен со вторым входом данных четвертого мультиплексора (23) и является первым входом блока перестановки с инверсией закодированных символов (5). Выход первого инвертора (21) соединен с первым входом данных четвертого мультиплексора (23). Выход третьего мультиплексора (22) соединен с D-входом первого D-триггера (24). Выход четвертого мультиплексора (23) соединен с D-входом второго D-триггера (25). Выход первого D-триггера (24) является вторым выходом блока перестановки с инверсией закодированных символов (5). Выход второго D-триггера (25) является первым выходом блока перестановки с инверсией закодированных символов (5).
Блок синхронизации декодера Витерби (8) (фиг.4) содержит первый элемент И (26), второй элемент И (27), третий элемент И (28), четвертый элемент И (29), первый счетчик (30), первый RS-триггер (31), Т-триггер (32), пятый элемент И (33), первый элемент ИЛИ (34), первый компаратор (35), шестой элемент И (36), седьмой элемент И (37), третий элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (38), восьмой элемент И (39), девятый элемент И (40), десятый элемент И (41), одиннадцатый элемент И (42), второй счетчик (43), пятый мультиплексор (44), второй RS-триггер (45), второй компаратор (46), двенадцатый элемент И (47), третий счетчик (48), третий RS-триггер (49), четвертый RS-триггер (50), четвертый счетчик (51), третий компаратор (52), тринадцатый элемент И (53), пятый RS-триггер (54).
Нулевой разряд первых входов первого компаратора (35) соединен с первым входом первого элемента И (26), первым, инверсным входом второго элемента И (27), первым входом первого элемента ИЛИ (34), с R-входом синхронного сброса Т-триггера (32), со вторым, инверсным входом седьмого элемента И (37) и соединен с шиной 8PSK_5689 устройства декодирования РТСМ. Разряды с первого по двенадцатый первых входов первого компаратора (35) соединены с шиной константы единицы, второй вход первого элемента И (26) соединен со вторым входом второго элемента И (27), с третьим входом пятого элемента И (33), со вторым входом третьего элемента И (28), с первым входом четвертого элемента И (29), со вторым входом девятого элемента И (40), со вторым входом десятого элемента И (41), со вторым входом одиннадцатого элемента И (42) и соединен с шиной C2C1_valid устройства декодирования РТСМ.
Выход первого элемента И (26) соединен со входом инкремента на единицу первого счетчика (30), выход второго элемента И (27) соединен со входом инкремента на два первого счетчика (30), инверсный R-вход асинхронного сброса первого счетчика (30) соединен с инверсным R-входом асинхронного сброса первого RS-триггера (31), с инверсным R-входом асинхронного сброса Т-триггера (32), с инверсным R-входом асинхронного сброса второго счетчика (43), с инверсным R-входом асинхронного сброса второго RS-триггера (45), с инверсным R-входом асинхронного сброса третьего счетчика (48), с инверсным R-входом асинхронного сброса третьего RS-триггера (49), с инверсным R-входом асинхронного сброса четвертого RS-триггера (50), с инверсным R-входом асинхронного сброса пятого RS-триггера (54), с инверсным R-входом асинхронного сброса четвертого счетчика (51) и соединен с шиной сброса reset устройства декодирования РТСМ. Выходы первого счетчика (30) соединены со вторыми входами первого компаратора (35), пятый разряд выходов первого счетчика (30) соединен с первым входом пятого элемента И (33), десятый разряд выходов первого счетчика (30) соединен со вторым входом пятого элемента И (33). Выход первого компаратора (35) соединен с первым входом третьего элемента И (28), с четвертым входом четвертого элемента И (29), с третьим входом одиннадцатого элемента И (42). Выход третьего элемента И (28) соединен с R-входом синхронного сброса первого RS-триггера (31), выход пятого элемента И (33) соединен с S-входом первого RS-триггера (31), выход четвертого элемента И (29) соединен с Т-входом Т-триггера (32) и со вторым входом шестого элемента И (36). Выход Т-триггера (32) соединен со вторым входом первого элемента ИЛИ (34) и является первым выходом блока синхронизации декодера Витерби (8). Выход первого элемента ИЛИ (34) соединен с первым входом шестого элемента И (36). Выход первого RS-триггера (31) соединен с инверсным R-входом синхронного сброса второго счетчика (43). Выход шестого элемента И (36) соединен со входом инкремента на единицу третьего счетчика (48), со вторым входом двенадцатого элемента И (47), с S-входом третьего RS-триггера (49), с S-входом четвертого RS-триггера (50), первый вход седьмого элемента И (37) является первым входом блока синхронизации декодера Витерби (8). Выход седьмого элемента И (37) соединен с первым входом третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (38) и с первым входом восьмого элемента И (39). Второй вход третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (38) соединен со вторым входом восьмого элемента И (39) и является вторым входом блока синхронизации декодера Витерби (8).
Выход третьего элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (38) соединен с первым входом девятого элемента И (40). Выход восьмого элемента И (39) соединен с первым входом десятого элемента И (41). Выход девятого элемента И (40) соединен со входом инкремента на единицу второго счетчика (43). Выход десятого элемента И (41) соединен со входом инкремента на два второго счетчика (43). Выходы второго счетчика (43) соединены с первыми входами второго компаратора (46).
Первые входы, вторые входы, третьи входы, четвертые входы, пятые входы, шестые входы, седьмые входы, восьмые входы, девятые входы и десятые входы данных пятого мультиплексора (44) соединены соответственно с шинами thres_QPSK12, thres_QPSK23, thres_QPSK34, thres_QPSK56, thres_QPSK78, thres_8PSK23, thres_8PSK56, thres_8PSK89, thres_16QAM34, thres_16QAM78 устройства декодирования РТСМ. Управляющие входы пятого мультиплексора (44) соединены с шиной выбора режима кодирования и модуляции mode устройства декодирования РТСМ. Выходы пятого мультиплексора (44) соединены со вторыми входами второго компаратора (46). Выход второго компаратора (46) соединен с первым входом одиннадцатого элемента И (42) и со вторым, инверсным входом четвертого элемента И (29). Выход одиннадцатого элемента И (42) соединен с S-входом второго RS-триггера (45). Выход второго RS-триггера (45) соединен с третьим, инверсным входом четвертого элемента И (29) и является четвертым выходом блока синхронизации декодера Витерби (8). Первые входы третьего компаратора (52) соединены с шиной n_last_state_cnt_sym устройства декодирования РТСМ.
Выходы третьего счетчика (48) соединены со вторыми входами третьего компаратора (52). Выход третьего компаратора (52) соединен с R-входом синхронного сброса третьего счетчика (48) и с первым входом двенадцатого элемента И (47). Выход двенадцатого элемента И (47) соединен с первым входом тринадцатого элемента И (53) и со входом инкремента на единицу четвертого счетчика (51). R-вход третьего RS-триггера (49) является третьим входом блока синхронизации декодера Витерби (8). Выход третьего RS-триггера (49) является вторым выходом блока синхронизации декодера Витерби (8). R-вход четвертого RS-триггера (50) является четвертым входом блока синхронизации декодера Витерби (8). Выход четвертого RS-триггера (50) является пятым выходом блока синхронизации декодера Витерби (8). Нулевой разряд выходов четвертого счетчика (51) соединен со вторым входом тринадцатого элемента И (53), первый разряд выходов четвертого счетчика (51) соединен с третьим входом тринадцатого элемента И (53). Выход тринадцатого элемента И (53) соединен с S-входом пятого RS-триггера (54). Выход пятого RS-триггера (54) является третьим выходом блока синхронизации декодера Витерби (8).
Блок кадровой синхронизации (9) (фиг.5) содержит первый регистр сдвига (55), селектор кода '47h' (56), селектор кода 'B8h' (57), второй элемент ИЛИ (58), четырнадцатый элемент И (59), пятнадцатый элемент И (60), шестнадцатый элемент И (61), семнадцатый элемент И (62), третий элемент ИЛИ (63), восемнадцатый элемент И (64), четвертый элемент ИЛИ (65), девятнадцатый элемент И (66), пятый элемент ИЛИ (67), двадцатый элемент И (68), шестой элемент ИЛИ (69), пятый счетчик (70), шестой счетчик (71), седьмой счетчик (72), восьмой счетчик (73), четвертый компаратор (74), первый дешифратор (75), селектор кода '7h' (76), двадцать первый элемент И (77), блок инверторов (78), шестой RS-триггер (79), седьмой элемент ИЛИ (80), двадцать второй элемент И (81), двадцать третий элемент И (82), двадцать четвертый элемент И (83), двадцать пятый элемент И (84), восьмой элемент ИЛИ (85), первый шинный формирователь (86), второй шинный формирователь (87), третий шинный формирователь (88), четвертый шинный формирователь (89), пятый шинный формирователь (90), шестой шинный формирователь (91), седьмой шинный формирователь (92), шестой мультиплексор (93), девятый счетчик (94), сумматор (95), седьмой мультиплексор (96), девятый элемент ИЛИ (97), пятый компаратор (98), второй вычитатель (99), третий буферный регистр (100), восьмой мультиплексор (101), селектор нулевого кода (102).
Вход первого регистра сдвига (55) является первым входом блока кадровой синхронизации (9). Выходы первого регистра сдвига (55) соединены со входами данных блока инверторов (78), со входами селектора кода '47h' (56) и со входами селектора кода 'B8h' (57). Выход селектора кода '47h' (56) соединен со вторым входом четырнадцатого элемента И (59) и с первым, инверсным входом пятнадцатого элемента И (60). Выход селектора кода 'B8h' (57) соединен со вторым входом шестнадцатого элемента И (61) и с первым, инверсным входом семнадцатого элемента И (62). Первый вход четырнадцатого элемента И (59) соединен с первым входом шестнадцатого элемента И (61), с инверсным R-входом синхронного сброса шестого RS-триггера (79), с инверсным R-входом синхронного сброса седьмого счетчика (72) и является вторым входом блока кадровой синхронизации (9). Выход четырнадцатого элемента И (59) соединен со входом инкремента на единицу пятого счетчика (70), со вторым входом пятого элемента ИЛИ (67), с первым входом двадцатого элемента И (68) и с первым входом шестого элемента ИЛИ (69). Выход пятнадцатого элемента И (60) соединен с первым входом третьего элемента ИЛИ (63). Выход шестнадцатого элемента И (61) соединен со вторым входом четвертого элемента ИЛИ (65), с первым входом девятнадцатого элемента И (66), со входом инкремента на единицу шестого счетчика (71) и со вторым входом шестого элемента ИЛИ (69). Выход семнадцатого элемента И (62) соединен со вторым входом третьего элемента ИЛИ (63). Выход третьего элемента ИЛИ (63) соединен с первым входом четвертого элемента ИЛИ (65), с первым входом пятого элемента ИЛИ (67) и со входом декремента на единицу седьмого счетчика (72). Выход четвертого элемента ИЛИ (65) соединен со входом декремента на единицу пятого счетчика (70). Выход девятнадцатого элемента И (66) соединен с R-входом синхронного сброса пятого счетчика (70). Выход пятого элемента ИЛИ (67) соединен со входом декремента на единицу шестого счетчика (71). Выход двадцатого элемента И (68) соединен с R-входом синхронного сброса шестого счетчика (71). Выходы пятого счетчика (70) соединены с первыми входами четвертого компаратора (74). Выходы шестого счетчика (71) соединены со вторыми входами четвертого компаратора (74). Выход четвертого компаратора (74) соединен с управляющим входом блока инверторов (78) и является первым выходом блока кадровой синхронизации (9). Выходы блока инверторов (78) являются третьими выходами блока кадровой синхронизации (9). Выход шестого элемента ИЛИ (69) соединен со входом инкремента на единицу седьмого счетчика (72) и с первым входом двадцать первого элемента И (77).
Выходы седьмого счетчика (72) соединены со входами первого дешифратора (75). Пятнадцатый разряд выходов первого дешифратора (75) соединен со вторым входом двадцать первого элемента И (77). Нулевой разряд выходов первого дешифратора (75) соединен с третьим, инверсным входом пятнадцатого элемента И (60), с третьим, инверсным входом семнадцатого элемента И (62), с первым входом второго элемента ИЛИ (58), со вторым входом девятнадцатого элемента И (66), со вторым входом двадцатого элемента И (68), с инверсным входом инкремента на единицу восьмого счетчика (73), с R-входом синхронного сброса восьмого счетчика (73), с первым, инверсным входом двадцать пятого элемента И (84), с первым входом восьмого элемента ИЛИ (85), со вторым входом седьмого элемента ИЛИ (80), с управляющим входом седьмого мультиплексора (96) и с первым входом девятого элемента ИЛИ (97). Выход второго элемента ИЛИ (58) соединен с третьим входом четырнадцатого элемента И (59) и с третьим входом шестнадцатого элемента И (61). Выход восемнадцатого элемента И (64) соединен со вторым входом пятнадцатого элемента И (60), со вторым входом семнадцатого элемента И (62), со вторым входом второго элемента ИЛИ (58) и с третьим входом двадцать первого элемента И (77). Выход двадцать первого элемента И (77) соединен с S-входом шестого RS-триггера (79) и с шиной SB_pos_out устройства декодирования РТСМ.
Выход шестого RS-триггера (79) соединен со вторым, инверсным входом восемнадцатого элемента И (64) и является вторым выходом блока кадровой синхронизации (9). Выходы восьмого счетчика (73) соединены со входами селектора кода '7h' (76). Выход селектора кода '7h' (76) соединен со вторым входом двадцать пятого элемента И (84), с первым входом двадцать второго элемента И (81) и со вторым входом девятого элемента ИЛИ (97). Управляющий вход шестого мультиплексора (93) соединен с первым входом двадцать третьего элемента И (82), со вторым входом двадцать четвертого элемента И (83) и с шиной 16QAM78 устройства декодирования РТСМ.
Первые входы данных шестого мультиплексора (93) соединены с шиной константы '0', вторые входы данных шестого мультиплексора (93) соединены с шиной константы '2'. Выходы шестого мультиплексора (93) соединены с первыми входами пятого компаратора (98). Выход двадцать пятого элемента И (84) соединен со входом инкремента на единицу девятого счетчика (94). Выход двадцать второго элемента И (81) соединен со вторым входом восьмого элемента ИЛИ (85). Выход восьмого элемента ИЛИ (85) соединен с R-входом синхронного сброса девятого счетчика (94). Выходы девятого счетчика (94) соединены со вторыми входами пятого компаратора (98). Выход пятого компаратора (98) соединен с четвертым входом двадцать первого элемента И (77), со вторым входом двадцать второго элемента И (81) и с первым входом седьмого элемента ИЛИ (80). Выход седьмого элемента ИЛИ (80) соединен со вторым, инверсным входом двадцать третьего элемента И (82) и с первым входом двадцать четвертого элемента И (83).
Входы данных первого шинного формирователя (86) соединены с шиной константы '2'. Управляющий вход первого шинного формирователя (86) соединен с шиной 8PSK23 устройства декодирования РТСМ. Входы данных второго шинного формирователя (87) соединены с шиной константы '5'. Управляющий вход второго шинного формирователя (87) соединен с шиной 8PSK56 устройства декодирования РТСМ. Входы данных третьего шинного формирователя (88) соединены с шиной константы '4'. Управляющий вход третьего шинного формирователя (88) соединен с шиной 8PSK89 устройства декодирования РТСМ. Входы данных четвертого шинного формирователя (89) соединены с шиной константы '2'. Выход двадцать третьего элемента И (82) соединен с управляющим входом четвертого шинного формирователя (89). Входы данных пятого шинного формирователя (90) соединены с шиной константы '3'. Выход двадцать четвертого элемента И (83) соединен с управляющим входом пятого шинного формирователя (90). Входы данных шестого шинного формирователя (91) соединены с шиной константы '1'. Управляющий вход шестого шинного формирователя (91) соединен с шиной QPSK устройства декодирования РТСМ. Входы данных седьмого шинного формирователя (92) соединены с шиной константы '3'. Управляющий вход седьмого шинного формирователя (92) соединен с шиной 16QAM34 устройства декодирования РТСМ. Выходы первого шинного формирователя (86) соединены с выходами второго шинного формирователя (87), с выходами третьего шинного формирователя (88), с выходами четвертого шинного формирователя (89), с выходами пятого шинного формирователя (90), с выходами шестого шинного формирователя (91), с выходами седьмого шинного формирователя (92), с тремя младшими разрядами первых входов сумматора (95) и с тремя младшими разрядами вторых входов данных седьмого мультиплексора (96). Пять старших разрядов первых входов сумматора (95) и пять старших разрядов вторых входов данных седьмого мультиплексора (96) соединены с шиной константы '0'. Выходы сумматора (95) соединены с восемью младшими разрядами входов уменьшаемого второго вычитателя (99) и со вторыми входами данных восьмого мультиплексора (101). Старший разряд входов уменьшаемого второго вычитателя (99) соединен с шиной константы '0'. Входы вычитаемого второго вычитателя (99) соединены с шиной константы '204'. Младшие разряды выходов второго вычитателя (99) соединены с первыми входами данных восьмого мультиплексора (101). Старший, знаковый разряд выходов второго вычитателя (99) соединен с управляющим входом восьмого мультиплексора (101). Выходы восьмого мультиплексора (101) соединены с первыми входами данных седьмого мультиплексора (96). Выходы седьмого мультиплексора (96) соединены со входами данных третьего буферного регистра (100). Выходы третьего буферного регистра (100) соединены со вторыми входами сумматора (95) и со входами селектора нулевого кода (102). Выход девятого элемента ИЛИ (97) соединен с управляющим входом третьего буферного регистра (100). Выход селектора нулевого кода (102) соединен с первым входом восемнадцатого элемента И (64).
Блок оценки некодированных бит в режимах 8PSK (10) (фиг.6) содержит второй инвертор (103), девятый мультиплексор (104), десятый мультиплексор (105), одиннадцатый мультиплексор (106), первый умножитель (107), второй умножитель (108), шестой компаратор (109), седьмой компаратор (110), двадцать шестой элемент И (111), двадцать седьмой элемент И (112), десятый элемент ИЛИ (113), двадцать восьмой элемент И (114), четвертый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (115), третий D-триггер (116), четвертый D-триггер (117).
Управляющий вход девятого мультиплексора (104) соединен с первым, инверсным входом двадцать восьмого элемента И (114) и с шиной 8PSK23 устройства декодирования РТСМ. Первый вход двадцать шестого элемента И (111) соединен с первым, инверсным входом двадцать седьмого элемента И (112), со входом второго инвертора (103), с нулевым разрядом вторых входов данных девятого мультиплексора (104), с управляющим входом одиннадцатого мультиплексора (106) и является третьим входом блока оценки некодированных бит в режимах 8PSK (10).
Первый разряд вторых входов данных девятого мультиплексора (104) является четвертым входом данных блока оценки некодированных бит в режимах 8PSK (10). Нулевой разряд первых входов данных девятого мультиплексора (104) соединен с шиной константы '0'. Выход второго инвертора (103) соединен с первым разрядом первых входов данных девятого мультиплексора (104). Выходы девятого мультиплексора (104) соединены с управляющими входами десятого мультиплексора (105).
00
01
10
11
Первые входы данных десятого мультиплексора (105) соединены с шиной константы К устройства декодирования РТСМ. Вторые входы данных десятого мультиплексора (105) соединены с первыми входами данных одиннадцатого мультиплексора (106) и с шиной константы K устройства декодирования РТСМ. Третьи входы данных десятого мультиплексора (105) соединены с шиной константы К устройства декодирования РТСМ. Четвертые входы данных десятого мультиплексора (105) соединены со вторыми входами данных одиннадцатого мультиплексора (106) и с шиной константы К устройства декодирования РТСМ. Выходы десятого мультиплексора (105) соединены с первыми входами первого умножителя (107). Выходы одиннадцатого мультиплексора (106) соединены со вторыми входами второго умножителя (108). Вторые входы первого умножителя (107) соединены с первыми входами второго умножителя (108) и являются первыми входами блока оценки некодированных бит в режимах 8PSK (10). Выходы первого умножителя (107) соединены с первыми входами шестого компаратора (109). Выходы второго умножителя (108) соединены со вторыми входами седьмого компаратора (110). Вторые входы шестого компаратора (109) соединены с первыми входами седьмого компаратора (110) и являются вторыми входами блока оценки некодированных бит в режимах 8PSK (10).
Выход шестого компаратора (109) соединен со вторым входом четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (115). Выход седьмого компаратора (110) соединен со вторым входом двадцать шестого элемента И (111), со вторым, инверсным входом двадцать седьмого элемента И (112) и с D-входом четвертого D-триггера (117). Выход двадцать шестого элемента И (111) соединен с первым входом десятого элемента ИЛИ (113). Выход двадцать седьмого элемента И (112) соединен со вторым входом десятого элемента ИЛИ (113). Выход десятого элемента ИЛИ (113) соединен со вторым входом двадцать восьмого элемента И (114). Выход двадцать восьмого элемента И (114) соединен с первым входом четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (115). Выход четвертого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (115) соединен с D-входом третьего D-триггера (116). Выход третьего D-триггера (116) является первым выходом блока оценки некодированных бит в режимах 8PSK (10). Выход четвертого D-триггера (117) является вторым выходом блока оценки некодированных бит в режимах 8PSK (10).
Блок оценки некодированных бит в режимах 16QAM (11) содержит двенадцатый мультиплексор (118), тринадцатый мультиплексор (119), восьмой компаратор (120), девятый компаратор (121), пятый D-триггер (122), шестой D-триггер (123).
Первые входы восьмого компаратора (120) являются первыми входами блока оценки некодированных бит в режимах 16QAM (11). Управляющий вход двенадцатого мультиплексора (118) является третьим входом блока оценки некодированных бит в режимах 16QAM (11). Первые входы данных двенадцатого мультиплексора (118) соединены со вторыми входами данных тринадцатого мультиплексора (119) и с шиной константы -const_16QAM устройства декодирования РТСМ. Вторые входы данных двенадцатого мультиплексора (118) соединены с первыми входами данных тринадцатого мультиплексора (119) и с шиной +const_16QAM устройства декодирования РТСМ. Управляющий вход тринадцатого мультиплексора (119) является четвертым входом блока оценки некодированных бит в режимах 16QAM (11). Вторые входы девятого компаратора (121) являются вторыми входами блока оценки некодированных бит в режимах 16QAM (11). Выходы двенадцатого мультиплексора (118) соединены со вторыми входами восьмого компаратора (120). Выходы тринадцатого мультиплексора (119) соединены с первыми входами девятого компаратора (121). Выход восьмого компаратора (120) соединен с D-входом пятого D-триггера (122). Выход девятого компаратора (121) соединен с D-входом шестого D-триггера (123). Выход пятого D-триггера (122) является первым выходом блока оценки некодированных бит в режимах 16QAM (11). Выход шестого D-триггера (123) является вторым выходом блока оценки некодированных бит в режимах 16QAM (11).
Компенсатор фазового сдвига в режимах 8PSK (12) содержит двадцать девятый элемент И (124), тридцатый элемент И (125), тридцать первый элемент И (126), пятый элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (127), тридцать второй элемент И (128), тридцать третий элемент И (129), тридцать четвертый элемент И (130), одиннадцатый элемент ИЛИ (131), двенадцатый элемент ИЛИ (132), третий инвертор (133), четвертый инвертор (134), пятый инвертор (135), шестой инвертор (136), четырнадцатый мультиплексор (137), шестой элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (138), седьмой инвертор (139), восьмой инвертор (140), пятнадцатый мультиплексор (141), шестнадцатый мультиплексор (142), седьмой элемент ИСКЛЮЧАЮЩЕЕ ИЛИ (143), тридцать пятый элемент И (144), тридцать шестой элемент И (145), тридцать седьмой элемент И (146), тридцать восьмой элемент И (147), тридцать девятый элемент И (148), сороковой элемент И (149), сорок первый элемент И (150), сорок второй элемент И (151), сорок третий элемент И (152), сорок четвертый элемент И (153), сорок пятый элемент И (154), сорок шестой элемент И (155), тринадцатый элемент ИЛИ (156), четырнадцатый элемент ИЛИ (157), пятнадцатый элемент ИЛИ (158), шестнадцатый элемент ИЛИ (159), девятый инвертор (160), десятый инвертор (161), семнадцатый мультиплексор (162).
Первый вход данных четырнадцатого мультиплексора (137) соединен с первым, инверсным входом двадцать девятого элемента И (124), с первым входом тридцатого элемента И (125), с первым входом тридцать первого элемента И (126), с первым входом пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (127), с первым входом тридцать второго элемента И (128), с первым, инверсным входом тридцать третьего элемента И (129), с первым, инверсным входом тридцать четвертого элемента И (130), со входом третьего инвертора (133), с первым и пятым входами данных пятнадцатого мультиплексора (141), со входом седьмого инвертора (139), с первым входом шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (138), со вторым входом седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (143), со вторым, инверсным входом тридцать пятого элемента И (144), со вторым входом тридцать седьмого элемента И (146), со вторым входом тридцать восьмого элемента И (147), со вторым, инверсным входом сорокового элемента И (149), со вторым, инверсным входом сорок первого элемента И (150), со вторым входом сорок третьего элемента И (152), со вторым входом сорок четвертого элемента И (153), со вторым, инверсным входом сорок шестого элемента И (155) и является вторым входом компенсатора фазового сдвига в режимах 8PSK (12).
Второй, инверсный вход двадцать девятого элемента И (124) соединен со вторым входом тридцатого элемента И (125), с третьим, инверсным входом тридцать второго элемента И (128), со вторым входом тридцать четвертого элемента И (130), со вторым входом шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (138), с третьим, инверсным входом тридцать пятого элемента И (144), со вторым входом тридцать шестого элемента И (145), с третьим входом тридцать восьмого элемента И (147), со вторым, инверсным входом тридцать девятого элемента И (148), с третьим, инверсным входом сорок первого элемента И (150), со вторым входом сорок второго элемента И (151), с третьим входом сорок четвертого элемента И (153), со вторым, инверсным входом сорок пятого элемента И (154) и является седьмым входом компенсатора фазового сдвига в режимах 8PSK (12).
Третий, инверсный вход двадцать девятого элемента И (124) соединен со вторым входом тридцать первого элемента И (126), со вторым входом пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (127), со вторым входом тридцать второго элемента И (128), со вторым, инверсным входом тридцать третьего элемента И (129) и является шестым входом компенсатора фазового сдвига в режимах 8PSK (12).
Выход двадцать девятого элемента И (124) соединен с первым входом одиннадцатого элемента ИЛИ (131). Выход тридцатого элемента И (125) соединен со вторым входом одиннадцатого элемента ИЛИ (131). Выход тридцать первого элемента И (126) соединен с третьим входом одиннадцатого элемента ИЛИ (131). Выход одиннадцатого элемента ИЛИ (131) соединен со вторым входом данных четырнадцатого мультиплексора (137) и со входом четвертого инвертора (134). Инверсный выход пятого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (127) соединен с третьим входом данных четырнадцатого мультиплексора (137) и со входом пятого инвертора (135).
Выход тридцать второго элемента И (128) соединен с первым входом двенадцатого элемента ИЛИ (132). Выход тридцать третьего элемента И (129) соединен со вторым входом двенадцатого элемента ИЛИ (132). Выход тридцать четвертого элемента И (130) соединен с третьим входом двенадцатого элемента ИЛИ (132). Выход двенадцатого элемента ИЛИ (132) соединен с четвертым входом данных четырнадцатого мультиплексора (137) и со входом шестого инвертора (136). Выход третьего инвертора (133) соединен с пятым входом данных четырнадцатого мультиплексора (137). Выход четвертого инвертора (134) соединен с шестым входом данных четырнадцатого мультиплексора (137). Выход пятого инвертора (135) соединен с седьмым входом данных четырнадцатого мультиплексора (137). Выход шестого инвертора (136) соединен с восьмым входом данных четырнадцатого мультиплексора (137).
Второй разряд управляющих входов четырнадцатого мультиплексора (137) соединен с первым разрядом управляющих входов пятнадцатого мультиплексора (141), с первым разрядом управляющих входов семнадцатого мультиплексора (162) и является нулевым разрядом пятых входов компенсатора фазового сдвига в режимах 8PSK (12). Первый разряд управляющих входов четырнадцатого мультиплексора (137) соединен с нулевым разрядом управляющих входов пятнадцатого мультиплексора (141), с нулевым разрядом управляющих входов семнадцатого мультиплексора (162) и является четвертым входом компенсатора фазового сдвига в режимах 8PSK (12). Нулевой разряд управляющих входов четырнадцатого мультиплексора (137) является первым входом компенсатора фазового сдвига в режимах 8PSK (12). Выход четырнадцатого мультиплексора (137) соединен с первым входом данных шестнадцатого мультиплексора (142). Второй разряд управляющих входов пятнадцатого мультиплексора (141) соединен со вторым разрядом управляющих входов семнадцатого мультиплексора (162) и является первым разрядом пятых входов компенсатора фазового сдвига в режимах 8PSK (12).
Выход седьмого инвертора (139) соединен с третьим и седьмым входами данных пятнадцатого мультиплексора (141). Выход шестого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (138) соединен со входом восьмого инвертора (140), с четвертым и восьмым входами данных пятнадцатого мультиплексора (141). Выход восьмого инвертора соединен со вторым и шестым входами данных пятнадцатого мультиплексора (141). Выход пятнадцатого мультиплексора (141) соединен со вторым входом данных шестнадцатого мультиплексора (142). Управляющий вход шестнадцатого мультиплексора (142) соединен с шиной 8PSK23 устройства декодирования РТСМ. Выход шестнадцатого мультиплексора (142) является первым выходом компенсатора фазового сдвига в режимах 8PSK (12).
Первый вход данных семнадцатого мультиплексора (162) соединен с первым входом седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (143), со входом десятого инвертора (161), с первым, инверсным входом тридцать пятого элемента И (144), с первым входом тридцать шестого элемента И (145), с первым входом тридцать седьмого элемента И (146), с первым входом тридцать восьмого элемента И (147), с первым, инверсным входом тридцать девятого элемента И (148), с первым, инверсным входом сорокового элемента И (149), с первым входом сорок первого элемента И (150), с первым, инверсным входом сорок второго элемента И (151), с первым, инверсным входом сорок третьего элемента И (152), с первым, инверсным входом сорок четвертого элемента И (153), с первым входом сорок пятого элемента И (154), с первым входом сорок шестого элемента И (155) и является третьим входом компенсатора фазового сдвига в режимах 8PSK (12).
Выход седьмого элемента ИСКЛЮЧАЮЩЕЕ ИЛИ (143) соединен со входом девятого инвертора (160) и с седьмым входом данных семнадцатого мультиплексора (162). Выход девятого инвертора (160) соединен с третьим входом данных семнадцатого мультиплексора (162). Выход десятого инвертора (161) соединен с пятым входом данных семнадцатого мультиплексора (162). Выход тридцать пятого элемента И (144) соединен с первым входом тринадцатого элемента ИЛИ (156). Выход тридцать шестого элемента И (145) соединен со вторым входом тринадцатого элемента ИЛИ (156). Выход тридцать седьмого элемента И (146) соединен с третьим входом тринадцатого элемента ИЛИ (156). Выход тринадцатого элемента ИЛИ (156) соединен со вторым входом данных семнадцатого мультиплексора (162).
Выход тридцать восьмого элемента И (147) соединен с первым входом четырнадцатого элемента ИЛИ (157). Выход тридцать девятого элемента И (148) соединен со вторым входом четырнадцатого элемента ИЛИ (157). Выход сорокового элемента И (149) соединен с третьим входом четырнадцатого элемента ИЛИ (157). Выход четырнадцатого элемента ИЛИ (157) соединен с четвертым входом данных семнадцатого мультиплексора (162). Выход сорок первого элемента И (150) соединен с первым входом пятнадцатого элемента ИЛИ (158). Выход сорок второго элемента И (151) соединен со вторым входом пятнадцатого элемента ИЛИ (158). Выход сорок третьего элемента И (152) соединен с третьим входом пятнадцатого элемента ИЛИ (158). Выход пятнадцатого элемента ИЛИ (158) соединен с шестым входом данных семнадцатого мультиплексора (162). Выход сорок четвертого элемента И (153) соединен с первым входом шестнадцатого элемента ИЛИ (159). Выход сорок пятого элемента И (154) соединен со вторым входом шестнадцатого элемента ИЛИ (159). Выход сорок шестого элемента И (155) соединен с третьим входом шестнадцатого элемента ИЛИ (159). Выход шестнадцатого элемента ИЛИ (159) соединен с восьмым входом данных семнадцатого мультиплексора (162). Выход семнадцатого мультиплексора (162) является вторым выходом компенсатора фазового сдвига в режимах 8PSKQ2).
Компенсатор фазового сдвига в режимах 16QAM (13) содержит одиннадцатый инвертор (163), двенадцатый инвертор (164), восемнадцатый мультиплексор (165), девятнадцатый мультиплексор (166).
Первый вход данных восемнадцатого мультиплексора (165) соединен со входом одиннадцатого инвертора (163), с четвертым входом данных девятнадцатого мультиплексора (166) и является вторым входом компенсатора фазового сдвига в режимах 16QAM (13). Второй вход данных восемнадцатого мультиплексора (165) соединен со входом двенадцатого инвертора (164), с первым входом данных девятнадцатого мультиплексора (166) и является третьим входом компенсатора фазового сдвига в режимах 16QAM (13). Выход одиннадцатого инвертора (163) соединен с третьим входом данных восемнадцатого мультиплексора (165) и со вторым входом данных девятнадцатого мультиплексора (166). Выход двенадцатого инвертора (164) соединен с четвертым входом данных восемнадцатого мультиплексора (165) и с третьим входом данных девятнадцатого мультиплексора (166).
Нулевой разряд управляющих входов восемнадцатого мультиплексора (165) соединен с нулевым разрядом управляющих входов девятнадцатого мультиплексора (166) и является первым входом компенсатора фазового сдвига в режимах 16QAM (13). Первый разряд управляющих входов восемнадцатого мультиплексора (165) соединен с первым разрядом управляющих входов девятнадцатого мультиплексора (166) и является четвертым входом компенсатора фазового сдвига в режимах 16QAM (13).
Выход восемнадцатого мультиплексора (165) является первым выходом компенсатора фазового сдвига в режимах 16QAM (13). Выход девятнадцатого мультиплексора (166) является вторым выходом компенсатора фазового сдвига в режимах 16QAM (13).
Блок сборки данных (15) содержит второй регистр сдвига (167), четвертый буферный регистр (168), пятый буферный регистр (169), буфер задержки кодированных символов (171), буфер задержки некодированных символов (172), двадцатый мультиплексор (175), десятый счетчик (170), второй дешифратор (173), десятый компаратор (174), сорок седьмой элемент И (176), семнадцатый элемент ИЛИ (177).
Входы данных четвертого буферного регистра (168) являются четвертыми входами блока сборки данных (15). Выходы четвертого буферного регистра (168) соединены со входами буфера задержки кодированных символов (171). Выходы буфера задержки кодированных символов (171) соединены с первыми входами данных двадцатого мультиплексора (175). Первый вход второго регистра сдвига (167) является первым входом блока сборки данных (15). Второй вход второго регистра сдвига (167) является вторым входом блока сборки данных (15). Вход выбора величины сдвига второго регистра сдвига (167) соединен с шиной 8PSK23 устройства декодирования РТСМ. Выходы второго регистра сдвига (167) соединены со входами данных пятого буферного регистра (169). Выходы пятого буферного регистра (169) соединены со входами буфера задержки некодированных символов (172). Выходы буфера задержки некодированных символов (172) соединены со вторыми входами данных двадцатого мультиплексора (175). Выходы двадцатого мультиплексора (175) являются выходами блока сборки данных (15).
Первый вход сорок седьмого элемента И (176) соединен с шиной 16QAM78 устройства декодирования РТСМ. Инверсный R-вход асинхронного сброса десятого счетчика (170) соединен с шиной сброса reset устройства декодирования РТСМ. Выходы десятого счетчика (170) соединены со входами второго дешифратора (173) и с первыми входами десятого компаратора (174). Нулевой разряд выходов второго дешифратора (173) соединен с первым входом семнадцатого элемента ИЛИ (177). Третий разряд выходов второго дешифратора (173) соединен со вторым входом сорок седьмого элемента И (176). Выход сорок седьмого элемента И (176) соединен со вторым входом семнадцатого элемента ИЛИ (177). Пятый разряд выходов второго дешифратора (173) соединен с третьим входом семнадцатого элемента ИЛИ (177). Выход семнадцатого элемента ИЛИ (177) соединен с управляющим входом двадцатого мультиплексора (175). Вторые входы десятого компаратора (174) соединены с шиной n_last_state_cnt_A_L устройства декодирования РТСМ. Выход десятого компаратора (174) соединен с R-входом синхронного сброса десятого счетчика (170).
Предлагаемое устройство декодирования РТСМ прежде всего предназначено для использования в приемниках системы передачи данных по стандарту DVB-DSNG [1]. Структурная схема такой системы приведена на фиг.11.
В передатчике DVB-DSNG передаваемые данные вначале скремблируются. Затем производится кодирование полученных рандомизированных данных внешним кодом Рида-Соломона и их сверточное перемежение. Далее РТСМ-кодер осуществляет кодирование защищенных PC-кодом данных внутренним, сверточным кодом, причем в РТСМ-режимах часть бит данных не кодируется. Маппер осуществляет отображение полученных символов в точки сигнального созвездия: QPSK, 8PSK или 16QAM (в зависимости от текущего режима модуляции) с координатами I и Q. После прохождения через I,Q-модулятор данные подаются в канал.
В приемнике I,Q-демодулятор формирует I,Q-сигнал. Демаппер производит обратное отображение точек сигнального созвездия (с координатами I, Q) в группы бит данных, представляющие символы сигнального созвездия. РТСМ-декодер восстанавливает данные, закодированные сверточным кодом, а также некодированные данные, передаваемые в РТСМ режимах. После деперемежения данных, полученных с выхода РТСМ-декодера, в них с помощью кода Рида-Соломона исправляются возможные ошибки. Дескремблер осуществляет дерандомизацию данных, вычитая из них скремблирующую последовательность (по модулю два).
Входы данных предлагаемого устройства декодирования РТСМ подключаются к выходам демаппера приемника, а выходы данных устройства подключается к деперемежителю.
Устройство декодирования РТСМ поддерживает следующий формат передаваемых данных, используемый в стандартах DVB-DSNG и DVB-S (фиг.12).
На вход системы передачи данных DVB подается последовательность транспортных пакетов MPEG-2 фиксированного размера, равного 188 байтам. В начале каждого пакета передается байт слова синхронизации, или синхробайт, равный 47h (hex). Для обеспечения требуемых спектральных характеристик передаваемого сигнала данные транспортных пакетов MPEG-2, за исключением синхробайт, рандомизируются (скремблируются) путем суммирования по модулю два с псевдослучайной последовательностью. Эта последовательность периодически повторяется для каждой группы из 8 пакетов. Для синхронизации дескремблера приемника синхробайт первого транспортного пакета каждой группы поразрядно инвертируется, принимая значение B8h (hex).
После скремблирования производится кодирование полученных данных укороченным кодом Рида-Соломона (204, 188, t=8) для получения помехозащищенного пакета. Кодирование кодом Рида-Соломона применяется ко всему пакету, включающему рандомизированные данные R вместе с синхробайтом (фиг.12).
Защищенные от ошибок пакеты далее перемежаются. Полученные кадры, содержащие слова кода Рида-Соломона, имеют глубину перемежения I=12. Каждый кадр всегда начинается с инвертированного или неинвертированного синхробайта MPEG-2.
Предлагаемое устройство декодирования РТСМ поддерживает все режимы кодирования и модуляции стандарта DVB-DSNG [1]: QPSK-1/2, 2/3, 3/4, 5/6, 7/8; 8PSK-2/3, 5/6, 8/9; 16QAM-3/4, 7/8. В последних пяти режимах (8PSK, 16QAM) применяется РТСМ-кодирование [6-8].
Реализацию РТСМ-кодирования в системе DVB-DSNG поясняют структурная схема РТСМ-кодера системы DVB-DSNG, приведенная на фиг.13, и таблицы, приведенные на фиг.14 и фиг.17 [1]. РТСМ-кодер (фиг.13) содержит следующие блоки: параллельно-параллельный преобразователь Р/Р, параллельно-последовательный преобразователь P/S, кодер сверточного кода с поддержкой выкалывания и символьный секвенсор. Данная схема кодирования включает в себя все блоки, необходимые для реализации любого режима кодирования и модуляции по стандарту DVB-DSNG (в некоторых режимах функционируют не все блоки).
Параллельно-параллельный преобразователь Р/Р предназначен для распределения бит входных данных, поступающих с перемежителя, по двум направлениям в зависимости от текущего режима кодирования и модуляции: одно направление соответствует кодируемым данным (Е), другое -некодируемым (NE). Таблица, приведенная на фиг.14, иллюстрирует работу параллельно-параллельного преобразователя в зависимости от режима кодирования и модуляции. В таблице последовательность байт входных данных преобразователя Р обозначается согласно стандарту DVB-DSNG периодически повторяющейся последовательностью букв, зависящей от режима кодирования и модуляции. Самая длинная последовательность, состоящая из букв А, В, D, F, G, H, L (буква «А» обозначает первый байт цикла, «L» - последний байт), используется для режима 16QAM-7/8. Самая короткая последовательность, состоящая из одной буквы А, используется для режимов QPSK. Таблица показывает для каждого режима (столбец 1 таблицы), какие именно биты входных данных Р и в какой последовательности (столбцы 2-9 таблицы) подаются на выходы (столбец 10 таблицы) преобразователя.
Параллельно-параллельный преобразователь Р/Р синхронизируется таким образом, чтобы синхробайты регулярно появлялись в байте А, причем, к примеру, синхробайт 47h должен кодироваться следующим образом: А=(А7,…, А0)=01000111. Для QPSK режимов параллельно-параллельный преобразователь Р/Р фактически упрощается до обычного параллельно-последовательного преобразователя.
Параллельно-последовательный преобразователь P/S предназначен для преобразования потока параллельно поступающих групп бит в последовательный битовый поток. Параллельно-последовательный преобразователь должен выдавать первым бит Е с наибольшим индексом. Например, в режиме 16QAM-7/8 (фиг.14) последовательность бит для кодирования будет иметь следующий вид: Е3, Е2, Е1, Е3, Е2, Е1 и т.д.
Сверточный кодер осуществляет кодирование данных базовым сверточным кодом [1, 2]. Базовый сверточный код имеет скорость 1/2 и величину кодового ограничения К=7. Функциональная схема кодера для данного кода приведена на фиг.15. Выкалывание некоторых символов базового сверточного кода в целях получения перфорированных сверточных кодов с различными скоростями осуществляется с помощью шаблона выкалывания в соответствии с таблицей, приведенной на фиг.16. Соответствие между скоростями пяти возможных РТСМ-режимов и скоростями соответствующих этим режимам перфорированных сверточных кодов отражено в следующей таблице, приведенной ниже.
РТСМ-режим
Скорость перфорированного сверточного кода
8PSK-2/3
1/2
8PSK-5/6
1/2
8PSK-8/9
2/3
16QAM-3/4
1/2
16QAM-7/8
3/4
Параллельно-последовательный преобразователь P/S и кодер перфорированного сверточного кода не должны вносить относительной задержки между закодированными (Е) и некодированными (NE) данными. Необходимо сохранять временные соотношения между закодированными и некодированными битами данных в соответствии с таблицей, приведенной на фиг.17.
Символьный секвенсор формирует биты символов, отображаемых в дальнейшем в точки сигнального созвездия с координатами (I, Q), объединяя биты закодированных X, Y (с учетом выкалывания) и некодированных данных NE. Закодированные биты данного символа обозначаются С, некодируемые - U. Некодированные биты порождают параллельные переходы в решетчатом коде. Они защищены большим Евклидовым расстоянием в сигнальном пространстве [6, 7]. Таблица на фиг.17 поясняет работу символьного секвенсора с учетом выкалывания.
n
Рисунки сигнальных созвездий для различных режимов кодирования и модуляции, соответствующие стандарту DVB-DSNG, приведены на фиг.18. Из пяти РТСМ-режимов (8PSK-2/3,5/6,8/9; 16QAM-3/4,7/8) только в режимах 8PSK-5/6 и 8PSK-8/9 используется один закодированный бит на символ сигнального созвездия (1CBPS), в остальных режимах - два бита (2CBPS). Значения I,Q-координат точек сигнального созвездия, полученных в соответствии с фиг.18, умножаются в маппере на нормализующий множитель K. Для режимов модуляции QPSK и 8PSK . Для режима модуляции 16QAM .
В связи с тем, что через канал не передается специальный сигнал с опорной фазой, I,Q-демодулятор приемника системы DVB-DSNG формирует выходной I,Q-сигнал с фазовой неоднозначностью φ. С учетом фазовой неоднозначности выходной сигнал демодулятора приемника может интерпретироваться как сигнал, сдвинутый по фазе на угол Ψ=k·φ=к·(2π/М) (k=0,1,…,M-1) I,Q-сигнал передатчика. Фазовая неоднозначность равняется φ=π/2 для режимов модуляции QPSK (М=4) и 16QAM и φ=π/4 для режима модуляции 8PSK (М=8). Сдвиг фазы I,Q-сигнала соответствует повороту точек сигнального созвездия в координатах I и Q на угол Ψ против часовой стрелки. Это, соответственно, выражается в изменении значений I и Q компонент сигнала, что, в свою очередь, влечет за собой неправильную оценку принятого символа в демаппере. Для правильной работы приемника возможный сдвиг фазы на угол Ψ должен быть компенсирован.
На фиг.19 приведены таблицы трансформации символов в различных режимах кодирования и модуляции стандарта DVB-DSNG при поворотах точек сигнального созвездия на разные углы Ψ. В таблицах С2, С1 и U2, U1 обозначают соответственно закодированные сверточным кодом и некодированные биты переданных в канал символов, а С2', С1' и U2', U1' обозначают соответственно закодированные и некодированные биты этих же символов в приемнике после возможного фазового сдвига. В таблицах также приведены логические функции для восстановления бит переданного символа на основе значений бит принятого символа для различных фазовых сдвигов.
Из таблиц на фиг.19 видно, что для всех возможных значений сдвигов фазы кодированные биты С2, С1 могут быть реконструированы из бит С2', С1' с помощью комбинации двух простых операций: перестановки бит с инверсией одного из них (swap) и одновременной инверсией обоих бит (invert). Аналогичным образом могут быть восстановлены некодированные биты U2, U1 в режимах модуляции 16QAM (фиг.19г). Несколько более сложные функции с применением булевой логики получаются для бит U2, U1 в режимах модуляции 8PSK (фиг.19б, в).
Таким образом, неверную оценку символов в демаппере из-за фазового сдвига можно скорректировать с помощью преобразований, приведенных в таблице на фиг.19, зная угол Ψ.
В предлагаемом устройстве для разрешения фазовой неоднозначности используются: сверточное (внутреннее) кодирование, синхробайты и блочное (внешнее) кодирование. Разрешение фазовой неоднозначности осуществляется в процессе синхронизации РТСМ-декодера.
Этапы синхронизации РТСМ-декодера в зависимости от режима кодирования и модуляции приведены в таблице на фиг.20. Синхронизация выполняется в два (QPSK, 16QAM) или три (8PSK) этапа.
На первом этапе осуществляется синхронизация декодера Витерби. При этом устанавливается символьная синхронизация и уменьшается фазовая неоднозначность в два раза. Под символьной синхронизацией подразумевается процесс установления границ групп символов сверточного кода, образовавшихся в результате выкалывания (фиг.16). В режимах QPSK-1/2, 8PSK-2/3 и 16QAM-3/4 установления символьной синхронизации не требуется, поскольку в этих режимах не выполняется выкалывание символов базового сверточного кода.
Синхронизация декодера Витерби осуществляется методом проб и ошибок. Границы групп символов сверточного кода последовательно сдвигаются. Для каждого сдвига на вход декодера Витерби подаются кодированные биты символа данных сначала без преобразования swap (сигнал swap=0), а затем с преобразованием (сигнал swap=1). В случае неправильного выделения границ групп символов на выходе декодера Витерби будет высокий уровень ошибок. Высокий уровень ошибок будет и в случае правильного выделения границ, если биты С2, С1 на входе декодера будут переставлены местами и один из них будет инвертирован. Синхронизация считается достигнутой для той «пробы», которая привела к резкому падению уровня ошибок после декодера Витерби. Значение сигнала swap определяет сокращенное в два раза подмножество возможных значений угла сдвига фазы Ψ. Если swap=0 в случае QPSK и 16QAM, то Ψ∈{0°,180°}; если swap=1, то Ψ∈{90°, 270°}. Если swap=0 в случае 8PSK-2/3, то Ψ∈{0°, 90°, 180°, 270°}; если swap=1, то Ψ∈{45°, 135°, 225°, 315°}.
В режимах 8PSK-5/6 и 8PSK-8/9 уменьшения фазовой неоднозначности при синхронизации декодера Витерби не происходит.Это вызвано тем, что в этих режимах используется только один закодированный бит на каждый символ сигнального созвездия. При такой схеме кодирования и модуляции возможные сдвиги фазы могут порождать только инверсию закодированных данных. Инвертированные данные на входе декодера Витерби не вызывают ошибок декодирования, так как любая инвертированная кодовая последовательность также будет являться кодовой последовательностью для сверточного кода, используемого в системе DVB-DSNG.
На втором этапе синхронизации РТСМ-декодера с помощью анализа последовательности синхробайт осуществляется кадровая синхронизация. Под кадровой синхронизацией подразумевается процесс установления границ кадров с перемеженными словами кода Рида-Соломона, каждый из которых всегда начинается с синхробайта. При установлении кадровой синхронизации фазовая неоднозначность уменьшается в два раза для всех режимов.
Последовательность синхробайт, формируемая передатчиком, состоит из периодически повторяющейся группы синхробайт, содержащей семь синхробайт вида 47h и одного инверсного синхробайта B8h. Из таблиц на фиг.19 видно, что половина значений фазового сдвига I,Q-сигнала приводит к инверсии синхробайт на выходе декодера Витерби (с учетом преобразования swap). В предлагаемом устройстве при установлении кадровой синхронизации на выходе декодера Витерби анализируются синхробайты как вида 47h, так и вида B8h. В процессе установления кадровой синхронизации количество синхробайт каждого вида подсчитывается. Если к моменту фиксации состояния кадровой синхронизации преобладают синхробайты вида B8h, это говорит о том, что из-за фазового сдвига на вход декодера Витерби данные поступают инверсные. В этом случае для компенсации фазового сдвига выходные данные декодера Витерби необходимо инвертировать (сигнал invert устанавливается в единицу). При преобладании синхробайт вида 47h (сигнал invert устанавливается в ноль) инвертирование не требуется. Значение сигнала invert определяет сокращенное в два раза подмножество возможных значений угла сдвига фазы Ψ. Если invert=0 в случае QPSK и 16QAM, то Ψ∈{0°, 90°}; если invert=1, то Ψ∈ {180°,270°}. Если invert=0 в случае 8PSK-2/3, то Ψ∈{0°, 45°, 180°, 225°}; если invert=1, то Ψ∈{90°,135°,270°,315°}. Если invert=0 в случае 8PSK-5/6, 8/9, то Ψ∈{0°, 90°, 180°, 270°}; если invert=1, то Ψ∈{45°, 135°, 225°, 315°}.
Для режимов модуляции 8PSK в предлагаемом устройстве выполняется третий этап синхронизации РТСМ-декодера. На этом этапе окончательно разрешается фазовая неоднозначность, что необходимо для устранения искажений в некодированных данных (U). Для этого используется код Рида-Соломона.
Разрешение фазовой неоднозначности на этом этапе также осуществляется методом проб и ошибок. Последовательно применяются корректирующие преобразования некодированных данных (U) для множества возможных к этому этапу синхронизации значений угла сдвига фазы ψ (в режиме 8PSK-2/3 это множество состоит из двух значений, в режимах 8PSK-5/6, 8/9 - из четырех значений). Для каждого преобразования (пробы) выделяется последовательность слов кода Рида-Соломона, каждое из которых состоит как из кодированных бит данных, восстановленных декодером Витерби, так и некодированных данных (U). Если число слов PC-кода, для которых наблюдались отказы от декодирования декодера PC-кода, превышает заданный порог, тогда проба считается неудачной. В противном случае фазовая неоднозначность считается разрешенной.
Фазовая неоднозначность на третьем этапе синхронизации разрешается с помощью внешнего по отношению к РТСМ-декодеру устройства управления приемника системы DVB-DSNG, которое формирует двухразрядный сигнал управления ext_phase_shift на основе анализа сигнала отказа от декодирования, выдаваемого декодером PC-кода.
В предлагаемом устройстве декодирования РТСМ возможный фазовый сдвиг I,Q-сигнала компенсируется путем выполнения набора преобразований в различных блоках устройства. В блоке 2 (на входе декодера Витерби) осуществляется перестановка мягких решений относительно кодированных бит (С) с инверсией одного из них. В блоке 9 реализуется общая инверсия выходных данных декодера Витерби. Блоки 12 и 13 компенсируют влияние фазового сдвига на некодированные данные (U) в режимах 8PSK и 16QAM соответственно.
Предложенная организация компенсации фазового сдвига в РТСМ-декодере обладает двумя важными достоинствами:
1) простота реализации (преобразования выполняются над битовыми данными (за исключением нахождения дополнительного кода числа небольшой разрядности в блоке 2);
2) относительно небольшая временная задержка выдачи данных устройством после установления кадровой синхронизации.
Устройство декодирования РТСМ работает следующим образом.
С выхода демаппера на вход устройства подаются:
1) квантованные значения I и Q компонент I,Q-сигнала демодулятора (каждое из которых содержит по 7 двоичных разрядов),
2) квантованные значения «мягких» решений относительно бит С1 и С2, закодированных сверточным кодом: soft_C1, soft_C2 (каждое из которых содержит по 4 двоичных разряда),
3) двоичные оценки значений бит С1 и С2 (жесткие решения). В предлагаемом устройстве предполагается, что вычисление «мягких» решений демаппером основано на следующей формуле:
где LLR(b) - логарифмическое отношение правдоподобия (log likelihood ratio) бита, находящегося в позиции b двоичного представления принятого символа сигнального созвездия (b=0 при оценке бита С1,
b=1 при оценке бита С2);
s
N - количество точек сигнального созвездия, используемого для модуляции;
k
S - двоичное представление k-ой точки сигнального созвездия;
k
k
I и Q - координаты k-ой точки сигнального созвездия;
r
r
I и Q - полученные от демодулятора I и Q компоненты сигнала, соответствующего принятому из канала символу;
2
δ - оценка дисперсии гауссовского шума в канале.
При вычислении мягких решений символы сигнального созвездия разбиваются на два подмножества. В числителе учитываются символы сигнального созвездия, имеющие в позиции b своего двоичного представления бит, равный единице, а в знаменателе учитываются символы сигнального созвездия, имеющие в позиции b бит, равный нулю. Жесткие решения относительно бит С1 и С2 принимаются равными единице в тех случаях, если соответствующие LLR больше нуля.
Устройство декодирования РТСМ сначала восстанавливает данные, закодированные сверточным кодом, а затем вычисляет значения связанных с ними бит некодированных данных. Данные после декодера Витерби и вычисленные некодированные данные собираются в блоке 15 в общий выходной байтовый поток data_out.
Таким образом, в РТСМ-декодере (фиг.1) можно выделить два пути прохождения обрабатываемых входных данных. Первый путь (основной) проходит через блок перестановки с инверсией мягких решений 2, декодер Витерби 3, блок кадровой синхронизации 9 и блок сборки данных 15. На этом пути обрабатываются данные, закодированные в передатчике сверточным кодом. Второй путь проходит через предназначенный для задержки I,Q-компонент сигнала и жестких решений буфер FIFO 1, блок оценки некодированных бит в режимах 8PSK 10 и компенсатор фазового сдвига в режимах 8PSK 12, либо через блок оценки некодированных бит в режимах 16QAM 11 и компенсатор фазового сдвига в режимах 16QAM 13 (в зависимости от текущего режима кодирования и модуляции), далее через мультиплексор некодированных данных 14 и блок сборки данных 15. На этом пути обрабатываются некодированные данные. Цепочка блоков, обрабатывающая некодированные данные, функционирует только в РТСМ-режимах передачи (8PSK-2/3, 5/6, 8/9 и 16QAM-3/4, 7/8).
Рассмотрим обработку устройством декодирования РТСМ (см. фиг.1) закодированных данных (С).
Мягкие решения soft_C1 и soft_C2 поступают на входы блока перестановки с инверсией мягких решений 2, который используется в устройстве для синхронизации декодера Витерби и частичного разрешения фазовой неоднозначности. Если сигнал swap равен логической единице, тогда блок 2 выполняет инверсию мягкого решения soft_C1 с последующей перестановкой результата инверсии с мягким решением soft_C2.
Функциональная схема блока приведена на фиг.2. Инверсия soft_C1 производится с помощью вычитателя 16, а перестановка - с помощью мультиплексоров 17 и 18. Регистры 19 и 20 предназначены для временного хранения результатов операции перестановки с инверсией мягких решений с целью компенсации разброса задержек сигналов в цепях блока.
С выходов блока 2 мягкие решения soft_C1' и soft_C2' поступают на входы декодера Витерби 3 (фиг.1), в состав которого входят модуль деперфорации и стандартный декодер Витерби промышленного сверточного кода скорости 1/2. Модуль деперфорации выполняет над мягкими решениями операцию, обратную к операции перфорирования (выкалывания) бит сверточного кода, описанную в таблице на фиг.16. При этом формируется новая последовательность пар мягких решений Х и Y. Мягкие решения, соответствующие перфорированным (выколотым) битам, помечаются особым образом в целях исключения их влияния при вычислении метрик стандартным декодером Витерби. На основе анализа последовательности пар мягких решений Х и Y стандартный декодер Витерби восстанавливает наиболее вероятную последовательности бит данных, которая могла быть закодирована и передана в канал.
По сигналу rq_shift модуль деперфорации сдвигает по входной последовательности границы групп символов сверточного кода, образовавшихся в результате выкалывания. Это необходимо для установления синхронизации декодера Витерби, поскольку первоначально неизвестно с какого бита входной последовательности нужно начинать выполнение операции деперфорации группы символов. Всякий раз после выполнения сдвига границ модуль деперфорации устанавливает сигнал готовности rdy_shift.
С выхода декодера Витерби восстановленные данные (v_bit) поступают в блок кадровой синхронизации 9, основной задачей которого является установление границ кадров, содержащих перемеженные слова кода Рида-Соломона. В блоке 9 побитно поступающие в него данные v_bit собираются в байты. В случае обнаружения инверсии закодированных данных (сигнал invert равен 1) байт восстановленных декодером Витерби данных инвертируется.
Данные с выхода блока кадровой синхронизации (v_byte) поступают в блок сборки данных 15. Этот блок осуществляет объединение восстановленных кодированных данных (v_byte) и некодированных данных (U1 и U2), поступающих с мультиплексора 14, в единый выходной байтовый поток (data_out).
Для правильного восстановления бит данных, закодированных сверточным кодом, необходимо установление синхронизации декодера Витерби и кадровой синхронизации с одновременным разрешением фазовой неоднозначности I,Q-сигнала. Эти задачи решаются с использованием следующих блоков предлагаемого устройства: блока кодирования и перфорации 4, блока перестановки с инверсией закодированных символов 5, элементов ИСКЛЮЧАЮЩЕЕ ИЛИ 6 и 7, блока синхронизации декодера Витерби 8 и блока кадровой синхронизации 9 (фиг.1).
Блок кодирования и перфорации 4 вместе с блоком перестановки с инверсией закодированных символов 5 предназначен для восстановления символов сверточного кода С2, С1 с исправленными в них ошибками путем повторного кодирования данных, поступающих с выхода декодера Витерби 3. Данный блок функционально практически полностью повторяет сверточный кодер с выкалыванием, входящий в состав РТСМ-кодера передатчика системы DVB-DSNG (фиг.13). Дополнительная функция блока 4 - сдвиг шаблона выкалывания по последовательности символов сверточного кода по сигналу rq_shift2. Это необходимо для синхронизации процедуры перфорации, выполняемой блоком 4, с процедурой деперфорации, выполняемой модулем деперфорации декодера Витерби 3. Всякий раз после выполнения сдвига блок 4 устанавливает сигнал готовности rdy_shift2.
Повторно закодированные сверточным кодом данные поступают в блок перестановки с инверсией закодированных символов 5 (фиг.1). Блок 5 компенсирует преобразование swap в случае его применения на входе устройства блоком перестановки с инверсией мягких решений 2. Функциональная схема блока 5 приведена на фиг.3. В случае, если сигнал swap на входе блока активен, символ С2' инвертируется с помощью инвертора 21 с последующей перестановкой инвертированного символа С2' с символом С1' с помощью мультиплексоров 22 и 23. В противном случае данные проходят через блок 5 без изменений. D-триггеры 24 и 25 предназначены для временного хранения результатов операции перестановки с инверсией с целью компенсации разброса задержек сигналов в цепях блока.
Полученные символы С2" и С1" поступают на входы элементов ИСКЛЮЧАЮЩЕЕ ИЛИ 6 и 7 (фиг.1) соответственно, на другие входы которых поступают задержанные принятые из канала символы сверточного кода С2, С1 (C2_buf
и C1_buf), возможно, содержащие ошибки. Элементы ИСКЛЮЧАЮЩЕЕ ИЛИ 6 и 7 путем суммирования по модулю два данных символов формируют поток ошибочных символов сверточного кода, который поступает на вход блока синхронизации декодера Витерби 8.
Блок синхронизации декодера Витерби 8 (фиг.1) предназначен для установления границ групп символов сверточного кода (СК) во входном потоке, а также для частичного разрешения фазовой неоднозначности. Для этого вычисляется уровень ошибок в символах СК с последующим сравнением с пороговым значением. Если уровень ошибок превысил заданный порог, тогда выполняется операция swap или сдвигаются границы групп символов СК во входном потоке. Если уровень ошибок меньше заданного порога, тогда границы групп символов СК во входном потоке считаются установленными. При этом сигнал vit_sync_detect переводится в активное состояние, сигнализируя об успешном установлении символьной синхронизации и тем самым разрешая работу блока кадровой синхронизации 9.
В зависимости от режима кодирования и модуляции необходимо от одной до четырех попыток определения границ групп символов СК во входном потоке, так как максимальный размер группы равен четырем символам (см. фиг.16).
Рассмотрим подробно работу блока синхронизации декодера Витерби 8. Функциональная схема данного блока приведена на фиг.4. На входы С всех элементов блока подается тактовый сигнал CLK (на схеме не показан). Блок 8 реагирует на сигнал CLK только при активном сигнале C2C1_valid, который говорит о действительности данных С2, С1 на текущем такте CLK.
10
5
До установления символьной синхронизации блок 8 периодически вычисляет количество ошибок в символах СК на интервале фиксированного размера (в «окне») путем подсчета единичных бит в потоке ошибок ClErr и С2Еrr, а затем сравнивает получившееся значение с пороговым значением, зависящим от текущего режима кодирования и модуляции. Для формирования «окна» используются двоичный счетчик 30 (фиг.4), схема сравнения кодов 35, RS-триггер 31 и логические элементы 26, 27, 28, 33. В РТСМ-режимах кодирования и модуляции 2CBPS (8PSK-2/3, 16QAM) счетчик окна 30 увеличивается на два в каждом такте всякий раз, когда активен сигнал C2C1_valid. В РТСМ-режимах 1CBPS (8PSK-5/6, 8/9) счетчик 30 будет увеличиваться на единицу. Сигнал window (выход RS-триггера 31), разрешающий подсчет ошибок в окне, становится активным после отсчета счетчиком 301056 символов (2+2), что определяется элементом И 33. Данная задержка необходима для исключения при подсчете количества ошибок тех ошибок, которые могут быть вызваны переходным процессом в результате очередного сдвига границ групп символов СК или применения операции swap ко входному потоку данных. Сигнал window всегда сбрасывается в последнем состоянии счетчика окна, которое определяется с помощью компаратора 35. Для режимов кодирования и модуляции 2CBPS последнее состояние счетчика окна равно 8190, а в режимах 1CBPS (8PSK-5/6, 8/9) оно равно 8191. При этом величина «окна» составляет 7136 символов сверточного кода.
Подсчет ошибок (ClErr и С2Еrr) осуществляется счетчиком 43 во время активного сигнала window (в случае равенства нулю сигнала window в каждом такте происходит синхронный сброс счетчика). В режимах 1CBPS (8PSK-5/6, 8/9) поток ошибок С2Еrr исключается из подсчета с помощью элемента И 37. В случае, если в текущем такте сигналы ClErr и С2Еrr одновременно равны единице, то с помощью элемента И 39 для счетчика 43 формируется сигнал инкремента на два (+2). В случае, если только один из указанных сигналов активен, то с помощью элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 38 для счетчика 43 формируется сигнал инкремента на единицу (+1). В противном случае увеличения значения счетчика не происходит.
Пороговое значение уровня ошибок, зависящее от текущего режима кодирования и модуляции, выбирается с помощью четырехразрядного сигнала mode (который может принимать значения от 0 до 9, соответствующие различным режимам кодирования и модуляции), подаваемого на мультиплексор 44. С помощью компаратора 46 формируется сигнал ErrNum_less_Thres, указывающий на то, что текущий уровень ошибок в данный момент не превышает порогового значения. Каждый раз в конце «окна» (сигнал last_state_cnt_win активен) производится проверка текущего уровня ошибок. Если данный уровень оказывается меньше порогового, то с помощью элемента И 42 RS-триггер 45 устанавливается в единичное состояние. Соответственно сигнал vit_sync_detect становится активным, что означает, что символьная синхронизация успешно установлена. Данный сигнал предназначен для разрешения работы блока кадровой синхронизации 9, а также для внешнего устройства управления.
Если количество ошибок в очередном «окне» выше порогового, то в следующей попытке установления синхронизации сигнал swap переводится в противоположное состояние (в случае режимов 2CBPS). Это осуществляется с помощью одноразрядного двоичного счетчика, реализованного на Т-триггере 32. Счетчик 32 инкрементируется в каждом такте при наличии логической единицы на входе Т. Единица на данный вход поступает с выхода элемента И 29 в конце каждого «окна» (сигнал last_state_cnt_win равен единице) в том случае, когда символьная синхронизация еще не установлена (сигнал vit_sync_detect равен нулю), уровень ошибок выше порогового (сигнал ErrNum_less_Thres равен нулю) и сигнал C2C1_valid равен единице. В режимах 1CBPS (8PSK-5/6, 8/9) операция swap никогда не применяется, и Т-триггер всегда остается в нулевом состоянии, так как на его входе синхронного сброса R будет постоянно присутствовать логическая единица (сигнал 8PSK_5689 равен единице). В этих режимах при каждой неудачной попытке установить синхронизацию производится сдвиг границ групп символов СК. В режимах 2CBPS сдвиг производится всякий раз при неудачной попытке установления синхронизации после применения операции swap.В обоих случаях условием формирования запроса на сдвиг границ групп символов СК является равенство единице сигнала en_cnt_sym (см. цепочку элементов 34 и 36). При выполнении этого условия RS-триггеры 49 и 50 переводятся в единичное состояние, формируя соответственно сигнал rq_shift запроса на сдвиг границ групп символов СК для декодера Витерби 3 и сигнал rq_shift2 запроса на сдвиг шаблона выкалывания блока кодирования и перфорации 4 (фиг.1). RS-триггеры 49 и 50 сбрасываются при выполнении запросов по сигналам готовности rdy_shift и rdy_shift2 от декодера Витерби 3 и блока кодирования и перфорации 4 соответственно.
Счетчик 48 инкрементируется каждый раз при сдвиге границ групп символов СК. Как было сказано раннее, в зависимости от режима кодирования и модуляции возможно до четырех попыток определения границ групп символов СК во входной последовательности. Максимальное значение счетчика 48, определяющее количество указанных попыток, задается константой n_last_state_cnt_sym. После достижения счетчиком 48 данного значения на выходе компаратора 52 (сигнал last_state_cnt_sym) будет присутствовать логическая единица, сбрасывающая счетчик в начальное состояние в следующем такте.
Всякий раз при запросе на сдвиг границ групп символов СК и сбросе счетчика 48 (на выходе элемента И 47 присутствует логическая единица) инкрементируется счетчик 51, который предназначен для подсчета количества полных неудачных циклов установления символьной синхронизации. Каждый такой цикл содержит до восьми попыток установления синхронизации: до четырех попыток определения границ групп символов СК, в каждой из которых возможно применение операции swap. После четырех таких циклов RS-триггер 54 устанавливается в единичное состояние с помощью элемента И 53 и сигнал no_vit_sync, говорящий о невозможности установления синхронизации декодера Витерби, становится активным. Сигнал no_vit_sync, выдаваемый на выход устройства декодирования РТСМ, предназначен для внешнего устройства управления, которое, в случае неудачи при установлении синхронизации, может инициировать рестарт приемника.
Рассмотрим подробно работу блока кадровой синхронизации 9 (фиг.1). Детальная функциональная схема данного блока приведена на фиг.5. Как было сказано раннее, основной задачей блока кадровой синхронизации является выделение границ кадров в потоке данных. Для этого анализируются периодически передаваемые в потоке данных синхробайты вида 47h и B8h. Помимо этого данный блок обнаруживает инверсию закодированных данных, а также преобразует обрабатываемые данные из последовательной в параллельную форму. При обнаружении инверсии блок кадровой синхронизации 9 инвертирует закодированные данные, а также устанавливает сигнал invert, необходимый для компенсаторов фазового сдвига, которые устраняют последствия фазового сдвига в некодированных данных. В случае установления кадровой синхронизации выходной сигнал frame_sync_detect переводится в активное, единичное состояние.
Функционирование блока 9 осуществляется согласно алгоритму установления кадровой синхронизации, блок-схема которого приведена на фиг.21. При описании алгоритма использованы следующие обозначения:
i - номер текущего такта;
i
v - текущий обрабатываемый бит входного потока данных (поступает с выхода декодера Витерби 3);
ShiftReg - текущий обрабатываемый байт входного потока данных;
CntSB - счетчик обнаруженных синхробайтов;
Cnt47 - счетчик обнаруженных синхробайтов вида 47h;
CntB8 - счетчик обнаруженных синхробайтов вида B8h;
CntBit - счетчик номера бита в текущем байте (0..7);
CntNEI - счетчик номера интервала с некодированными байтами данных (счетчик некодированных интервалов);
CntByte - счетчик номера байта в текущем кадре передаваемых данных;
FrameSync - признак установленной кадровой синхронизации;
step - значение шага, с которым идут закодированные байты в потоке данных для заданного режима кодирования и модуляции;
Thres - пороговое значение для счетчика синхробайт;
last_st - последнее состояние счетчика номера интервала с некодированными байтами данных;
invert - признак инверсии выходного потока данных;
v_byte - текущий байт выходного потока данных.
В соответствии с алгоритмом (см. блок-схему на фиг.21а) блок кадровой синхронизации 9 может находиться в следующих состояниях:
1) поиск первого синхробайта вида 47h или B8h в потоке данных (состояние поиска);
2) проверка позиций следующих синхробайтов относительно синхробайта, найденного на первом этапе установления кадровой синхронизации (состояние проверки синхронизации);
3) формирование выходного байтового потока при установленной кадровой синхронизации (состояние синхронизации).
Условием нахождения блока кадровой синхронизации в первом состоянии (или состоянии поиска) является нулевое состояние счетчика обнаруженных синхробайтов CntSB. Нахождение блока кадровой синхронизации в третьем состоянии (или состоянии синхронизации) фиксируется с помощью флага FrameSync. Если CntSB≠0 и FrameSync=false, это означает, что блок 9 находится во втором состоянии (состояние проверки синхронизации).
i
Рассмотрим работу блока кадровой синхронизации в соответствии с алгоритмом, приведенным на фиг.21а. Данный алгоритм описывает обработку блоком кадровой синхронизации одного бита входного потока данных (v), осуществляемую за один такт (i-ый такт).
i
Текущий обрабатываемый бит v заменяет младший бит переменной ShiftReg алгоритма, содержимое которой перед этим сдвигается в сторону старших битов. После этого данная переменная содержит текущий байт входного потока. Затем проверяется равенство нулю счетчика синхробайтов CntSB. Если CntSB=0, то блок кадровой синхронизации обрабатывает байт входного потока в режиме поиска первого синхробайта.
В состоянии проверки синхронизации и состоянии установленной кадровой синхронизации границы байтов входного потока уже определены. Байт из входного потока выделяется по условию CntBit=7. Если CntSB≠0 и FrameSync=false, то блок кадровой синхронизации обрабатывает выделенный байт в режиме проверки синхронизации. Если CntSB≠0 и FrameSync=true, то блок кадровой синхронизации формирует байт выходного потока. В случае преобладания среди обнаруженных синхробайтов байт вида B8h (CntB8>Cnt47) байт выходного потока v_byte будет представлять собой инвертированный выделенный байт входного потока. В противном случае входной байт копируется в выходной поток без изменения.
Поиск первого синхробайта (см. блок-схему на фиг.21б) осуществляется асинхронно при помощи скользящего восьмибитового окна, сдвигаемого в каждом такте на один бит по входному потоку данных. Функцию окна в алгоритме выполняет переменная ShiftReg. По первому обнаруженному синхробайту осуществляется предварительная синхронизация блока кадровой синхронизации. При этом обнуляются счетчик номера бита в текущем байте CntBit и счетчик номера интервала с некодированными байтами данных CntNEI. Счетчик CntByte инициализируется значением шага step. Счетчик CntSB устанавливается в единицу и один из счетчиков Cnt47 или CntB8 также устанавливается в единицу. После этого блок кадровой синхронизации переходит в состоянии проверки синхронизации.
Проверка предварительно установленной в состоянии поиска синхронизации осуществляется путем анализа байтов входного потока, который должен содержать синхробайты. Синхробайты всегда располагаются в первом байте переданного кадра, которому соответствует нулевое состояние счетчика CntByte. Если на предполагаемой позиции обнаружен синхробайт, счетчик CntSB инкрементируется, в противном случае он декрементируется (см. блок-схему на фиг.21в). Одновременно с помощью счетчиков Cnt47 и CntB8 производится подсчет синхробайтов байтов вида 47h и B8h. Счетчики CntSB, Cnt47 и CntB8 инкрементируются и декрементируются с блокировкой в последнем и в начальном состоянии соответственно. Операция декремента выполняется над счетчиками Cnt47 или CntB8 во избежание их переполнения в процессе установления кадровой синхронизации.
Кадровая синхронизация считается установленной в том случае, если значение счетчика обнаруженных синхробайт CntSB превышает пороговое значение Thres, а счетчик CntNEI равен номеру последнего интервала last_st. При этом признаку установленной кадровой синхронизации FrameSync присваивается значение true, а также инициализируется переменная invert в зависимости от текущего соотношения между значениями счетчиков Cnt47 и CntB8.
Значения счетчиков CntNEI и CntByte изменяются после завершения анализа предполагаемого синхробайта. Счетчик номера байта в текущем кадре данных CntByte
увеличивается на величину шага step по модулю размера кадра, составляющего 204 байта.
А
F
H
Счетчик CntNEI инкрементируется только в режиме кодирования и модуляции 16QAM-7/8. Переменная last_st также только в этом режиме отлична от нуля и равна двум. Это связано с тем, что только в режиме кодирования и модуляции 16QAM-7/8 кодируемые байты (подчеркнуты) отделяются различным количеством некодируемых байтов во входном потоке данных: , В, D, , G, , L (фиг.14). Для режима 16QAM-7/8 интервал между кодируемыми байтами A-F больше, чем интервалы F-H и Н-А. В остальных режимах кодируемые байты следуют через одинаковое количество некодируемых байт.Поэтому для режима 16QAM-7/8 вводится дополнительный счетчик CntNEI, с помощью которого производится выбор очередного шага step из двух возможных значений (2 или 3). В остальных режимах величина шага step всегда будет постоянной.
Если значение счетчика обнаруженных синхробайтов CntSB уменьшилось до нуля, то считается, что подтверждения предварительно установленной кадровой синхронизации не произошло. В этом случае блок кадровой синхронизации 9 переходит к повторному поиску синхробайта с помощью скользящего окна.
В блоке кадровой синхронизации 9 (фиг.5) можно выделить следующие элементы, отвечающие за реализацию определенных частей рассмотренного алгоритма.
Регистр сдвига 55 соответствует переменной ShiftReg алгоритма. С его помощью реализуется скользящее «окно» по потоку данных. Селектор кода '47h' 56 и селектор кода 'B8h' 57 предназначены соответственно для выделения синхробайтов вида 47h и B8h в обрабатываемом потоке данных.
Подсчет указанных синхробайтов осуществляется с помощью счетчиков 70 и 71, которые соответствуют переменным Cnt47 и CntB8 алгоритма установления кадровой синхронизации.
Подсчет синхробайтов произвольного вида (47h и B8h) осуществляется счетчиком 72, который соответствует переменной алгоритма CntSB. В состоянии поиска синхронизации его значение равно нулю (как и значения счетчиков 70 и 71), и поэтому сигнал SearchSB активен, так как на втором выходе дешифратора 75 (=0) будет присутствовать логическая единица.
Счетчики 70-72 являются четырехразрядными счетчиками с блокировкой операции инкремента в состоянии '15' (последнем состоянии) и блокировкой операции декремента в состоянии '0' (начальном состоянии). Последовательность управляющих входов счетчиков, расположенных в порядке убывания приоритета выполнения операции, имеет следующий вид: R, +1, -1. Если одновременно активны несколько управляющих сигналов, то счетчиком будет выполняться операция, имеющая наибольший приоритет.
Рассмотрим подробнее управление счетчиками 70-72.
Логические элементы И 59 и 61 предназначены для выдачи сигнала инкремента для счетчиков 70 и 71 соответственно в случае обнаружения в потоке данных синхробайтов вида 47h или B8h. При этом необходимо, чтобы сигнал, разрешающий установление кадровой синхронизации vit_sync_detect, был активен, и на выходе логического элемента ИЛИ 58 присутствовала логическая единица. Последнее условие будет выполняться в случае активности сигнала SearchSB, т.е. в состоянии поиска первого синхробайта или активности сигнала pos, принимающего единичное значение всякий раз при достижении позиции предполагаемого синхробайта счетчиком CntByte в состоянии проверки синхронизации. При увеличении на единицу одного из счетчиков 70 или 71 в состоянии проверки синхронизации другой всегда уменьшается на единицу. Как было сказано раннее, это делается для того, чтобы избежать переполнения счетчиков (в данном алгоритме это соответствует блокировке счетчиков в последнем состоянии), поскольку для алгоритма важно соотношение между значениями счетчиков, а не сами значения.
Выходы логических элементов И 60 и 62 активны только в состоянии проверки синхронизации, когда на втором выходе (=0) дешифратора 75 присутствует логический ноль, т.е. значение счетчика 72 равно нулю. В этом случае, если синхробайт не обнаруживается в заданном месте, то производится декремент соответствующего счетчика синхробайтов (70 или 71) с помощью цепочек логических элементов ИЛИ 63 и 65 или 63 и 67. При этом счетчик синхробайтов произвольного вида 72 также уменьшается на единицу.
При обнаружении первого синхробайта производится инкремент одного счетчика синхробайтов и сброс другого счетчика с помощью одного из логических элементов И: 66 или 68. Также инкрементируется счетчик 72. Так как значения счетчиков 70-72 в состоянии поиска первого синхробайта всегда равны нулю, инкремент в этом случае эквивалентен установлению счетчика в единичное состояние.
При достижении счетчиком синхробайтов CntSB 72 последнего значения, равного '15' (на первом выходе (=15) дешифратора 75 присутствует логическая единица), и при обнаружении следующего синхробайта в нужном месте (на выходе логического элемента ИЛИ 69 также присутствует логическая единица) считается, что кадровая синхронизация установлена, и блок кадровой синхронизации 9 при этом переходит в состояние формирования выходного байтового потока. Таким образом, значение порога (переменная алгоритма Thres) в устройстве фактически принято равным 16 (15+1). Триггер 79 соответствует переменной FrameSync алгоритма установления кадровой синхронизации. Он устанавливается в единичное состояние при появлении на выходе логического элемента И 77 логической единицы. При этом сигнал установления кадровой синхронизации frame_sync_detect становится активным. Сигнал SB_pos_out предназначен для синхронизации последовательно-параллельного преобразователя в блоке 15 (на функциональной схеме блока 15 цепи, отвечающие за синхронизацию, не показаны).
С помощью компаратора 74 производится проверка условия CntB8>Cnt47. Если значение счетчика 71 (CntB8) превышает значение счетчика 70 (Cnt47), тогда управляющий сигнал invert становится активным, и выполняется инверсия выходных данных блока с помощью блока инверторов 78, фактически реализуемого на восьми логических элементах ИСКЛЮЧАЮЩЕЕ ИЛИ.
Рассмотрим подробнее каким образом осуществляется формирование сигнала pos, определяющего позицию следующего синхробайта во входном потоке. Для этого используются счетчики CntBit, CntNEI и CntByte.
Счетчик CntBit 73 представляет собой двоичный трехразрядный счетчик, выполняющий подсчет битов в байтах из входного потока. Когда байт из входного потока будет полностью находиться в сдвиговом регистре 55 (переменная ShiftReg алгоритма), на выходе селектора кода '7h' 76 будет присутствовать логическая единица (сигнал out_cnt8 будет активен).
Как было сказано раннее, в режиме 16QAM-7/8 количество некодированных байт между соседними кодированными байтами не является постоянной величиной, поэтому эти интервалы необходимо различать. Для этого предназначен счетчик некодированных интервалов CntNEI. В режиме 16QAM-7/8 таких интервалов три: один длиной в три байта (A-F) и два длиной в два байта (F-H и Н-А). Поэтому коэффициент пересчета данного счетчика в этом режиме равен трем, во всех других режимах он равен нулю. В блоке 9 CntNEI реализован на элементах 81, 84 (логические элементы И), 85 (логический элемент ИЛИ), 93 (двухразрядный мультиплексор на два направления), 94 (двухразрядный двоичный счетчик) и 98 (компаратор). Двоичный счетчик 94 соответствует собственно переменной CntNEI алгоритма. Коэффициент пересчета счетчика определяется элементами 81, 85, 93, 98. Сигнал последнего состояния счетчика CntNEI last_state_cnt_NEI формируется на выходе компаратора 98 при равенстве значения счетчика 94 значению на выходе мультиплексора 93. Во всех режимах кодирования и модуляции кроме режима 16QAM-7/8 сигнал last_state_cnt_NEI будет всегда равен единице.
Счетчик, соответствующий переменной алгоритма CntByte, реализован на элементах 80, 82, 83, 86-92, 95-97, 99-102. С помощью шинных формирователей 86-92 производится выбор нужного шага между кодированными байтами в зависимости от текущего режима кодирования и модуляции. В режиме 16QAM-7/8 с помощью счетчика некодированных интервалов CntNEI и логических элементов И 82 и 83 осуществляется выбор нужной величины шага (2 или 3) в зависимости от номера некодированного интервала. Логический элемент И 80 предназначен для формирования необходимого значения шага (3) при начальной загрузке счетчика CntByte в режиме 16QAM-7/8.
Элементы 95, 96, 99-101 образуют счетчик, увеличивающий свое значение на величину шага step по модулю размера кадра, равного 204 байтам. Значение переменной CntByte алгоритма установления кадровой синхронизации фактически хранится в восьмиразрядном регистре 100. С помощью двухвходового восьмиразрядного мультиплексора 96 осуществляется начальная загрузка счетчика значением шага step, зависящим от текущего режима кодирования и модуляции.
Во время поиска первого синхробайта, когда активен сигнал SearchSB, будет выполняться постоянная начальная установка счетчика CntByte значением шага step. Во время проверки синхронизации данный счетчик будет увеличивать свое значение на величину шага всякий раз при переходе к следующему байту, т.е. когда активен сигнал out_cnt8. Разрешение работы счетчика в данных двух ситуациях осуществляется с помощью логического элемента ИЛИ 97.
Увеличение счетчика CntByte на величину шага step происходит следующим образом. Двоичный восьмиразрядный сумматор 95 прибавляет к значению переменной CntByte, хранящейся в регистре 100, величину шага step. Двоичный девятиразрядный вычитатель 99 вычитает из полученной на выходе сумматора 95 суммы, дополненной нулем в старшем разряде, размер кадра, равный '204'. Если в старшем разряде получается нуль (это будет в случае, если сумма на выходе сумматора 95 меньше 204), сумма с выхода сумматора 95 через двухвходовый восьмиразрядный мультиплексор 101 и мультиплексор 96 загружается в регистр 100. В противном случае в регистр 100 через мультиплексоры 101 и 96 загружается остаток от вычитания с выхода вычитателя 99.
В нулевом состоянии счетчика CntByte с помощью селектора нулевого кода 102 формируется сигнал pos, который становится активным при обнаружении позиции синхробайта в кадре. Кадры, в которых синхробайт передается через канал без кодирования СК и, следовательно, будет отсутствовать во входном потоке блока 9 (это происходит в режимах кодирования и модуляции 8PSK-5/6 и 16QAM-7/8), будут пропускаться.
Рассмотрим обработку устройством декодирования РТСМ некодированных данных (U).
В процессе восстановления некодированных данных можно выделить два этапа. На первом этапе на основе анализа I и Q значений принятого из канала символа с учетом значений бит С2, С1 с исправленными в них ошибками восстанавливаются значения некодированных бит U2, U1 без учета возможного фазового сдвига I,Q-сигнала. На втором этапе осуществляется компенсация фазового сдвига с использованием результатов работы блока синхронизации декодера Витерби 8 (сигнал swap) и блока кадровой синхронизации 9 (сигнал invert).
Цепочка блоков, выполняющая обработку некодированных данных, начинается с блока FIFO 1 (фиг.1), представляющего собой буфер задержки. Блок FIFO 1 необходим для компенсации задержки, вызываемой декодером Витерби 3 и блоком кодирования и перфорации 4, так как при обработке обязательно должны сохраняться временные соотношения между I,Q-компонентами принятого из канала символа и восстановленными битами С2, С1 этого же символа. Далее процесс обработки некодированных данных разветвляется в зависимости от текущего режима кодирования и модуляции и охватывает блоки 10, 12, 14, 15 или блоки 11, 13, 14, 15 (см. фиг.1).
Блок оценки некодированных бит в режимах 8PSK 10 на основе анализа восстановленных закодированных бит (вероятность ошибки в которых существенно снизилась в результате выполненного декодирования) и I,Q-компонент принятого символа (координаты точки в сигнальном созвездии) выполняет восстановление некодированных бит данных U для режимов модуляции 8PSK без учета возможного фазового сдвига I,Q-сигнала.
В РТСМ-режиме 8PSK-2/3, в котором используется два закодированных бита (С2 и С1) на каждый символ сигнального созвездия (2CBPS), вычисление оценки единственного некодированного бита U1 осуществляется следующим образом.
00
00
00
00
01
01
01
01
11
11
11
11
10
10
10
10
Плоскость I,Q разбивается на две полуплоскости, разделяемые прямой линией. В зависимости от значений закодированных бит С2 и С1 возможны четыре варианта разбиения плоскости I,Q на полуплоскости, приведенные на фиг.22. Для случая С2С1=00 уравнение линии будет иметь вид Q=I-K, где коэффициент K=Q/I=tan(-67,5°)=-2,4142136. Для случая С2С1=01 уравнение линии будет иметь вид Q=I·K, где коэффициент K=Q/I=tan(-22,5°)= -0,4142136. Для случая С2С1=11 уравнение линии будет иметь вид Q=I·K, где коэффициент K=Q/I=tan(22,5°)=0,4142136. Для случая С2С1=10 уравнение линии будет иметь вид Q=I-K, где коэффициент K=Q/I=tan(-67,5°)=2,4142136.
C2,C1
Значение некодированного бита U1 будет зависеть от того, в какую полуплоскость попадет точка I,Q-сигнала с координатами I и Q. Обведенные на фиг.22 точки сигнального созвездия соответствуют символам, имеющим одинаковые значения закодированных бит С2 и С1, но разные значения некодированного бита U1. Точки, находящиеся на одинаковом расстоянии от возможных переданных через канал символов с определенными значениями бит С2, С1, лежат на прямой, разделяющей соответствующие полуплоскости. Единичные значения бита U1 находятся в нижних полуплоскостях. Отсюда вытекает решающее правило для определения бита U1: если Q<I·K, то U1=1, в противном случае U1=0.
01
10
11
00
В РТСМ-режимах кодирования и модуляции 8PSK-5/6 и 8PSK-8/9 используется один закодированный бит (С1) на каждый символ сигнального созвездия (1CBPS), поэтому решающими правилами (фиг.23) для данных режимов определяется не полуплоскость, а квадрант I,Q-плоскости. В зависимости от значения бита С1 возможны два варианта разбиения I,Q-плоскости на квадранты прямыми линиями. Если С1=0, то уравнениями прямых будут Q=I·K и Q=I·K. Если С1=1, то уравнениями прямых будут Q=I·К и Q=I·K. На фиг.23 рядом с точками сигнального созвездия приведены соответствующие решающие правила, при удовлетворении которых осуществляется выбор данной точки, и соответственно определение значений некодированных бит U2 и U1.
Блок оценки некодированных бит в режимах 8PSK 10 (фиг.6) функционирует следующим образом.
buf
xx
buf
buf
x1
buf
хх
x1
хх
xx
xx
Цепочка элементов 103-110 предназначена для вычисления выражений Q<K·I и Q<K·I (см. также фиг.22 и фиг.23), где К и K -константы (К=Q/I), зависящие от текущих значений закодированных бит: сигналы С1" и С2". Причем элемент 103 представляет собой логический элемент НЕ (инвертор), элемент 104 - двухвходовый двухразрядный мультиплексор, элемент 105 - четырехвходовый семиразрядный мультиплексор, элемент 106 - двухвходовый семиразрядный мультиплексор, элементы 107 и 108 - семиразрядные умножители, элементы 109 и 110 - семиразрядные компараторы.
хх
x1
В таблице, приведенной на фиг.24, показано, каким образом осуществляется вычисление некодированных бит U2 и U1 блоком 10 (сигналы U2_8 и U1_8) в зависимости от режима кодирования и модуляции. Прочерки в таблице приведены для неиспользуемых сигналов, значения которых в соответствующем режиме неважно. Например, в режиме 8PSK-2/3 используются два закодированных бита и один некодированный бит на каждый символ сигнального созвездия (2CBPS), поэтому значение сигнала U2_8 неважно, так как он не используется в дальнейшем при сборке данных. В таблице также приведены значения констант К и K, которые зависят от сигналов С2" и С1". В столбцах таблицы, в которых приведены значения на выходах компараторов 109 и 110, в скобках справа от каждого значения также приведены условия, которые в соответствующем случае будут являться истинными.
c
c
В режиме 8PSK-2/3 значение единственного некодированного бита U1_8 определяется значением выходного сигнала элемента 109 (см. также фиг.22). В режимах 8PSK-5/6 и 8PSK-8/9 значения двух некодированных в данных режимах бит (U2 и U1) зависят от значения С1", а также значений, присутствующих на выходах компараторов 109 и 110 (см. также фиг.23). В таблице на фиг.24 приведены значения некодированных бит U2 и U1 (сигналы U2_8 и U1_8), которые должен формировать блок 10 в процессе своей работы. Как видно из таблицы, значение некодированного бита U1 в режиме 8PSK-2/3 полностью совпадает со значением, которое будет присутствовать на выходе компаратора 109, а значение некодированного бита U2 в режимах 8PSK-5/6 и 8PSK-8/9 полностью совпадает со значением, которое будет присутствовать на выходе компаратора 110, что отражено на функциональной схеме блока 10. В режимах 8PSK-5/6 и 8PSK-8/9 значение некодированного бита U1 формируется с помощью вычисления дополнительной корректирующей функции f, значения которой также приводятся в таблице на фиг.24 в последнем столбце. Вычисление корректирующей функции f осуществляется с помощью следующих логических элементов: 111, 112, 114 (элементы И), 113 (элемент ИЛИ). Таким образом, нужное значение некодированного бита U1 в режимах 8PSK-5/6 и 8PSK-8/9 получается путем сложения по модулю два с помощью логического элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 115 вычисленного значения корректирующей функции и значения, присутствующего на выходе компаратора 109.
D-триггеры 116 и 117 предназначены для временного хранения оценок некодированных бит с целью компенсации разброса задержек сигналов в цепях блока 10.
Блок оценки некодированных бит в режимах 16QAM 11 (фиг.1) аналогично блоку 10 выполняет реконструкцию некодированных бит U2 и U1 для режимов модуляции 16QAM на основе анализа восстановленных закодированных бит С2 и С1, а также I,Q-компонент принятого сигнала.
В РТСМ-режимах кодирования и модуляции 16QAM-3/4 и 16QAM-7/8 каждое возможное сочетание двух закодированных бит С2 и С1 ведет к одному из четырех сценариев оценки некодированных бит U2 и U1. Решающими правилами в данных режимах определяются квадранты I,Q-плоскости. На фиг.25 приведены четыре возможных сценария оценки некодированных бит для режимов 16QAM-3/4 и 16QAM-7/8.
Блок оценки некодированных бит в режимах 16QAM 11 (фиг.7) функционирует следующим образом.
buf
buf
n
Элементы 118-121 предназначены для вычисления выражений I<C_I и Q<C_Q, представляющих выражения I<±1 и Q<±1 (фиг.25) с учетом нормализации. С_I и C_Q принимают одно из двух значений: +const_16QAM и -const_16QAM (const_16QAM - значение нормализующего множителя K в режиме 16QAM, на который умножаются значения I,Q-компонент сигнала в маппере).
Блоки 118 и 119 представляют собой двухвходовые семиразрядные мультиплексоры. Блоки 120 и 121 представляют собой двухвходовые семиразрядные компараторы.
В таблице, построенной на основе решающих правил на фиг.25 и приведенной на фиг.26, показано, каким образом осуществляется вычисление некодированных бит U2 и U1 блоком 11 (сигналы U2_16 и U1_16) в режимах кодирования и модуляции 16QAM. Как видно из таблицы, значение переменной С_1 на выходе мультиплексора 118 зависит только от сигнала C1” (C_I=+const_16QAM, если С1”=0, и C_I=-const_16QAM, если С1"=1). Аналогично, значение переменной C_Q на выходе мультиплексора 119 зависит только от сигнала С2" (C_Q=+const_ 16QAM, если С2"=0, и C_Q=-const_16QAM, если С2"=1).
buf
buf
Из таблицы на фиг.26 видно, что значение некодированного бита U2 (сигнал U2_16) совпадает со значением вычисленного выражения Q<C_Q, присутствующего на выходе компаратора 121. Значение некодированного бита U1 (сигнал U1_16) совпадает со значением вычисленного выражения I<С_1, присутствующего на выходе компаратора 120. Таким образом, выходы компараторов 121 и 120 можно непосредственно использовать для формирования выходных сигналов блока 11 U2_16 и U1_16 соответственно.
D-триггеры 122 и 123 предназначены для временного хранения оценок некодированных бит с целью компенсации разброса задержек сигналов в цепях блока 11.
Компенсатор фазового сдвига в режимах 8PSK 12 и компенсатор фазового сдвига в режимах 16QAM 13 (фиг.1) предназначены для корректирования некодированных данных (биты U2 и U1) в случае возникновения фазового сдвига в режимах 8PSK и 16QAM соответственно. Величина фазового сдвига в режимах 16QAM может быть полностью определена по значению сигналов swap и invert. Величина фазового сдвига в режимах 8PSK может быть определена по значению сигналов swap и invert только частично. Окончательно влияние фазовой неоднозначности на некодированные данные (биты U2 и U1) в этих режимах может быть устранено по методу проб и ошибок с использованием дополнительного внешнего сигнала от устройства управления ext_phase_shift.
В таблицах трансформации символов сигнального созвездия при сдвигах фазы (фиг.19) приведены логические функции для восстановления бит переданного символа на основе значений бит принятого символа при различных фазовых сдвигах. Блоки 12 и 13 реализуют эти функции для некодированных бит данных U2 и U1.
Функциональная схема компенсатора фазового сдвига в режимах 8PSK 12 приведена на фиг.8. Часть схемы, выполняющая восстановление некодированного бита U1 в режиме 8PSK-2/3, приведена на листе 1 фиг.8. Эта часть схемы реализует логические функции, приведенные в таблице на фиг.19б. Главным элементом схемы является одноразрядный мультиплексор на восемь входов 137. Каждый вход мультиплексора соответствует одному из восьми возможных фазовых сдвигов. Мультиплексор управляется сигналами swap, invert и ext_phase_shift(0). В случае отсутствия фазового сдвига (Ψ=0) входной сигнал блока 12 U1_8 передается на выход мультиплексора без преобразований. Для сдвига Ψ=45° восстанавливающая бит U1 функция реализуется на элементах 124-126 (логические элементы И) и на элементе 131 (логический элемент ИЛИ). Для сдвига Ψ=90° восстанавливающая функция реализуется на элементе 127 (логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ с инверсией). Для сдвига Ψ=135° восстанавливающая функция реализуется на элементах 128-130 (логические элементы И) и на элементе 132 (логический элемент ИЛИ). Для сдвига Ψ=180° восстанавливающая функция реализуется на элементе 133 (логический элемент НЕ). Для сдвига Ψ=225° восстанавливающая функция реализуется на элементах 124-126, 131 и на элементе 134 (логический элемент НЕ). Для сдвига Ψ=270° восстанавливающая функция реализуется на элементе 127 и на элементе 135 (логический элемент НЕ). Для сдвига Ψ=315° восстанавливающая функция реализуется на элементах 128-130, 132 и на элементе 136 (логический элемент НЕ).
Часть схемы, выполняющая восстановление некодированного бита U1 в режимах 8PSK-5/6, 8/9 в соответствии с таблицей на фиг.19в, приведена на листе 2 фиг.8. Главным элементом этой схемы является одноразрядный мультиплексор на восемь входов 141. Мультиплексор управляется сигналами invert, ext_phase_shift(0) и ext_phase_shift(l). В случае отсутствия фазового сдвига (Ψ=0) и для сдвига (Ψ=180°) входной сигнал U1_8 передается на выход мультиплексора без преобразований. Для сдвигов Ψ=45° и Ψ=225° восстанавливающая бит U1 функция реализуется на элементе 139 (логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ) и на элементе 140 (логический элемент НЕ). Для сдвигов Ψ=90° и Ψ=270° восстанавливающая функция реализуется на элементе 139 (логический элемент НЕ). Для сдвигов Ψ=135° и Ψ=315° восстанавливающая функция реализуется на элементе 138.
Двухвходовый одноразрядный мультиплексор 142 выдает на выход U1_8' блока 12 сигнал с выхода мультиплексора 137 или сигнал с выхода мультиплексора 141 в зависимости от режима кодирования и модуляции.
Часть схемы, выполняющая восстановление некодированного бита U2 в режимах 8PSK-5/6, 8/9 в соответствии с таблицей на фиг.19в, приведена на листе 3 фиг.8. Главным элементом этой схемы является одноразрядный мультиплексор на восемь входов 162. Мультиплексор управляется сигналами invert, ext_phase_shift(0) и ext_phase_shift(l). В случае отсутствия фазового сдвига (Ψ=0) входной сигнал блока 12 U2_8 передается на выход мультиплексора без преобразований. Для сдвига Ψ=45° восстанавливающая бит U2 функция реализуется на элементах 144-146 (логические элементы И) и на элементе 156 (логический элемент ИЛИ). Для сдвига Ψ=90° восстанавливающая функция реализуется на элементах 143 (логический элемент ИСКЛЮЧАЮЩЕЕ) и 160 (логический элемент НЕ). Для сдвига Ψ=135° восстанавливающая функция реализуется на элементах 147-149 (логические элементы И) и на элементе 157 (логический элемент ИЛИ). Для сдвига Ψ=180° восстанавливающая функция реализуется на элементе 161 (логический элемент НЕ). Для сдвига Ψ=225° восстанавливающая функция реализуется на элементах 150-152 (логические элементы И) и на элементе 158 (логический элемент ИЛИ). Для сдвига Ψ=270° восстанавливающая функция реализуется на элементе 143. Для сдвига Ψ=315° восстанавливающая функция реализуется на элементах 153-155 (логические элементы И) и на элементе 159 (логический элемент ИЛИ).
Функциональная схема компенсатора фазового сдвига в режимах 16QAM 13 приведена на фиг.9. Компенсатор восстанавливает биты некодированных данных U2 и U1, реализуя логические функции, приведенные в таблице на фиг.19г. Эти функции представляют собой перестановки и инвертирование входных бит. Компенсатор 13 содержит два четырехвходовых одноразрядных мультиплексора 165 и 166 и два логических элемента НЕ 163 и 164. В случае отсутствия фазового сдвига (Ψ=0) входные сигналы U1_16 и U2_16 передаются на выходы мультиплексоров без преобразований. В случае сдвига Ψ=90° биты U1_16
и U2_16 переставляются, а бит U1_16 инвертируется с помощью элемента 163. В случае сдвига Ψ=180° биты U1_16 и U2_16 инвертируются с помощью элементов 163 и 164 без перестановок. В случае сдвига Ψ=270° биты U1_16 и U2_16 переставляются, а бит U2_16 инвертируется с помощью элемента 164.
С помощью мультиплексора 14 (фиг.1) осуществляется переключение в зависимости от вида модуляции (8PSK или 16QAM) между потоками восстановленных некодированных данных, поступающих с компенсаторов фазового сдвига 12 и 13: U1_8' и U2_8' или U1_16' и U2_16'.
Блок сборки данных 15 (фиг.1) предназначен для сборки кодированных и некодированных бит данных в единый выходной байтовый поток data_out.
Данный блок, функциональная схема которого приведена на фиг.10, функционирует следующим образом.
На регистре сдвига 167 и буферном регистре 169 собран преобразователь некодированных данных из последовательного в параллельный вид. В РТСМ-режиме 8PSK-2/3 (сигнал 8PSK23 активен) осуществляется преобразование 1→8 (сборка байтов данных из одного битового потока). Только в этом режиме используется один некодированный бит данных на каждый символ сигнального созвездия (2CBPS). Регистр сдвига 167 работает в режиме побитового сдвига. Во всех других РТСМ-режимах кодирования и модуляции осуществляется преобразование 2→8 (сборка байтов данных из двух битовых потоков). Сдвиговый регистр 167 при этом всякий раз сдвигается на два бита. В буферном регистре 169 «защелкиваются» собранные байты некодированных данных.
Буферный регистр 168 является частью последовательно-параллельного преобразователя для кодированных данных (вместе с регистром сдвига 55, приведенном на фиг.5). Он так же, как и регистр 169, предназначен для «защелкивания» поступающих данных по мере готовности. В буферном регистре 168 сохраняются поступающие на вход v_byte блока сборки данных 15 байты кодированных данных.
Буферы FIFO 171 и 172 предназначены для компенсации варьирующегося в зависимости от режима кодирования и модуляции временного смещения между байтами кодированных и некодированных данных. Данные буферы имеют размер, равный двум байтам. Запись данных из регистров 168 и 169 в буферы 171 и 172 происходит асинхронно по мере их освобождения.
Мультиплексор 175 предназначен для сбора в единый байтовый поток кодированных и некодированных байтов данных согласно стандарту DVB-DSNG в порядке, приведенном в таблице на фиг.14. В блоке 15 данный порядок определяется сигналом state_E (выход логического элемента ИЛИ 177), который активен только для кодированных байтов данных.
Счетчик 170 вместе с компаратором 174 образуют счетчик байтов, перебирающий байты из последовательности А, В, D, F, G, H, L. Трехразрядный сигнал n_last_state_cnt_A_L задает максимальное значение, после достижения которого происходит сброс данного счетчика. Значение константы n_last_state_cnt_A_L зависит от текущего режима кодирования и модуляции.
Цепочка элементов, состоящая из дешифратора 173, элемента И 176 и элемента ИЛИ 177 предназначена для выделения из последовательности байтов только тех байтов, которые соответствуют кодированным байтам данных.
Таблица, поясняющая работу счетчика байтов, приведена на фиг.27. В данной таблице приведены максимальные значения счетчика байтов 170 в зависимости от режима кодирования и модуляции, а также обозначения байтов, соответствующие различным значениям счетчика 170. Подчеркнутые буквы в таблице соответствуют кодированным байтам данных (см. также фиг.14). Из таблицы видно, что цепочка, состоящая из элементов 173, 176 и 177, фактически предназначена для выделения из последовательности байтов кодированных байтов A, F и H, присутствующих только в РТСМ-режиме 16QAM-7/8. В остальных режимах кодирования и модуляции кодированным байтом будет являться единственный байт в последовательности, а именно первый байт А.
В данном устройстве декодирования РТСМ предполагается, что сигнал reset, подаваемый на некоторые блоки устройства, выполняет функцию общего асинхронного сброса всего устройства. Данный сигнал является инверсным и инициирует сброс всех блоков устройства при подаче логического нуля. При этом элементы памяти (триггеры, регистры, буферы и т.п.), входящие в состав некоторых блоков устройства, инициализируются начальными, нулевыми значениями (см. функциональные схемы блоков).
Предлагаемое устройство состоит из простых по своему функциональному назначению элементов и поэтому легко может быть реализовано на ПЛИС или специализированной БИС.
Предлагаемое устройство декодирования РТСМ по сравнению с прототипом обладает преимуществами, заключающимися в меньшей аппаратной сложности и меньшем времени установления синхронизации при инициализации устройства, а также при переключении потоков данных или режимов кодирования и модуляции в условиях фазовой неопределенности I,Q-сигнала демодулятора.
Источники информации
1. EN 301 210 v.1.1.1 (1999-03): "Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for Digital Satellite News Gathering (DSNG) and other contribution applications by satellite".
2. EN 300 421 v.1.1.2 (1997-08): "Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for 11/12 GHz satellite services".
3. Патент 5469452 США. МПК G06F 11/10. Viterbi decoder bit efficient chainback memory method and decoder incorporating same. / Ephraim Zehavi - заявлено 27.09.91 N 767167; опубл. 21.11.95.
4. Патент 6078625 США. МПК H03D 1/00. Pragmatic decoder and method therefor. / Ronald D. McCallister, Bruce A. Cochran, John M. Liebetreu - заявлено 20.10.97 N 08/954762; опубл. 20.06.00.
5. Патент JP2003188932 Японии. МПК H04L 27/22; H04L 27/38; H04L 27/22. Digital broadcast receiver. / Nishiyama Kouichirou - заявлено 14.12.01 JP20010381250; опубл. 04.07.03.
6. Р.Морелос-Сарагоса. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - M.: Техносфера, 2005. - 320 с.
7. Б.Скляр. Цифровая связь. Теоретические основы и практическое применение. Изд. 2-е, испр.: Пер. с англ. - M.: Издательский дом "Вильямс", 2004. - 1104 с.: ил. - Парал. тит. англ.
8. A.J.Viterbi, J.K.Wolf, E.Zehavi and R.Padovani, "A Pragmatic Approach to Trellis-Coded Modulation" IEEE Comm. Mag., pp.11-19, July 1989.