Способ передачи голосовых данных в цифровой системе радиосвязи и устройство для его осуществления
Иллюстрации
Показать всеИзобретение относится к области радиотехники, в частности к передаче голосовых данных в цифровой системе радиосвязи. Технический результат состоит в повышении качества радиосвязи за счет отображения информационного слова в кодовые символы различных параллельных каскадов. Для этого на передающей стороне формируют пакеты данных, каждый из которых содержит информационную последовательность символов, в каждом пакете данных дополняют информационную последовательность символов циклической контрольной суммой CRC, формируют промежуточную кодовую последовательность, для чего выполняют кодирование дополненной циклической контрольной суммой информационной последовательности каждого пакета данных сверточным рекурсивным кодом без внесения избыточности с рациональной функцией передачи, зависящей от времени, и формируют решетчатую диаграмму нерекурсивного сверточного кода с рациональными функциями передачи, добавляют к сформированной промежуточной кодовой последовательности, кодированной рекурсивным сверточным кодом, назначенные кодовые символы таким образом, чтобы был известен единственный финальный узел на заданной глубине. 2 н.п. ф-лы, 11 ил.
Реферат
Изобретение относится к области радиотехники, в частности к способу и устройству передачи голосовых данных в цифровой системе радиосвязи.
Преобразование голосового сообщения в цифровой системе радиосвязи включает в себя следующие этапы:
- аналого-цифровое преобразование речевого сигнала,
- канальное кодирование,
- передача по радиоканалу кодового слова,
- декодирование входного сигнала
- цифроаналоговое преобразование цифровой последовательности в речевой сигнал
Аналого-цифровое преобразование и цифроаналоговое преобразование выполняет вокодер, известный как "waveform coder" (см. L.R.Rabiner R.W.Schafer, Digital processing of speech signal. Prentice Hall. Englewood Cliffs New Jersey 1978 [1]). В настоящее время гибридные вокодеры позволяют преобразовывать в голосовой сигнал пакеты данных, содержащие ошибки, если количество ошибочных символов не превышает установленного предела, то исходный сигнал может быть восстановлен с потерями, субъективно малозаметными, для абонента. Таким образом, актуальной является задача повышения качества связи при передаче голосовых данных в цифровой системе радиосвязи за счет снижения символьной ошибки помехоустойчивого кодирования.
Следует отметить, что для обнаружения ошибочного пакета голосовых данных также используют код, обнаруживающий ошибки. Наиболее эффективной технологией обнаружения ошибок является циклическая контрольная сумма, которую добавляют к передаваемому пакету. Полное описание способа кодирования циклической контрольной суммой CRC дано, например, в книге Блейхут. Теория и практика кодов, контролирующих ошибки. - М: 1986 [2]. Циклическая контрольная сумма является практически надежным способом обнаружения ошибок. Использование контрольной суммы не только для обнаружения ошибок, но и для их коррекции может снизить символьную ошибку помехоустойчивого кодирования.
Помехоустойчивое кодирование сверточным кодом известно из Theoretical fundamentals of communications / D.Wozencraft, I.Jeckobs. - M.: Mir, 1969. - p.640., Elias P. Coding for Noisy Channel / P. Elias // IRE Convention Record. - 1955. - Pt.4. - P.37-46. [3].
Последовательность передаваемых информационных символов может быть представлена в виде многочлена s(x)=s0+s1x+s2x2, где s0, s1, s2 - двоичные символы, расположенные в очередности их передачи.
Тогда последовательность символов на выходе сверточного кодера, представленного на фиг.1 (а), можно рассматривать как свертку импульсной характеристики кодера с входной последовательностью. В компактном виде линейная свертка записывается как произведение многочленов:
c(x)=s(x)g(x)
Коэффициенты сi, этого многочлена определяются равенствами
Свертку следует понимать, как свертку в поле Галуа. То есть для двоичных сообщений сумму надо понимать как сумму по модулю 2, а умножение на х как операцию задержки. Таким образом, si - входная последовательность; сi - отсчет выходной последовательности; g(x) - образующий полином, a gk - его коэффициенты. Для введения избыточности с помощью другого образующего полинома g'(x) получают выходной отсчет с'(х). В результате этого входному символу si соответствуют два выходных с(х) и с'(х). Образующий полином также можно представить в виде двоичного числа, где k-т разряд равен бинарному коэффициенту gk. Так для кодера, представленного на Фиг.1 (а), образующие полиномы равны g=58 и g'=78, где нижний индекс обозначает основание системы счисления. Физически кодер реализуется при помощи линии задержки. Скоростью кодера называется отношение числа входных символов к числу выходных, а длиной кодового ограничения - длина линии задержки, которая равна степени образующего полинома. Скорость кодирования этого кодера составляет R=1/2. Длина кодового ограничения определена как минимальная длина линии задержки, при которой код может быть реализован, и равна К=3.
Другим видом представления помехоустойчивого кода является представление при помощи порождающей матрицы, так в этом представлении операция кодирования может быть записана как умножение вектора информационных символов на порождающую матрицу, результатом которого будет вектор кодовых символов: SG=С.
Вид порождающей матрицы сверточного кода определяется откликом на единичное воздействие на кодер, показанным на фиг.1 (а). Пусть в кодер поступает символ 1, за которым следуют символы 0. В таком случае отклик на такое единичное воздействие, то есть соответствующая выходная последовательность кодера имеет вид . Выходная последовательность, соответствующая произвольной входной последовательности, получается сложением по модулю 2 сдвигов указанной последовательности. Поэтому порождающая матрица может быть представлена в виде:
Как видно из способа построения матрицы, она имеет бесконечный размер, но, тем не менее, кодер достаточно просто реализуется на линии задержки.
Сверточный код можно представить посредством порождающих подматриц, каждая из которых соответствует задержанному одному импульсному отклику, как показано на фиг.2 (см. R.Johannesson and К.S.Zigangirov, Fundamentals of Convolutional Coding. New York, NY, USA: IEEE Press, 1999 [4]). Размер подматрицы соответствует числу порождающих полиномов Gk={gk,1, gk,2} и определяет скорость кодирования R. Порождающую матрицу для сверточного кода в этом случае можно представить в виде:
Для кода, показанного на фиг.1 (а), порождающие подматрицы равны
Наряду с термином "порождающий полином" используется термин "рациональная функция передачи" от оператора задержки D:
gk(D)=gk0+gk1D+gk2D2+gk3D3+...+gkmDm
В таком случае говорят о том, что информационную последовательность умножают на порождающий полином кода или на рациональную функцию передачи gk(D), где D оператор задержки или D-преобразование (см. [4] стр.31).
Избыточность кодирования достигается за счет введения множества каскадов кодирования сверточного кода gk(D), g1(D),..., gN(D). В каждом из каскадов кодирования формируют один кодовый символ. Все кодовые символы, сформированные в каскадах кодирования, соответствуют одному информационному символу, поступившему в линию задержки. Операции кодирования в каждом каскаде проводят параллельно.
Известен рекурсивный сверточный код или сверточный код с обратной связью (см. G.D.Fomey, Jr., "Convolutional codes I: Algebraic structure," IEEE Trans. Inform. Theory, vol.IT-16, p.720-738, Nov. 1970 [5]). Обратная связь в кодере реализована делением на полином. Такой кодер также характеризуется рациональной функцией передачи. Необходимым условием реализуемости такой схемы является равенство единице элемента с нулевой степенью D в полиноме-знаменателе.
На фиг.3 представлены два варианта реализации рекурсивного сверточного кодера и соответствующие им рациональные функции передачи:
а) рациональная функция передачи сверточного кодера (вариант а)
б) рациональная функция передачи сверточного кодера (вариант б)
Сверточные коды допускают сравнительно простой алгоритм мягкого декодирования, известный как алгоритм Витерби (Витерби А. Границы ошибок для сверточных кодов и асимптотический оптимальный алгоритм декодирования. - см. А.Витерби. Некоторые вопросы теории кодирования. - М., 1970. - С.142-165 [6]). Декодирование сверточного кода основано на сравнении двух кодовых последовательностей путем определения "расстояния" между ними в пространстве допустимых кодовых слов или определения "веса" одного кодового слова относительно другого. Для случая последовательностей из двоичных символов простейшей метрикой, определяющей расстояние между кодовыми словами, является метрика Хемминга, которая равна количеству отличных друг от друга символов в рассматриваемых последовательностях. Также определена метрика в мягких решениях, которая равна сумме геометрических расстояний в пространстве сигналов между соответствующими кодовыми символами в обеих последовательностях [2].
Процесс декодирования сверточного кода представляет собой поиск пути с наименьшим весом по дереву, ветви которого представляют собой допустимые кодовые комбинации. Отбрасывание заведомо неправильных путей позволит избежать экспоненциального роста сложности в зависимости от длины кодового блока. Учитывая тот факт, что кодер является автоматом с конечным числом состояний, удобно графически изображать код, как решетчатую диаграмму. Для кодера, представленного на фиг.1 (а), решетчатая диаграмма показана на фиг.1 (б), где узлы соответствуют состояниям кодера, определяемым двумя первыми битами из линии задержки, а ребра соответствуют допустимым переходам и промаркированы соответствующими значениями выходных бит. В начальный момент времени t0 биты, записанные в линию задержки, определяют инициализацию кодера, обычно кодер инициализируют нулями. Каждый столбец - это состояние кодера в дискретный момент времени ti. В декодере каждый возможный путь накапливает свой вес путем сравнения с действительно принятой последовательностью, используя метрику Хемминга или метрику в мягких решениях. И, таким образом, продвигается в глубину решетчатой диаграммы, где глубина решетчатой диаграммы сверточного кода q в декодере соответствует дискретным отсчетам времени ti в кодирующем устройстве. Отметим, что в каждое состояние также приходят два пути, один из которых с худшей метрикой отбрасывается.
Модифицированный алгоритм декодирования Витерби, приведенный в [4], заключается в следующем:
- в построении массива метрик, размером равного числу внутренних состояний кодера, который рассматривают как автомат с конечным числом состояний,
- инициализации массива метрик априорными значениями метрик,
- вычислении метрик путей, которые равны метрике исходного состояния плюс метрика допустимого перехода (ADD),
- обновлении метрик состояния путем выбора наименьшей метрики разрешенного пути в это состояние (COMPARE),
- запоминании разрешенного перехода с наименьшей метрикой (SELECT),
- повторении описанной процедуры до тех пор, пока не достигнут конца кодового слова,
- выборе финального состояния, отслеживании основного выжившего пути по запомненным разрешенным переходам в обратном направлении.
Алгоритм Витерби является оптимальным в своем классе кодов по критерию минимальной вероятности ошибки в приеме кодового слова, что, однако, не гарантирует минимального числа ошибочных символов.
Известен алгоритм MAP BCJR (см. Optimal decoding of linear codes for minimizing symbol error rate / L.R.Bahl, J.Cocke, F.Jelinek, J.Raviv // IEEE Transaction on Information Theory. - 1974. - Vol.20, №3. - P.284-287. [7]), который является оптимальным по критерию минимума символьной ошибки, но он требует сложной реализации, больших вычислительных ресурсов и вносит задержку обработки. Алгоритм заключается в проходе кодового слова в прямом и обратном направлении, сохранении промежуточных результатов и последующем проходе, где промежуточные результаты объединяют и выносят мягкие решения по принятым символам.
По сравнению с алгоритмом Витерби процесс декодирования по алгоритму MAP может быть начат только после приема кодового слова в целом, что увеличивает задержку декодирования и предполагает наличие сложных вычислительных операций.
Алгоритм Витерби позволяет декодировать кодовое слово по мере поступления кодовых символов, задержку вносит только процесс выбора решений по декодированным символам или процесс отслеживания выживших путей, однако эта задержка не является значительной и определяется максимальной глубиной решетчатой диаграммы сверточного кода, обычно равной 5-6 длинам кодового ограничения.
Известны систематический и несистематический виды кодирования, которые отличаются тем, что в случае систематического кодирования исходное информационное сообщение является частью кодового слова в явном виде, то есть кодовое слово может быть разделено на информационную и проверочную составляющие.
Для кодов, декодируемых по алгоритму Витерби, оптимальным является несистематический вид кодирования, однако известно, что любой несистематический сверточный код может быть представлен в систематическом виде, притом будет сохранена возможность его декодирования стандартным декодером (см. [5], а также Min-Goo Kirn, On Systematic Punctured Convolutional Codes, IEEE Transactions on Communications, Vol.45 No.2, P.133-9, February 1997 [8]). Это достигается путем предварительного сверточного рекурсивного кодирования, без внесения избыточности, может быть сформирована промежуточная кодовая последовательность таким образом, что, будучи закодирована стандартным кодом сверточного кода, полученное кодовое слово будет содержать в себе исходную информационную последовательность как составную часть, таким образом, информационные символы могут быть отображены в назначенные кодовые символы. Полученный код может быть декодирован стандартным декодером Витерби, исходная информационная последовательность может быть получена как обратным кодированием, так и прямым преобразованием промежуточной кодовой последовательности в исходное информационное сообщение, выполненным непосредственно в декодере, с незначительными модификациями последнего. Следует отметить, что в этом случае предварительное кодирование выполняют с обратной связью рекурсивным сверточным кодером.
Однако, если отображать информационную последовательность только в один из каскадов кодирования, например, при скорости кодирования R=1/2, эффект снижения битовой ошибки не может быть достигнут, из-за кодовой зависимости бит в этом каскаде, так ошибка в одном из кодовых символов, с высокой вероятностью приводит к ошибке в следующем символе этого каскада. Однако в литературе показана эффективность данного способа предварительного кодирования для скорости с обратной связью R=1/2 в канале с федингом (см. Channel coding techniques for Adaptive Multi Rate Speech Transmission / T.Hindelang, J.Hagenauer, M.Schmauts, Wen Xu [9]). Выигрыш в символьной ошибке получается за счет того, что алгоритм Витерби оптимален только по критерию минимальной пакетной ошибки, соответственно выигрыш состоит в том, что будет уменьшено количество ошибочных символов в ошибочных пакетах за счет предварительного кодирования с обратной связью с последующим восстановлением информационной последовательности из промежуточной кодовой последовательности.
Известным способом повышения эффективности декодирования является лист-декодирование или декодирование списком (см. Elias P. Error-Correcting Codes for List Decoders / P. Elias // IEEE Transactions on Information Theory. - 1991. - Vol.37, №1. - P.5-13. [10]), которое заключается в том, что декодер возвращает список возможных вариантов кодовых слов. Выбор из них правильного информационного сообщения может быть осуществлен путем проверки циклической контрольной суммы. Например, в алгоритме Витерби лист-декодирование может быть реализовано путем добавления в список некоторых путей, которые ранее были отброшены.
Известны следующие реализации Лист Витерби Алгоритма:
- N.Seshadri, С.Е.W. Sundberg "List Viterbi decoding and its application" // IEEE Trans on Communication, Vol.COM-42, №2-4, 1994, P.313-323 [11],
- Martin Röder, Raouf Hamzaoui "Fast List Viterbi Decoding and Application for Source-Channel Coding of Images" http://citeseer.ist.psu.edu/689661.html [12].
Фактически, данный алгоритм характеризуется поиском по дереву сохраненных переходов в решетчатой диаграмме декодера Витерби, где поиск осуществляют на несколько уровней в глубину, меняя решения сделанные декодером Витерби.
Лист Витерби алгоритм, описанный [11], характеризуется следующей последовательностью действий:
1) выбирают основной выживший путь, выполняя декодирование Витерби;
2) формируют первый список альтернативных путей, отслеживая основной выживший путь в обратном направлении, начиная с шага с наибольшим номером, для чего на каждом шаге добавляют в первый список альтернативные пути, которые были слиты с основным выжившим путем;
3) для каждого пути в первом списке формируют второй список, добавляя в него альтернативные пути, которые были слиты с этим путем из первого списка;
4) вычисляют метрики путей из второго списка, если метрика пути из второго списка меньше, чем метрика какого-либо пути из первого списка, то путь в первом списке, меняют на путь из второго списка путей;
5) рекурсивно повторяют действия до тех пор, пока не будет достигнут шаг с нулевым номером;
6) проверяют CRC у всех путей из первого списка;
Недостатком данного алгоритма является его техническая сложность, алгоритм может быть упрощен путем выполнения только действий 1, 2, 6, однако в таком случае его эффективность резко падает, например, в канале с федингом.
Наиболее близкое к заявляемому изобретению техническое решение - прототип описано в патенте США №6112326, Int.Cl. Н03М/13, Preceding Technique to Lower the Bit Error Rate (BER) of Punctured Convolutional Codes / Ali S.Khayrallah; Ericsson Inc. [13], где предварительное кодирование выполняют путем умножения на несистематическую матрицу, согласованную с матрицей выкалывания для ряда определенных сверточных кодов с кодовым ограничением, равным 5. Следует отметить, что в устройстве-прототипе выполняют предварительное кодирование без обратной связи.
Способ характеризуется следующей последовательностью действий:
1) на передающей стороне умножают информационный сигнал на матрицу предварительного кодирования, получая предварительно кодированный информационный сигнал;
2) умножают порождающую матрицу, имеющую первую скорость сверточного кода, на предварительно кодированный информационный сигнал, получая кодированный информационный сигнал;
3) умножают матрицу выкалывания, имеющую вторую скорость сверточного кода, которая выше, чем первая скорость сверточного кода, на кодированный информационный сигнал, получая выколотый информационный сигнал;
4) передают выколотый информационный сигнал по каналу;
5) на приемной стороне принимают выколотый информационный сигнал;
6) принятый выколотый информационный сигнал умножают на матрицу, обратную матрице выкалывания, получая невыколотый информационный сигнал;
7) декодируют невыколотый информационный сигнал, получая максимальную оценочную последовательность кода;
8) умножают максимальную оценочную последовательность кода на матрицу, обратную порождающей матрице, получая некодированный сигнал;
9) умножают некодированный информационный сигнал на матрицу, обратную матрице предварительного кодирования, получая переданный информационный сигнал, где матрица предварительного кодирования согласована с матрицей выкалывания, таким образом, чтобы уменьшить скорость возникновения ошибок в передаваемом выколотом информационном сигнале.
Описанный способ-прототип осуществляют на устройстве, два варианта реализации которых приведены в [13]. Наиболее близким техническим решением - прототипом заявляемому устройству является устройство по второму варианту выполнения. Структурная схема устройства-прототипа выполнена на фиг.4 (передающее устройство) и фиг.5 (приемное устройство).
Устройство-прототип содержит передающее и приемное устройства, соединенные посредством канала 9, при этом передающее устройство 1 (фиг.4), содержит первый 2, второй 4, третий 6 и четвертый 8 коммутаторы, L блоков предварительного кодирования без обратной связи 31-3L, блок кодирования 5 и L блоков выкалывания кодовых символов 71-7L при этом вход первого коммутатора 2 является входом передающего устройства, L выходов первого коммутатора 2 соединены с соответствующими им входами L блоков предварительного кодирования без обратной связи 31-3L выходы L блоков предварительного кодирования без обратной связи соединены с L входами второго коммутатора 4, выход второго коммутатора 4 соединен со входом блока кодирования 5, выход которого соединен со входом третьего коммутатора 6, L выходов которого соединены с соответствующими им входами L блоков выкалывания кодовых символов 71-7L выходы L блоков выкалывания кодовых символов 71-7L соединены с L входами четвертого коммутатора 8, выход которого является выходом передающего устройства и соединен со входом канала 9, выход которого соединен со входом приемного устройства 10.
Приемное устройство 10 (фиг.5) содержит первый 11, второй 13, третий 15 и четвертый 17 коммутаторы, L блоков согласования количества кодовых символов 121-12L блок декодирования 14 и L блоков декодирования предварительного кода 161-16L при этом вход первого коммутатора 11 является входом приемного устройства, L выходов первого коммутатора 11 соединены соответственно со входами L блоков согласования количества кодовых символов 121-12L, выходы которых соединены с L входами второго коммутатора 13, выход которого соединен со входом блока декодирования 14, выход которого соединен со входом третьего коммутатора 15, L выходов которого соответственно соединены со входами L блоков декодирования предварительного кода 161-16L, выходы которых соединены с L входами четвертого коммутатора 17, выход которого является выходом устройства.
Осуществляют способ-прототип на устройстве (фиг.4 и 5) следующим образом.
На передающем устройстве (фиг.4) на вход первого коммутатора 2 поступает информационный сигнал, который он подает на вход одного из L блоков предварительного кодирования без обратной связи 3.
В блоке предварительного кодирования без обратной связи 3 выполняют кодирование информационного сигнала, умножая информационный сигнал на матрицу предварительного кодирования, получая предварительно кодированный информационный сигнал, который поступает на один из L входов второго коммутатора 4.
Второй коммутатор 4 подает предварительно кодированный информационный сигнал на вход блока кодирования 5, где осуществляют его кодирование, получая кодированный информационный сигнал, который поступает на вход третьего коммутатора 6.
Третий коммутатор 6 подает кодированный информационный сигнал на вход одного из L блоков выкалывания кодовых символов 7, который осуществляет выкалывание кодовых символов в кодированном информационном сигнале путем умножения матрицы выкалывания, имеющую вторую скорость сверточного кода, которая выше, чем первая скорость сверточного кода, на кодированный информационный сигнал, получая выколотый кодированный информационный сигнал.
Выходной сигнал с блока выкалывания кодовых символов 7 поступает на один из L входов четвертого коммутатора 8. Выколотый кодированный информационный сигнал поступает с выхода четвертого коммутатора 8 на вход канала 9, по которому передается на приемное устройство 10.
На приемном устройстве 10 (фиг.5) принимают выколотый информационный сигнал по каналу 9, коммутируют принятый выколотый информационный сигнал на первом коммутаторе 11 и передают его на вход одного из L блоков согласования количества кодовых символов 12. В блоке согласования количества кодовых символов 12 принятый выколотый информационный сигнал умножают на матрицу, обратную матрице выкалывания, получая невыколотый информационный сигнал, который с выхода блока 10 поступает на один из L входов второго коммутатора 13.
С выхода второго коммутатора 13 невыколотый информационный сигнал поступает на вход блока декодирования 14. В блоке 14 декодируют невыколотый информационный сигнал, получая некодированный информационный сигнал (максимально оценочную последовательность кода), который передают с выхода блока 14 на вход третьего коммутатора 15.
С одного из L выходов третьего коммутатора 15 на вход соответствующего ему блока декодирования предварительного кода 16 поступает некодированный информационный сигнал.
В блоке 16 декодируют некодированный информационный сигнал, умножая некодированный информационный сигнал на матрицу, обратную матрице предварительного кодирования, получая переданный информационный сигнал, причем матрица предварительного кодирования согласована с матрицей выкалывания таким образом, чтобы уменьшить скорость возникновения ошибок в передаваемом выколотом информационном сигнале. Переданный информационный сигнал с выхода одного из L блоков 16 поступает на один из L входов четвертого коммутатора 17.
С выхода четвертого коммутатора 17 переданный информационный сигнал передают на выход приемного устройства 10.
Это известное решение направлено на уменьшение символьных ошибок в системе передачи данных, использующей выколотый сверточный код с незначительным увеличением сложности (всей системы и/или декодера), а также на обеспечение неравномерной защиты от ошибок в системе с выколотым сверточным кодом. Однако, оно, по-прежнему не обеспечивает уменьшения количества символьных ошибок в кодах со скоростью кодирования больше или равной R=1/2.
Описанные выше способ и устройство-прототип требует выкалывания кодовых символов и определены только для кода с длиной кодового ограничения К=5, т.е. кода, который является слабым. Поэтому способ-прототип и устройство для его осуществления не могут обеспечить высокое качество радиосвязи.
Следует учитывать, что упомянутый прототип [13] включает в себя ряд устройств предварительного кодирования без обратной связи, задаваемых соответствующим множеством матриц, устройство кодирования сверточным кодом, заданное порождающей матрицей с первой скоростью сверточного кода, блок выкалывания, содержащий ряд узлов выкалывания, задаваемых соответствующим множеством матриц выкалывания, для формирования выколотого информационного сигнала, передаваемого по каналу, где выбранная матрица устройства предварительного кодирования без обратной связи согласуется с выбранной матрицей выкалывания с целью уменьшения BER (вероятности ошибки) в переданном выколотом информационном сигнале, блок согласования количества кодовых символов, в котором умножают на матрицу, обратную исходной матрице выкалывания, переданный выколотый информационный сигнал для формирования невыколотого информационного сигнала, декодер Витерби, отображающий невыколотый информационный сигнал в сигнал оценки символов кодовой последоветельности по правилу максимального правдоподобия, блок формирования информационных последовательностей по путям решетчатой диаграммы декодера Витерби (uncoder), умножающий матрицу, обратную порожадющей матрице, на сигнал оценки символов кодовой последоветельности для формирования некодированного информационного сигнала, и блок обратный примененному блоку предварительного кодирования, умножающий матрицу, обратную выбранной матрице предварительного кодирования, на некодированный информационный сигнал для формирования переданного информационного сигнала.
Техническая сложность при реализации прототипа [13] состоит в трудности поиска матриц предварительного кодирования, согласованных с порождающей матрицей кода и с матрицей выкалывания для кодов с большим кодовым ограничением.
Задача, на решение которой направлено заявляемое изобретение - это повышение качества радиосвязи, при этом технический результат достигается за счет снижения символьной ошибки при декодировании сверточного кода по алгоритму Витерби.
В частности, для достижения технического результата разработан заявляемый способ передачи голосовых данных в цифровой системе радиосвязи, заключающийся в том, что
на передающей стороне формируют пакеты данных, каждый из которых содержит информационную последовательность символов,
в каждом пакете данных дополняют информационную последовательность символов циклической контрольной суммой CRC,
формируют промежуточную кодовую последовательность, для чего выполняют кодирование информационной последовательности каждого пакета данных сверточным рекурсивным кодом без внесения избыточности с рациональной функцией передачи , зависящей от времени t, где t - целое число , g0(D), g1(D) - рациональные функции передачи сверточного нерекурсивного кода, используемого для помехоустойчивого кодирования, а хt - двоичный символ псевдослучайной последовательности;
формируют решетчатую диаграмму сверточного кода,
добавляют к сформированной промежуточной кодовой последовательности назначенные кодовые символы таким образом, чтобы для сформированной решетчатой диаграммы сверточного кода был известен финальный узел на заданной глубине q=tmax,
кодируют сформированную промежуточную кодовую последовательность нерекурсивным сверточным кодом с рациональными функциями передачи g0(D), g1(D), получая кодовое слово с отображенными информационными символами;
передают кодовое слово по каналу;
на приемной стороне выполняют демодуляцию входного сигнала, получая кодовое слово в мягких решениях;
декодируют кодовое слово в мягких решениях посредством декодера Витерби для чего:
инициализируют массив метрик декодера Витерби априорными значениями метрик, предполагая что все пути выходят из одного узла решетчатой диаграммы сверточного кода в начальный момент времени, полагают t=0;
формируют решетчатую диаграмму сверточного кода, где - для каждого узла на глубине q=t+1 находят узлы-предшественники на глубине q=t, с которыми он соединен разрешенным переходом;
для каждого узла-предшественника вычисляют метрики путей, складывая метрику исходного узла-предшественника и метрику допустимого перехода,
обновляют метрику состояния путем выбора наименьшей метрики разрешенного пути в это состояние,
запоминают разрешенный переход с наименьшей метрикой,
повторяют вычисление метрик путей, обновление метрики состояния и запоминание разрешенного перехода с наименьшей метрикой до тех пор, пока не достигнут заданной глубины q=tmax,
выбирают известный финальный узел, на глубине q=tmax,
отслеживают основной выживший путь, выполняя запомненные переходы по решетчатой диаграмме в обратном направлении, получают таким образом промежуточную кодовую последовательность из основного выжившего пути;
кодируют промежуточную кодовую последовательность нерекурсивным сверточным кодом с рациональными функциями передачи g0(D), g1(D), получая восстановленное кодовое слово;
осуществляют выкалывание в восстановленном кодовом слове, где из каждой пары кодовых символов, соответствующих переходу в решетчатой диаграмме сверточного кода, на глубине q=t оставляют кодовый символ, определяемый рациональной функцией передачи gy(D), где у∈{0,1} и , a xt - двоичный символ псевдослучайной последовательности, синхронизированный с двоичным символом псевдослучайной последовательности на передающей стороне, получая восстановленную информационную последовательность, и проверяют циклическую контрольную сумму CRC, в случае ее совпадения заканчивают декодирование;
при несовпадении циклической контрольной суммы CRC формируют список альтернативных путей, для чего:
выполняют запомненные переходы из финального узла в обратном направлении до тех пор, пока следующему переходу не будут соответствовать кодовые символы, в одном из которых отображен i-й информационный символ,
выполняют переход по другому разрешенному пути в решетчатой диаграмме, отличному от того перехода, который был запомнен,
из текущего узла выполняют запомненные переходы по решетчатой диаграмме в обратном направлении до достижения начала решетчатой диаграммы, формируя альтернативный путь, соответствующий i-му информационному символу,
для каждого информационного символа формируют свой альтернативный путь,
для каждого пути из списка альтернативных путей:
получают промежуточную кодовую последовательность, кодируют промежуточную кодовую последовательность нерекурсивным сверточным кодом с рациональными функциями передачи g0(D), g1(D),
осуществляют выкалывание в восстановленном кодовом слове, где из каждой пары кодовых символов, соответствующих переходу в решетчатой диаграмме сверточного кода, на глубине q=t оставляют кодовый символ, определяемый рациональной функцией передачи gy(D), где у∈{0,1} и , а хt - двоичный символ псевдослучайной последовательности, синхронизированный с двоичным символом псевдослучайной последовательности на передающей стороне, получая восстановленную информационную последовательность символов, и проверяют циклическую контрольную сумму CRC, в случае ее совпадения заканчивают декодирование,
возвращают информационную последовательность символов, соответствующую основному выжившему пути, если ни одна проверка циклической контрольной суммы CRC не совпала.
Технический результат достигается также за счет разработки заявляемого устройства передачи голосовых данных в цифровой системе радиосвязи, содержащего передающее и приемное устройства, соединенные посредством канала, обеспечивающего передачу данных, причем передающее устройство содержит блок формирования циклической контрольной суммы CRC, сумматор, блок кодирования, первый и второй блоки предварительного кодирования без обратной связи, мультиплексор, генератор пвсевдослучайной последовательности ПСП и ключ, при этом вход блока формирования циклической контрольной суммы CRC является первым входом устройства - входом информационного сигнала, выход блока формирования циклической контрольной суммы CRC соединен с первым входом сумматора, выход которого соединен с входами блока кодирования и первого и второго блоков предварительного кодирования без обратной связи, первый и второй выходы блока кодирования соединены соответственно с первым и вторым входами мультиплексора, выход которого является выходом передающего устройства и соединен с входом канала, выходы первого и второго блоков предварительного кодирования без обратной связи соединены соответственно с первым и вторым входами ключа, третий вход которого соединен с выходом генератора ПСП, вход которого является вторым входом передающего устройства - входом управляющего сигнала синхронизации, выход ключа соединен со вторым входом сумматора; приемное устройство содержит лист-декодер, N блоков обратного кодирования, N ключей, N блоков проверки циклической контрольной суммы и блок выбора, причем вход лист-декодера является первым входом приемного устройства - входом информационного сигнала, и соединен с выходом канала, N выходов лист-декодера соединены соответственно со входами N блоков обратного кодирования, первые и вторые выходы N блоков обратного кодирования соответственно соединены с первыми и вторыми входами N ключей, третьи входы которых соединены с выходами генератора ПСП, вход которого является вторым входом приемного устройства - входом управляющего сигнала синхронизации, выходы N ключей соединены соответственно со входами N блоков проверки циклической контрольной суммы, выходы которых соединены соответственно с N входами блока выбора, выход которого является выходом приемного устройства.
Отличительными признаками заявляемого способа передачи голосовых данных в цифровой системе радиосвязи относительно прототипа являются следующие:
на передающей стороне:
кодируют каждый пакет информационных символов кодом CRC,
отображают информационные символы в кодовые символы сверточного кода со скоростью кодирования R=1/2, причем выбор каскада кодирования осуществляют по псевдослучайному закону,
формируют поток кодовых символов путем мультиплексирования кодовых символов в последовательный поток без выкалывания кодовых символов,
на приемной стороне:
декодируют принятую последовательность упрощенным лист декодером Витерби, формируя список промежуточных кодовых последовательностей, причем каждому информационному символу соответствует свой альтернативный путь. Упрощение состоит в том, что поиск осуществляют только на один уровень в глубину,
в каждой промежуточной кодовой последовательности проводят обратное кодирование, восстанавливая последовательность кодовых символов,
в каждой восстановленной последовательности кодов