ccsdsRSDecode

Декодируйте коды CCSDS-complaint RS

    Описание

    пример

    [decoded,cnumerr,ccode] = ccsdsRSDecode(code,k) декодируйте полученный сигнал в code при помощи (255, k) Декодер Тростника-Solomon (RS) с порождающим полиномом, как задано в Консультативном Комитете по Системам передачи и обработки данных Пробела (CCSDS) 131.0-B-3 Раздел 4 [1]. k количество символов в декодируемом сообщении. Функция возвращает декодируемое сообщение code, decoded, количество откорректированных ошибок, cnumerr, и откорректированная версия code, ccode.

    Для описания расшифровки кода CCSDS RS смотрите Расшифровку кода CCSDS RS.

    пример

    [decoded,cnumerr,ccode] = ccsdsRSDecode(code,k,i) задает чередующуюся глубину, i. code состоит из i Кодовые комбинации RS длины 255 байтов.

    [decoded,cnumerr,ccode] = ccsdsRSDecode(code,k,i,s) задает сокращенную длину сообщения, s.

    Примеры

    свернуть все

    Сгенерируйте закодированную кодовую комбинацию Тростника-Solomon (RS) во всю длину, введите случайные ошибки и декодируйте результат с помощью Консультативного Комитета по Системам передачи и обработки данных Пробела (CCSDS) RS декодер.

    Сгенерируйте случайное сообщение длины k.

    k = 223;
    msg = randi([0 255],k,1);

    Закодируйте сообщение при помощи энкодера CCSDS RS.

    code = ccsdsRSEncode(msg,k);

    Сгенерируйте 15 символов случайной ошибки и 15 уникальных случайных мест, чтобы вставить эти ошибки.

    err = randi([1 255],15,1);
    errLoc = randperm(255,15);
    errVec = zeros(255,1);
    errVec(errLoc) = err;

    Введите ошибочные символы в закодированном сообщении.

    rxBytes = bitxor(code,errVec);

    Декодируйте закодированные символы, начатые с ошибок при помощи декодера CCSDS RS.

    [decoded,v,ccode] = ccsdsRSDecode(rxBytes, k);

    Отобразите количество откорректированных ошибок.

    disp(v)
        15
    

    Сгенерируйте закодированную кодовую комбинацию Тростника-Solomon (RS) во всю длину, введите пакет erros и декодируйте результат с помощью Консультативного Комитета по Системам передачи и обработки данных Пробела (CCSDS) RS декодер.

    Задайте длину сообщения k и перемежение глубины, i.

    k = 239;
    i = 5;

    Сгенерируйте вектор-столбец случайных битов сообщения. Закодируйте сокращенное сообщение при помощи энкодера CCSDS RS.

    msg = randi([0 255],k*i,1);
    code = ccsdsRSEncode(msg,k,i);

    Сгенерируйте 30 символов случайной ошибки.

    err = randi([1 255],30,1);
    errVec = zeros(255*i,1);

    Введите пакетные ошибки от местоположения 52 - 81.

    errVec(52:81) = err;
    rxBytes = bitxor(code,errVec);

    Декодируйте закодированные символы, начатые с пакетных ошибок при помощи декодера CCSDS RS.

    [decoded,v,ccode] = ccsdsRSDecode(rxBytes,k,i);

    Отобразите количество откорректированных ошибок.

    disp(v)
        30
    

    Входные параметры

    свернуть все

    Закодированное сообщение в виде вектор-столбца целых чисел в области значений [0, 255].

    Элементы и размер вектор-столбца зависят от типа данных входного сигнала.

    • Для логического типа данных каждый элемент в векторе или 0 или 1.

    • Для uint8 или двойного типа данных, каждым элементом является целочисленный символ в GF (2m), в области значений [0, 255]. m является количеством битов в каждом символе.

    Тип входного сигналаРазмер code
    Тип данных code IslogicalТип данных code uint8 или дважды
    Полный входной сигнал8*255 255
    Чередованный входной сигнал8*255*i 255*i
    Сокращенный входной сигнал8*i* (255 – k + s)i* (255 – k + s)

    Типы данных: double | uint8 | logical

    Количество символов в декодируемом сообщении в виде 223 или 239.

    Типы данных: double

    Перемежение глубины в виде 1, 2, 3, 4, 5, или 8. Значение по умолчанию, 1, не соответствует никакому перемежению.

    code состоит из i Кодовые комбинации RS длины 255 байтов.

    Типы данных: double

    Сокращенная длина сообщения в виде целого числа в области значений [1, k].

    Типы данных: double

    Выходные аргументы

    свернуть все

    Декодируемое сообщение, возвращенное как вектор-столбец. Каждый элемент представляет декодирование соответствующего элемента во входе code. Тип данных decoded совпадает с тем из code.

    Размер вектор-столбца зависит от типа данных code.

    Тип входного сигналаРазмер decoded
    Тип данных code IslogicalТип данных code uint8 или дважды
    Полный входной сигнал8*k k
    Чередованный входной сигнал8*ki ki
    Сокращенный входной сигнал8*si si

    Когда значение выхода cnumerr –1, decoded равно первому k элементы code.

    Количество откорректированных ошибок, возвращенных как целое число в области значений [-1, (nk) ∕ 2], где n является длиной кодовой комбинации. Значение n установлено к 255 согласно CCSDS 131.0-B-3 Раздел 4 [1].

    Значение –1 в cnumerr указывает на отказ декодера откорректировать ошибки.

    Откорректированная версия кода, возвращенного как вектор-столбец. Длина ccode то же самое как длина code. Тип данных ccode совпадает с тем из code.

    Когда значение выхода cnumerr –1, ccode равно code.

    Больше о

    свернуть все

    Расшифровка кода RS CCSDS

    Коды RS CCSDS являются мощными пакетными кодами исправления ошибок. Они обычно используются в качестве кодов прямого исправления ошибок (FEC), как они обнаруживают и правильные ошибки на уровне символа.

    Декодирование сообщения во всю длину коды CCSDS RS

    Как кодирование, декодирование кодов CCSDS RS также сделано построчное. Длина входного вектора является продуктом чередующейся глубины (i) и длина кодовой комбинации (n). n фиксируется к 255 символам согласно CCSDS 131.0-B-3 Раздел 4 [1]. Входной вектор состоит из символов четности и сообщения.

    Decoding of full-length CCSDS RS codes

    Декодирование сокращенного сообщения коды CCSDS RS

    Как кодирование, декодирование кодов CCSDS RS также сделано построчное. Длина входного вектора является продуктом чередующейся глубины (i) и значение, вычисленное n-k+s. Входной вектор состоит из сокращенного сообщения и символов четности.

    Decoded shortened CCSDS RS codes

    Ссылки

    [1] Синхронизация TM и кодирование канала. Рекомендация для стандартов системы передачи и обработки данных пробела. CCSDS 131.0-B-3. Синяя книга. Выпуск 3. Вашингтон, округ Колумбия: CCSDS, сентябрь 2017.

    Расширенные возможности

    Генерация кода C/C++
    Генерация кода C и C++ с помощью MATLAB® Coder™.

    Смотрите также

    Функции

    Объекты

    Введенный в R2021a