|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "Обработка сигналов и изображений\Communications Toolbox"
Список функций CommunicationsToolbox: Помехоустойчивое кодирование и декодирование В оглавление \ К следующему разделу \ К предыдущему разделу
Синтаксис: decoded = vitdec(code,trellis,tblen,opmode,dectype); Описание:
Производит декодирование вектора code с помощью алгоритма Витерби. MATLAB-структура trellis описывает таблицу переходов используемого сверточного кода. Подробная информация о назначении полей этой структуры приведена на странице с описанием функции istrellis. Входной вектор code может содержать один или несколько символов, каждый из которых состоит из log2(trellis.numOutputSymbols) бит. Результат декодирования — выходной двоичный вектор decoded — содержит столько же символов, сколько и входной вектор code, при этом каждый декодированный символ состоит из log2(trellis.numInputSymbols) бит. Скалярный входной параметр tblen — положительное целое число, задающее глубину просмотра решетки при декодировании. Строковый параметр opmode задает режим работы декодера и используемые предположения относительно работы кодера, сгенерировавшего входной вектор code. Возможные значения данного параметра приведены в табл. 1. Таблица 1. Возможные значения входного параметра opmode
Строковый параметр dectype задает тип декодирования, используемый декодером. От значения этого параметра зависит и вид требуемых входных данных в векторе code. Возможные значения данного параметра приведены в табл. 2. Таблица 2. Возможные значения входного параметра dectype
Синтаксис для реализации мягкого декодирования
Производит мягкое декодирование вектора code. Входной вектор code должен содержать целые числа в диапазоне от 0 до 2nsdec – 1, при этом значение 0 представляет бит, с наибольшей достоверностью равный нулю, а значение 2nsdec – 1 означает бит, с наибольшей достоверностью равный единице. Промежуточные значения соответствуют промежуточным степеням достоверности принятой двоичной информации. Дополнительные варианты синтаксиса для реализации блочного декодирования
То же, что предыдущие варианты синтаксиса, но начальное состояние декодера (текущие метрики, трассы выживших путей и последовательности соответствующих им символов) задаются входными параметрами initmetric, initstates и initinputs соответственно. Вещественные числа в векторе initmetric, длина которого равна числу состояний кодера, задают начальные метрики для всех внутренних состояний. Каждая из матриц initstates и initinputs, совместно задающих начальное состояние памяти кодера, должна иметь trellis.numStates строк и tblen столбцов. Матрица initstates должна содержать целые числа в диапазоне от 0 до trellis.numStates-1. Если схема кодера предполагает наличие нескольких входных битовых потоков, то состояние сдвигового регистра, принимающего первый входной битовый поток, соответствует младшим битам элементов матрицы initstates, а состояние сдвигового регистра, принимающего последний поток, — старшим битам этих величин. Матрица initinputs должна содержать целые числа в диапазоне от 0 до trellis.numInputSymbols-1. Чтобы использовать значения по умолчанию для всех этих входных параметров, можно задать их в виде пустых матриц: [],[],[].
То же, что предыдущие варианты синтаксиса, но три дополнительных выходных параметра содержат конечные значения метрик (finalmetric), трассы выживших путей (finalstates) и последовательности соответствующих им символов (finalinputs). Выходной параметр finalmetric является вектором длиной trellis.numStates, содержащим конечные значения метрик для всех внутренних состояний. Выходные параметры finalstates и finalinputs являются матрицами, содержащими trellis.numStates строк и tblen столбцов. Их формат аналогичен формату матриц initstates и initinputs. Примеры Пример 1. В данном примере производится сверточное кодирование случайных данных с последующим добавлением шума. Далее выполняется декодирование зашумленного сигнала, при этом иллюстрируются все три типа декодирования, поддерживаемых функцией vitdec. Обратите внимание на то, что при использовании неквантованных входных данных (dectype = 'unquant'), а также в случае мягкого декодирования (dectype = 'soft') результат работы кодирующей функции convenc имеет не тот вид, который требуется для декодирования с помощью функции vitdec. В этих случаях кодированный вектор ncode перед подачей на вход функции vitdec необходимо подвергнуть дополнительным преобразованиям. trel = poly2trellis(3,[6 7]); % Описание кода The bit error rates are: 0.020619 0.020619 0.020619 Пример 2. Данный пример демонстрирует использование дополнительных параметров функции vitdec для того, чтобы декодировать сообщение по частям, вызывая функцию vitdec несколько раз. Объединенный декодированный вектор [decoded4;decoded5] совпадает с результатами декодирования, полученными при обработке всего сообщения целиком (вектор decoded6). trel = poly2trellis(3,[6 7]); 1 Сопутствующие функции: convenc, poly2trellis, istrellis. Литература Gitlin, Richard D., Jeremiah F. Hayes, and Stephen B. Weinstein. Data Communications Principles. New York: Plenum, 1992. |
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|