bercoding

Частота ошибок по битам (BER) для закодированных каналов AWGN

Синтаксис

berub = bercoding(EbNo,'conv',decision,coderate,dspec)
berub = bercoding(EbNo,'block','hard',n,k,dmin)
berub = bercoding(EbNo,'block','soft',n,k,dmin)
berapprox = bercoding(EbNo,'Hamming','hard',n)
berub = bercoding(EbNo,'Golay','hard',24)
berapprox = bercoding(EbNo,'RS','hard',n,k)
berapprox = bercoding(...,modulation)

Описание

berub = bercoding(EbNo,'conv',decision,coderate,dspec) возвращает верхнюю границу или приближение на BER бинарного сверточного кода с когерентной модуляцией манипулирования сдвига фазы (PSK) по каналу аддитивного белого гауссова шума (AWGN). EbNo является отношением энергии, подведенной к долоту к шумовой степени спектральная плотность в дБ. Если EbNo является вектором, berub является вектором, одного размера, чьи элементы соответствуют различным уровням Eb/N0. Чтобы задать декодирование трудного решения, установите decision на 'hard'; чтобы задать декодирование мягкого решения, установите decision на 'soft'. Сверточный код имеет уровень кода, равный coderate. Вход dspec является структурой, которая содержит информацию о спектре расстояния кода:

  • dspec.dfree является минимальным свободным расстоянием кода.

  • dspec.weight является спектром веса кода.

Чтобы найти спектры расстояния для некоторых примеров кода, используйте distspec, функционируйте или смотрите [5] и [3].

Примечание

Результатами для бинарного PSK и квадратурной модуляции PSK является то же самое. Эта функция не поддерживает M-арный PSK, когда M отличается 2 или 4.

berub = bercoding(EbNo,'block','hard',n,k,dmin) возвращает верхнюю границу на BER [n, k] бинарный блочный код с декодированием трудного решения и когерентным BPSK или модуляцией QPSK. dmin является минимальным расстоянием кода.

berub = bercoding(EbNo,'block','soft',n,k,dmin) возвращает верхнюю границу на BER [n, k] бинарный блочный код с декодированием мягкого решения и когерентным BPSK или модуляцией QPSK. dmin является минимальным расстоянием кода.

berapprox = bercoding(EbNo,'Hamming','hard',n) возвращает приближение BER Кода Хемминга с помощью декодирования трудного решения и когерентной модуляции BPSK. (Для Кода Хемминга, если n известен, то k может быть вычислен непосредственно из n.)

berub = bercoding(EbNo,'Golay','hard',24) возвращает верхнюю границу BER кода Golay с помощью декодирования трудного решения и когерентной модуляции BPSK. Поддержка Golay в настоящее время только для n=24. В соответствии с [3], Golay, кодирующий верхнюю границу, принимает только исправление шаблонов с 3 ошибками. Даже при том, что теоретически возможно исправить приблизительно 19% шаблонов с 4 ошибками, большинство декодеров на практике не имеет этой возможности.

berapprox = bercoding(EbNo,'RS','hard',n,k) возвращает приближение BER (n, k) код Тростника-Solomon с помощью декодирования трудного решения и когерентной модуляции BPSK.

berapprox = bercoding(...,modulation) возвращает приближение BER для закодированных каналов AWGN, когда вы задаете тип modulation. Смотрите, что berawgn функционирует для списка поддерживаемых типов модуляции.

Примеры

свернуть все

Найдите верхнюю границу на теоретическом BER (23,12) блочный код.

Установите параметры в качестве примера.

n = 23;             % Codeword length
k = 12;             % Message length
dmin = 7;           % Minimum distance
EbNo = 1:10;        % Eb/No range (dB)

Оцените BER.

berBlk = bercoding(EbNo,'block','hard',n,k,dmin);

Постройте предполагаемый BER.

berfit(EbNo,berBlk)
ylabel('Bit Error Probability')
title('BER Upper Bound vs. Eb/No, with Best Curve Fit')

Оцените производительность 16-QAM канала в AWGN, когда закодировано с (15,11) код Тростника-Solomon с помощью декодирования трудного решения.

Установите вход Eb/No, располагаются и определяют незакодированный BER для 16-QAM.

ebno = (2:12)';
uncodedBER = berawgn(ebno,'qam',16);

Оцените закодированный BER для 16-QAM канала с (15,11) код Тростника-Solomon с помощью декодирования трудного решения.

codedBER = bercoding(ebno,'RS','hard',15,11,'qam',16);

Постройте предполагаемые кривые BER.

semilogy(ebno,[uncodedBER codedBER])
grid
legend('Uncoded BER','Coded BER')
xlabel('Eb/No (dB)')
ylabel('BER')

Ограничения

Числовая точность вывода этой функции ограничивается

  • Приближения в аналитическом продвижении к выражениям закрытой формы, которые использует функция

  • Приближения, связанные с числовой реализацией выражений

Можно обычно полагаться на первые две значительных цифры вывода функции.

Альтернативы

Как альтернатива функции bercoding, вызовите BERTool GUI (bertool) и используйте вкладку Theoretical.

Ссылки

[1] Proakis, J. G. Цифровая связь, 4-й редактор, Нью-Йорк, McGraw-Hill, 2001.

[2] Frenger, P., П. Ортен и Т. Оттоссон, “Сверточные коды с Оптимальным Спектром Расстояния”, Коммуникационные Буквы IEEE, Издание 3, № 11, ноябрь 1999, стр 317–319.

[3] Odenwalder, J. P. руководство кодирования контроля ошибок, итоговый отчет, корпорация LINKABIT, Сан-Диего, CA, 1976.

[4] Sklar, B., Цифровая связь, 2-й редактор, Prentice Hall, 2001.

[5] Ziemer, R. E. и R. L. Петерсон, Введение в Цифровую связь, 2-го редактора, Prentice Hall, 2001.

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

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