bchenc

Описание

пример

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

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

Примеры

свернуть все

Установите параметры BCH для массива Галуа 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 представляет слово сообщения, где самый левый символ является самым значимым символом.

Для получения дополнительной информации смотрите Создание массива полей Галуа.

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

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

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

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

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

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

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

свернуть все

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

Совет

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

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

Ссылки

[1] Clark, George C., Jr., and J. Bibb Cain. Кодирование ошибок для цифровых коммуникаций, Нью-Йорк: Пленум Пресс, 1981.

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