biterr
Количество битовых ошибок и вероятность битовой ошибки (BER)
Синтаксис
Описание
пример
[ сравнивает беззнаковое двоичное представление элементов в number,ratio] = biterr(x,y)x тем, кто в y. Функция возвращается number, количество бит, которые различаются при сравнении, и ratio, отношение number к общему количеству бит. Функция определяет порядок, в котором она сравнивается x и y исходя из их размеров. Для получения дополнительной информации см. Раздел Алгоритмы.
[ также задает number,ratio] = biterr(x,y,k)k, максимальное количество бит для каждого элемента в x и y. Если беззнаковое двоичное представление любого элемента в x или y более k цифры, ошибки функции.
пример
[ задает number,ratio] = biterr(x,y,k,flag)flag для переопределения настроек по умолчанию для сравнения элементов функцией и вычисления выходов. Для получения дополнительной информации см. Раздел Алгоритмы.
[ возвращает результат двоичного сравнения number,ratio,individual] = biterr(___)x и y как матрица individual. Можно задать любую комбинацию входных аргументов из предыдущих синтаксисов.
Примеры
свернуть все
Расчет частоты битовых ошибок
Создайте две двоичные матрицы.
Определите количество битовых ошибок.
Вычислите количество столбцовых ошибок.
numerrs = biterr(x,y,[],'column-wise')
Вычислите количество строковых ошибок.
numerrs = biterr(x,y,[],'row-wise')
Вычислите количество общих ошибок. Поведение совпадает с поведением по умолчанию.
numerrs = biterr(x,y,[],'overall')
Оценка частоты битовой ошибки для 64-QAM в AWGN
Демодулируйте сигнал зашумленного 64-QAM и оцените вероятность битовой ошибки (BER) для области значений Eb/No. Сравните оценку BER с теоретическими значениями.
Установите параметры симуляции.
M = 64; % Modulation order k = log2(M); % Bits per symbol EbNoVec = (5:15)'; % Eb/No values (dB) numSymPerFrame = 100; % Number of QAM symbols per frame
Инициализируйте вектор результатов.
berEst = zeros(size(EbNoVec));
Основной цикл обработки выполняет эти шаги.
-
Сгенерируйте двоичные данные и преобразуйте в 64-арные символы.
-
QAM-модулирует символы данных.
-
Пропустите модулированный сигнал через канал AWGN.
-
Демодулируйте принятый сигнал.
-
Преобразуйте демодулированные символы в двоичные данные.
-
Вычислим количество битовых ошибок.
The while цикл продолжает обрабатывать данные до тех пор, пока не встретятся или 200 ошибок или не будет передано 1e7 бит.
for n = 1:length(EbNoVec) % Convert Eb/No to SNR snrdB = EbNoVec(n) + 10*log10(k); % Reset the error and bit counters numErrs = 0; numBits = 0; while numErrs < 200 && numBits < 1e7 % Generate binary data and convert to symbols dataIn = randi([0 1],numSymPerFrame,k); dataSym = bi2de(dataIn); % QAM modulate using 'Gray' symbol mapping txSig = qammod(dataSym,M); % Pass through AWGN channel rxSig = awgn(txSig,snrdB,'measured'); % Demodulate the noisy signal rxSym = qamdemod(rxSig,M); % Convert received symbols to bits dataOut = de2bi(rxSym,k); % Calculate the number of bit errors nErrors = biterr(dataIn,dataOut); % Increment the error and bit counters numErrs = numErrs + nErrors; numBits = numBits + numSymPerFrame*k; end % Estimate the BER berEst(n) = numErrs/numBits; end
Определите теоретическую кривую BER при помощи berawgn функция.
berTheory = berawgn(EbNoVec,'qam',M);
Постройте график оценочных и теоретических данных BER. Оцененные точки данных BER хорошо выровнены с теоретической кривой.
semilogy(EbNoVec,berEst,'*') hold on semilogy(EbNoVec,berTheory) grid legend('Estimated BER','Theoretical BER') xlabel('Eb/No (dB)') ylabel('Bit Error Rate')

Входные параметры
свернуть все
x,y — Сравниваемые входные параметры (как отдельные аргументы)
вектор | матрица
Входы, которые будут сравниваться, заданные как отдельные аргументы, как вектор или матрица неотрицательных целочисленных элементов. Функция преобразует каждый элемент x и y к его беззнаковому двоичному представлению для сравнения.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
k — Максимальное количество бит для входных элементов
положительное целое число
Максимальное количество бит для входных элементов x и y, заданный как положительное целое число. Если количество бит, необходимое для двоичного представления любого элемента в x или y больше k, ошибки функции.
Если вы не устанавливаете kфункция устанавливает его как количество бит в двоичном представлении самого большого элемента в x и y.
Типы данных: single | double
flag — Флаг для переопределения настроек по умолчанию
'overall' | 'row-wise' | 'column-wise'
Флаг для переопределения настроек функции по умолчанию, заданный как 'overall', 'row-wise', или 'column-wise'. Флаг задает, как функция сравнивает элементы во входах x,y и вычисляет выход. Для получения дополнительной информации смотрите раздел Алгоритмы.
Типы данных: string | char
Выходные аргументы
свернуть все
number — Количество битовых ошибок
неотрицательное целое число | целое число вектор
Количество битовых ошибок, возвращенных в виде неотрицательного целого или целого вектора.
Типы данных: single | double
ratio — Вероятность битовой ошибки
скаляр
Вероятность битовой ошибки, возвращенная как скаляр. ratio количество битовых ошибок, number, к общему количеству бит, используемых в двоичном представлении. Общее количество бит k умножить количество записей в меньшем из входов x,y.
individual — Результат двоичного сравнения каждого входного элемента
матрица
Результат двоичного сравнения каждого входного элемента в x и y, возвращенный как матрица, размерности которой являются размерностями большей из x и y. Каждый элемент задает количество бит, на которое отличаются элементы в паре.
Типы данных: single | double
Алгоритмы
свернуть все
Сравнение входных параметров на основе размеров
Функция использует размеры x и y для определения порядка, в котором он сравнивает их элементы.
-
Если входы являются матрицами тех же размерностей, то функция сравнивает входы по элементам.
numberявляется неотрицательным целым числом в этом случае. Для примера см. случай (а) на рисунке. -
Если один вход является матрицей, а другой — вектор-столбец, то функция сравнивает каждый столбец матричного элемента по элементам с вектором-столбцом. Количество строк в матрице должно быть равно длине вектора-столбца. Другими словами, если матрица имеет размерности m -by — n, то вектор-столбец должна иметь размерности m -by-1. Например, см. случай (b) на рисунке.
-
Если один вход является матрицей, а другой — вектор-строка, то функция сравнивает каждую строку элемент матрицы по элементам с вектором-строкой. Количество столбцов в матрице должно быть равно длине вектора-строки. Другими словами, если матрица имеет размерности m -by — n, то вектор-строка должна иметь размерности 1-by — n. Например, см. случай (с) на рисунке.

Сравнение входных параметров на основе флага
Эта таблица описывает, как выход вычисляется на основе различных значений flag. x рассматривается как матрица в этой таблице и размер y изменяется.
Размер y |
flag Значение |
Тип сравнения | number Значение |
Общее количество бит |
|---|---|---|---|---|
| Матрица | 'overall' (по умолчанию) |
Элемент за элементом | Общее количество битовых ошибок | k умножить количество элементов в y |
'row-wise' |
m строка x m 1-ю строку y |
Вектор-столбец, элементы которого представляют битовые ошибки в каждой строке | k умножить количество элементов в y |
|
'column-wise' |
m-й столбец x m-й столбец y
|
Вектор-строка, элементы которого представляют битовые ошибки в каждом столбце | k умножить количество элементов в y |
|
| Вектор-строка | 'overall' |
y в каждую строку x |
Общее количество битовых ошибок | k умножить количество элементов x |
'row-wise'(по умолчанию) |
y в каждую строку x |
Вектор-столбец, элементы которого представляют битовые ошибки в каждой строке x |
k умножить на размер y |
|
| Вектор-столбец | 'overall' |
y в каждый столбец x |
Общее количество битовых ошибок | k умножить количество элементов x |
'column-wise' (по умолчанию) |
y в каждый столбец x |
Вектор-строка, элементы которого представляют битовые ошибки в каждом столбце x |
k умножить на размер y |
Представлено до R2006a
biterr
Количество битовых ошибок и вероятность битовой ошибки (BER)
Синтаксис
Описание
пример
[ сравнивает беззнаковое двоичное представление элементов в number,ratio] = biterr(x,y)x тем, кто в y. Функция возвращается number, количество бит, которые различаются при сравнении, и ratio, отношение number к общему количеству бит. Функция определяет порядок, в котором она сравнивается x и y исходя из их размеров. Для получения дополнительной информации см. Раздел Алгоритмы.
[ также задает number,ratio] = biterr(x,y,k)k, максимальное количество бит для каждого элемента в x и y. Если беззнаковое двоичное представление любого элемента в x или y более k цифры, ошибки функции.
пример
[ задает number,ratio] = biterr(x,y,k,flag)flag для переопределения настроек по умолчанию для сравнения элементов функцией и вычисления выходов. Для получения дополнительной информации см. Раздел Алгоритмы.
[ возвращает результат двоичного сравнения number,ratio,individual] = biterr(___)x и y как матрица individual. Можно задать любую комбинацию входных аргументов из предыдущих синтаксисов.
Примеры
свернуть все
Расчет частоты битовых ошибок
Создайте две двоичные матрицы.
Определите количество битовых ошибок.
Вычислите количество столбцовых ошибок.
numerrs = biterr(x,y,[],'column-wise')
Вычислите количество строковых ошибок.
numerrs = biterr(x,y,[],'row-wise')
Вычислите количество общих ошибок. Поведение совпадает с поведением по умолчанию.
numerrs = biterr(x,y,[],'overall')
Оценка частоты битовой ошибки для 64-QAM в AWGN
Демодулируйте сигнал зашумленного 64-QAM и оцените вероятность битовой ошибки (BER) для области значений Eb/No. Сравните оценку BER с теоретическими значениями.
Установите параметры симуляции.
M = 64; % Modulation order k = log2(M); % Bits per symbol EbNoVec = (5:15)'; % Eb/No values (dB) numSymPerFrame = 100; % Number of QAM symbols per frame
Инициализируйте вектор результатов.
berEst = zeros(size(EbNoVec));
Основной цикл обработки выполняет эти шаги.
-
Сгенерируйте двоичные данные и преобразуйте в 64-арные символы.
-
QAM-модулирует символы данных.
-
Пропустите модулированный сигнал через канал AWGN.
-
Демодулируйте принятый сигнал.
-
Преобразуйте демодулированные символы в двоичные данные.
-
Вычислим количество битовых ошибок.
The while цикл продолжает обрабатывать данные до тех пор, пока не встретятся или 200 ошибок или не будет передано 1e7 бит.
for n = 1:length(EbNoVec) % Convert Eb/No to SNR snrdB = EbNoVec(n) + 10*log10(k); % Reset the error and bit counters numErrs = 0; numBits = 0; while numErrs < 200 && numBits < 1e7 % Generate binary data and convert to symbols dataIn = randi([0 1],numSymPerFrame,k); dataSym = bi2de(dataIn); % QAM modulate using 'Gray' symbol mapping txSig = qammod(dataSym,M); % Pass through AWGN channel rxSig = awgn(txSig,snrdB,'measured'); % Demodulate the noisy signal rxSym = qamdemod(rxSig,M); % Convert received symbols to bits dataOut = de2bi(rxSym,k); % Calculate the number of bit errors nErrors = biterr(dataIn,dataOut); % Increment the error and bit counters numErrs = numErrs + nErrors; numBits = numBits + numSymPerFrame*k; end % Estimate the BER berEst(n) = numErrs/numBits; end
Определите теоретическую кривую BER при помощи berawgn функция.
berTheory = berawgn(EbNoVec,'qam',M);
Постройте график оценочных и теоретических данных BER. Оцененные точки данных BER хорошо выровнены с теоретической кривой.
semilogy(EbNoVec,berEst,'*') hold on semilogy(EbNoVec,berTheory) grid legend('Estimated BER','Theoretical BER') xlabel('Eb/No (dB)') ylabel('Bit Error Rate')

Входные параметры
свернуть все
x,y — Сравниваемые входные параметры (как отдельные аргументы)
вектор | матрица
Входы, которые будут сравниваться, заданные как отдельные аргументы, как вектор или матрица неотрицательных целочисленных элементов. Функция преобразует каждый элемент x и y к его беззнаковому двоичному представлению для сравнения.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
k — Максимальное количество бит для входных элементов
положительное целое число
Максимальное количество бит для входных элементов x и y, заданный как положительное целое число. Если количество бит, необходимое для двоичного представления любого элемента в x или y больше k, ошибки функции.
Если вы не устанавливаете kфункция устанавливает его как количество бит в двоичном представлении самого большого элемента в x и y.
Типы данных: single | double
flag — Флаг для переопределения настроек по умолчанию
'overall' | 'row-wise' | 'column-wise'
Флаг для переопределения настроек функции по умолчанию, заданный как 'overall', 'row-wise', или 'column-wise'. Флаг задает, как функция сравнивает элементы во входах x,y и вычисляет выход. Для получения дополнительной информации смотрите раздел Алгоритмы.
Типы данных: string | char
Выходные аргументы
свернуть все
number — Количество битовых ошибок
неотрицательное целое число | целое число вектор
Количество битовых ошибок, возвращенных в виде неотрицательного целого или целого вектора.
Типы данных: single | double
ratio — Вероятность битовой ошибки
скаляр
Вероятность битовой ошибки, возвращенная как скаляр. ratio количество битовых ошибок, number, к общему количеству бит, используемых в двоичном представлении. Общее количество бит k умножить количество записей в меньшем из входов x,y.
individual — Результат двоичного сравнения каждого входного элемента
матрица
Результат двоичного сравнения каждого входного элемента в x и y, возвращенный как матрица, размерности которой являются размерностями большей из x и y. Каждый элемент задает количество бит, на которое отличаются элементы в паре.
Типы данных: single | double
Алгоритмы
свернуть все
Сравнение входных параметров на основе размеров
Функция использует размеры x и y для определения порядка, в котором он сравнивает их элементы.
-
Если входы являются матрицами тех же размерностей, то функция сравнивает входы по элементам.
numberявляется неотрицательным целым числом в этом случае. Для примера см. случай (а) на рисунке. -
Если один вход является матрицей, а другой — вектор-столбец, то функция сравнивает каждый столбец матричного элемента по элементам с вектором-столбцом. Количество строк в матрице должно быть равно длине вектора-столбца. Другими словами, если матрица имеет размерности m -by — n, то вектор-столбец должна иметь размерности m -by-1. Например, см. случай (b) на рисунке.
-
Если один вход является матрицей, а другой — вектор-строка, то функция сравнивает каждую строку элемент матрицы по элементам с вектором-строкой. Количество столбцов в матрице должно быть равно длине вектора-строки. Другими словами, если матрица имеет размерности m -by — n, то вектор-строка должна иметь размерности 1-by — n. Например, см. случай (с) на рисунке.

Сравнение входных параметров на основе флага
Эта таблица описывает, как выход вычисляется на основе различных значений flag. x рассматривается как матрица в этой таблице и размер y изменяется.
Размер y |
flag Значение |
Тип сравнения | number Значение |
Общее количество бит |
|---|---|---|---|---|
| Матрица | 'overall' (по умолчанию) |
Элемент за элементом | Общее количество битовых ошибок | k умножить количество элементов в y |
'row-wise' |
m строка x m 1-ю строку y |
Вектор-столбец, элементы которого представляют битовые ошибки в каждой строке | k умножить количество элементов в y |
|
'column-wise' |
m-й столбец x m-й столбец y |
Вектор-строка, элементы которого представляют битовые ошибки в каждом столбце | k умножить количество элементов в y |
|
| Вектор-строка | 'overall' |
y в каждую строку x |
Общее количество битовых ошибок | k умножить количество элементов x |
'row-wise'(по умолчанию) |
y в каждую строку x |
Вектор-столбец, элементы которого представляют битовые ошибки в каждой строке x |
k умножить на размер y |
|
| Вектор-столбец | 'overall' |
y в каждый столбец x |
Общее количество битовых ошибок | k умножить количество элементов x |
'column-wise' (по умолчанию) |
y в каждый столбец x |
Вектор-строка, элементы которого представляют битовые ошибки в каждом столбце x |
k умножить на размер y |
Представлено до R2006a
выполнения этих задач в середине интервала каждого двоичного разряда производится выборка, после чего полученная величина сравнивается с пороговым значением. Как можно видеть на том же рисунке, помехи и другие искажения могут приводить к ошибочным результатам.
То, насколько успешной будет интерпретация сигнала, поступившего в приемник, главным образом зависит от трёх факторов: отношения сигнал/шум, скорости передачи данных и ширины полосы. При фиксированных остальных параметрах справедливы следующие утверждения:
–увеличение скорости передачи данных приводит к увеличению скорости появления ошибочных битов, или, что тоже самое, к увеличению
частоты битовых ошибок (ВЕR – bit error rate);
–увеличение отношения сигнал/шум уменьшает скорость появления ошибочных битов;
–увеличение ширины полосы позволяет увеличить скорость передачи данных.
Существует еще один фактор, позволяющий увеличить производительность – выбор схемы линейного кодирования. Схема кодирования представляет собой простое отображение информационных битов в сигнальные посылки. При выборе конкретной схемы в первую очередь обращают внимание на следующие параметры и показатели [5, 11, 13].
Спектр сигнала. Некоторые особенности спектра сигнала имеют важное значение. Отсутствие высокочастотных компонентов означает, что для передачи требуется более узкая полоса. Кроме того, желательно также, чтобы отсутствовала постоянная составляющая. Если в сигнале она присутствует, то должно существовать прямое физическое соединение передающего и приемного устройства (если речь идет о проводных системах связи). Если же постоянная составляющая отсутствует, то можно использовать соединение по переменному току через трансформатор; это дает превосходную электрическую изоляцию и снижает интерференцию. И, наконец, уровни искажения сигнала и интерференции зависят от спектральных свойств передаваемого сигнала. На практике наибольшие искажения сигнал претерпевает на краях полосы пропускания. Следовательно, при хорошей структуре сигнала основная передаваемая мощность должна быть сосредоточена в середине полосы передачи. Тогда принимаемый сигнал будет менее искаженным. Этого можно добиться с помощью методов модуляции, позволяющих формировать спектр передаваемого сигнала.
11
Синхронизация. Приемник должен уметь определять начало и конец каждого двоичного разряда. Это совсем не легко. Один из довольно дорогостоящих подходов состоит в выделении специального канала для синхронизации приемника и передатчика. Альтернативный вариант – создание некоторого механизма синхронизации на базе переданного сигнала.
Интерференция сигналов и помехоустойчивость. Отдельные кодировки позволяют добиваться лучшей производительности при наличии помех, чем другие. Выражается это, как правило, через скорость появления ошибок.
Стоимость и сложность. Хотя цифровые логические схемы продолжают падать в цене, этот фактор игнорировать не стоит. В частности, чем выше скорость передачи сигналов, позволяющая получить определенную скорость передачи данных, тем выше цена.
1.2Методы цифровой полосовой модуляции
Полосовая модуляция [4] (аналоговая или цифровая) – это процесс преобразования информационного сигнала в синусоидальный сигнал; при цифровой модуляции синусоида на интервале Т называется цифровым символом. Синусоиды могут отличаться по амплитуде, частоте и фазе. Таким образом, полосовую модуляцию можно определить как процесс варьирования амплитуды, частоты или фазы (или их комбинаций) радиочастотной несущей согласно передаваемой информации. В общем виде несущая записывается следующим образом
Здесь А(t) – переменная во времени амплитуда, а θ(t) – переменный во времени угол.
Угол удобно записывать в виде
так что
|
s(t) A(t) cos[ 0t |
(t)] |
(1.3) |
где ω, – угловая частота несущей, φ(t) – ее фаза.
Частота может записываться как переменная f или как переменная ω. В первом случае частота измеряется в герцах (Гц), во втором – в радианах в секунду (рад/с). Эти параметры связаны следующим соотношением ω = 2πf.
12
Таблица 1.1 – Основные типы полосовой модуляции/демодуляции
|
Когерентные схемы |
Некогерентные схемы |
||
|
Фазовая манипуляция (PSK) |
Дифференциальныя |
фазовая |
|
|
Частотная манипуляция (FSK) |
манипуляция (DPSK) |
||
|
Амплитудная |
манипуляция |
Частотная манипуляция (FSK) |
|
|
(ASK) |
Амплитудная манипуляция (ASK) |
||
|
Модуляция без |
разрыва фазы |
Модуляция без разрыва фазы |
|
|
(CPM) |
(СРМ) |
||
|
Смешанные комбинации |
Смешанные комбинации |
Если для детектирования сигналов приемник использует информацию о фазе несущей, процесс называется когерентным детектированием (coherent detection); если подобная информация не используется, процесс именуется некогерентным детектированием (noncoherent detection). При идеальном когерентном детектировании приемник содержит прототипы каждого возможного сигнала. Эти сигналы-прототипы дублируют алфавит переданных сигналов по всем параметрам, даже по радиочастотной фазе. В этом случае говорят, что приемник автоматически подстраивается под фазу входного сигнала. В процессе демодуляции приемник перемножает и интегрирует входной сигнал с каждым прототипом (определяет корреляцию). В таблице 1.1 под общим заголовком когерентной модуляции/демодуляции перечислены: фазовая манипуляция, частотная манипуляция (frequency shift keying – FSK), амплитудная манипуляция (amplitude shift keying – ASK), модуляция без разрыва фазы (continuous phase modulation – CPM) и
смешанные комбинации этих модуляций. Некоторые специализированные форматы, такие как квадратурная фазовая манипуляция со сдвигом (offset quadrature PSK – OQPSK), манипуляция с минимальным сдвигом (minimum shift keying – MSK), принадлежащие к классу модуляций СРМ, и квадратурная амплитудная модуляция (quadrature amplitude modulation – QAM) в таблице не отображены.
Некогерентная демодуляция относится к системам, использующим демодуляторы, спроектированные для работы без знания абсолютной величины фазы входного сигнала; следовательно, определение фазы в этом случае не требуется. Таким образом, преимуществом некогерентных систем перед когерентными является простота, а недостатком – большая вероятность ошибки. В таблице 1.1 под заголовком некогерентной передачи сигналов перечислены модуляции, подобные используемым при когерентной передаче: DPSK, FSK, ASK, CPM и смешанные их комбинации. Подразумевается, что для некогерентного приема информация о фазе не используется; но, тем не менее, под заголовком «некогерентная передача» указана одна из форм фазовой манипуляции. Это вызвано тем, что одну из важных форм PSK можно отнести к некогерентной (или дифференциально
13
когерентной), поскольку она не требует согласования по фазе с принятой несущей. При использовании этой модуляции, называемой дифференциальной фазовой манипуляцией (differential PSK – DPSK), в процессе детектирования текущего символа в качестве опорной фазы применяется фаза предыдущего символа [2, 13].
1.3Оценка качества приема в цифровых системах связи
Любой, кто изучал аналоговую связь, знаком с критерием качества, именуемым отношением средней мощности сигнала к средней мощности шума (S/N или SNR). В цифровой связи для оценки качества чаще используется нормированная версия SNR – отношение Еb/N0. Еb – это энергия бита, и ее можно описать как мощность сигнала S, умноженную на время передачи бита Тb. N0 – это спектральная плотность мощности шума, и ее можно выразить как мощность шума N, деленную на ширину полосы W. Поскольку время передачи бита и скорость передачи битов Rb взаимно обратны, Тb можно заменить на 1/Rb.
|
Eb |
S Tb |
S / Rb |
(1.4) |
||
|
N0 |
N /W |
N /W |
|||
Еще одним параметром, часто используемым в цифровой связи, является скорость передачи данных в битах в секунду. В целях упрощения выражений, встречающихся в данной работе, для представления скорости передачи битов вместо записи Rb используется знак R. С учетом сказанного перепишем, выражение (1.4) так, чтобы было явно видно, что отношение Еb/N0 представляет собой отношение S/N, нормированное на ширину полосы и скорость передачи битов.
|
Eb |
S |
W |
(1.5) |
|
|
N0 |
N |
R |
||
Одной из важнейших метрик производительности в системах цифровой связи является график зависимости вероятности появления ошибочного бита Pb от Еb/N0. На рисунке 1.2 показан общий вид большинства подобных кривых. При Eb/N0 ≥ x0, Pb ≤ P0. Безразмерное отношение Eb/N0 – это стандартная качественная мера производительности систем цифровой связи.
14
Следовательно, необходимое отношение Eb/N0 можно рассматривать как метрику, позволяющую сравнивать производительность различных систем; чем меньше требуемое отношение Eb/N0, тем эффективнее процесс регистрации при данной вероятности ошибки.
Pb
для Eb/N0≥x0, PB≤P0
|
P0 |
Eb |
= S |
W |
|
N0 |
N |
R |
x0 Eb/N0
Рисунок 1.2 – Общий вид зависимости Pb ОТ Eb/N0
1.4Фазовая манипуляция PSK
Фазовая манипуляция (phase shift keying – PSK) была разработана в начале развития программы исследования дальнего космоса; сейчас схема PSK широко используется в коммерческих и военных системах связи. Сигнал в модуляции PSK имеет следующий вид.
|
si (t) |
2E |
cos[ |
0t |
i (t)] |
0 ≤ t ≤ T; i = 1,….,M, |
(1.8) |
|||
|
T |
|||||||||
где: Е – энергия символа;
Т – время передачи символа, 0 ≤ t ≤ Т; ω0 – угловая частота;
φi(t) – фазовый член, который может принимать М дискретных значений, обычно определяемых следующим образом
|
(t) |
2 |
i |
i = 1,….,M |
(1.9) |
|
|
i |
|||||
|
M |
|||||
Типичный вид сигнала в модуляции BPSK (binary PSK – BPSK) приведен на рисунке 1.3, где явно видны характерные резкие изменения фазы при переходе между символами; если модулирующий поток данных состоит
15
из чередующихся нулей и единиц, то такие изменения будут происходить при каждом переходе. Работа схемы модуляции заключается в смещении фазы модулируемого сигнала si(t) на одно из двух значений, нуль или π
(180°).
Рисунок 1.3 – Типичный вид сигнала BPSK
Модулированный сигнал можно представить как вектор на графике в полярной системе координат, где длина вектора соответствует амплитуде сигнала, а его ориентация в общем М-арном случае – фазе сигнала относительно других М-1 сигналов набора. При модуляции BPSK векторное представление дает два противофазных (180º) вектора. Наборы сигналов, которые могут быть представлены подобными противофазными векторами,
называется антиподными [3].
1.5Вероятность ошибки при когерентном обнаружении сигнала
BPSK
Двоичное детектирование
Допустим, что передаваемый сигнал искажается только вследствие воздействия шума (additive white Gaussian noice – AWGN). Принятый сигнал в этом случае описывается как сумма переданного сигнала si(t) и случайного шумового процесса n(t):
|
r(t) si (t) n(t) 0 t T , i 1,…, M |
(1.10) |
16
В приемнике используется коррелятор принятого сигнала r(t) с сигналами прототипами si (t) . Глагол «коррелировать» означает «совпадать»,
«согласовываться», следовательно, коррелятор упрощенно можно определить как устройство, которое пытается найти соответствие принятого сигнала r(t) с каждым возможным сигналом-прототипом si(t), известным приемнику априори. Разумное правило принятия решения звучит так:
выбирать сигнал si(t), лучше всего согласующийся (или имеющий наибольшую корреляцию) с r(t). Другими словами, правило принятия решения выглядит следующим образом рис. 1.4
|
выбрать сигнал si(i), индекс которого |
(1.11) |
|
соответствует максимальной zi(T) |
В случае двоичного детектирования корреляционный приемник, как показано на рисунке 1.4, можно построить как согласованный фильтр или интегратор произведений с опорным сигналом, равным разности двоичных сигналов-прототипов s1(t)-s2(t). Выход коррелятора z(T) используется непосредственно в процессе принятия решения.
Опорный
сигнал
T
r(t)
0
Опорные
сигналы
T
0
T
0
Схема принятия решений
|
z(T)=ai(T)+n0(T) |
H1 |
|||
|
z(T) |
s€ |
(t) |
||
|
H2 |
i |
|||
a)
|
z1(T) |
Схема приня- |
||||
|
тия решений |
|||||
|
+ |
|||||
|
z(T)=ai(T)+n0(T) |
H1 |
€ |
|||
|
z(T) |
si |
(t) |
|||
|
H2 |
|||||
|
– |
|||||
|
z2(T) |
б)
Рисунок 1.4 – Двоичный корреляционный приемник: а) использование одного коррелятора; б) применение двух корреляторов
17
Корреляционный приемник при двоичном детектировании также можно изобразить как два согласованных фильтра или интегратора произведений, один из которых согласовывается с s1(t), а второй – с s2(t) (рисунок 1.4, б). На этапе принятия решения теперь может использоваться правило, приведенное в формуле (1.11), или же из выхода одного коррелятора можно вычесть выход другого и на этапе принятия решения использовать разность
|
z(T ) z1 (T ) z2 (T ) |
(1.12), |
как показано на рис. 1.4 б.
Здесь z(T), называемое тестовой статистикой, подается в схему принятия решения, как и в случае только одного коррелятора. В отсутствие шума на выходе мы получаем z(T) = ai(Т), где аi(Т) – сигнальный компонент. Входной шум п(Т) и выходной шум n0(Т) при этом являются случайными гауссовыми процессами. Таким образом, можно записать выражение сигнала на выходе коррелятора в момент взятия выборки t = Т
|
z(T ) ai (T ) n0 (T ), |
i=1,2,… |
(1.13) |
где n0(Т) – компонент шума, это гауссова случайная переменная с
нулевым средним;
z(T) – это гауссова случайная переменная со средним а1 или а2, в зависимости от того, была передана двоичная единица или двоичный нуль.
Порог двоичного решения
Критерий минимума ошибки для равновероятных двоичных сигналов, искаженных гауссовым шумом, можно сформулировать следующим образом:
здесь a1 — сигнальный компонент z(Т) при передаче s1(t), а а2 — сигнальный компонент z(T) при передаче s2(t).
Порог γ0, равный (а1+ а2)/2, — это оптимальный порог для минимизации вероятности принятия неверного решения при равновероятных сигналах и симметричных функциях правдоподобия. Правило принятия решения, приведенное в формуле (1.14), указывает, что гипотеза H1 (решение, что переданный сигнал – это s1(t)) выбирается при z(T) > γ0, а гипотеза Н2 (решение, что переданный сигнал – это s2(t)) – при z(Т) < γ0. Если z(T) = γ, решение может быть любым. При равновероятных антиподных
18
сигналах с равными энергиями, где s1(t) = -s2(t) и a1 = — a2, оптимальное правило принятия решения принимает следующий вид
что можно сформулировать следующим образом
выбрать сигнал s1(t), если z1(T) > z2(T) выбрать сигнал s2(t) в противном случае
Вероятность битовой ошибки
Вероятность принятия детектором неверного решения называется
вероятностью символьной ошибки, РS. Несмотря на то, что решения принимаются на символьном уровне, производительность системы часто удобнее задавать через вероятность битовой ошибки Рв.
Формула (1.16) описывает вероятность битовой ошибки PB для детектора, работающего по принципу минимальной вероятности ошибки
|
1 |
u2 |
a |
a |
||||||||
|
PB |
exp |
du Q |
1 |
2 |
(1.16) |
||||||
|
2 |
2 |
||||||||||
|
2 |
0 |
||||||||||
|
(a1 a2 ) / 2 |
|||||||||||
|
0 |
Здесь 0 – среднеквадратическое отклонение шума вне коррелятора.
Функция Q(x), называемая гауссовым интегралом ошибок, определяется следующим образом
|
1 |
u2 |
|||||||
|
Q( X ) |
exp |
du |
(1.17) |
|||||
|
2 |
||||||||
|
2 |
x |
|||||||
Для передачи антиподных сигналов с равными энергиями, таких как сигналы в формате BPSK, на выход приемника поступают следующие компоненты: а1 = 
Eb , при переданном сигнале s1(t), и а2 =– 
Eb , при
переданном сигнале s2(t), где Eb — энергия сигнала, приходящаяся на
двоичный символ. Для процесса AWGN дисперсию шума σ02 вне коррелятора можно заменить на N0/2, так что формулу (1.16) можно переписать следующим образом
19
|
1 |
u2 |
2E |
||||||||
|
PB |
exp |
du Q |
b |
(1.18) |
||||||
|
2 |
N0 |
|||||||||
|
1 |
||||||||||
|
2Eb / N0 |
1.6Дифференциальная фазовая манипуляция DPSK
Альтернативной формой двухуровневой PSK является дифференциальная PSK (differential phase-shift keying – DPSK), пример которой приведен на рисунке 1.5. В данной системе двоичный ноль представляется сигнальным пакетом, фаза которого совпадает с фазой предыдущего посланного пакета, а двоичная единица представляется сигнальным пакетом с фазой, противоположной фазе предыдущего пакета. Такая схема называется дифференциальной, поскольку сдвиг фаз выполняется относительно предыдущего переданного бита, а не относительно какого-то эталонного сигнала.
2
1.5
1
0.54
3
2
1
|
0 |
0.01 |
0.02 |
0.03 |
0.04 |
0.05 |
0.06 |
0.07 |
0.08 |
Рисунок 1.5 – Пример модуляции BDPSK
Само название – дифференциальная фазовая манипуляция – требует некоторого пояснения, поскольку со словом «дифференциальный» связано два различных аспекта процесса модуляции/демодуляции: процедура
20
В данной статье рассматривается построение упрощенной модели
системы связи с бинарной частотной манипуляцией. Среда Matlabимеет множество готовых блоков модуляторов и демодуляторов (в том
числе и FSK), используя которые можно быстро
провести оценку тех или иных параметров сигнала. Данные блоки позволяют
моделировать комплексную огибающую сигнала и, соответственно, работают с
комплексными числами.
Помимо этого Matlabпозволяет
проводить моделирование реального сигнала на несущей частоте. Однако при этом
нет возможности использовать готовые блоки. Соответственно модель при этом
значительно усложняется и скорость (а также верность) ее работы сильно
снижается. В данной и следующей статье будут рассматриваться оба варианта, как
моделирование комплексной огибающей, так и моделирование реального сигнала в
окрестности нулевой частоты.
Моделирование
комплексной огибающей.
На рисунке 1 приведена модель системы связи с бинарной частотной
манипуляцией.

Рисунок 2
моделирование комплексной огибающей
Здесь источник информации формирует битовый поток со
скоростью 4 Мбит/с (рис. 3). В зависимости от передаваемого символа, на выходе
модулятора действует сигнал с частотой f1 или f0.
В соответствии с расчетами разнос между тонами составляет
а весь сигнал занимает полосу частот F=8 МГц

Рисунок 3
битовый поток
Следует отметить, что данные цифры
справедливы для некогерентной обработки сигнала. Если предположить, что на
приемной
стороне фаза сигнала строго известна (т.е. имеет место когерентная
обработка), то в соответствии с теорией [1] расстояние между передаваемыми
тонами будет равно
Спектр сигнала на выходе модулятора представлен на рисунке 4.
Здесь отчетливо видны два частотных тона с разносом

Проходя через канал связи, к сигналу добавляется
шум. В соответствии с расчетами для обеспечения вероятности ошибки на бит 10-7 необходимо обеспечить 
Спектр сигнала в канале связи представлен на рис 5

Рисунок 5 Спектр
сигнала в КС
На приемной стороне происходит демодуляция сигнала и
восстановление исходного битового потока. Как видно из рисунка 2 полученная
вероятность битовой ошибки соответствует теоретической (10-7). При
понижении же отношения
до 12.27 дБ
вероятность ошибки значительно возрастает (рис. 6).

Рисунок 6 Вероятность
ошибки при 12,27 дБ в КС
Как будет показано в следующей статье, введение
канального кодирования позволяет повысить помехоустойчивость и сохранить
заданную
Моделирование
реального сигнала.
Модель, имитирующая реальный FSKсигнал в
окрестности нулевой частоты, приведена на рисунке 7.

Рисунок 7 модель
системы связиFSK
Схема модулятора приведена на рисунке 8 и содержит
два канала «1» и «0». Исходный битовый поток отображается на +1 и -1 и в
зависимости от передаваемого символа перемножается с гармоническим сигналом
частоты f1 или f0 (рис. 10).

Рисунок 8 модулятор FSK
После этого сигнал проходит через канал связи, где к
нему добавляется гауссовский шум. Односторонний спектр FSKсигнала с
разнесенными на 4 МГц тонами приведен на рис. 9.

Рисунок 9 спектр
сигнала в КС

Рисунок 10
Формирование сигнала FSK
Демодулятор может быть выполнен в двух вариантах: на
корреляторах и на согласованных фильтрах. Схема, основанная на применении
согласованных фильтров проще в реализации поэтому (при моделировании в Matlab) будем использовать ее
(рис. 11).

Рисунок 11
Демодулятор FSK
Сигнал с канала связи проходит через согласованные
фильтры, и в зависимости от передаваемого символа на выходе одного из СФ
образуется выброс АКФ, максимум которого соответствует моменту окончания
передачи символа (т.е. при t=n*Ts(рис. 12)).

Рисунок 12
автокорреляционные функции на выходе согласованных фильтров (ОСШ=100 дБ)
В моменты времени t=n*Ts происходит сравнение
значений АКФ. В зависимости от того в каком из каналов приема энергии больше,
выносится решение о принятом символе.
Стоит отметить, что при некогерентной обработке
каналов приема должно быть в два раза больше. Т. е. в каждом канале должно быть
два СФ: один согласованный с sin(fi) (синфазная
составляющая), а другой – с cos(fi) (квадратурная
составляющая). Сравнение же и вынос решения о принятом символе при этом
производится на основании суммы синфазной и квадратурной составляющих каждого
канала [1 стр. 225]. Однако в нашей модели приведена идеализированная ситуация,
когда фазы сигналов на передающей стороне строго соответствуют фазам ИХ СФ на
приемной стороне. В связи с этим отпадает необходимость установки
дополнительных согласованных фильтров.
Недостатком модели в данном случае является ее
медленная работа, и для того чтобы точно оценить вероятность ошибки необходимо
потратить много времени. Однако судя по рис. 7 можно предположить, что Pbблизка к теоретической. При понижении Eb/N0 до 12 дБ как и в первом случае Pb значительно возрастает.
Список используемой литературы: Б.Скляр «Цифровая связь»
Выполнил ст. гр. 8110 Махотин А. А.
Phase modulation (PM) is a linear baseband modulation technique in which the message
modulates the phase of a constant amplitude signal. Communications Toolbox™ software includes these functions, System objects, and blocks to modulate
digital baseband signals with these modulation methods:
-
Binary, quadrature, and general phase shift keying (PSK)
-
Binary, quadrature, and general differential phase shift keying
(DPSK) -
Offset quadrature phase shift keying (OQPSK)
| Functions | System objects | Blocks |
|---|---|---|
|
|
|
BPSK Modulator DBPSK Modulator DQPSK Modulator M-DPSK Modulator M-PSK Modulator OQPSK Modulator QPSK Modulator |
BPSK
In binary phase shift keying (BPSK), the phase of a constant amplitude signal
switches between two values corresponding to binary 1 and binary 0. The passband
waveform of a BPSK signal is
where:
-
Eb is the energy per bit.
-
Tb is the bit duration.
-
fc is the carrier
frequency.
In MATLAB®, the baseband representation
of a BPSK signal is
The BPSK signal has two phases: 0 and π.

The probability of a bit error in an AWGN channel is
where N0 is the noise power spectral
density.
QPSK
In quadrature phase shift keying, the message bits are grouped into 2-bit symbols,
which are transmitted as one of four phases of a constant amplitude baseband signal.
This grouping provides a bandwidth efficiency that is twice as great as the
efficiency of BPSK. The general QPSK signal is expressed as
where Es is the energy per symbol and
Ts is the symbol duration. The
complex baseband representation of a QPSK signal is
In this QPSK constellation diagram, each 2-bit sequence is mapped to one of four
possible states. The states correspond to phases of π/4, 3π/4, 5π/4, and 7π/4.

To improve bit error rate performance, the incoming bits can be mapped to a
Gray-coded ordering.
Binary-to-Gray Mapping
| Binary Sequence | Gray-Coded Sequence |
|---|---|
| 00 | 00 |
| 01 | 01 |
| 10 | 11 |
| 11 | 10 |
The primary advantage of the Gray code is that only one of the two bits changes
when moving between adjacent constellation points. Gray codes can be applied to
higher-order modulations, as shown in this Gray-coded QPSK constellation.

The bit error probability for QPSK in AWGN with Gray coding is
which is the same as the expression for BPSK. As a result, QPSK provides the same
performance with twice the bandwidth efficiency.
Higher-Order PSK
You can modulate and demodulate higher-order PSK constellations. The complex
baseband form for an M-ary PSK signal using binary-ordered symbol mapping is
This 8-PSK constellation uses Gray-coded symbol mapping.

For modulation orders beyond 4, the bit error rate performance of PSK in AWGN
worsens. In the following figure, the QPSK and BPSK curves overlap one
another.

DPSK
DPSK is a noncoherent form of phase shift keying that does not require a coherent
reference signal at the receiver. With DPSK, the difference between successive input
symbols is mapped to a specific phase. As an example, for binary DPSK (DBPSK), the
modulation scheme operates such that the difference between successive bits is
mapped to a binary 0 or 1. When the input bit is 1, the differentially encoded
symbol remains the same as the previous symbol, while an incoming 0 toggles the
output symbol.
The disadvantage of DPSK is that it is approximately 3 dB less energy efficient
than coherent PSK. The bit error probability for DBPSK in AWGN is Pb = 1/2
exp(Eb/N0).
OQPSK
Offset QPSK is similar to QPSK except that the time alignment of the in-phase and
quadrature bit streams differs. In QPSK, the in-phase and quadrature bit streams
transition at the same time. In OQPSK, the transitions have an offset of a
half-symbol period as shown.

The in-phase and quadrature signals transition only on boundaries between symbols.
These transitions occur at 1-second intervals because the sample rate is 1 Hz. The
following figure shows the in-phase and quadrature signals for an OQPSK
signal.

For OQPSK, the quadrature signal has a 1/2 symbol period offset (0.5 s).
The BER for an OQPSK signal in AWGN is identical to that of a QPSK signal. The BER
is
where Eb is the energy per bit and
N0 is the noise power spectral
density.
References
[1] Rappaport, Theodore S. Wireless Communications: Principles and Practice. Upper Saddle River, NJ: Prentice Hall, 1996, pp. 238–248.
[2] Viterbi, A.J. “An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes.” IEEE Journal on Selected Areas in Communications 16, no. 2 (February 1998): 260–64. https://doi.org/10.1109/49.661114.
See Also
Functions
rcosdesign
Objects
comm.RaisedCosineTransmitFilter|comm.RaisedCosineReceiveFilter
Blocks
- Raised Cosine Transmit Filter | Raised Cosine Receive Filter | Bipolar to Unipolar Converter | Unipolar to Bipolar Converter | Data Mapper
Related Examples
- Phase Modulation Examples
- Estimate BER of QPSK in AWGN with Reed-Solomon Coding
- Log-Likelihood Ratio (LLR) Demodulation
More About
- Digital Baseband Modulation
This topic describes how to compute error statistics for various communications
systems.
Computation of Theoretical Error Statistics
The biterr function, discussed in the
Compute SERs and BERs Using Simulated Data section, can help you gather empirical error
statistics, but validating your results by comparing them to the theoretical error
statistics is good practice. For certain types of communications systems,
closed-form expressions exist for the computation of the bit error rate (BER) or an
approximate bound on the BER. The functions listed in this table compute the
closed-form expressions for the BER or a bound on it for the specified types of
communications systems.
| Type of Communications System | Function |
|---|---|
| Uncoded AWGN channel | berawgn
|
| Uncoded Rayleigh and Rician fading channel | berfading
|
| Coded AWGN channel | bercoding |
| Uncoded AWGN channel with imperfect synchronization | bersync
|
The analytical expressions used in these functions are discussed in
Analytical Expressions Used in BER Analysis. The reference pages of these functions also list
references to one or more books containing the closed-form expressions implemented
by the function.
Theoretical Performance Results
-
Plot Theoretical Error Rates
-
Compare Theoretical and Empirical Error Rates
Plot Theoretical Error Rates
This example uses the bercoding function to compute upper bounds on BERs for convolutional coding with a soft-decision decoder.
coderate = 1/4; % Code rate
Create a structure, dspec, with information about the distance spectrum. Define the energy per bit to noise power spectral density ratio (Eb/N0) sweep range and generate the theoretical bound results.
dspec.dfree = 10; % Minimum free distance of code dspec.weight = [1 0 4 0 12 0 32 0 80 0 192 0 448 0 1024 ... 0 2304 0 5120 0]; % Distance spectrum of code EbNo = 3:0.5:8; berbound = bercoding(EbNo,'conv','soft',coderate,dspec);
Plot the theoretical bound results.
semilogy(EbNo,berbound) xlabel('E_b/N_0 (dB)'); ylabel('Upper Bound on BER'); title('Theoretical Bound on BER for Convolutional Coding'); grid on;

Compare Theoretical and Empirical Error Rates
Using the berawgn function, compute the theoretical symbol error rates (SERs) for pulse amplitude modulation (PAM) over a range of Eb/N0 values. Simulate 8 PAM with an AWGN channel, and compute the empirical SERs. Compare the theoretical and then empirical SERs by plotting them on the same set of axes.
Compute and plot the theoretical SER using berawgn.
rng('default') % Set random number seed for repeatability M = 8; EbNo = 0:13; [ber,ser] = berawgn(EbNo,'pam',M); semilogy(EbNo,ser,'r'); legend('Theoretical SER'); title('Theoretical Error Rate'); xlabel('E_b/N_0 (dB)'); ylabel('Symbol Error Rate'); grid on;

Compute the empirical SER by simulating an 8 PAM communications system link. Define simulation parameters and preallocate variables needed for the results. As described in [1], because N0=2×(NVariance)2, add 3 dB to the Eb/N0 value when converting Eb/N0 values to SNR values.
n = 10000; % Number of symbols to process k = log2(M); % Number of bits per symbol snr = EbNo+3+10*log10(k); % In dB ynoisy = zeros(n,length(snr)); z = zeros(n,length(snr)); errVec = zeros(3,length(EbNo));
Create an error rate calculator System object™ to compare decoded symbols to the original transmitted symbols.
errcalc = comm.ErrorRate;
Generate a random data message and apply PAM. Normalize the channel to the signal power. Loop the simulation to generate error rates over the range of SNR values.
x = randi([0 M-1],n,1); % Create message signal y = pammod(x,M); % Modulate signalpower = (real(y)'*real(y))/length(real(y)); for jj = 1:length(snr) reset(errcalc) ynoisy(:,jj) = awgn(real(y),snr(jj),'measured'); % Add AWGN z(:,jj) = pamdemod(complex(ynoisy(:,jj)),M); % Demodulate errVec(:,jj) = errcalc(x,z(:,jj)); % Compute SER from simulation end
Compare the theoretical and empirical results.
hold on; semilogy(EbNo,errVec(1,:),'b.'); legend('Theoretical SER','Empirical SER'); title('Comparison of Theoretical and Empirical Error Rates'); hold off;

Performance Results via Simulation
-
Section Overview
-
Compute SERs and BERs Using Simulated Data
Section Overview
This section describes how to compare the data messages that enter and leave
a communications system simulation and how to compute error statistics using the
Monte Carlo technique. Simulations can measure system performance by using the
data messages before transmission and after reception to compute the BER or SER
for a communications system. To explore physical layer components used to model
and simulate communications systems, see PHY Components.
Curve fitting can be useful when you have a small or imperfect data set but
want to plot a smooth curve for presentation purposes. To explore the use of
curve fitting when computing performance results via simulation, see the Curve Fitting for Error Rate Plots section.
Compute SERs and BERs Using Simulated Data
The example shows how to compute SERs and BERs using the biterr and symerr functions, respectively. The symerr function compares two sets of data and computes the number of symbol errors and the SER. The biterr function compares two sets of data and computes the number of bit errors and the BER. An error is a discrepancy between corresponding points in the two sets of data.
The two sets of data typically represent messages entering a transmitter and recovered messages leaving a receiver. You can also compare data entering and leaving other parts of your communications system (for example, data entering an encoder and data leaving a decoder).
If your communications system uses several bits to represent one symbol, counting symbol errors is different from counting bit errors. In either the symbol- or bit-counting case, the error rate is the number of errors divided by the total number of transmitted symbols or bits, respectively.
Typically, simulating enough data to produce at least 100 errors provides accurate error rate results. If the error rate is very small (for example, 10-6 or less), using the semianalytic technique might compute the result more quickly than using a simulation-only approach. For more information, see the Performance Results via Semianalytic Technique section.
Compute Error Rates
Use the symerr function to compute the SERs for a noisy linear block code. Apply no digital modulation, so that each symbol contains a single bit. When each symbol is a single bit, the symbol errors and bit errors are the same.
After artificially adding noise to the encoded message, compare the resulting noisy code to the original code. Then, decode and compare the decoded message to the original message.
m = 3; % Set parameters for Hamming code n = 2^m-1; k = n-m; msg = randi([0 1],k*200,1); % Specify 200 messages of k bits each code = encode(msg,n,k,'hamming'); codenoisy = bsc(code,0.95); % Add noise newmsg = decode(codenoisy,n,k,'hamming'); % Decode and correct errors
Compute the SERs.
[~,noisyVec] = symerr(code,codenoisy); [~,decodedVec] = symerr(msg,newmsg);
The error rate decreases after decoding because the Hamming decoder correct errors based on the error-correcting capability of the decoder configuration. Because random number generators produce the message and noise is added, results vary from run to run. Display the SERs.
disp(['SER in the received code: ',num2str(noisyVec(1))])
SER in the received code: 0.94571
disp(['SER after decoding: ',num2str(decodedVec(1))])
SER after decoding: 0.9675
Comparing SER and BER
These commands show the difference between symbol errors and bit errors in various situations.
Create two three-element decimal vectors and show the binary representation. The vector a contains three 2-bit symbols, and the vector b contains three 3-bit symbols.
bpi = 3; % Bits per integer
a = [1 2 3];
b = [1 4 4];
int2bit(a,bpi)
ans = 3×3
0 0 0
0 1 1
1 0 1
ans = 3×3
0 1 1
0 0 0
1 0 0
Compare the binary values of the two vectors and compute the number of errors and the error rate by using the biterr and symerr functions.
format rat % Display fractions instead of decimals [snum,srate] = symerr(a,b)
snum is 2 because the second and third entries have bit differences. srate is 2/3 because the total number of symbols is 3.
[bnum,brate] = biterr(a,b)
bnum is 5 because the second entries differ in two bits, and the third entries differ in three bits. brate is 5/9 because the total number of bits is 9. By definition, the total number of bits is the number of entries in a for symbol error computations or b for bit error computations times the maximum number of bits among all entries of a and b, respectively.
Performance Results via Semianalytic Technique
The technique described in the Performance Results via Simulation
section can work for a large variety of communications systems but can be
prohibitively time-consuming for small error rates (for example,
10-6 or less). The semianalytic technique is an
alternative way to compute error rates. The semianalytic technique can produce
results faster than a nonanalytic method that uses simulated data.
For more information on implementing the semianalytic technique using a
combination of simulation and analysis to determine the error rate of a
communications system, see the semianalytic function.
Error Rate Plots
-
Section Overview
-
Creation of Error Rate Plots Using
semilogy
Function -
Curve Fitting for Error Rate Plots
-
Use Curve Fitting on Error Rate Plot
Section Overview
Error rate plots can be useful when examining the performance of a
communications system and are often included in publications. This section
discusses and demonstrates tools you can use to create error rate plots, modify
them to suit your needs, and perform curve fitting on the error rate data and
the plots.
Creation of Error Rate Plots Using semilogy Function
In many error rate plots, the horizontal axis indicates
Eb/N0
values in dB, and the vertical axis indicates the error rate using a logarithmic
(base 10) scale. For examples that create such a plot using the semilogy function, see Compare Theoretical and Empirical Error Rates and Plot Theoretical Error Rates.
Curve Fitting for Error Rate Plots
Curve fitting can be useful when you have a small or imperfect data set but
want to plot a smooth curve for presentation purposes. The berfit function includes
curve-fitting capabilities that help your analysis when the empirical data
describes error rates at different
Eb/N0
values. This function enables you to:
-
Customize various relevant aspects of the curve-fitting process, such
as a list of selections for the type of closed-form function used to
generate the fit. -
Plot empirical data along with a curve that
berfitfits to the
data. -
Interpolate points on the fitted curve between
Eb/N0
values in your empirical data set to smooth the plot. -
Collect relevant information about the fit, such as the numerical
values of points along the fitted curve and the coefficients of the fit
expression.
Note
The berfit function is
intended for curve fitting or interpolation, not extrapolation.
Extrapolating BER data beyond an order of magnitude below the smallest
empirical BER value is inherently unreliable.
Use Curve Fitting on Error Rate Plot
This example simulates a simple differential binary phase shift keying (DBPSK) communications system and plots error rate data for a series of Eb/N0 values. It uses the berfit and berconfint functions to fit a curve to a set of empirical error rates.
Initialize Simulation Parameters
Specify the input signal message length, modulation order, range of Eb/N0 values to simulate, and the minimum number of errors that must occur before the simulation computes an error rate for a given Eb/N0 value. Preallocate variables for final results and interim results.
Typically, for statistically accurate error rate results, the minimum number of errors must be on the order of 100. This simulation uses a small number of errors to shorten the run time and to illustrate how curve fitting can smooth a set of results.
siglen = 100000; % Number of bits in each trial M = 2; % DBPSK is binary EbN0vec = 0:5; % Vector of EbN0 values minnumerr = 5; % Compute BER after only 5 errors occur numEbN0 = length(EbN0vec); % Number of EbN0 values ber = zeros(1,numEbN0); % Final BER values berVec = zeros(3,numEbN0); % Updated BER values intv = cell(1,numEbN0); % Cell array of confidence intervals
Create an error rate calculator System object™.
errorCalc = comm.ErrorRate;
Loop the Simulation
Simulate the DBPSK-modulated communications system and compute the BER using a for loop to vary the Eb/N0 value. The inner while loop ensures that a minimum number of bit errors occur for each Eb/N0 value. Error rate statistics are saved for each Eb/N0 value and used later in this example when curve fitting and plotting.
for jj = 1:numEbN0 EbN0 = EbN0vec(jj); snr = EbN0; % For binary modulation SNR = EbN0 reset(errorCalc) while (berVec(2,jj) < minnumerr) msg = randi([0,M-1],siglen,1); % Generate message sequence txsig = dpskmod(msg,M); % Modulate rxsig = awgn(txsig,snr,'measured'); % Add noise decodmsg = dpskdemod(rxsig,M); % Demodulate berVec(:,jj) = errorCalc(msg,decodmsg); % Calculate BER end
Use the berconfint function to compute the error rate at a 98% confidence interval for the Eb/N0 values.
[ber(jj),intv1] = berconfint(berVec(2,jj),berVec(3,jj),0.98);
intv{jj} = intv1;
disp(['EbN0 = ' num2str(EbN0) ' dB, ' num2str(berVec(2,jj)) ...
' errors, BER = ' num2str(ber(jj))])
end
EbN0 = 0 dB, 18392 errors, BER = 0.18392 EbN0 = 1 dB, 14307 errors, BER = 0.14307 EbN0 = 2 dB, 10190 errors, BER = 0.1019 EbN0 = 3 dB, 6940 errors, BER = 0.0694 EbN0 = 4 dB, 4151 errors, BER = 0.04151 EbN0 = 5 dB, 2098 errors, BER = 0.02098
Use the berfit function to plot the best fitted curve, interpolating between BER points to get a smooth plot. Add confidence intervals to the plot.
fitEbN0 = EbN0vec(1):0.25:EbN0vec(end); % Interpolation values berfit(EbN0vec,ber,fitEbN0); hold on; for jj=1:numEbN0 semilogy([EbN0vec(jj) EbN0vec(jj)],intv{jj},'g-+'); end hold off;

See Also
Apps
- Bit Error Rate Analysis
Functions
berawgn|bercoding|berconfint|berfading|berfit|bersync
Related Topics
- Analyze Performance with Bit Error Rate Analysis App
- Analytical Expressions Used in BER Analysis

Библиографическое описание:
Слисков, В. А. Сравнение видов модуляции / В. А. Слисков, М. А. Игнатовский. — Текст : непосредственный // Молодой ученый. — 2019. — № 51 (289). — С. 215-217. — URL: https://moluch.ru/archive/289/65554/ (дата обращения: 22.06.2023).
Представлены графики значения вероятности битовой ошибки от уровня сигнал-шум, в математической среде Matlab.
Ключевые слова: белый гауссовский шум, вероятность битовой ошибки, помеха, модуляция, шумовой канал.
Достаточно большое значение в связи являет собой достоверность, насколько надежны известные способы передачи информации? Данный вопрос является актуальным в наше время, при достаточно большом выборе модуляции. Но какая модуляция обеспечивает наибольшую достоверность под воздействием шумов? Данный вопрос авторы попытались раскрыть в своей работе.
Рассмотрим 9 видов модуляции и выясним, у какой вероятность битовой ошибки от уровня сигнал-шум будет наименьшей. В качестве помехи мы возьмем аддитивный белый гауссовский шум (AWGN), который создает мешающие воздействие в канале передачи информации. Характеризуется равномерной спектральной плотностью мощности, нормально распределенными временными значениями и аддитивным способом воздействия на сигнал.
Phase shift keying (PSK) — фазовая модуляция, при которой фаза несущего колебания меняется скачкообразно в зависимости от информационного сообщения. Отдельным видом PSK модуляции можно выделить DPSK модуляцию, которая отличается алгоритмом модуляции.
Frequency shift Keying (FSK) — вид манипуляции, при которой скачкообразно изменяется частота несущего сигнала в зависимости от значений символов информационной последовательности.
Коэффициент ошибок — отношение числа неверно принятых битов к полному числу переданных битов при передаче по каналу связи. Коэффициент ошибок является важнейшей характеристикой линейного тракта. Определяется по формуле
, где Nош — число ошибочно принятых символов за интервал измерения.
BER- это среднее значение коэффициента ошибок по битам.
Проанализируем показатели BER в зависимости от модуляции в математической среде Matlab.

Рис. 1. График зависимости BER от уровня сигнал/шум PSK4, PSK8 и PSK16 модуляции
Возьмем для сравнения уровень BER 10–4, по графику видно, что для PSK4, данное значение достигается при уровне сигнал-шум 8.5 дБ, для PSK8 значение достигается при уровне 11.8 дБ, для PSK16 значение достигается при уровне 16 дБ.
Произведем анализ графиков для DPSK
Рис. 2. График зависимости BER от уровня сигнал/шум DPSK4, DPSK8 и DPSK16 модуляции
Возьмем для сравнения уровень BER 10–4, по графику видно, что для DPSK4, данное значение достигается при уровне сигнал-шум 10.8 дБ, для DPSK8 значение достигается при уровне 14.7 дБ, для DPSK16 значение достигается при уровне 19 дБ.
Произведем анализ графиков для FSK
Рис. 3. График зависимости BER от уровня сигнал/шум FSK4, FSK8 и FSK16 модуляции
Возьмем для сравнения уровень BER 10–4, по графику видно, что для FSK4, данное значение достигается при уровне сигнал-шум 9.5 дБ, для FSK8 значение достигается при уровне 8 дБ, для FSK16 значение достигается при уровне 7.5 дБ.
По результатам построенных графиков можно сделать заключение, что для модели канала связи с белым Гауссовским шумом наиболее оптимальным выбором будет являться модуляция FSK16. Данный вид модуляции имеет наименьшее отношение сигнал/шум на всем исследуемом диапазоне, даже по сравнению с PSK.
Основные термины (генерируются автоматически): BER, PSK, уровень, DPSK, FSK, битовая ошибка, график зависимости, модуляция, AWGN, математическая среда.
Ключевые слова
модуляция,
белый гауссовский шум,
вероятность битовой ошибки,
помеха,
шумовой канал
белый гауссовский шум, вероятность битовой ошибки, помеха, модуляция, шумовой канал
Похожие статьи
Формирование и обработка OFDM сигналов | Статья в журнале…
Модуляция (манипуляция) представляет собой изменение сигнала в зависимости от передаваемого
На рис. 4 представлен график зависимости вероятности битовой ошибки от отношения
В ходе работы была создана математическая модель описывающая передачу…
Анализ потенциальной точности оценки задержки по огибающей…
; ; . Использование сигналов с модуляцией BOC(1,1) уменьшает дисперсию ошибки задержки в 1,5 раза по сравнению с использование модуляцией BPSK(4), соответственно по среднеквадратическому отклонение (СКО) оценки задержки составляет 1,225.
Эквалайзирование канала данных системы LTE… | Молодой ученый
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit
Рис. 2. Вероятность битовой ошибки в зависимости от отношения сигнал/шум: а
сигнала в модуляторе данные поступают в канал связи на блок AWGN — аддитивный белый.
Оценивание параметра задержки, не управляемое решениями
Для многоуровневой амплитудной модуляции (AM) мы можем аппроксимировать статистику информационных символов гауссовской функцией плотности вероятности (ФПВ) с нулевым средним и единичной дисперсией. Когда мы усредняем по гауссовской ФПВ, то получаем…
Исследование помехоустойчивости каналов связи с уплотнением…
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit error rate) от отношения сигнал/шум (SNR) для каждой из видов модуляции и для разных моделей каналов, приведенный на рис. 2…
Оценка эффективности использования сигнально-кодовых…
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit error rate) от отношения сигнал/шум (SNR) для каждой из видов модуляции и для разных… Применение помехозащищённого кодирования для повышения…
Сравнительный анализ гидроакустических модемов
В статье приведен сравнительный анализ существующих на рынке гидроакустических модемов. Представлены результаты экспериментальной проверки отечественного гидроакустического модема. Приведены теоретические расчеты дальности действия разработанного…
Реализация модели приёмника 4-позиционного…
Когда речь идет о производительности приемника подразумевается наличие некоторого уровня синхронизации сигнала.
Рассмотрим методы обеспечения синхронизации по несущей и тактам в приемнике. Для этого рассмотрим математическую модель для сигнала на входе приемника.
Моделирование дальности действия и пропускной способности…
В зависимости от класса пользовательского оборудования, в LTE возможно использовать 4х4 MIMO , т.е. сочетание четырех передающих и четырех принимающих антенн. Использование четырех независимых потоков позволяет существенно повысить скорость передачи данных.
Обработка сигналов с фазовой манипуляцией способом прямого…
При переключении логических уровней модулирующего напряжения сигнала ТМИ, кроме изменения несущей частоты, происходит кратковременная сдвижка фазы несущих колебаний – фазовая манипуляция Фазовая манипуляция служит для синхронизации потока данных ТМИ.
Похожие статьи
Формирование и обработка OFDM сигналов | Статья в журнале…
Модуляция (манипуляция) представляет собой изменение сигнала в зависимости от передаваемого
На рис. 4 представлен график зависимости вероятности битовой ошибки от отношения
В ходе работы была создана математическая модель описывающая передачу…
Анализ потенциальной точности оценки задержки по огибающей…
; ; . Использование сигналов с модуляцией BOC(1,1) уменьшает дисперсию ошибки задержки в 1,5 раза по сравнению с использование модуляцией BPSK(4), соответственно по среднеквадратическому отклонение (СКО) оценки задержки составляет 1,225.
Эквалайзирование канала данных системы LTE… | Молодой ученый
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit
Рис. 2. Вероятность битовой ошибки в зависимости от отношения сигнал/шум: а
сигнала в модуляторе данные поступают в канал связи на блок AWGN — аддитивный белый.
Оценивание параметра задержки, не управляемое решениями
Для многоуровневой амплитудной модуляции (AM) мы можем аппроксимировать статистику информационных символов гауссовской функцией плотности вероятности (ФПВ) с нулевым средним и единичной дисперсией. Когда мы усредняем по гауссовской ФПВ, то получаем…
Исследование помехоустойчивости каналов связи с уплотнением…
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit error rate) от отношения сигнал/шум (SNR) для каждой из видов модуляции и для разных моделей каналов, приведенный на рис. 2…
Оценка эффективности использования сигнально-кодовых…
Результатом моделирования является график зависимости вероятности битовой ошибки (BER — bit error rate) от отношения сигнал/шум (SNR) для каждой из видов модуляции и для разных… Применение помехозащищённого кодирования для повышения…
Сравнительный анализ гидроакустических модемов
В статье приведен сравнительный анализ существующих на рынке гидроакустических модемов. Представлены результаты экспериментальной проверки отечественного гидроакустического модема. Приведены теоретические расчеты дальности действия разработанного…
Реализация модели приёмника 4-позиционного…
Когда речь идет о производительности приемника подразумевается наличие некоторого уровня синхронизации сигнала.
Рассмотрим методы обеспечения синхронизации по несущей и тактам в приемнике. Для этого рассмотрим математическую модель для сигнала на входе приемника.
Моделирование дальности действия и пропускной способности…
В зависимости от класса пользовательского оборудования, в LTE возможно использовать 4х4 MIMO , т.е. сочетание четырех передающих и четырех принимающих антенн. Использование четырех независимых потоков позволяет существенно повысить скорость передачи данных.
Обработка сигналов с фазовой манипуляцией способом прямого…
При переключении логических уровней модулирующего напряжения сигнала ТМИ, кроме изменения несущей частоты, происходит кратковременная сдвижка фазы несущих колебаний – фазовая манипуляция Фазовая манипуляция служит для синхронизации потока данных ТМИ.
