exponenta event banner

bercoding

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

Описание

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

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 Source Coding.

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

Зависимости

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

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

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

Зависимости

Чтобы включить этот аргумент, установите 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 является вектором одинакового размера, и его элементы соответствуют элементам вектора Eb/N0.

Ограничения

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

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

  • Аппроксимации, связанные с числовой реализацией выражений

Подробнее

свернуть все

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

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

  • N и K должен создавать код BCH с узким смыслом.

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

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

Для кодов Хэмминга K вычисляется непосредственно из N.

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

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

Можно настроить вкладку Теоретический в приложении Анализ частоты битовых ошибок для вычисления теоретических значений BER вместо использования bercoding функция.

Ссылки

[1] Проакис, Джон Г. Digital Communications. 4-й ред. Нью-Йорк: Макгроу Хилл, 2001.

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

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

[4] Склар, Бернард. Цифровые коммуникации: основы и приложения. 2-я ред. река Верхнее Седло, Н. Дж: Prentice-Hall PTR, 2001.

[5] Цимер, Р. Э., и Р. Л., Петерсон. Введение в цифровую связь. 2-й ред. Прентис Холл, 2001.

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