bercoding

BER для закодированных каналов AWGN

Описание

bercoding функция возвращает верхнюю границу или приближение частоты битовой ошибки (BER) для когерентной BPSK или QPSK модуляции по аддитивному белому Гауссову шуму каналу (AWGN) для заданного типа кодирования, решения о декодировании, скорости кода и спектра расстояния кода. Результаты для двоичной PSK и квадратурной PSK модуляции одинаковы. Эта функция вычисляет только порядок модуляции 2 или 4 для M -арной PSK модуляции. Для получения дополнительной информации смотрите Аналитические выражения, используемые в bercoding Function и Bit Error Rate Analysis App.

ber = bercoding(EbNo,'conv',decision,coderate,dspec) возвращает верхнюю границу или приближение BER для сверточно закодированного сигнала с заданным решением декодирования, кодовой скоростью и спектром расстояния кода.

пример

ber = bercoding(EbNo,'block',decision,N,K,dmin) возвращает верхнюю границу BER для [N, K] двоичный блочный код для заданного типа решения о декодировании и минимального расстояния кода.

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

ber = bercoding(EbNo,'Hamming','hard',N) возвращает приближение BER для кода Хемминга, используя декодирование с жестким решением и когерентную BPSK модуляцию.

ber = bercoding(EbNo,'RS','hard',N,K) возвращает приближение BER для объекта (N, K) Код Рида-Соломона, использующий декодирование с жестким решением и когерентную BPSK модуляцию.

пример

ber = bercoding(EbNo,coding,___,modulation) задает тип модуляции в дополнение к любой из предыдущих комбинаций входных аргументов. Этот синтаксис возвращает приближение BER для закодированных каналов AWGN.

Примеры

свернуть все

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

Установите длину кодового слова, длину сообщения, минимальное расстояние и Eb/N0 область значений в дБ.

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')

Figure contains an axes. The axes with title BER Upper Bound vs. Eb/No with Best Curve Fit contains 2 objects of type line. These objects represent Empirical BER, Exp Fit.

Оцените эффективность BER в канале AWGN для сигнала 16-QAM при кодировании (15,11) кодом Рида-Соломона, используя декодирование с жестким решением.

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

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

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

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

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

semilogy(ebno,[uncodedBER codedBER])
grid
title('Compare Uncoded and R-S Coded 16-QAM Transmission')
legend('Uncoded BER','Coded BER')
xlabel('Eb/No (dB)')
ylabel('BER')

Figure contains an axes. The axes with title Compare Uncoded and R-S Coded 16-QAM Transmission contains 2 objects of type line. These objects represent Uncoded BER, Coded BER.

Входные параметры

свернуть все

Отношение спектральной плотности энергии на бит к степени шума в дБ, заданное как скаляр или вектор.

Типы данных: single | double

Тип кодирования источника, заданный как один из следующих опций.

  • 'conv' Возвращенный BER является верхней границей BER для двоичных сверточных кодов с когерентной BPSK или QPSK модуляцией.

  • 'block' - Возвращенный BER является верхней границей BER для (N, K) линейные двоичные блочные коды с когерентной BPSK или QPSK модуляцией.

  • 'Hamming' Возвращенный BER является приближением BER для кода Хемминга, использующего декодирование с жестким решением и когерентную BPSK или QPSK модуляцию.

  • 'Golay' Возвращенный BER является верхней границей BER для расширенного (24,12) кода Голея, использующего декодирование с жестким решением и когерентную BPSK или QPSK модуляцию. В соответствии с [3] верхняя граница кодирования Голея принимает только исправление шаблонов с 3 ошибками. Несмотря на то, что исправление приблизительно 19% шаблонов с 4 ошибками теоретически возможно, на практике большинство декодеров не имеют этой возможности.

  • 'RS' - Возвращенный BER является приближением BER для (N, K) Код Рида-Соломона, использующий декодирование с жестким решением и когерентную BPSK модуляцию.

Типы данных: char | string

Тип решения о декодировании, заданный как один из следующих опций.

  • 'hard' - Используйте эту опцию для декодирования с жестким решением.

  • 'soft' - Используйте эту опцию для неквантованного декодирования с мягким решением. Эта опция применяется только при coding установлено в 'conv' или 'block'.

Типы данных: char | string

Скорость кода сверточного кода, заданная как положительная скалярная величина.

Зависимости

Чтобы включить этот аргумент, установите coding аргумент в 'conv'.

Типы данных: double | single

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

Минимальное свободное расстояние кода, заданное как положительная скалярная величина.

Типы данных: double | single

Весовой спектр кода, заданный как положительная скалярная величина.

Типы данных: double | single

Зависимости

Чтобы включить этот аргумент, установите coding аргумент в 'conv'.

Типы данных: struct

Длина кодового слова, заданная как целое число вида 2M-1, где M является целым числом в области значений [3, 16]. Для получения дополнительной информации смотрите N-K Pairs for Кодирование Источника.

Пример: 15 или 2^4-1

Зависимости

Чтобы включить этот аргумент, установите coding аргумент в 'block', 'Hamming', 'Golay', или 'RS'.

Длина сообщения, заданная как положительное целое число. Для получения дополнительной информации смотрите N-K Pairs for Кодирование Источника.

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

Зависимости

Чтобы включить этот аргумент, установите coding аргумент в 'block' или 'RS'.

Минимальное расстояние кода, заданное как положительная скалярная величина меньше или равное (N - K + 1).

.

Зависимости

Чтобы включить этот аргумент, установите coding аргумент в 'block'.

Типы данных: double | single

Тип решения модуляции, заданный как 'psk', 'oqpsk', 'dpsk', 'pam', 'qam', 'fsk', или 'msk'. Схема модуляции по умолчанию является PSK-модуляцией с порядком модуляции 2 (в частности, недифференциальной BPSK-модуляции).

Типы данных: char | string

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

свернуть все

BER верхняя граница или приближение, возвращенная в виде скаляра или вектора. Если на EbNo вход является вектором, ber является вектором того же размера, и его элементы соответствуют элементам вектора E b/ N 0.

Ограничения

В целом числовая точность для выхода BER ограничена приблизительно двумя значащими цифрами. Числовая точность, выводимая этой функцией, ограничена этими ограничениями.

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

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

Подробнее о

свернуть все

N-K пар для кодирования источника

Для блочных кодов длина кодового слова (N) и длина сообщения (K) пары должны соответствовать этим рекомендациям.

  • N и K необходимо создать узкополосный код BCH.

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

  • Допустимые значения для N иметь форму 2M-1, где M является целым числом в области значений [3, 16]. Значение N не может превышать 65 535.

Для кодов Hamming, K вычисляется непосредственно из N.

Для кодов Рида-Соломона, N и K должно отличаться четным целым числом. Допустимые значения для N иметь форму 2M-1, где M является целым числом в области значений [3, 16]. Значение N не может превышать 65 535.

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

Можно сконфигурировать вкладку Theoretical в приложении Bit Error Rate Analysis, чтобы вычислить теоретические значения BER вместо использования bercoding функция.

Ссылки

[1] Proakis, John G. Digital Communications. 4-й эд. Нью-Йорк: McGraw Hill, 2001.

[2] Френгер, П., П. Ортен и Т. Оттоссон. Сверточные коды с оптимальным спектром расстояний. IEEE Communications Letters 3, № 11 (ноябрь 1999 года): 317-19. https://doi.org/10.1109/4234.803468.

[3] Оденвальдер, Дж. П. Руководство по кодированию контроля ошибок, Итоговый отчет, LINKABIT Corporation, Сан-Диего, Калифорния: 1976.

[4] Склар, Бернард. Цифровые коммуникации: основы и приложения. 2nd ed. Upper Saddle River, N.J: Prentice-Hall PTR, 2001.

[5] Ziemer, R. E., and R. L., Peterson. Введение в цифровую коммуникацию. 2-е изд. Prentice Hall, 2001.

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