Изобретение относится в общем к устройству и способу канального кодирования для системы передачи данных, а более конкретно - к устройству и способу для согласования скорости передачи канально-кодированных символов.
В цифровых системах связи, таких как спутниковые системы, системы ЦСПКУ (цифровая сеть с предоставлением комплексных услуг, ISDN), цифровые сотовые системы, системы Ш-МДРК (широкополосный множественный доступ с разделением по кодам, W-CDMA), системы УМТС (универсальные мобильные телекоммуникационные системы, UMTS) и ММС-2000 (международная мобильная связь 2000, IMT-2000), исходные пользовательские данные перед передачей обычно подвергаются канальному кодированию с использованием кода с исправлением ошибок для того, чтобы повысить надежность системы. Для канального кодирования, как правило, используются сверточный код и линейный блочный код, и для линейного блочного кода используется один декодер. В последнее время, наряду с такими кодами, также широко используется турбокод, который является полезным для передачи и приема данных.
В системах связи с множественным доступом, которые поддерживают многочисленных пользователей, и в многоканальных системах связи с многочисленными каналами канально-кодированные символы согласовывают с заданным числом передаваемых канальных символов для того, чтобы увеличить эффективность передачи данных и улучшить характеристики системы. Такой процесс называется "согласование по скорости". Согласование по скорости также выполняется для согласования скорости передачи выходных символов со скоростью передачи передаваемых символов. Типичные способы согласования по скорости включают в себя прокалывание или повторение частей канально-кодированных символов.
Известное устройство согласования по скорости показано на фиг.1. На фиг. 1 канальный кодер 100 кодирует входные информационные биты (k) со скоростью кодирования R=k/n и осуществляет вывод кодированных символов (n). Мультиплексор (MUX) 110 мультиплексирует кодированные символы. Блок 120 согласования по скорости осуществляет согласование по скорости мультиплексированных кодированных символов путем прокалывания или повторения и осуществляет вывод согласованных по скорости символов в передатчик (не показан). Канальный кодер 100 срабатывает на каждый период тактовых импульсов символов, которые имеют частоту CLOCK, а мультиплексор 110 и блок 120 согласования по скорости срабатывают на каждый заданный период тактовых импульсов, который имеет частоту n x CLOCK.
Следует отметить, что устройство согласования по скорости (фиг.1) предложено для применения в случае, где несистематический код, такой как сверточный код или линейный блочный код, используется для канального кодирования. Для символов, канально-кодированных с помощью несистематического кода, такого как сверточный код или линейный блочный код, отсутствует взвешивание между символами, то есть так как чувствительность к ошибкам кодированных символов, которые выводятся из канального кодера 100, является одинаковой для каждого символа в пределах одного кадра, то возможно, что символы, кодированные с помощью канального кодера 100, подаются в блок 120 согласования по скорости без различения и не подвергаясь прокалыванию или повторению (фиг. 1).
Однако при использовании систематических кодов, таких как турбокод, между символами имеется весовой коэффициент, что является недостатком для канально-кодированных символов, которые подаются в блок 120 согласования по скорости, подвергаясь в равной степени прокалыванию или повторению. Так как весовые коэффициенты не равны между информационными символами и символами четности, рекомендуется, чтобы блок 120 согласования по скорости имел возможность прокалывать символы четности из турбо-кодированных символов, но не имел возможность прокалывать информационные символы. В качестве альтернативного случая, блок 120 согласования по скорости позволяет повторять информационные символы из турбо-кодированных символов для увеличения энергии символов, но не позволяет, если это возможно, повторять символы четности. То есть, трудно использовать устройство согласования по скорости (фиг.1) при использовании турбокода. Характерной особенностью является то, что структура (фиг. 1) используется только для несистематических кодов, таких как сверточные коды и линейные блочные коды, и турбокод имеет новые отличительные свойства по сравнению со сверточными кодами и линейными блочными кодами.
В последнее время для решения этой проблемы был предложен способ согласования по скорости символов, канально-кодированных с помощью турбокода. Однако такой способ можно использовать только при согласовании по скорости турбо-кодированных символов и нельзя использовать при согласовании по скорости символов, канально-кодированных с помощью существующих сверточных кодов или линейных блочных кодов.
Поэтому существует потребность в одиночном устройстве и способе согласования по скорости как символов, канально-кодированных с помощью существующего несистематического кода, так и символов, канально-кодированных с помощью систематического кода. Например, для системы передачи данных, выполненной с возможностью поддержания несистематического кода и систематического кода, требуются две различные структуры для того, чтобы согласовать оба кода по скорости, что приводит к повышению коэффициента сложности. Однако если различные коды можно согласовать по скорости с использованием одной структуры, то коэффициент сложности реализации будет уменьшен.
Поэтому задача настоящего изобретения заключается в том, чтобы выполнить устройство и способ согласования по скорости как символов, канально-кодированных с помощью несистематического кода, так и символов, канально-кодированных с помощью систематического кода, с использованием одной структуры в системе передачи данных.
Другая задача настоящего изобретения заключается в том, чтобы выполнить устройство и способ для выборочного согласования по скорости символов, канально-кодированных с помощью несистематического кода, или символов, канально-кодированных с помощью систематического кода, в системе передачи данных, поддерживающей несистематический код и систематический код.
Другая задача настоящего изобретения заключается в том, чтобы выполнить устройство и способ согласования по скорости канально-кодированных символов, которые позволяют увеличить эффективность передачи данных и улучшить рабочие характеристики системы в системе передачи данных.
Для того, чтобы решить вышеуказанные и другие задачи, предложены устройство и способ согласования скорости передачи канально-кодированных символов в системе передачи данных. Устройство и способ согласования по скорости можно использовать в системе передачи данных, в которой используется один или сразу оба несистематический код (сверточный код или линейный блочный код) и систематический код (турбокод). Устройство согласования по скорости включает в себя множество блоков согласования по скорости, причем число блоков согласования по скорости обратно пропорционально величине скорости кодирования канального кодера. Устройство согласования по скорости позволяет выполнить согласование по скорости символов, кодированных с помощью несистематического кода, или символов, кодированных с помощью систематического кода, путем изменения исходных параметров, которые включают в себя число входных символов, число выходных символов и параметры, определяющие порядок прокалывания/повторения.
Сущность изобретения иллюстрируется ссылкой на сопроводительные чертежи, на которых:
фиг.1 изображает схему, иллюстрирующую структуру устройства согласования по скорости, согласно предшествующему уровню техники;
фиг. 2 и 3 изображают схемы, иллюстрирующие структуры устройств согласования по скорости, согласно варианту осуществления настоящего изобретения;
фиг.4 изображает схему, иллюстрирующую структуру устройства согласования по скорости путем прокалывания, согласно варианту осуществления настоящего изобретения;
фиг.5 изображает схему, иллюстрирующую структуру устройства согласования по скорости путем прокалывания, согласно другому варианту осуществления настоящего изобретения;
фиг. 6 подробно изображает схему, иллюстрирующую структуру турбокодера (фиг.5);
фиг. 7 изображает алгоритм, иллюстрирующий процедуру согласования по скорости путем прокалывания, согласно варианту осуществления настоящего изобретения;
фиг.8 изображает схему, иллюстрирующую структуру устройства согласования по скорости путем прокалывания, согласно другому варианту осуществления настоящего изобретения;
фиг.9 изображает схему, иллюстрирующую структуру устройства согласования по скорости путем повторения, согласно варианту осуществления настоящего изобретения;
фиг. 10 изображает схему, иллюстрирующую структуру устройства согласования по скорости путем повторения, согласно другому варианту осуществления настоящего изобретения и
фиг. 11 изображает алгоритм, иллюстрирующий процедуру согласования по скорости путем повторения, согласно варианту осуществления настоящего изобретения.
Предпочтительные варианты осуществления настоящего изобретения будут описаны ниже со ссылкой на сопроводительные чертежи. В следующем описании хорошо известные функции или конструкции не описываются подробно, поскольку они излишне усложняют описание предлагаемого изобретения необязательными подробностями.
Условия, необходимые при выполнении устройства согласования по скорости
Сначала, перед описанием изобретения, необходимо сделать ссылку на условия, которые необходимо учитывать при согласовании по скорости символов, канально-кодированных с помощью несистематического кода, такого как сверточный код или линейный блочный код (в описании ниже предполагается, что несистематическим кодом будет сверточный код). Условия 1А-3А, которые будут представлены ниже, являются условиями, которые необходимо учитывать при согласовании по скорости кодированных символов путем прокалывания, и условия 1С и 2С, представленные ниже, являются условиями, которые необходимо учитывать при согласовании по скорости кодированных символов путем повторения.
Условие 1А. Для входной последовательности символов, которые являются кодированными символами, необходимо выполнять прокалывание символов с использованием порядка прокалывания, который имеет определенный период.
Условие 2А. Число прокалываемых битов из входных символов должно быть, по возможности, минимальным.
Условие 3А. Необходимо использовать равномерный порядок прокалывания так, чтобы входная последовательность символов, которые являются кодированными символами и поступают из кодера, обязательно имела равномерное прокалывание символов.
Условие 1С. Для входной последовательности символов, которые являются кодированными символами, необходимо выполнять повторение символов с использованием порядка повторения, который имеет определенный период.
Условие 2С. Необходимо использовать равномерный порядок повторения так, чтобы последовательность входных символов, которые являются кодированными символами и поступают из кодера, обязательно равномерно повторялась.
Эти условия основаны на предположении, что чувствительность к ошибкам символов, которые поступают из кодера, использующего сверточный код, является почти одинаковой для каждого символа в пределах одного кадра (или кодового слова). В настоящее время известно, что когда вышеуказанные условия используются в качестве главных факторов ограничения при выполнении прокалывания для согласования по скорости, то получаются положительные результаты, которые представлены в следующих работах: Дж.Д. Форней, Сверточные коды I: Алгебраическая структура, труды IEEE по теории информатики, т.IT-16, с.720-738, ноябрь, 1970 (G.D. Forney, Convolutional codes I: Algebraic structure, IEEE Trans. Inform. Theory, vol. IT-16, pp.720-738, Nov. 1970), Дж.Б. Кэйн, Дж.С. Кларк и Дж. М. Гейст, Сверточные коды с прокалыванием и скоростью передачи (n-1)/n и декодирование с использованием упрощенной функции максимального правдоподобия, труды IEEE по теории информатики, т.IT-25, с.97-100, январь, 1979 (J.В. Cain, G.C. Clark and J.M. Geist, Punctured convolutional codes of rate (n-1)/n and simplified maximum likelihood decoding, IEEE Trans. Inform. Theory, vol.IT-25, pp.97-100, Jan. 1979).
Следующая ссылка относится к условиям, которые необходимо выполнять при согласовании по скорости символов, канально-кодированных при помощи систематического кода (в нижеследующем описании предполагается, что систематический код является турбокодом). Приведенные ниже условия 1В-5В являются условиями, которые необходимо учитывать при согласовании по скорости кодированных символов путем прокалывания, и условия 1D-5D являются условиями, которые необходимо учитывать при согласовании по скорости кодированных символов путем повторения.
Условие 1В. Так как турбо-код является систематическим кодом, то часть, соответствующую информационным символам, из символов, кодированных с помощью кодера, необходимо прокалывать. Вместе с тем, вследствие того, что итерационный декодер используется в качестве декодера для турбо-кода, часть, соответствующая информационным символам, не должна прокалываться.
Условие 2В. Так как турбо-кодер состоит из двух составных кодеров, соединенных параллельно, предпочтительно максимизировать минимальное свободное расстояние каждого из двух составных кодеров, для достижения минимального свободного расстояния всего кода. Следовательно, для того чтобы получить оптимальные характеристики, выходные символы четности двух составных кодеров необходимо равномерно прокалывать.
Условие 3В. Так как в большинстве итерационных декодеров декодирование выполняется в первом составном декодере, то первый выходной символ первого составного декодера не должен прокалываться. Другими словами, первый символ кодера не должен прокалываться, несмотря на то, являются ли биты систематическими или битами четности, потому что первый символ показывает начальную точку кодирования.
Условие 4В. Выходные символы четности каждого составного кодера необходимо прокалывать с использованием равномерного порядка прокалывания так, чтобы кодированные символы, выводимые из кодера, такие как известный сверточный код, равномерно прокалывались.
Условие 5В. Завершающие конечные биты, которые используются для турбокодера, не должны прокалываться из-за отрицательного влияния на характеристики декодера. Например, декодер SOVA (алгоритм Витерби гибкого вывода) имеет низкие характеристики в случае, когда завершающие конечные биты прокалываются по сравнению со случаем, где завершающие конечные биты не прокалываются.
Условие 1D. Так как турбокод является систематическим кодом, то часть, соответствующая информационным символам, из символов, которые кодируются с помощью кодера, должна повторяться для увеличения энергии символов. Более того, так как итерационный декодер используется в качестве декодера для турбокода, то часть, соответствующая информационным символам, должна периодически повторяться.
Условие 2D. Так как турбокодер состоит из двух составных кодеров, соединенных параллельно, предпочтительно максимизировать минимальное свободное расстояние каждого из двух составных кодеров для достижения минимального свободного расстояния всего кода. Поэтому при повторении символов четности выходные символы четности двух составных кодеров должны одинаковым образом повторяться для того, чтобы получить оптимальные характеристики.
Условие 3D. Так как в большинстве итерационных декодеров декодирование выполняется в первом составном декодере, первый выходной символ первого составного декодера должен предпочтительно повторяться при повторении символов четности.
Условие 4D. Выходные символы четности каждого составного кодера должны повторяться с использованием равномерного порядка повторения так, чтобы кодированные символы, выводимые из кодера, такие как известный сверточный код, одинаковым образом повторялись.
Условие 5D. Завершающие конечные биты, которые используются для турбокодера, должны повторяться из-за влияния на характеристики декодера. Например, декодер SOVA (алгоритм Витерби гибкого вывода) имеет различные характеристики в зависимости от того, повторяются или нет завершающие конечные биты.
Целью настоящего изобретения является реализация устройства согласования по скорости, которое удовлетворяет не только условиям 1А-3А и 1С-2С, но также и условиям 1В-5В и 1D-5D. То есть, устройство согласования по скорости путем прокалывания, согласно настоящему изобретению, служит в качестве устройства согласования по скорости, которое удовлетворяет условиям 1А-3А для сверточных кодированных символов, а также служит в качестве устройства согласования по скорости, которое удовлетворяет условиям 1В-5В для турбо-кодированных символов. Устройство согласования по скорости путем повторения, согласно настоящему изобретению, служит в качестве устройства согласования по скорости, которое удовлетворяет условиям 1С-2С для сверточных кодированных символов, а также служит в качестве устройства согласования по скорости, которое удовлетворяет условиям 1D-5D для турбо-кодированных символов.
Основная структура устройства согласования по скорости
Варианты осуществления структур устройства согласования по скорости согласно настоящему изобретению показаны на фиг.2 и 3. На фиг.2 более конкретно изображен пример устройства согласования по скорости, реализованного с помощью аппаратных средств, согласно варианту осуществления настоящего изобретения, и на фиг.3 изображен пример устройства согласования по скорости, реализованного с помощью программных средств, согласно варианту осуществления настоящего изобретения.
Как показано на фиг.2, канальный кодер 200 кодирует по каналам входные информационные биты со скоростью кодирования R=k/n и выводит кодированные символы, где n - число кодированных символов, образующих одно кодовое слово, и k - число входных информационных битов, образующих одно входное информационное слово. Имеется n блоков 231-239 согласования по скорости, каждый из которых выборочно принимает кодированные символы, которые выводятся из канального кодера 200, по числу входных символов, определенных в соответствии со скоростью кодирования, и прокалывает/повторяет принятые символы. Каждый из n блоков 231-239 согласования по скорости выборочно принимает кодированные символы, которые выводятся из канального кодера 200, по числу, которое определяется путем умножения числа кодированных символов в кадре на скорость кодирования. Например, если число кодированных символов в одном кадре равно 10 и скорость кодирования равна R=1/5, то каждый из 5 блоков согласования по скорости выборочно принимает 2 символа. Каждый из блоков 231-239 согласования по скорости прокалывает принятые символы в соответствии с заданным порядком прокалывания или повторяет принятые символы в соответствии с заданным порядком повторения. Мультиплексор 240 мультиплексирует символы, согласованные по скорости, из блоков 231-239 согласования по скорости и выводит мультиплексированные символы в канальный передатчик (не показан). Так как канальный передатчик выходит за рамки настоящего изобретения, то подробное описание канального передатчика будет здесь опущено. Операция согласования по скорости, которую выполняют блоки 231-239 согласования по скорости, поясняется в приведенном ниже подробном описании вариантов осуществления настоящего изобретения.
Как показано на фиг.3, канальный кодер 200 кодирует по каналам входные информационные биты со скоростью кодирования R=k/n и выводит кодированные символы. Процессор 250 цифровых сигналов (ПЦС), имеющий модуль согласования по скорости, выполняет согласование по скорости (или прокалывание/повторение) символов, канально-кодированных с помощью канального кодера 200, с использованием модуля согласования по скорости. Символы, согласованные по скорости с помощью ПЦС 250, выводятся в канальный передатчик. ПЦС 250 согласования по скорости принимает кодированные символы одного кадра отдельно от n отдельных потоков данных, где число символов, поступающих из каждого потока, равно числу входных символов, которое определяется в соответствии со скоростью кодирования, и прокалывает/повторяет принятые символы тем же самым способом, как и на фиг.2. Другими словами, хотя ПЦС 250 является одиночным элементом в аппаратных средствах, он выполняет ту же самую операцию согласования по скорости, как и n блоков согласования по скорости (фиг.2). ПЦС 250 можно также реализовать на основе центрального процессора (ЦП), и операцию согласования по скорости можно реализовать с помощью подпрограммы. Используемый здесь термин "блоки согласования по скорости" служит для ссылки на модули согласования по скорости в ПЦС 250.
Как показано на фиг.2 и 3, устройство согласования по скорости, согласно настоящему изобретению, может иметь структуру, которая включает в себя блоки согласования по скорости, число которых соответствует скорости кодирования (то есть обратно пропорционально скорости кодирования при k=1, но если k≠1, то число блоков согласования по скорости может быть равно обратной величине скорости кодирования, умноженной на k), и каждый блок согласования по скорости имеет такое число символов, какое определяется путем умножения числа кодированных символов в кадре на скорость кодирования, и прокалывает принятые символы в соответствии с заданным порядком прокалывания или повторяет принятые символы в соответствии с заданным порядком повторения. Эта структура обладает особенностью, которая заключается в том, что канальные кодированные символы обрабатываются отдельно, тогда как известное устройство согласования по скорости (фиг. 1) обрабатывает канальные кодированные символы в блоке кадра. Устройство согласования по скорости, модифицированные согласно настоящему изобретению, можно использовать для известных кодов и турбокодов. То есть, устройство согласования по скорости, согласно настоящему изобретению, имеет одиночную структуру, которую можно применить как к известным кодам, так и турбокодам, даже если требуются два различных набора условий.
Устройство согласования по скорости, согласно настоящему изобретению, может также иметь структуру фиг.8. Это устройство согласования по скорости имеет комбинированную структуру известного устройства согласования по скорости (фиг.1) и нового устройства согласования по скорости (фиг.2 и 3). При использовании одного блока согласования по скорости устройство согласования по скорости имеет низкий коэффициент сложности даже в случае, если оно реализовано при помощи аппаратных средств.
На фиг.8 канальный кодер 200 кодирует по каналам входные информационные биты со скоростью кодирования R=k/n и выводит кодированные символы. Кодированные символы мультиплексируются с помощью мультиплексора 260, и мультиплексированные кодированные символы выводятся в блок 230 согласования по скорости. Символы, согласованные по скорости с помощью блока 230 согласования по скорости путем прокалывания/повторения, передаются в канальный передатчик. ОЗУ (оперативное запоминающее устройство) 270 запоминает исходные значения, принятые во время согласования по скорости, которое выполняется с помощью блока 230 согласования по скорости, и обеспечивает подачу исходного значения в блок 230 согласования по скорости. Канальный кодер 200 срабатывает на каждый период тактовых импульсов символов, имеющих частоту CLOCK, и мультиплексор 260 и блок 230 согласования по скорости срабатывают в заданный период тактовых импульсов, имеющих частоту n x CLOCK. Исходное значение, которое подается в ОЗУ 270, включает в себя номер Nc входного символа, номер Ni выходного символа, значение 'е' ошибки и параметры 'а' и 'b', определяющие порядок прокалывания/повторения. Число символов, которое необходимо прокалывать для каждого кадра кодированных символов, определяется по числу Nc входных символов и числу Ni выходных символов. ОЗУ 270 запоминает номер Nc входных символов, соответствующий каждому тактовому импульсу символов в заданном периоде, число Ni выходных символов, значение 'е' ошибки и параметры 'а' и 'b', определяющие порядок прокалывания/повторения. При выполнении согласования по скорости путем прокалывания блок 230 согласования по скорости принимает соответствующее число Nc входных символов, число Ni выходных символов, значение 'е' ошибки и параметров 'а' и 'b', определяющих порядок прокалывания, которые запоминаются в ОЗУ 270 в каждый период тактовых импульсов символов для того, чтобы определить, необходимо ли прокалывать конкретный символ, обрабатываемый в каждый период тактовых импульсов символов, и выполняет прокалывание, согласно соответствующему порядку прокалывания. При выполнении согласования по скорости путем повторения блок 230 согласования по скорости принимает соответствующее число Nc входных символов, число Ni выходных символов, значение 'е' ошибки и параметры 'а' и 'b', определяющие порядок повторения, которые запоминаются в ОЗУ 270 в каждый период тактовых импульсов символов для того, чтобы определить, необходимо ли прокалывать конкретный символ, обрабатываемый в каждый период тактовых импульсов символов, и выполняет повторение согласно соответствующему порядку повторения.
При использовании сверточного кода или линейного блочного кода в канальном кодере 200 исходное значение устанавливается в ОЗУ 270 с учетом специфических параметров (Nc, Ni, е, b, а) прокалывания/повторения. То есть, блок (БСС) 230 согласования по скорости работает так, как показано на фиг.1, без обновления ОЗУ 270.
При использовании турбокода в канальном кодере 200 блок 230 согласования по скорости должен последовательно запускаться от БСС1 до БССn (каждый БССх [х=1-n] связан с набором значений для Nc, Ni, е, b и а) в каждый период тактовых импульсов символов, который обозначен периодом "n" (то есть период n - период тактовых импульсов с частотой CLOCK). Другими словами, в каждый период тактовых импульсов, имеющих частоту n x CLOCK, блок 230 согласования по скорости обновляет свои значения Nc, Ni, е, а и b из одного из БССх [x=1-n]. Таким образом, для каждого периода n блок 230 согласования по скорости обновляет свои значения Nc, Ni, е, b и а из каждого БССх. Например, во время одного периода 1/(n x CLOCK) блок 230 согласования по скорости может принимать значения для Nc, Ni, е, а и b из БСС1 и затем принимать значения для Nc, Ni, е, а и b из БСС2 в следующий период 1/(n x CLOCK) и так далее до тех пор, пока значения из БССn не поступят в блок 230 согласования по скорости. Тот же самый цикл затем снова повторяется в следующем периоде n. Поэтому значения состояний БССх, которые обрабатываются в определенный момент времени, то есть значения параметров (Nc, Ni, е, а, b) для определения символов и порядок для прокалывания/повторения, запоминаются в ОЗУ 270 для обработки в следующий момент времени. Поэтому, если это значение используется в случае, когда БССх обрабатывается в следующей момент времени, можно выполнить операцию n БССs (БСС1-БССn) с использованием одного БСС. Для этой скорости обработки, так как используется частота n x CLOCK (фиг.1 и 2), коэффициент сложности не будет увеличиваться.
Между тем, на фиг.2 в каждый из блоков 231-239 согласования по скорости отдельно поступают символы, кодированные с помощью канального кодера 200, число которых определяется путем умножения числа кодированных символов в кадре на скорость кодирования. Однако следует отметить, что каждый из блоков 231-239 согласования по скорости может также выборочно принимать различное число символов, кодированных с помощью канального кодера 200. Например, один из блоков 231-239 согласования по скорости может выборочно принимать число кодированных символов, которое меньше, чем число, определенное путем умножения числа кодированных символов в кадре на скорость кодирования, и другой блок согласования по скорости может выборочно принимать число кодированных символов, которое больше, чем число, определенное путем умножения числа кодированных символов в кадре на скорость кодирования. Однако, в целях упрощения, будет описан случай, где каждый из блоков 231-239 согласования по скорости выборочно принимает одинаковое число символов, кодированных с помощью канального кодера 200.
Ниже описывается устройство согласования по скорости согласно варианту осуществления настоящего изобретения. Для удобства предполагается, что скорость кодирования равна R=1/3, и предусмотрено 3 блока согласования по скорости. Однако следует отметить, что устройство согласования по скорости, согласно настоящему изобретению, применяется в любом случае, где имеется n блоков согласования по скорости, то есть когда скорость кодирования равна R= k/n. Кроме того, в нижеследующем описании Ncs показывает полное число кодированных символов, входящих в один кадр, выводимых из канального кодера. Nc показывает число символов, которое вводится в каждый блок согласования по скорости, и число входных символов определяется как Nc=RxNcs. В следующем ниже описании RxNcs=1/3Ncs=Ncs/3. Ni показывает число символов, которое выводится из каждого блока согласования по скорости, и число выходных символов определяется как Ni=RxNis, которое равно Nis/3 в описании, где Nis показывает полное число символов, которое выводится при окончании процесса согласования по скорости. То есть, Nis - это полное число символов, которое выводится из соответствующих блоков согласования по скорости. Поэтому число символов (битов), которое необходимо прокалывать/повторять с помощью каждого блока согласования по скорости, определяется как y=Nc-Ni. Значение Nc и значение Ni могут изменяться.
Кроме того, в изобретении используются параметры 'а' и 'b', которые являются целыми числами, определяемыми в соответствии с порядком прокалывания/повторения внутри одного кадра, то есть целыми числами, которые определяют порядок прокалывания/повторения. Параметр 'а' является значением смещения для определения положения первого символа в порядке прокалывания/повторения. То есть, параметр 'а' определяет, какой один из кодированных символов, входящих в один кадр, необходимо выбирать в качестве первого символа порядка прокалывания/повторения. Если значение параметра 'а' увеличивается, то символ, расположенный в начале кадра, будет прокалываться/повторяться. Параметр 'b' представляет собой значение для управления периодом прокалывания или повторения в кадре. При изменении значения этого параметра можно прокалывать/повторять все кодированные символы, входящие в кадр.
Как описано выше, устройство согласования по скорости, согласно настоящему изобретению, позволяет выполнить согласование по скорости не только путем прокалывания, но также и путем повторения. Описание устройства согласования по скорости, согласно настоящему изобретению, делится на устройство для выполнения согласования по скорости путем прокалывания и устройство для выполнения согласования по скорости путем повторения.
А. Варианты осуществления устройства согласования по скорости путем прокалывания
1. Вариант осуществления устройства согласования по скорости путем прокалывания (для сверточного кода)
На фиг. 4 показана структура устройства согласования по скорости путем прокалывания согласно варианту осуществления настоящего изобретения. Эта структура используется в случае, когда устройства согласования по скорости (фиг.2 и 3) выполняют согласование по скорости сверточных, кодированных символов путем прокалывания.
Как показано на фиг.4, сверточный кодер 210 кодирует входные информационные биты Ik со скоростью кодирования R=1/3 и выводит кодированные символы C1k, C2k и C3k. Кодированные символы C1k, C2k и C3k выборочно подаются соответственно в блоки 231, 232 и 233 согласования по скорости. Первый блок 231 согласования по скорости прокалывает кодированный символ C1k. На этой стадии процесс прокалывания выполняется на основании числа y=Nc-Ni прокалываемых символов, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов и параметров 'а' и 'b', определяющих порядок прокалывания. Например, первый блок 231 согласования по скорости может выводить символы ...11x10x01x... (где х показывает прокалываемый символ). Второй блок 232 согласования по скорости прокалывает кодированный символ C2k. На этой стадии процесс прокалывания выполняется на основании числа y=Nc-Ni прокалываемых символов, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов и параметров 'а' и 'b', определяющих порядок прокалывания. Например, второй блок 232 согласования по скорости позволяет выводить символы ...11x11x10x... (где х показывает прокалываемый символ). Третий блок 233 согласования по скорости прокалывает кодированный символ C3k. В это время процесс прокалывания выполняется на основании числа y=Nc-Ni прокалываемых символов, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов и параметров 'а' и 'b', определяющих порядок прокалывания. Например, третий блок 233 согласования по скорости позволяет выводить символы . ..01x11x11x... (где х показывает прокалываемый символ). Кодированные символы, согласованные по скорости с помощью блоков 231, 232 и 233 согласования по скорости, мультиплексируются с помощью мультиплексора 240 (не показан на фиг.4) и подаются в канальный передатчик.
На фиг.4 число Nc входных символов и число Ni выходных символов в равной степени определяется соответственно как Nc=RxNcs и Ni=RxNis для каждого блока согласования по скорости. Каждый блок согласования по скорости выборочно прокалывает одинаковое число канально-кодированных символов, исходя из того предположения, что чувствительность к ошибкам кодированных символов является практически одинаковой для каждого символа в одном кадре. То есть, получается почти равномерный порядок прокалывания в пределах одного кадра независимо от различного количества прокалываемых битов, определенного в соответствии с типом услуги. Это становится возможным потому, что все символы в одном кадре можно равномерно прокалывать для сверточного кода.
Поэтому, согласно варианту осуществления настоящего изобретения, символы, кодированные с помощью сверточного кодера 210 разделяются и подаются с тем же самым числом символов в блоки 231, 232 и 233 согласования по скорости. Каждый из блоков 231, 232 и 233 согласования по скорости прокалывает одинаковое число входных символов. На этой стадии параметры порядка прокалывания можно определить одинаковым или различным способом. То есть, порядок прокалывания можно определить одинаковым или различным способом для блоков 231, 232 и 233 согласования по скорости.
2. Другой вариант осуществления устройства согласования по скорости путем прокалывания (для турбокода)
На фиг. 5 показана структура устройства согласования по скорости путем прокалывания согласно другому варианту осуществления настоящего изобретения. Эта структура используется тогда, когда устройства согласования по скорости (фиг. 2 и 3) выполняют согласование по скорости турбо-кодированных символов путем прокалывания.
Как показано на фиг.5, турбокодер 220 кодирует входные информационные биты Ik со скоростью кодирования R=1/3 и выводит кодированные символы C1k, C2k и C3k. Среди кодированных символов информационный символ C1k выборочно подается в первый блок 231 согласования по скорости, и символы четности (или символы избыточности) C2k и C3k выборочно подаются соответственно во второй и третий блоки 232 и 233 согласования по скорости. Турбокодер 220 состоит из первого составного кодера 222, второго составного кодера 224 и перемежителя 226 (фиг. 6). Структура турбокодера 220 хорошо известна специалистам. Таким образом, подробное описание будет опущено. Входной сигнал X(t), который подается в турбокодер 220, соответствует входным информационным битам Ik, показанным на фиг. 5. Выходные сигналы X(t), Y(t) и Y'(t) турбокодера 220 соответствуют кодированным символам C1k, C2k и C3k, показанным соответственно на фиг. 5. Для первого выхода турбокодера 220 входные информационные биты Ik= X(t) выводятся в том же порядке, то есть как и на фиг.5, а входные информационные биты Ik выводятся в виде C1k.
Первый блок 231 согласования по скорости прокалывает кодированные символы C1k на основании следующего критерия. Так как скорость кодирования равна R=1/3, то число Nc входных символов определяется как Nc=RxNcs=Ncs/3, которое равно 1/3 от полного числа кодированных символов. Число Ni выходных символов также определяется как Ni=RxNcs, так как прокалывание не выполняется в части, соответствующей информационным символам, согласно условию 1В. Параметры 'а' и 'b', определяющие порядок прокалывания, можно выбрать в виде целых чисел, но это не означает, что прокалывание не выполняется согласно условию 1В. Например, первый блок 231 согласования по скорости может выводить символы ...111101011....
Второй блок 232 согласования по скорости прокалывает кодированные символы C2k на основании следующего критерия. Так как скорость кодирования равна R=1/3, то число Nc входных символов определяется как Nc=RxNcs=Ncs/3, которое равно 1/3 от полного числа кодированных символов. Так как выходные символы четности двух составных декодеров необходимо равномерно прокалывать согласно условию 2В и условию 4В и полное число выходных символов после прокалывания равно Nis для полного числа входных символов (Ncs) в одном кадре, то число Ni символов, которое выводится из второго блока 232 согласования по скорости после прокалывания, составляет Ni=[Nis-(RxNcs)]/2. Если Ni=[Nis-(RxNcs)]/2 является нечетным числом, то число выходных символов становится равным Ni= [Nis-(RxNcs)+1] /2 или [Nis-(RxNcs)-1]/2. Одно из двух значений выбирают в соответствии с соотношением между вторым блоком 232 согласования по скорости и третьим блоком 233 согласования по скорости. То есть, когда число выходных символов второго блока 232 согласования по скорости определяется как [Nis-(RxNcs)+1] /2, число выходных символов третьего блока 233 согласования по скорости определяется как [Nis-(RxNcs)-1]/2. Напротив, когда число выходных символов второго блока 232 согласования по скорости определяется как [Nis-(RxNcs)-1] /2, число выходных символов третьего блока 233 согласования по скорости определяется как [Nis-(RxNcs)+1]/2.
Параметры 'а' и 'b', определяющие порядок прокалывания, можно выбрать в виде целых чисел в соответствии с необходимым порядком прокалывания. Эти целые числа определяются только в соответствии с порядком прокалывания, и параметры можно установить так, чтобы b=1 и а=2. Подробное описание способа определения целых чисел для параметров, определяющих порядок прокалывания, будет приведено со ссылкой на таблицы. Например, второй блок 232 согласования по скорости может выводить символы ...11x11x10x... (где х показывает прокалываемый символ).
Третий блок 233 согласования по скорости прокалывает кодированные символы C3k на основании следующего критерия. Так как скорость кодирования равна R=1/3, то число Nc входных символов определяется как Nc=RxNcs=Ncs/3, которое составляет 1/3 от полного числа входных символов (кодированных символов). Так как полное число символов в выходных символах четности двух составных декодеров необходимо прокалывать равномерно в соответствии с условием 2В и условием 4В и полное число выходных символов после прокалывания равно Nis для полного числа входных символов в одном кадре, то число Ni символов, которое выводится из второго блока 232 согласования по скорости после прокалывания, составляет Ni= [Nis-(RxNcs)] /2. Если Ni=[Nis-(RxNcs)]/2 является нечетным числом, то число выходных символов становится равным Ni=[Nis-(RxNcs)+1] /2 или [Nis-(RxNcs)-1]/2. Одно из двух значений выбирают в соответствии с соотношением между вторым блоком 232 согласования по скорости и третьим блоком 233 согласования по скорости. То есть, когда число выходных символов второго блока 232 согласования по скорости определяется как [Nis-(RxNcs)+1] /2, то число выходных символов третьего блока 233 согласования по скорости определяется как [Nis-(RxNcs)-1]/2. Напротив, когда число выходных символов второго блока 232 согласования по скорости определяется как [Nis-(RxNcs)-1] /2, число выходных символов третьего блока 233 согласования по скорости определяется как [Nis-(RxNcs)+1]/2.
Параметры 'а' и 'b', определяющие порядок прокалывания, можно выбрать в виде целых чисел в соответствии с необходимым порядком прокалывания. Эти целые числа определяют только в соответствии с порядком прокалывания, и параметры можно установить так, чтобы b=1 и а=2. Подробное описание способа определения целых чисел для параметров, определяющих порядок прокалывания, приводится со ссылкой на таблицы. Например, третий блок 233 согласования по скорости может выводить символы ...11x11x10x... (где х показывает прокалываемый символ).
На фиг.5 символы, кодированные с помощью турбокодера 220, разделяются и затем подаются в равном количестве в блоки 231, 232 и 233 согласования по скорости. Первый блок 231 согласования по скорости выводит входные символы, так как они есть. Второй и третий блоки 232 и 233 согласования по скорости прокалывает одинаковое число входных символов. На этой стадии порядок прокалывания можно определить одинаковым или различным способом. То есть порядок прокалываниения можно определить одинаковым или разным способом для блоков 232 и 233 согласования по скорости.
3. Определение параметров для прокалывания
В вариантах осуществления настоящего изобретения, обсуждаемых здесь, блоки согласования по скорости прокалывают одинаковое число символов (за исключением блока 231 согласования по скорости (фиг.5)). Однако блоки согласования по скорости могут прокалывать различное число символов. Если
число Ni символов, которое выводится из соответствующих блоков согласования по скорости, устанавливают различным способом, то число символов, прокалываемых с помощью соответствующих блоков согласования по скорости, будет определяться различным способом. Кроме того, порядок символов, прокалываемых с помощью соответствующих блоков согласования по скорости, можно определить одинаковым или различным способом, путем изменения параметров 'а' и 'b', определяющих порядок прокалывания. То есть, даже если она имеет одну структуру, устройство согласования по скорости, согласно настоящему изобретению, позволяет определить параметры, такие как число входных символов, число выходных символов, число символов, которые необходимо прокалывать, и параметры, определяющие порядок прокалывания, различным способом. В таблице 1 показаны посредством примера различные случаи параметров. Здесь скорость кодирования предполагается равной R=1/3. Поэтому предусмотрено три блока согласования по скорости, и соответствующие блоки согласования по скорости принимают отдельно одинаковое число символов, то есть Nc=Ncs/3 символов. В этом случае блоки согласования по скорости принимают отдельно одинаковое число символов, которое определяется путем умножения числа кодированных символов на скорость кодирования. Однако следует отметить, что настоящее изобретение можно также применить к случаю, где блоки согласования по скорости принимают отдельно различное число символов, то есть число символов, которое меньше, чем число, определенное путем умножения числа кодированных символов в кадре на скорость кодирования, или число символов, которое больше, чем число, определенное путем умножения числа кодированных символов в кадре на скорость кодирования. В следующем ниже описании БСС1, БСС2 и БСС3 обозначают соответственно первый-третий блоки согласования по скорости.
В таблице 1 БСС1, БСС2 и БСС3 обозначают блоки согласования по скорости и р, q, r, s, t, w, x, у и z являются целыми числами. В Случае 9 и в Случае Это получается так потому, что . NA (не используется) показывает, что входные символы выводятся так, как они есть, без прокалывания, для которого параметры 'а' и 'b' можно установить на любое значение. В этом случае параметры 'а' и 'b' являются положительными числами. Кроме того, показан случай, где входные символы прокалывают для того, чтобы выполнить согласование по скорости так, чтобы число входных символов было больше, чем число выходных символов (то есть Ncs>Nis). Ниже приводится ссылка на каждый случай.
Случай 1, Случай 2. В Случае 1 и Случае 2 символы в одном кадре прокалываются при равномернм порядке. В частности, в Случае 1 блоки согласования по скорости имеют одинаковый порядок прокалывания, так как параметры 'а' и 'b' являются одинаковыми, и в Случае 2 блоки согласования по скорости имеют различные порядки прокалывания, так как параметры 'а' и 'b' являются разными.
Случай 3. При систематическом прокалывании информационные символы не прокалываются, а символы четности прокалываются. В этом случае, так как значения параметров 'а' и 'b', определяющие порядок прокалывания, равны друг другу, БСС2 и БСС3 выполняют равномерное прокалывание пополам с использованием одинакового порядка прокалывания.
Случай 4. При систематическом прокалывании информационные символы не прокалываются, а прокалываются символы четности. В этом случае, поскольку параметры 'а' и 'b', определяющие порядок прокалывания, отличаются друг от другу, БСС2 и БСС3 выполняют равномерное прокалывание пополам с использованием различных порядков прокалывания.
Случай 5. Это является общим случаем для Случая 3. В этом случае параметр 'а', определяющий порядок прокалывания, устанавливается на целое число 'р' так, чтобы можно было установить различные порядки прокалывания. Параметр 'а' устанавливается на то же самое значение для БСС2 и БСС3.
Случай 6. Это общий случай для Случая 4. В этом случае параметр 'а', определяющий порядок прокалывания, устанавливается на целые числа 'р' и 'q' так, чтобы можно было устанавливать различные порядки прокалывания. Параметр 'а' устанавливается на 'р' для БСС2 и на 'q' для БСС3.
Случай 7. Это другой общий случай для Случая 5. В этом случае параметр 'а', определяющий порядок прокалывания, устанавливается на целое число 'р' и параметр 'b', определяющий порядок прокалывания, устанавливается на целое число 'q' так, чтобы можно было устанавливать различные порядки прокалывания. Параметры 'а' и 'b' устанавливаются на целое число 'q' так, чтобы можно было устанавливать различные порядки прокалывания. Параметры 'а' и b' устанавливают на то же самое значение для БСС2 и БСС3.
Случай 8. Это другой общий случай для Случая 6. В этом случае параметр 'а', определяющий порядок прокалывания, устанавливается соответственно на целые числа 'р' и 'r' для БСС2 и БСС3 и параметр 'b', определяющий порядок прокалывания, устанавливается соответственно на целые числа 'q' и 's' для БСС2 и БСС3 так, чтобы можно было устанавливать различные порядки прокалывания. Параметры 'а' и 'b' устанавливают на 'р' и 'q' для БСС2 и на 'r' и 's' для БСС3.
Случай 9, Случай 10. В этих случаях изменяют все возможные параметры. То есть, число выходных символов можно установить на любое целое число, и параметры 'а' и 'b', определяющие порядок прокалывания, можно также установить на любые заданные целые числа.
В таблице 1 Случай 1 и Случай 2 можно применить при выполнении согласования по скорости для сверточно-кодированных символов и Случай 3 - Случай 8 можно применить при выполнении согласования по скорости для турбо-кодированных символов.
Порядок прокалывания можно изменять в соответствии с изменением параметра 'а', определяющего порядок прокалывания. В таблице 2 показано изменение порядка прокалывания в соответствии с изменением параметра 'а'. В таблице 2 предполагается, что Nc=10, Ni=8, y=Nc-Ni=10-8=2 и b=1. Символы, прокалываемые в соответствии с порядком прокалывания, представлены в виде 'х'.
Из таблицы 2 следует, что можно получить различные порядки прокалывания путем фиксирования 'b' на '1' и установки 'а' на различные значения. Следует понимать, что первый символ порядка прокалывания расположен в начале при увеличении значения 'а'. Конечно, можно получить больше порядков прокалывания путем изменения параметра 'b', кроме того, можно предохранить первый символ от прокалывания путем установки параметра 'b' в 1 и использования значения, которое удовлетворяет уравнению (1), представленному ниже, для параметра 'а'. Поэтому, чтобы удовлетворить условие 3В, параметр 'а' необходимо установить на значение в диапазоне уравнения (1).
где - самое большое целое число, которое меньше или равно Nc/y.
В уравнении (1) Nc=10 и у=2, Nc/y=10/2=5. Поэтому, если 'а' принимает значение 1, 2, 3 и 4, то первые символы не будут прокалываться.
Для того чтобы выполнить условие 5В, необходимо прокалывать конечные биты. С этой целью Nc необходимо установить на значение, которое определяется путем вычитания из него числа конечных битов. То есть, если число Nc входных символов устанавливается на Nc-NT, где NT обозначают число конечных битов, конечные биты не будут прокалываться, и таким образом выполняется условие 5В. Другими словами, конечные биты не вводятся в блок согласования по скорости. Таким образом, порядок согласования по скорости учитывает только размер кадра Nc-NT. После прокалывания или повторения с помощью блока согласования по скорости конечные биты последовательно конкатенируются в выходные символы блока согласования по скорости. Конечные биты не обрабатываются и только присоединяются на конце выходных символов.
4. Алгоритм согласования по скорости путем прокалывания
На фиг.7 показана процедура согласования по скорости путем прокалывания согласно варианту осуществления настоящего изобретения. Эта процедура выполняется на основе алгоритма согласования по скорости, представленного в таблице 3. В таблице 3 So={d1, d2,..., dNc} обозначает ввод символов для одного блока согласования по скорости, то есть ввод символов в блок кадра для одного блока согласования по скорости, и состоит в общем из Nc символов. Параметр S(k) сдвига является исходным значением, которое используется в алгоритме, и постоянно устанавливается в '0' при использовании устройства согласования по скорости, согласно настоящему изобретению, в нисходящей линии связи системы цифровой связи (то есть при выполнении согласования по скорости для кодированных символов, которые будут передаваться из базовой станции в мобильную станцию). 'm' показывает порядок символов, которые будут вводиться для согласования по скорости, и имеет вид 1, 2, 3,..., Nc. Из таблицы 3 следует, что можно изменять параметры, включающие в себя число Nc входных символов, число Ni выходных символов и параметры 'а' и 'b', определяющие порядок прокалывания. Например, можно изменять параметры так, как показано в таблице 1. Число Nc входных символов можно определить в виде значения, отличного от Ncs/3 в соответствии со скоростью кодирования R. Фиг.7 соответствует случаю, где алгоритм таблицы 3 применяется к нисходящей линии связи системы цифровой связи, то есть S(k)=0.
При использовании алгоритма в таблице 3 достигаются следующие преимущества.
Во-первых, можно переменным образом прокалывать кодированные символы блока кадра.
Во-вторых, можно выработать различные порядки прокалывания путем регулировки параметров Nc, Ni, а и b.
В-третьих, можно уменьшить сложность и время вычисления каждого блока согласования по скорости на 1/R. Поэтому, если используется множество блоков согласования по скорости, то число символов, которое необходимо прокалывать с помощью каждого блока согласования по скорости, будет уменьшено по сравнению со случаем, где используется один блок согласования по скорости.
Как показано на фиг.7, на этапе 701 все виды параметров, включающие в себя число Nc входных символов, число Ni выходных символов и параметры 'а' и 'b', определяющие порядок прокалывания, инициируются для процесса согласования по скорости. При определении Nc и Ni с помощью инициализации параметров число символов, которое необходимо прокалывать, определяется с помощью y= Nc-Ni на этапе 702. На этапе 703 вычисляется исходное значение 'е' ошибки между текущим и требуемым соотношениями прокалывания. Исходное значение ошибки определяется с помощью уравнения е=b•Nc mod a•Nc.
Затем на этапе 704 'm', показывающие порядок входных символов, устанавливают на '1' (m=1). После этого, на этапах 705 - 709 символы проверяют из исходного символа для того, чтобы определить, необходимо их прокалывать или нет. Если на этапе 707 определено, что вычисленное значение 'е' ошибки меньше или равно 0, то прокалывается соответствующий символ, и затем значение ошибки обновляется на этапе 708 с помощью уравнения e=e+a•Nc. В противном случае, если на этапе 707 было определено, что вычисленное значение 'е' больше 0, то прокалывание не выполняется. Операция приема кодированных символов в порядке, соответственно, определения того, выполнять или нет прокалывание по принятым символам, и выполнения прокалывания повторно выполняется до тех пор, пока на этапе 705 не будет определено, что все символы в одном кадре приняты полностью.
Как показано с помощью вышеприведенного алгоритма, положение первого символа, который необходимо прокалывать или повторить, управляется с помощью параметров а, b (предполагается, что Исходное_Смещение_m = положение первого символа, который необходимо прокалывать). В приведенном выше алгоритме Исходное_Смещение_m = 'm', где 'е'≤0 для первого момента времени. В таблице 4а показан пример определения Исходное_Смещение_m. В ней предполагается, что bNc будет меньше, чем aNc.
Исходное_Смещение_m=k=4.
В приведенных ниже уравнениях Ррnс обозначает период прокалывания или повторения в приведенном выше алгоритме.
Исходное_Смещение_
если Nc/y - целое число;
если Nc/y - не целое число.
Как следует из вышеприведенных уравнений, управляя параметрами а, b, можно управлять положением первого символа, который будет прокалываться или повторяться.
Например, значение Исходное_Смещение_m уменьшается при увеличении 'а', если 'b' остается постоянным. Таким образом, при увеличении 'а' положение первого символа, который необходимо прокалывать/повторить, будет перемещаться ближе к первому положению. Если 'а' выбрано больше, чем by/Nc, то Исходное_ Смещение_m=1, которое означает, что первый символ будет проколот или повторен. В результате положением первого символа, который необходимо проколоть/повторить, можно манипулировать путем выбора значения 'а' между 1 и Ррnс. Например, если b=1 и а=2, то положение первого символа, который необходимо прокалывать/повторить, будет всегда равно Ррnс/2.
Что же касается параметра 'b', то он управляет Исходное_Смещение_m наряду с 'а', и, как показано ниже, сразу после выбора решения по значению 'а' значение 'b' можно выразить в виде 1≤b≤а. Если 'а' остается постоянным, Исходное_Смещение_m будет увеличиваться при увеличении 'b' и уменьшается при уменьшении 'b'. Таким образом, положениями прокалывания/повторения можно управлять, манипулируя значениями параметров а, b. Хотя значение 'b' может быть любым, это не означает, что значение 'b' будет выбрано больше, чем 'а', как показано ниже, так как исходное значение 'е' становится циклическим сразу после того, как значение 'b' становится больше, чем 'а' (то есть значение 'е' повторяет само себя).
Допустим а=3;
исходное значение=(2•S(k)•y+bNc) mod aNc;
е=bNc mod aNc, так как S(k)=0 в нисходящей линии связи;
если b=1, то e=Nc;
если b=2, то e=2Nc;
если b=3, то e=3Nc;
если b=4, то e=Nc;
если b=5, то e=2Nc;
если b=6, то e=3Nc.
Как следует из вышеприведенного примера, исходное значение 'е' изменяется так же, как и значение 'b'. Однако после того, как значение 'b' становится больше, чем 'а', исходное значение 'е' циклически повторяет само себя. Таким образом, не имеет смысла назначать значение больше 'а'-'b'. В итоге, порядком прокалывания или повторения можно управлять, манипулируя параметрами a, b.
В. Варианты осуществления устройства согласования по скорости путем повторения
1. Вариант осуществления устройства согласования по скорости путем повторения (для сверточного кода)
На фиг. 9 показана структура устройства согласования по скорости путем прокалывания согласно варианту осуществления настоящего изобретения. Эта структура используется в случае, когда устройства согласования по скорости (фиг.2 и 3) выполняют согласование по скорости сверточно-кодированных символов путем повторения.
Как показано на фиг.9, сверточный кодер 210 кодирует входные информационные биты Ik со скоростью кодирования R=1/3 и выводит кодированные символы C1k, C2k и C3k. Кодированные символы C1k, C2k и C3k выборочно подаются соответственно в блоки 231, 232 и 233 согласования по скорости. Первый блок 231 согласования по скорости выборочно повторяет кодированный символ C1k. На этой стадии процесс повторения выполняется на основании повторения числа символов y=Ni-Nc, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов, и параметров 'а' и 'b', определяющих порядок повторения. Например, первый блок 231 согласования по скорости может выводить символы ...11(11)101(00)010... (где (11) и (00) показывают повторяющиеся символы).
Второй блок 232 согласования по скорости выборочно повторяет кодированный символ C2k. На этой стадии процесс повторения выполняется на основании числа y=Ni-Nc повторяющихся символов, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов, и параметров 'а' и 'b', определяющих порядок повторения. Например, второй блок 232 согласования по скорости позволяет выводить символы ...(11)01(00)1100... (где (11) и (00) показывают повторяющиеся символы).
Третий блок 233 согласования по скорости повторяет кодированный символ C3k. На этой стадии процесс повторения выполняется на основании числа y= Ni-Nc повторяющихся символов, которое определяется с помощью числа Nc входных символов и числа Ni выходных символов, и параметров 'а' и ' b', определяющих порядоку повторения. Например, третий блок 233 согласования по скорости позволяет выводить символы ...0(11)1101(11)... (где (11) показывает повторяющиеся символы). Кодированные символы, согласованные по скорости с помощью блоков 231, 232 и 233 согласования по скорости, мультиплексируются с помощью мультиплексора 240 и подаются в канальный передатчик.
На фиг.9 число Nc входных символов и число Ni выходных символов в равной степени определяется соответственно как Nc=RxNcs и Ni=RxNis для каждого блока согласования по скорости. Тот факт, что каждый блок согласования по скорости выборочно повторяет одинаковое число канально-кодированных символов, определяется на том предположении, что чувствительность к ошибкам кодированных символов является почти одинаковым для каждого символа в одном кадре. То есть, внутри одного кадра получается почти равномерный порядок повторения, несмотря на различные числа (y=Ni-Nc) повторяющихся битов, определенных в соответствии с типом услуги. Это становится возможным потому, что все символы в одном кадре можно равномерно повторить для сверточного кода.
Поэтому, согласно варианту осуществления настоящего изобретения, символы, кодированные с помощью сверточного кодера 210, делятся на одинаковое число и подаются в блоки 231, 232 и 233 согласования по скорости. Каждый из блоков 231, 232 и 233 согласования по скорости повторяет одинаковое число входных символов. На этой стадии параметры порядока повторения можно определить одинаковым или различным способом. То есть, порядок повторения можно определить одинаковым или различным способом для блоков 231, 232 и 233 согласования по скорости.
2. Другой вариант осуществления устройства согласования по скорости путем повторения (для турбокода)
На фиг. 10 показана структура устройства согласования по скорости путем повторения согласно другому варианту осуществления настоящего изобретения. Эта структура используется в случае, когда устройства согласования по скорости (фиг. 2 и 3) осуществляют согласование по скорости турбо-кодированных символов путем повторения.
Как показано на фиг.10, турбо-кодер 220 кодирует входные информационные биты Ik со скоростью кодирования R=1/3 и выводит кодированные символы C1k, C2k и C3k. Среди кодированных символов информационный символ C1k выборочно подается в первый блок 231 согласования по скорости, и символы четности (или символы избыточности) C2k и C3k выборочно подаются соответственно во второй и третий блоки 232 и 233 согласования по скорости. Турбокодер 220 состоит из первого составного кодера 222, второго составного кодера 224 и перемежителя 226 (фиг.6). Составные кодеры 222 и 224 могут использовать рекурсивные систематические коды (RSC). Специалистам хорошо известна структура турбокодера 220. Таким образом, его подробное описание будет опущено. Входной сигнал X(t), который подается в турбокодер 220, соответствует входным информационным битам Ik, которые показаны на фиг. 10. Выходные сигналы X(t), Y(t) и Y'(t) турбокодера 220 соответствуют кодированным символам C1k, C2k и C3k, показанным на фиг. 10. На первом выводе турбокодера 220 входные информационные биты Ik выводятся так, как они есть, для того, чтобы входные информационные биты Ik выводились в виде C1k (фиг.10).
Первый блок 231 согласования по скорости повторяет кодированные символы C1k на основании следующего критерия. Так как скорость кодирования равна R= 1/3, то число Nc входных символов определяется в виде Nc=RxNcs=Ncs/3, которое равно 1/3 от полного числа входных символов (кодированный символ). Число Ni выходных символов определяется в виде Ni=Nis-(2RxNcs), так как повторение должно выполняться в соответствии с условием 1D. Параметры 'а' и 'b', определяющие порядок повторения, можно установить на заданные целые числа в соответствии с требуемым порядком повторения. Целые числа определяются только в зависимости от порядка повторения, и параметры обычно можно установить b=1 и а= 2. Ниже, со ссылкой на таблицы, приводится подробное описание способа определения целых чисел для параметров, определяющих порядок повторения. Например, первый блок 231 согласования по скорости может выводить символы ... 1(11)101(00)11... (где (11) и (00) показывают повторяющиеся символы).
Второй блок 232 согласования по скорости выводит кодированные символы C2k без повторения. Однако второй блок 232 согласования по скорости может повторять кодированные символы C2k при определенных условиях, таких как строгое повторение. Так как скорость кодирования равна R=1/3, то число Nc входных символов определяется в виде Nc=RxNcs=Ncs/3, которое равно 1/3 от полного числа входных символов. Число Ni выходных символов определяется как Ni= RxNcs, которое равно числу входных символов, так как два вида символов четности не должны повторяться в соответствии с условием 2D и условием 4D. Например, второй блок 232 согласования по скорости может выводить символы .. .110111101..., где отсутствует повторение.
Третий блок 233 согласования по скорости выводит кодированные символы C3k без повторений. Однако третий блок 233 согласования по скорости может также повторять кодированные символы C3k при строгом повторении. Так как скорость кодирования равна R=1/3, то число Nc входных символов определяется как Nc= RxNcs= Ncs/3, которое равно 1/3 от полного числа входных символов. Число Ni выходных символов определяется как Ni=RxNcs, которое равно числу входных символов, так как два вида символов четности не должны повторяться в соответствии с условием 2D и условием 4D. Параметры 'а' и 'b', определяющие порядок повторения, можно установить на заданные целые числа в соответствии с требуемым порядком повторения. Однако, если блоки 232 или 233 не используют повторение, то параметры а, b не важны для блоков 232 или 233 согласования по скорости. Целые числа определяются только в зависимости от порядка повторения, и параметры можно обычно установить так, чтобы b=1 и а=2. Ниже, со ссылкой на таблицы, приводится подробное описание способа определения целых чисел для параметров, определяющих порядок повторения. Например, третий блок 233 согласования по скорости может выводить символы ...01011010. .., которые не подвергаются повторению.
На фиг. 10 символы, кодированные с помощью турбокодера 220, разделяются на одинаковое число и затем подаются в блоки 231, 232 и 233 согласования по скорости. Первый блок 231 согласования по скорости получает информационные символы из кодированных символов и повторяет принятые символы в соответствии с предопределенным порядком повторения. Второй и третий блоки 232 и 233 согласования по скорости принимают символы четности из кодированных символов и выводят принятые символы так, как они есть без повторения.
3. Определение параметров для повторения
Как описано выше, порядки повторения, которые используются для соответствующих блоков согласования по скорости, могут быть идентичными или различными. То есть, порядок повторения символов, используемый в соответствующих блоках согласования по скорости, и число повторенных символов можно определить различным способом. Если число Ni символов, которое выводятся из соответствующих блоков согласования по скорости, устанавливают различным способом, то число символов, которые повторяют с помощью соответствующих блоков согласования по скорости, будет определяться различным способом. Кроме того, порядок символов, который повторяют с помощью соответствующих блоков согласования по скорости, можно определить одинаковым или различным способом, путем изменения параметров 'а' и 'b', определяющих порядок повторения. То есть, даже при наличии одной структуры устройство согласования по скорости, согласно настоящему изобретению, позволяет различным способом определить параметры, такие как число входных символов, число выходных символов, число символов, которые будут повторяться, и параметры, определяющие порядок повторения.
В таблице 4 показаны различные случаи параметров посредством примера. В этом случае предполагается, что скорость кодирования равна R=1/3. Поэтому предусмотрено три блока согласования по скорости, и соответствующие блоки согласования по скорости выборочно принимают одинаковое число символов, то есть Nc= Ncs/3 символов. В этом случае блоки согласования по скорости выборочно принимают одинаковое число символов, которое определяется путем умножения числа кодированных символов на скорость кодирования. Однако следует отметить, что настоящее изобретение можно также применить к случаю, где блоки согласования по скорости выборочно принимают различное число символов, то есть число символов, которое меньше, чем число, определенное с помощью умножения числа кодированных символов в кадре на скорость кодирования, или число символов, которое больше, чем число, определенное путем умножения числа кодированных символов в кадре на скорость кодирования. В приведенном ниже описании БСС1, БСС2 и БСС3 обозначают соответственно первый-третий блоки согласования по скорости.
В таблице 4 БСС1, БСС2 и БСС3 показывают блоки согласования по скорости и р, q, r, s, t и х целые числа. NA показывает, что входные символы выводятся так, как они есть, без повторения, для которого параметры 'а' и 'b' можно установить на любое значение. В этом случае параметры 'а' и 'b' являются положительными числами. Кроме того, показан случай, где входные символы повторяются для выполнения согласования по скорости таким образом, чтобы число входных символов было меньше или равно числу выходных символов (то есть Ncs≤Nis). Далее делается ссылка на каждый случай.
Случай 1. При систематическом повторении информационные символы повторяются, но символы четности не повторяются. Параметры, определяющие параметры повторения, устанавливаются так, чтобы а=2 и b=1.
Случай 2. При систематическом повторении информационные символы повторяются, но символы четности не повторяются. Параметры, определяющие порядок повторения, устанавливаются так, чтобы а=р и b=q.
Случай 1 и Случай 2 можно использовать только в случае, когда турбо-кодированные информационные символы повторяются так, как показано на фиг.10.
Случай 3. Информационные символы и символы четности повторяются, и порядки повторения определяются одинаковым способом для всех БСС1, БСС2 и БСС3. Число повторенных символов равно для БСС1, БСС2 и БСС3.
Случай 4. Информационные символы и символы четности повторяются, и порядки повторения определяются различным способом для всех или некоторых БСС1, БСС2 и БСС3. Число повторенных символов равно для БСС2 и БСС3.
В таблице 5 показано изменение порядока повторения в соответствии с изменением параметра 'а'. В таблице 5 предполагается, что Nc=8, Ni=10, y=Ni-Nc= 10-8=2, b=1. Символы, которые повторяются в соответствии с порядком повторения, показаны в скобках.
Из таблицы 5 видно, что различные порядки повторения можно получить путем фиксирования 'b' на '1' и установки 'а' на различные значения. Конечно, можно получить больше различных порядков повторения путем изменения параметра 'b'. Кроме того, можно всегда повторить первый символ путем установки параметра 'b' в '1' и использования значения, удовлетворяющего уравнению (2), которое приведено ниже для параметра 'а'. Поэтому, чтобы выполнить условие 3D, параметр 'а' необходимо установить в значение, которое находится в диапазоне уравнения 2.
где - самое большое целое число, которое меньше или равно Nc/y.
В уравнении (2) для Nc=8 и у=2 Nc/y=8/2=4. Поэтому, если 'а' имеет значение больше 4, то первые символы будут повторяться.
Для того чтобы выполнить условие 5D, необходимо повторить конечные биты. С этой целью Nc необходимо установить на значение, которое определяется путем сложения с этим числом конечных битов. То есть, если число Nc входных символов установить на Nc+NT, где NT обозначают число конечных битов, то конечные биты для информационных символов будут всегда повторяться, таким образом удовлетворяя условию 5D. Другими словами, для повторения даже оконечные биты вводятся в блок согласования по скорости и используются для повторения.
4. Алгоритм согласования по скорости путем повторения
На фиг. 11 показана процедура согласования по скорости путем повторения согласно варианту осуществления настоящего изобретения. Эта процедура выполняется на основе алгоритма согласования по скорости, показанного в таблице 6. В таблице 6 So={d1, d2,..., dNc} обозначает символы, которые вводятся для согласования по скорости, то есть символы, которые вводятся в блок кадра для согласования по скорости, и которые состоят в общем из Nc символов. Параметр S(k) представляет собой исходное значение, которое используется в алгоритме, и постоянно установлено в '0', когда устройство согласования по скорости, согласно настоящему изобретению, используется в нисходящей линии связи системы цифровой связи (то есть, когда согласование по скорости выполняется по кодированным символам, которые необходимо передавать из базовой станции в мобильную станцию). 'm' показывает порядок символов, вводимых для согласования по скорости, и имеет порядок 1, 2, 3,..., Nc. Из таблицы 6 следует, что можно изменять параметры, включающие в себя число Nc входных символов, число Ni выходных символов и параметры 'а' и 'b', определяющие порядоку повторения. Например, параметры можно изменить так, как показано в таблице 4. Число Nc входных символов можно определить в виде значения, отличного от Ncs/3 в соответствии со скоростью кодирования R. Фиг.11 соответствует случаю, где алгоритм таблицы 6 применяется к нисходящей линии связи системы цифровой связи, то есть S(k)=0.
При использовании алгоритма (таблица 6) достигаются следующие преимущества.
Во-первых, можно попеременно повторять кодированные символы (или символы кодового слова) блока кадра.
Во-вторых, можно вырабатывать различные порядки повторения путем регулировки параметров Nc, Ni, а и b.
В-третьих, можно уменьшить сложность и время вычисления для каждого блока согласования по скорости на 1/R. Поэтому, если используется множество блоков согласования по скорости, то число символов, которое необходимо повторять с помощью каждого блока согласования по скорости, будет уменьшено по сравнению со случаем, где используется один блок согласования по скорости. Например, число символов, которое можно повторить с помощью каждого блока согласования по скорости, можно уменьшить на скорость кодирования R, по сравнению со случаем, где используется один блок согласования по скорости.
Как показано на фиг.11, на этапе 1101 все виды параметров, включающие в себя число Nc входных символов, число Ni выходных символов и параметры 'а' и 'b', определяющие порядок повторения, инициируются для выполнения процесса согласования по скорости. Когда Nc и Ni определяются с помощью инициирования параметров, число символов, которые будут повторяться, определяется с помощью y= Ni-Nc на этапе 1102. На этапе 1103 вычисляют исходное значение 'е' ошибки между текущим и требуемым отношениями повторения. Исходное значение ошибки определяется путем е=b•Nc mod a•Nc.
Затем на этапе 1104 'm', показывающий порядок входных символов, устанавливают в '1' (m=1). После этого, на этапах 1105-1109, символы проверяют с исходным символом для того, чтобы определить, следует их повторять или нет. Если на этапе 1107 было определено, что вычисленное значение 'е' ошибки меньше или равно 0, то соответствующий символ повторяется, и затем на этапе 1108 значение ошибки обновляется на e=e+a•Nc. С другой стороны, если на этапе 1107 было определено, что вычисленное значение 'е' ошибки больше 0, то повторение не выполняется. Операция приема кодированных символов в порядке, соответственно, определения того, выполнять ли повторение по принятым символам, и выполнения повторения, повторно выполняется до тех пор, пока на этапе 1105 не будет определено, что все символы в одном кадре полностью приняты. В процессе повторения значение ошибки обновляется на е=е-а•у на этапе 1106.
Как описано выше, система передачи данных, согласно настоящему изобретению, позволяет выполнить согласование по скорости как для символов, канально-кодированных с помощью несистематического кода, так и для символов, канально-кодированных с помощью систематического кода, с использованием одной структуры. Поэтому система передачи данных, поддерживающая несистематические коды и систематические коды, позволяет выборочно согласовать по скорости символы, канально-кодированные с помощью несистематического кода, или символы, канально-кодированные с помощью систематического кода, таким образом увеличивая эффективность передачи данных и улучшая рабочие характеристики системы.
Настоящее изобретение имеет следующие преимущества.
Во-первых, можно свободно устанавливать порядок прокалывания/повторения путем настройки параметров блоков согласования по скорости, и все условия, которые необходимо учитывать при согласовании по скорости турбо-кодированных символов, могут быть выполнены с помощью простой настройки параметров.
Во-вторых, можно реализовать все блоки согласования по скорости в соответствии со скоростью кодирования R с использованием одного и того же алгоритма, и поэтому блоки согласования по скорости имеют простую структуру.
В-третьих, система, использующая сверточные коды и турбокоды, позволяет поддерживать сверточные коды и турбокоды с использованием одного устройства согласования по скорости, а не различных устройств согласования по скорости путем простой установки различных исходных параметров.
В-четвертых, нет необходимости реализовывать блоки согласования по скорости различным способом в соответствии со сверточным кодом или турбокодом.
В-пятых, путем установки числа входных символов на значение, которое определяется путем сложения с ними конечных битов так, чтобы конечные биты повторялись, новое устройство согласования по скорости полезно в случае, когда используется декодер SOVA или когда рабочие характеристики будут ухудшаться из-за отсутствия повторения конечных битов. Путем установки числа входных символов на значение, которое определяется путем сложения числа конечных битов с числом неконечных битов так, чтобы конечные биты не повторялись, новое устройство согласования по скорости полезно в случае, когда используется декодер SOVA или когда рабочие характеристики будут ухудшаться из-за отсутствия повторения конечных битов.
Путем установки числа входных символов на значение, которое определяется путем сложения числа с числом конечных битов так, чтобы повторялись конечные биты, новое устройство согласования по скорости полезно в случае, когда используется декодер SOVA или когда рабочие характеристики будут ухудшаться из-за отсутствия повторения конечных битов.
В-шестых, путем установки параметра 'b', определяющего порядок прокалывания, в '1' и установки параметра 'а' в значение, находящееся в пределах специфического диапазона, можно предохранить первый символ в одном кадре от прокалывания. Кроме того, можно повторить первый символ в одном кадре путем установки параметра 'b', определяющего порядок повторения, в '1' и установки параметра 'а' в значение, которое находится в пределах специфического диапазона.
Хотя изобретение было показано и описано со ссылкой на его конкретные предпочтительные варианты осуществления, специалистам будет ясно, что различные изменения по форме и деталям могут быть сделаны в нем без отклонения от сущности и масштаба изобретения, которое определено с помощью прилагаемой формулы изобретения.
Изобретение относится к канальному кодированию для системы передачи данных и может использоваться для согласования скорости передачи канально-кодированных символов. Достигаемый технический результат - согласование по скорости символов, канально-кодированных как с помощью несистематического, так и с помощью систематического кода, с использованием одной структуры в системе передачи данных. Устройство и способ согласования по скорости можно использовать в системе передачи данных, в которой используются систематический или несистематический код или оба сразу. Устройство согласования скорости передачи содержит множество блоков согласования по скорости, число которых обратно пропорционально скорости кодирования канального кодера. Согласование по скорости осуществляется путем изменения исходных параметров, включающих в себя число входных символов, число выходных символов и параметр, определяющий порядок прокалывания или повторения. 16 с. и 67 з.п.ф-лы, 7 табл., 11 ил.
Приоритет по пунктам:
06.07.1999 - по пп. 1-75;
10.07.1999 - по пп. 76-83.
Домовый номерной фонарь, служащий одновременно для указания названия улицы и номера дома и для освещения прилежащего участка улицы | 1917 |
|
SU93A1 |
УСТРОЙСТВО КОММУТАЦИИ КАДРОВ | 1991 |
|
RU2048707C1 |
US 5311505 A, 10.05.1994 | |||
US 5524111 A, 04.06.1996 | |||
Магнитожидкостное уплотнение | 1978 |
|
SU742657A1 |
Авторы
Даты
2003-11-10—Публикация
2000-07-06—Подача