Устройство и способ для декодирования кода коррекции ошибки в системе связи
Иллюстрации
Показать всеИзобретение относится к области радиосвязи, в частности, для декодирования кода коррекции ошибки в системе связи, более конкретно к устройству и способу декодирования блочного кода, имеющего заданные длину информационных битов и длину блока. Технический результат - повышение точности декодирования. В устройстве информацию положения символа, предназначенную для перемещения каждого принятого символа, определяют с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, и информации размера IFHT, предназначенной для выполнения ОБПА (IFHT) в отношении принятых символов, причем каждый принятый символ перемещают, как вход блока IFHT, в соответствии с определенной информацией положения символа, перемещенные символы вводят, выполняют IFHT для символов; и кодовое слово блочного кода, которое имеет максимальное значение корреляции среди значений, полученных в результате выполнения IFHT, выводят как декодированный сигнал. 6 и 30 з.п. ф-лы, 11 ил., 7 табл.
Реферат
1. Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к устройству и способу декодирования кода коррекции ошибки в системе связи и более конкретно к устройству и способу декодирования блочного кода, имеющего заданные длину информационных битов и длину блока.
2. Уровень техники
Как правило, система связи с множественным доступом с кодовым разделением каналов (МДКР, CDMA) выполняет коррекцию ошибки для исправления ошибок, возникающих из-за шумов в канале передачи. Обычно, передающая сторона передает принимающей стороне кодовое слово, полученное путем кодирования информационных битов с использованием схемы коррекции ошибки (то есть схемы кодирования). Принимающая сторона принимает кодовое слово, переданное передающей стороной, и декодирует полученное кодовое слово с использованием схемы декодирования, которая соответствует схеме кодирования, используемой передающей стороной. В результате кодовое слово восстанавливают до исходных информационных битов.
Способ коррекции ошибки, используемый, например, в системе связи CDMA, включает в себя две схемы: способ с использованием блочного кода и способ с использованием решетчатого кода. В способе коррекции ошибки с использованием блочного кода дополнительные биты (например, r битов) вводят в заданную длину передаваемых информационных битов (например, k битов) для кодирования передаваемых информационных битов в блочный код из n (n=k+r) битов и передают закодированный блочный код. Для передачи информационных битов длиной k битов передающая сторона передает блочный код длиной n битов, то есть (n, k) блочный код. Затем принимающая сторона принимает (n, k) блочный код, переданный передающей стороной, декодирует принятый (n, k) блочный код и выделяет исходные информационные биты длиной k битов. Кроме того, для улучшения возможности коррекции ошибки в способе коррекции ошибки с использованием блочного кода необходимо увеличивать количество дополнительных битов.
При использовании блочного кода структуры блока кодирования и блока декодирования изменяются в соответствии с размером кодового слова. Поэтому, когда в одной системе используют блочные коды, имеющие разную длину, в такой системе должны быть отдельно предусмотрены блоки кодирования и блоки декодирования для блочных кодов, имеющих разную длину.
Кроме того, блочный код включает код БХЧ (BCH, код Боуза-Чоудхури-Хоквенгема), код Рида-Соломона и т.д., и декодирование с жестким решением выполняется для блочного кода с помощью алгоритма Берлекампа-Масси, алгоритма Евклида и т.д.
В способе коррекции ошибки с использованием решетчатого кода для обработки сегментированных блоков не сегментируют передаваемые информационные биты на блоки, но в нем выполняют кодирование передаваемых информационных битов, представленных в решетчатом коде с помощью логической структуры после последовательного ввода в сдвиговый регистр, для передачи закодированных информационных битов.
Отношение количества выходных битов к входным передаваемым информационным битам называют коэффициентом кодирования. Когда коэффициент кодирования равен 1/k, передающая сторона кодирует информационный бит размером один бит в выходные биты количеством k битов, и передает закодированные выходные биты в соответствии с коэффициентом кодирования. Затем принимающая сторона принимает решетчатый код, коэффициент кодирования которого равен 1/k, переданный передающей стороной, декодирует полученный решетчатый код и извлекает исходные информационные биты количеством k битов.
Кроме того, для улучшения способности коррекции ошибки в способе коррекции ошибки с использованием решетчатого кода требуется уменьшать коэффициент кодирования.
Решетчатый код также содержит сверточный код, турбокод и т.д., и для решетчатого кода выполняют декодирование с мягким решением, используя алгоритм Витерби и т.д.
Как описано выше, декодирование с жестким решением выполняют для блочного кода в процессе декодирования. При выполнении декодирования с жестким решением принимаемый сигнал имеет значения 1 или -1, при этом характеристики декодирования при декодировании с жестким решением обычно ниже, чем при декодировании с мягким решением.
Кроме того, как описано выше, декодирование с мягким решением выполняют для решетчатого кода в процессе декодирования. При декодировании с мягким решением значение принимаемого сигнала определяют в соответствии с взвешенным значением и декодирование с мягким решением принимаемого сигнала выполняют так, чтобы характеристики декодирования при декодировании с мягким решением были выше, чем при декодировании с жестким решением. Обычно характеристики декодирования при декодировании с мягким решением лучше приблизительно на 2[дБ] по сравнению с декодированием с жестким решением. Однако, в отличие от декодирования с жестким решением, при использовании мягкого решения невозможно выполнить декодирование путем простого определения значения принятого сигнала, равного 1 или -1, и при выполнении декодирования необходимо рассматривать взвешенное значение. В результате не только значительно увеличивается количество операций, выполняемых в процессе декодирования, но также повышается сложность аппаратных средств. Соответственно, когда длина принимаемого блока велика, то есть, когда количество битов превышает определенное значение, декодирование с мягким решением становится трудно использовать.
Как описано выше, поскольку декодирование с мягким решением имеет лучшие характеристики по сравнению с декодированием с жестким решением, в системе связи CDMA используется блочный код для сигнала управления, имеющего относительно короткую длину блока. Однако для информационного сигнала, имеющего относительно большую длину блока, в системе связи CDMA выполняется декодирование с мягким решением, с использованием решетчатого кода, то есть сверточного кода или турбокода.
На фиг.1 показана блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с использованием обычного коррелятора. Как показано на фиг.1, сигнал r, принимаемый приемной стороной, поступает в коррелятор 100. Здесь предполагается, что передающая сторона передала сигнал, полученный в результате модуляции заданного блочного кода, с использованием способа двоичной фазовой манипуляции (ДФМН, BPSK). Например, предполагается, что передающая сторона передала модулированный сигнал, состоящий из {+1, -1}. Принимаемый сигнал r становится сигналом, в котором шумы и помехи дополнительно присутствуют в модулированном сигнале {+1, -1}, переданном передающей стороной, в силу воздействия на модулированный сигнал условий канала (среда, ситуация и т.д.). В соответствии с этим сигнал r имеет реальную величину вместо величины сигнала {+1,-1}.
На вход коррелятора 100 поступает принятый сигнал r для выполнения корреляции принятого сигнала r по отношению к каждому кодовому слову блочного кода, который может быть передан передающей стороной системы связи. Коррелятор 100 выводит величины корреляции между принятым сигналом r и каждым кодовым словом в компаратор/селектор 110. Компаратор/селектор 110 выполняет сравнение величин корреляции между принятым сигналом r и каждым кодовым словом, выбирает из результата сравнения кодовое слово, имеющее максимальную величину корреляции, и определяет выбранное кодовое слово как кодовое слово, переданное передающей стороной. В результате информационные биты, соответствующие кодовому слову, поступающему с выхода компаратора/селектора 110, восстанавливают в виде исходных информационных битов.
Например, когда передающая сторона передает (n, k) блочный код, принимающая сторона принимает принимаемый сигнал r с реальными компонентами. Принимаемый сигнал r, помимо блочного кода (n, k), содержит шумы и помехи. Сигнал r с реальными компонентами поступает в коррелятор 100. Коррелятор 100 коррелирует сигнал r с каждым кодовым словом (n, k) блочного кода, который может быть передан передающей стороной, и выдает результат корреляции в компаратор/селектор 110.
При учете всех кодовых слов, которые могут быть сгенерированы из (n, k) блочного кода, существует 2k кодовых слова, каждое из которых имеет длину n. Кроме того, поскольку корреляция должна быть выполнена по отношению к каждому из 2k кодовых слов, каждое из которых имеет длину n, необходимо выполнять nx2k процессов умножения и (n-1)x2k процессов суммирования. Например, когда предполагается, что (n, k) блочный код представляет собой (10, 3) блочный код, общее количество кодовых слов, которые могут быть сгенерированы из (10, 3) блочного кода, равно восьми, при этом каждое из кодовых слов имеет длину 10. Кроме того, поскольку корреляция должна быть выполнена по отношению к каждому из восьми кодовых слов (10, 3) блочного кода, необходимо выполнить 80 (10x8) процессов умножения и 72 (9x8) процессов суммирования.
Когда величины k и n увеличиваются, в частности, при увеличении величины k, количество выполняемых процессов умножения и процессов суммирования для выполнения корреляции увеличивается в геометрической прогрессии. В результате ухудшаются рабочие характеристики всей системы из-за нагрузки в процессе выполнения операции.
В обычном блочном коде, когда к блочному коду применяют декодирование с мягким решением, k информационных битов имеют ограниченную длину (например, меньше 14 битов). Поэтому декодирование с мягким решением нельзя будет применить к блочному коду, даже если рабочие характеристики при декодировании с мягким решением позволят получить более высокий эффект, чем декодирование с жестким решением.
На фиг.2 показана блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с последовательной структурой, построенной с использованием обычного блока обратного быстрого преобразования Адамара (ОБПА, IFHT). Однако перед описанием устройства со ссылкой на фиг.2 вначале будет описана последовательная структура, которая представляет собой структуру, содержащую маску Мi, которая будет описана ниже. На фиг.3 показано устройство декодирования с мягким решением, с параллельной структурой, построенной с использованием блока IFHT. В этом случае параллельная структура представляет собой структуру, в которой маска Мi обрабатывается одновременно.
Как показано на фиг.2, принимаемый сигнал r, принятый принимающей стороной, вводят в умножитель 210 маски. Здесь передающая сторона, соответствующая принимающей стороне, передает блочный код, матрица генерирования которого включает в себя основания кода Уолша. Умножитель 210 маски умножает сигнал r на маску Мi, поступающую с выхода контроллера 200, и выводит сигнал, получаемый в результате умножения, в блок 220 IFHT. На вход блока 220 IFHT поступает сигнал с выхода умножителя 210 маски, в этом блоке выполняют IFHT для сигнала r, и результат поступает в компаратор/селектор 230. Здесь, поскольку устройство декодирования с мягким решением по фиг.2 имеет последовательную структуру и предполагается, что маска первоначально не применяется, контроллер 200 не выводит маскуМi.
Контроллер 200 последовательно выводит соответствующую маску Мi в умножитель 210 маски. Например, когда существуют две маски М1 иМ2, контроллер 200 первоначально не использует маску Мi. Затем контроллер 200 последовательно выводит маску М1 и маскуM2, а также результат логической операции "исключающее ИЛИ" между маской М1 и маскойM2, то есть М1 ⊕M2 в умножитель 210 маски.
Блок 220 IFHT последовательно выполняет преобразование IFHT для всех сигналов, поступающих с выхода умножителя 210 маски, то есть сигнала, к которому не применена маска (то есть сигнала r), сигнала, полученного в результате умножения сигнала r на маскуМ1, сигнала, полученного в результате умножения сигнала r на маску М2, а также сигнала, полученного путем умножения сигнала r на результат выполнения логической операции "исключающее ИЛИ" (М1 ⊕ M2) маскиM1 и маскиM2. Затем с выхода блока 220 IFHT результаты поступают в компаратор/селектор 230. Компаратор/селектор 230 выполняет сравнение величин всех результатов, поступающих с выхода блока 220 IFHT, друг с другом, выбирает кодовое слово, имеющее максимальную величину корреляции, и определяет выбранное кодовое слово, как кодовое слово, переданное передающей стороной. В результате информационные биты, соответствующие кодовому слову, поступающему с выхода компаратора/селектора 230, восстанавливают до исходных информационных битов. Работа контроллера 200 и умножителя 210 маски будет более подробно описана ниже.
Код (N, k) Рида-Мюллера, например код (8, 3) Рида-Мюллера, показан ниже в табл. 1.
Таблица 1 | |
Информационные биты | Кодовое слово |
000 | 00000000 |
001 | 01010101 |
010 | 00110011 |
011 | 01100110 |
100 | 00001111 |
101 | 01011010 |
110 | 00111100 |
111 | 01101001 |
Как показано в табл. 1, количество кодовых слов кода (8, 3) Рида-Мюллера, которые могут быть сгенерированы, равно 23 или 8, когда вводят 3 информационных бита. Когда информационные биты представлены как 000, генерируется кодовое слово '00000000', когда информационные биты представлены как 001, генерируется кодовое слово '01010101', когда информационные биты представлены как 010, генерируется кодовое слово '00110011', когда информационные биты представлены как 011, генерируется кодовое слово '01100110', когда информационные биты представлены как 100, генерируется кодовое слово '00001111', когда информационные биты представлены как 101, генерируется кодовое слово '01011010', когда информационные биты представлены как 110, генерируется кодовое слово '00111100', и когда информационные биты представлены как 111, генерируется кодовое слово '01101001'.
Матрица генерирования кода (8, 3) Рида-Мюллера, показанного в табл. 1, представлена Уравнением 1, приведенным ниже.
Уравнение 1
В уравнении 1 G представляет собой матрицу генерирования. Поскольку количество строк равно количеству k входных информационных битов и количество столбцов равно количеству n выходных битов, код Рида-Мюллера, сгенерированный в соответствии с матрицей генерирования, представляет собой код (8, 3) Рида-Мюллера. Кроме того, поскольку каждая строка матрицы генерирования представляет собой основу, в матрице генерирования существуют три основы.
Как указано выше, для кода (8, 3) Рида-Мюллера существует восемь кодовых слов, каждое из которых имеет длину 8. Кроме того, в отношении каждого из восьми кодовых слов должно быть выполнено IFHT. Ниже, со ссылкой на фиг.4, будет описан процесс, с помощью которого выполняют преобразование IFHT для кода (8, 3) Рида-Мюллера.
На фиг.4 показана схема, иллюстрирующая процесс, с помощью которого выполняют обычное IFHT. Как показано на фиг.4, поскольку принимаемый сигнал r представляет собой сигнал, получаемый из кодового слова кода (8, 3) Рида-Мюллера, к которому добавлены шумы и помехи, принимаемый сигнал r может быть выражен как r=r1r2r3r4r5r6r7r8, где каждый из r1-r8 ниже называется "принятым символом".
Кроме того, для обеспечения 100%-ных рабочих характеристик декодирования с мягким решением, аналогично коррелятору 100, описанному со ссылкой на фиг.1, блок 220 IFHT должен учитывать корреляцию между каждым из кодовых слов, которые могут быть сгенерированы из кода (8, 3) Рида-Мюллера и принимаемым сигналом r. При обеспечении 100%-ных рабочих характеристик декодирование с мягким решением означает выполнение корреляции для каждого из кодовых слов, которые могут быть переданы передающей стороной, по отношению к принимаемому сигналу r.
Кроме того, код (8, 3) Рида-Мюллера, показанный в табл. 1, выражен цифровыми данными. Однако, поскольку цифровые данные были модулированы с использованием заданного способа, например способа BPSK, во время передачи они были переведены в состоянии, когда цифровые данные 0 соответствуют +1, и цифровые данные 1 соответствуют -1. В соответствии с этим, когда код (8, 3) Рида-Мюллера, показанный в табл. 1, соответствует компонентам, модулированным с помощью способа BPSK, получают табл. 2.
Таблица 2 | |
Информационные биты | Компоненты кодового слова, модулированного способом BPSK |
000 | + + + + + + + + |
001 | + - + - + - + - |
010 | + + - - + - - |
011 | + - - + + - - + |
100 | + + + +- - - - |
101 | + - + - - + - + |
110 | + +- - - - + + |
111 | + - - + - + + - |
При 100% декодировании с мягким решением должна быть выполнена корреляция для каждого кодового слова, модулированного способом BPSK, как показано в табл. 2, при приеме сигнала r (то есть r1r2r3r4r5r6r7r8). Когда выполняют IFHT, становится возможным выполнить корреляцию для каждого из кодовых слов, модулированных способом BPSK, по отношению к принимаемому сигналу r, поскольку IFHT выполняется с использованием структуры логики по схеме типа "бабочка", как показано на фиг.4.
Более конкретно, если эти этапы выполняют k раз (количество входных информационных битов), то есть три раза, в отношении принимаемого сигнала r1r2r3r4r5r6r7r8, при возведении 2 в степень, становится возможным выполнить корреляцию для каждого из кодовых слов, модулированных способом BPSK. Здесь на каждом этапе выполняется операция суммирования и операция вычитания по отношению к каждому компоненту принимаемого сигнала r путем возведения 2 в степень. На первом этапе выполняется операция суммирования (или сложения) и операция вычитания (или отнимания), в отношении к каждому компоненту принимаемого сигнала r, на 2° (1). То есть, r1 и r2 подвергают операции суммирования и операции вычитания. r3 и r4 подвергают операции суммирования и операции вычитания, r5 и r6 подвергают операции суммирования и операции вычитания, и r7 и r8 подвергают операции суммирования и операции вычитания.
На втором этапе выполняют операцию суммирования и операцию вычитания по отношению к каждому компоненту результатов, полученных на первом этапе, то есть r1+r2, r1-r2, r3+r4, r3-r4, r5+r6, r5-r6 и r7+r8, r7-r8, на 21 (2). Более конкретно, r1+r2 и r3+r4 подвергают операции суммирования и операции вычитания, r1-r2 и r3-r4 подвергают операции суммирования и операции вычитания, r5+r6 и r7+r8 подвергают операции суммирования и операции вычитания, и r5-r6 и r7-r8 подвергают операции суммирования и операции вычитания.
На третьем этапе выполняют операцию суммирования и операцию вычитания по отношению к каждому компоненту результатов второго этапа, то есть (r1+r2+r3+r4), (r1-r2)+(r3-r4), (r1+r2)-(r3+r4), (r1-r2)-(r3-r4), (r5+r6)+(r7+r8), (r5-r6)+(r7-r8), (r5+r6)-(r7+r8), (r5-r6)-(r7-r8), на 22 (4). Более конкретно, (r1+r2)+(r3+r4) и (r5+r6)+(r7+r8) подвергают операции суммирования и операции вычитания, (r1-r2)+(r3-r4) и (r5-r6)+(r7-r8) подвергают операции суммирования и операции вычитания, (r1+r2)-(r3+r4) и (r5+r6)-(r7+r8) подвергают операции суммирования и операции вычитания и (r1-r2)-(r3-r4), и (r5-r6)-(r7-r8) подвергают операции суммирования и операции вычитания.
Таким образом, в соответствии с результатом, полученным на этапах 1-3, можно видеть, что для каждого кодового слова, модулированного с помощью способа BPSK, как описано в табл. 2, была выполнена корреляция по отношению к принимаемому сигналу r1r2r3r4r5r6r7r8. То есть, результат корреляции для первого кодового слова (то есть ++++++++), модулированного с помощью способа BPSK, представленного в табл. 2, в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1+r2)+(r3+r4j}+{(r5+r6)+(r7+r8)}, результат корреляции для второго кодового слова (то есть +-+-+-+-) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1-r2)+(r3-r4)}+{(r5-r6)+(r7-r8)}, результат корреляции для третьего кодового слова (то есть ++--++--) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1+r2)-(r3+r4)}+{(r5+r6)-(r7+r8)}, результат корреляции для четвертого кодового слова (то есть +--++--+) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1-r2)-(r3-r4)}+{(r5-r6)-(r7-r8)}, результат корреляции для пятого кодового слова (то есть ++++----) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1+r2)+(r3+r4)}-{(r5+r6)+(r7+r8)}, результат корреляции для шестого кодового слова (то есть +-+--+-+) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1-r2)+(r3-r4)}-{(r5-r6)+(r7-r8)}, результат корреляции для седьмого кодового слова (то есть ++----++) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1+r2)-(r3+r4)}-{(r5+r6)-(r7+r8)}, и результат корреляции для восьмого кодового слова (то есть +--+-++-) в отношении принимаемого сигнала r1r2r3r4r5r6r7r8 представляет собой {(r1-r2)-(r3-r4)}-{(r5-r6)-(r7-r8)}. В результате была на 100% выполнена корреляция для кодовых слов кода (8, 3) Рида-Мюллера, модулированного способом BPSK, представленного в табл. 2, в отношении принимаемого сигнала r1r2r3r4r5r6r7r8.
Когда учитывают количество выполняемых операций при воплощении IFHT для кода (8, 3) Рида-Мюллера, требуется выполнять всего 24 (1og28) (операций суммирования, операций вычитания) процессов, то есть для трех (log28) этапов требуются восемь процессов суммирования на первом этапе, восемь процессов суммирования на втором этапе и восемь процессов суммирования на третьем этапе. Тем временем, с учетом количества выполняемых операций при получении корреляции кода (8, 3) Рида-Мюллера с помощью коррелятора, необходимо использовать 64 (8x23) процессов умножения и 56 {(8-1)x23} процессов суммирования.
Наконец, при учете всех кодовых слов для (n, k) блочного кода существуют 2k кодовых слов, каждое из которых имеет длину n. Кроме того, поскольку корреляция должна быть выполнена в отношении каждого из 2k кодовых слов, каждое из которых имеет длину n, при выполнении корреляции с использованием коррелятора необходимо выполнить nx2k процессов умножения и (n-1)x2k процессов суммирования. Однако, когда выполняют IFHT в отношении всех кодовых слов для блочного кода (n, k), требуется выполнятьnlog2n процессов суммирования. В результате, когда выполняют декодирование с мягким решением с использованием IFHT в отношении всех блочных кодов, можно обеспечить 100%-ное декодирование с мягким решением, с учетом корреляции. Кроме того, минимизируется количество выполняемых операций, и обеспечиваются максимальные рабочие характеристики декодирования с мягким решением.
Применение маски к коду Рида-Мюллера означает, что основание, которое будет использоваться как маска, добавляют к основанию матрицы генерирования. То есть, как описано выше, матрица генерирования то же количество оснований, что и количество входных информационных битов. Здесь же, когда применяют маску, матрица генерирования не только имеет то же количество оснований, что и количество входных битов, но также имеет основание, которое должно быть использовано как маска.
Например, когда маску, состоящую из одних единиц, применяют к коду (8, 3) Рида-Мюллера, как показано в табл. 1, матрица генерирования соответствует Уравнению 2, приведенному ниже.
Уравнение 2
В уравнении 2 G представляет собой матрицу генерирования, а четвертая строка матрицы генерирования в Уравнении 2, состоящая из одних единиц, представляет собой основание маски кода (8, 3) Рида-Мюллера.
Когда принимаемый сигнал r принимают в первый раз, контроллер 200 управляет маской Мi так, что она не выводится при допущении, что маска не была применена. То есть, контроллер 200 управляет блоком 220 IFHT для выполнения IFHT в отношении принятого сигнала r. Здесь, как описано выше, контроллер 200 первоначально не учитывает маску, а затем снова может учитывать маску Мi. Кроме того, когда маску не применяют, контроллер 200 может выводить маску Мi, все элементы которой заполнены единицами в умножитель 210 маски при допущении, что была применена маска, состоящая из всех единиц.
Даже когда маску, все элементы которой заполнены единицами, умножают на принятый сигнал, не происходит какое-либо изменение. Соответственно, устройство работает так же, как в случае, когда маску не прикладывают.
Как описано выше, используют маску, в которой все элементы заполнены единицами, так, что структура аппаратных средств, сформированная для случая, когда маску в действительности применяют, остается идентичной структуре аппаратных средств, когда маску не применяют. Однако, поскольку маску в действительности применили к принимаемому сигналу r, контроллер 200 передает маску Мi, которая соответствует основанию маски, в умножитель 210 маски. Здесь, поскольку основание маски матрицы генерирования представлено одними единицами, все элементы маски Mi состоят из единиц.
Умножитель 210 маски умножает принимаемый сигнал r на маску Mi для вывода результата умножения в блок 220 IFHT. Поскольку устройство декодирования с мягким решением, представленное на фиг.2, имеет последовательную структуру, рассматривают случай, когда вектор Мi маски учитывают, и случай, когда вектор Мi маски не учитывают.
На фиг.3 представлена блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с параллельной структурой, в котором используется обычный блок IFHT. Как показано на фиг.3, сигнал r, принимаемый принимающей стороной, вводят в блок 311 IFHT и в множество умножителей 321, 331 и 341 маски. Кроме того, количество умножителей маски, предусмотренных на принимающей стороне, определяют в соответствии с количеством оснований, применяемых в качестве маски на передающей стороне. На фиг.3 предполагается, что количество оснований, применяемых в качестве маски, равно двум. В соответствии с этим на принимающей стороне используют умножитель 321 маски, умножитель 331 маски и умножитель 341 маски. Умножитель 321 маски умножает принимаемый сигнал r на первую маску M1, соответствующую первому основанию m1 маски, умножитель 331 маски умножает принимаемый сигнал r на вторую маску M2, соответствующую второму основанию маскиm2, и умножитель 341 маски умножает принимаемый сигнал r на маску, соответствующую результату применения логической операции "исключающее ИЛИ" к первому основанию m1 маски и второму основанию m2 (ниже обозначается как:'М1 ⊕ М2').
В блок 311 IFHT поступает принимаемый сигнал r, в блоке выполняется IFHT в отношении сигнала r, и на его выход поступает результат выполнения, который передают в компаратор/селектор 350. Умножитель 321 маски умножает принятый сигнал r на первую маску М1 для вывода результата выполнения в блок 323 IFHT. Умножитель 331 маски умножает принятый сигнал r на вторую маскуM2 для вывода результата выполнения в блок 333 IFHT. Умножитель 341 маски умножает принятый сигнал r на маску (М1 ⊕ М2) для вывода результата выполнения в блок 343 IFHT. В каждый из блоков 323, 333 и 343 IFHT поступают входные сигналы с выхода умножителей 321, 331 и 341 маски, в этих блоках выполняют IFHT для сигналов, и результаты с выхода каждого из этих блоков поступают в компаратор/селектор 350. Компаратор/селектор 350 сравнивает результаты, поступающие с выхода от каждого из блоков 323, 333 и 343 IFHT, и выбирает кодовое слово, имеющее максимальное значение корреляции, для определения выбранного кодового слова в качестве кодового слова, переданного передающей стороной. В результате информационные биты, соответствующие кодовому слову, поступающему с выхода компаратора/селектора 330, восстанавливают как исходные информационные биты.
Как описано выше, когда учитывают все кодовые слова для (n, k) блочного кода, существуют 2k кодовых слова, каждое из которых имеет длину n. Кроме того, поскольку должна быть выполнена корреляция в отношении каждого из 2k кодовых слов, каждое из которых имеет длину n, при выполнении корреляции в корреляторе требуется выполнять 2k процессов умножения и (n-1)Ч2k процессов сложения. Однако, когда IFHT выполняют в отношении всех кодовых слов для (n, k) блочного кода с помощью блока IFHT, необходимо выполнить только nlog2n процессов суммирования, и при этом обеспечивается минимальное количество операций. В результате получают максимальные рабочие характеристики декодирования с мягким решением. Однако устройство декодирования с мягким решением, в котором используют коррелятор, описанное со ссылкой на фиг.1, может выполнять декодирование с мягким решением для заданных блочных кодов, но устройство декодирования с мягким решением, с использованием блока IFHT, описанное со ссылкой на фиг.2, может выполнять декодирование с мягким решением только для блочных кодов матрицы генерирования, которая содержит основание кода Уолша. То есть, устройство декодирования с мягким решением, с использованием блока IFHT, может выполнять декодирование с мягким решением, с минимальным количеством операций, но блочные коды, используемые в качестве объекта декодирования мягкого решения, должны содержать основание кода Уолша.
Раскрытие изобретения
В соответствии с этим настоящее изобретение было разработано для решения вышеуказанных недостатков известного уровня техники, и первой целью настоящего изобретения является обеспечение устройства и способа, предназначенных для декодирования кода коррекции ошибок в системе связи.
Вторая цель настоящего изобретения состоит в создании устройства и способа, предназначенных для декодирования кода коррекции ошибки в системе связи, в которых используется минимальное количество операций.
Третьей целью настоящего изобретения является разработка устройства и способа, предназначенных для выполнения декодирования с мягким решением, которые выполняют минимальное количество операций для блочных кодов, имеющих заданную длину информационных битов и длину блока.
Четвертая цель настоящего изобретения состоит в создании устройства и способа, предназначенных для выполнения в системе связи декодирования с мягким решением, для заданных блочных кодов, с использованием блока IFHT.
Для выполнения вышеуказанных и других целей, в соответствии с одним аспектом настоящего изобретения, предложено устройство, предназначенное для декодирования n принятых символов с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащее: контроллер для определения информации положения символа, для перемещения каждого принятого символа, с использованием информации матрицы генерирования блочного кода и информации размера IFHT, для выполнения IFHT принятых символов; блок размещения символа, предназначенный для перемещения каждого принятого символа на вход блока IFHT, в соответствии с информацией о положении символа, определенной контроллером; блок IFHT для ввода символов, перемещенных блоком размещения символа, для выполнения IFHT для символов; и компаратор/селектор, предназначенный для вывода, в качестве сигнала декодирования, кодового слова блочного кода, которое имеет максимальное значение корреляции среди значений, полученных посредством выполнения IFHT.
В соответствии с другим аспектом настоящего изобретения предложено устройство для декодирования блочного кода, включающего в себя n принятых символов, с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащее: контроллер для определения информации размера IFHT для выполнения IFHT принятых символов и информации положения символа для перемещения каждого принятого символа, с использованием информации матрицы генерирования блочного кода; блок размещения символа для перемещения каждого принятого символа на вход блока IFHT, в соответствии с информацией о положении символа, определенной контроллером; блок IFHT для ввода символов, перемещенных блоком размещения символа, для выполнения IFHT для символов; и компаратор/селектор для вывода, в качестве сигнала декодирования, кодового слова блочного кода, которое имеет максимальное значение корреляции среди значений, полученных посредством выполнения IFHT.
В соответствии с дополнительным аспектом настоящего изобретения предложено устройство для декодирования n принятых символов с использованием матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащее: контроллер, предназначенный для ввода n принятых символов и расчета положения символов для n столбцов в матрице генерирования блочного кода; и блок размещения символа, включающий в себя сумматоры, предназначенные для накопления и перемещения n принятых символов в рассчитанные положения символа.
В соответствии с еще одним аспектом настоящего изобретения предложен способ декодирования n принятых символов с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащий следующие этапы: a) определение информации положения символа для перемещения каждого принятого символа с использованием информации матрицы генерирования блочного кода и информации размера IFHT для выполнения IFHT для принятых символов; b) перемещение каждого принятого символа на вход блока IFHT, в соответствии с определенной информацией положения символа; ввод перемещенных символов для выполнения IFHT символов; и c) вывод, в качестве сигнала декодирования, кодового слова блочного кода, которое имеет максимальное значение корреляции среди значений, полученных в результате выполнения IFHT.
В соответствии с другим аспектом настоящего изобретения предложен способ декодирования n принятых символов с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащий следующие этапы: a) определение информации размера IFHT для выполнения IFHT принятых символов и информации положения символа для перемещения каждого принятого символа с использованием информации матрицы генерирования блочного кода; b) перемещение каждого принятого символа в качестве входа блока IFHT, в соответствии с определенной информацией положения символа; c) ввод перемещенных символов для выполнения IFHT для символов; и d) вывод, в качестве сигнала декодирования, кодового слова блочного кода, которое имеет максимальное значение корреляции среди значений, полученных в результате выполнения IFHT, в качестве декодированного сигнала.
В соответствии с другим аспектом настоящего изобретения предложен способ декодирования n принятых символов с использованием информации матрицы генерирования блочного кода, имеющей k строк и n столбцов, содержащий следующие этапы: расчет положений символов для n столбцов в матрице генерирования блочного кода; и накопление и перемещение n принятых символов в рассчитанные положения символов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Указанные выше и другие цели, свойства и преимущества настоящего изобретения очевидны из следующего подробного описания, приводимого совместно с прилагаемыми чертежами, на которых:
фиг.1 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с использованием обычного коррелятора;
фиг.2 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с последовательной структурой, с использованием обычного IFHT;
фиг.3 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с параллельной структурой, с использованием обычного блока IFHT;
фиг.4 - схема процесса, посредством которого выполняют обычное IFHT;
фиг.5 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, которое декодирует обычный проколотый код Рида-Мюллера, с использованием блока IFHT;
фиг.6 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, которое декодирует обычный повторяющийся код Рида-Мюллера с использованием блока IFHT;
фиг.7 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с использованием блока IFHT, в соответствии с первым вариантом осуществления настоящего изобретения;
фиг.8 - схема, иллюстрирующая процесс принятия решения в отношении информации положения символа, выполняемый контроллером 700, и процесс перемещения символа, выполняемый блоком 720 размещения символа, которые представлены на фиг.7;
фиг.9 - внутренняя структура блока 720 размещения символа, представленного на фиг.7;
фиг.10 - блок-схема, иллюстрирующая внутреннюю структуру устройства декодирования с мягким решением, с использованием блока IFHT, в соответствии со вторым вариантом осуществления настоящего изобр