Исследование цифровой модуляции в системах радиосвязи

102 Применение декодирования Витерби Используйте de2bi функцию для преобразования восстановленных целочисленных символов в двоичные данные. dataOutMatrix = de2bi (dataSymbolsOut, k); codedDataOut = dataOutMatrix (:); % Возврат данных в виде вектора-столбца Используйте vitdec функцию, сконфигурированную для принятия жестких решений и режима непрерывной работы, для декодирования сверточно- закодированных данных. Режим непрерывной работы поддерживает внутреннее состояние, когда декодер вызывается повторно, например, при приеме кадров данных, работающих в цикле. Режим непрерывной работы также добавляет задержку в систему. Хотя этот пример не использует цикл, режим ' cont' используется с целью иллюстрации того, как компенсировать задержку в этой операции декодирования. traceBack = 16; % Длина трассировки для декодирования numCodeWords = floor (length (codedDataOut) * 2/3); % Количество полных кодовых слов dataOut = vitdec (codedDataOut (1: numCodeWords * 3/2), ... tPoly, traceBack, ' cont ' , 'hard' ); % Декодирования данных Вычисление BER Используйте biterr функцию для вычисления количества ошибок и значения BER, сравнивая dataIn и dataOut. Задержка, вносимая фильтрами RRC передачи и приема, уже учитывается в восстановленных данных, но задержка декодера еще не учитывается. В непрерывном режиме работы декодера Витерби возникает задержка с длительностью в битах, равная длине обратной трассировки traceBack, умноженной на количество входных потоков в кодере.

RkJQdWJsaXNoZXIy MTY0OTYy