bchenc

Синтаксис

code = bchenc(msg,N,K)
code = bchenc(msg,N,K,paritypos)

Описание

пример

code = bchenc(msg,N,K) кодирует входной сигнал с помощью (N, K) энкодер BCH, который использует полином генератора узкого смысла. Для описания кодирования Bose–Chaudhuri–Hocquenghem (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 10 5 gf array.

Длина кодовой комбинации, заданная как целое число формы 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] Кларк, Джордж К. младший и J. Затвор Каин. Кодирование с коррекцией ошибок для цифровой связи, Нью-Йорка: нажатие пленума, 1981.

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

Для просмотра документации необходимо авторизоваться на сайте