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 [nK] бинарный блочный код с декодированием трудного решения и когерентным BPSK или модуляцией QPSK. dmin минимальное расстояние кода.

berub = bercoding(EbNo,'block','soft',n,k,dmin) возвращает верхнюю границу на BER [nK] бинарный блочный код с декодированием мягкого решения и когерентным 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