exponenta event banner

ccsdsRSEncode

Кодировщик Рида-Соломона, соответствующий CCSDS

    Описание

    code = ccsdsRSEncode(msg,k) кодирует сообщение в msg используя (255, k) Кодировщик Рида-Соломона (RS), определенный Консультативным комитетом по системам космических данных (CCSDS) 131.0-B-3 раздел 4 [1]. k - длина сообщения. code имеет двойную базисную форму, поскольку функция предполагает, что вход в кодер RS CCSDS имеет двойную базисную форму. Для получения дополнительной информации о двухосновном представлении см. CCSDS 131.0-B-3 раздел 4.4.2 [1].

    Описание конструкции кода CCSDS RS см. в разделе Конструкция кода CCSDS RS.

    пример

    code = ccsdsRSEncode(msg,k,i) определяет глубину перемежения, i. msg состоит из i Символы сообщения RS длиной k.

    пример

    code = ccsdsRSEncode(msg,k,i,s) кодирует укороченное входное сообщение длины s с глубиной перемежения i.

    Примеры

    свернуть все

    Кодирование сообщения с помощью кодера Рида-Соломона (RS) Консультативного комитета по системам космических данных (CCSDS).

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

    k = 239;
    i = 3;

    Создайте вектор столбца из случайных символов сообщения. Длина сообщения является произведением длины сообщения, kи глубина перемежения, i.

    msg = randi([0 255],k*i,1);
    size(msg)
    ans = 1×2
    
       717     1
    
    

    Кодирование сообщения с помощью кодера CCSDS RS.

    code = ccsdsRSEncode(msg,k,i);

    Убедитесь, что длина кодированного кодового слова в 255 раз превышает значение глубины перемежения.

    size(code)
    ans = 1×2
    
       765     1
    
    

    Кодирование сообщения с помощью кодера Рида-Соломона (RS) Консультативного комитета по системам космических данных (CCSDS) с сокращением сообщений.

    Укажите длину сообщения, k, глубина перемежения, iи укороченная длина сообщения, s.

    k = 223;
    i = 2;
    s = 146;

    Создайте вектор столбца из битов случайного сообщения. Длина укороченных битов сообщения в восемь раз превышает произведение укороченной длины сообщения, sи глубину перемежения, i.

    msg = logical(randi([0 1],s*i*8,1));

    Кодирование укороченного сообщения с помощью кодера RS CCSDS.

    code = ccsdsRSEncode(msg,k,i,s);

    Убедитесь, что длина кодированного кодового слова равна (8 *i*(255 – k + s).

    size(code)
    ans = 1×2
    
            2848           1
    
    

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

    свернуть все

    Входное сообщение, указанное как вектор столбца логических битов или вектор столбца целых чисел в диапазоне [0, 255]. Размер вектора столбца зависит от типа данных входного сообщения.

    Тип входного сообщенияРазмер msg
    Тип данных msg ЛогичноТип данных msg uint8 или двойной
    Полноразмерное входное сообщение8*k k
    Перемеженное входное сообщение8*k*i k*i
    Укороченное входное сообщение8*s*i s*i

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

    Длина сообщения, указанная как 223 или 239.

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

    Глубина перемежения, указанная как 1, 2, 3, 4, 5, или 8. Значение по умолчанию, 1, соответствует отсутствию перемежения.

    msg состоит из i Символы сообщения RS длиной k.

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

    Укороченная длина сообщения, заданная как целое число в диапазоне [1, k].

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

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

    свернуть все

    Кодированное сообщение RS CCSDS, возвращаемое в виде вектора столбца. Тип данных code то же, что и во входном сообщении, msg. Размер вектора столбца зависит от типа данных входного сообщения.

    Тип входного сообщенияРазмер code
    Тип данных msg ЛогичноТип данных msg uint8 или двойной
    Полноразмерное входное сообщение8*255 255
    Перемеженное входное сообщение8*255*i 255*i
    Укороченное входное сообщение8*i*(255 – k + s)i*(255 – k + s)

    Подробнее

    свернуть все

    Строительство кода RS CCSDS

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

    Кодер RS CCSDS принимает сообщения полной или укороченной длины.

    Построение полноформатных кодов RS CCSDS сообщений

    Для полноразмерных входных сообщений длина вектора входного столбца является произведением глубины перемежения (i) и длины сообщения (k).

    Full-length input message

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

    Encoded full-length input message

    Построение кодов RS CCSDS с укороченным сообщением

    Для укороченных входных сообщений длина вектора входного столбца является произведением глубины перемежения (i) и укороченной длины (ей) сообщения. Укороченный вектор сообщения дополняет начало вектора сообщения нулями. Результирующий вектор представляет собой вектор i-by-k.

    Shortened input message

    Кодирование в кодах RS CCSDS выполняется по строкам. Кодирование приводит к вектору i-by-n, который включает в себя биты четности, добавленные к концу каждой строки.

    Encoded shortened input message

    Ссылки

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

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

    Создание кода C/C + +
    Создайте код C и C++ с помощью MATLAB ® Coder™

    .

    См. также

    Функции

    Объекты

    Представлен в R2021a