exponenta event banner

bchenc

Описание

пример

code = bchenc(msg,N,K) кодирует входное сообщение с помощью (N,K) Кодер BCH, который использует полином генератора с узким смыслом. Описание кодирования Bose-Chaudhuri-Hocquenghem (BCH) см. в [1].

code = bchenc(msg,N,K,paritypos) добавляет или добавляет символы четности к кодированному входному сообщению для формирования выходного сигнала.

Примеры

свернуть все

Установите параметры BCH для массива Galois GF (2).

M = 4;
n = 2^M-1;   % Codeword length
k = 5;       % Message length
nwords = 10; % Number of words to encode

Создание сообщения.

msgTx = gf(randi([0 1],nwords,k));

Найдите возможность исправления ошибок.

t = bchnumerr(n,k)
t = 3

Закодируйте сообщение.

enc = bchenc(msgTx,n,k);

Повреждено до t битов в каждом кодовом слове.

noisycode = enc + randerr(nwords,n,1:t);

Декодируйте шумный код.

msgRx = bchdec(noisycode,n,k);

Проверьте правильность декодирования сообщения.

isequal(msgTx,msgRx)
ans = logical
   1

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

t2 = t + 1;
noisycode2 = enc + randerr(nwords,n,1:t2);

Декодирование нового принятого кодового слова.

[msgRx2,numerr] = bchdec(noisycode2,n,k);

Определите, было ли сообщение правильно декодировано, проверив количество исправленных ошибок. numerr. Записи -1 соответствуют сбоям декодирования, которые возникают, когда кодовое слово имеет больше ошибок, чем может быть исправлено для указанного [n,k] пара.

numerr
numerr = 10×1

     1
     2
    -1
     2
     3
     1
    -1
     4
     2
     3

Два из десяти переданных кодовых слов были приняты неправильно.

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

свернуть все

Сообщение для кодирования, указанное как массив символов поля Галуа по GF (2). КаждыйK-элементный ряд msg представляет слово сообщения, где самый левый символ является наиболее значимым символом.

Дополнительные сведения см. в разделе Создание массива полей Galois.

Пример: msgTx = gf(randi([0 1],10,5)), где msgTx является 10-на-5 gf array.

Длина кодового слова, заданная как целое число формы N = 2M-1, где M - целое число от 3 до 16. Дополнительные сведения см. в разделе Советы.

Пример: 15 для M=4

Длина сообщения, заданная как целое число. N и K должен создавать код BCH с узким смыслом.

Пример: 5 задает массив Galois с пятью элементами

Положение по четности, указанное как 'end' или 'beginning'. Символы четности находятся в конце или начале каждого слова в выходном массиве Galois.

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

свернуть все

Закодированное сообщение, возвращенное в виде массива полей Galois. Символы четности находятся в конце или начале каждого слова в выходном массиве Galois. Чтобы указать положение символов четности, используйте paritypos аргумент.

Совет

  • Формирование списка действительных (N,K) пары вместе с соответствующими значениями возможности исправления ошибок, выполнить bchnumerr(N).

  • Допустимые значения для N = 2M-1, где M - целое число от 3 до 16. Максимально допустимое значение N составляет 65 535 человек.

Ссылки

[1] Кларк, Джордж К. младший и J. Затвор Каин. Кодирование с исправлением ошибок для цифровой связи, Нью-Йорк: Пленум Пресс, 1981.

Представлен до R2006a