Документация Engee
Notebook

Анализ теоретических характеристик BER для различных методов модуляции c AWGN

В современных системах связи выбор метода модуляции играет ключевую роль в обеспечении надежности и эффективности передачи данных. Одним из основных показателей, характеризующих качество связи, является вероятность битовой ошибки (Bit Error Rate, BER), которая зависит от отношения сигнал/шум (Eb/No). В данной демонстрации представлен теоретический анализ BER для различных методов модуляции, включая M-PSK (BPSK, QPSK, 8-PSK), M-QAM (16-QAM, 64-QAM) и M-FSK (2-FSK, 4-FSK), в условиях канала с аддитивным белым гауссовым шумом.

Для расчета BER использованы точные и аппроксимированные формулы, учитывающие особенности каждого метода модуляции. Результаты визуализированы в виде графика, который позволяет наглядно сравнить эффективность различных методов модуляции в зависимости от изменения Eb/No. Такой анализ помогает инженерам и исследователям выбирать оптимальные методы модуляции для конкретных условий связи, учитывая компромисс между скоростью передачи данных и устойчивостью к шумам.

In [ ]:
using SpecialFunctions

Функция berawgn_psk вычисляет теоретическую вероятность битовой ошибки (BER) для модуляций M-PSK в канале AWGN, используя точную формулу для BPSK (M=2) — 0.5 * erfc(sqrt(EbNo)), где erfc — дополнительная функция ошибок, а для M>2 применяет аппроксимацию erfc(sqrt(k * EbNo) * sin(π/M)) / k, учитывающую количество бит на символ (k = log2(M)) и геометрию созвездия (через sin(π/M)). Обе формулы зависят от линейного отношения сигнал/шум EbNo = 10^(EbNo_dB/10), преобразованного из децибел.

In [ ]:
function berawgn_psk(EbNo_dB, M)
    EbNo = 10 .^ (EbNo_dB ./ 10)
    k = log2(M)
    if M == 2
        return 0.5 .* erfc.(sqrt.(EbNo))
    else
        return erfc.(sqrt.(k .* EbNo) .* sin(π/M)) / k
    end
end
Out[0]:
berawgn_psk (generic function with 1 method)

Функция berawgn_qam вычисляет теоретическую вероятность битовой ошибки (BER) для квадратурных амплитудных модуляций (M-QAM, таких как 16-QAM, 64-QAM) в канале с AWGN-шумом. Она использует точную формулу для квадратных созвездий, где:

  • EbNo = 10^(EbNo_dB/10) — линейное отношение сигнал/шум,
  • k = log2(M) — число бит на символ,
  • erfc — дополнительная функция ошибок,
  • множители 4/k и (1 - 1/sqrt(M)) учитывают геометрию созвездия и вероятность ошибки для разных битовых комбинаций. Формула эффективна для квадратных QAM.
In [ ]:
function berawgn_qam(EbNo_dB, M)
    EbNo = 10 .^ (EbNo_dB ./ 10)
    k = log2(M)
    return (4/k) .* (1 - 1/sqrt(M)) .* 0.5 .* erfc.(sqrt.(3*k.*EbNo./(2*(M-1))))
end
Out[0]:
berawgn_qam (generic function with 1 method)

Функция berawgn_fsk рассчитывает теоретическую вероятность битовой ошибки (BER) для модуляций M-FSK (частотной манипуляции) в канале с AWGN-шумом, поддерживая два режима детектирования. Для когерентного приема (с точной информацией о фазе) используется формула, где:

  • EbNo = 10^(EbNo_dB/10) — линейное отношение сигнал/шум,
  • k = log2(M) — число бит на символ,
  • erfc — дополнительная функция ошибок.
    Функция учитывает увеличение ошибок с ростом M (через множитель (M-1)/M или (M-1)/2) и зависимость от энергии на бит (k*EbNo). Режим задается параметром coherent=true/false. Подходит для анализа 2-FSK, 4-FSK и других ортогональных схем.
In [ ]:
function berawgn_fsk(EbNo_dB, M; coherent=true)
    EbNo = 10 .^ (EbNo_dB ./ 10)
    k = log2(M)
    if coherent
        return ((M-1)/M) .* erfc.(sqrt.(k.*EbNo./2))
    else
        return ((M-1)/2) .* exp.(-k.*EbNo./2)
    end
end
Out[0]:
berawgn_fsk (generic function with 1 method)

Теперь перейдём к сравнительному анализу модуляций при идентичном отношении сигнал/шум.

In [ ]:
EbNo_dB = -15:1:15 # Диапазон Eb/No для анализа

plot(EbNo_dB, berawgn_psk(EbNo_dB, 2), label="BPSK", marker=:circle, markersize=4)
plot!(EbNo_dB, berawgn_psk(EbNo_dB, 4), label="QPSK", marker=:rect, markersize=4)
plot!(EbNo_dB, berawgn_psk(EbNo_dB, 8), label="8-PSK", marker=:diamond, markersize=4)
plot!(EbNo_dB, berawgn_qam(EbNo_dB, 16), label="16-QAM", marker=:utriangle, markersize=4)
plot!(EbNo_dB, berawgn_qam(EbNo_dB, 64), label="64-QAM", marker=:dtriangle, markersize=4)
plot!(EbNo_dB, berawgn_fsk(EbNo_dB, 2), label="2-FSK", marker=:pentagon, markersize=4)
plot!(EbNo_dB, berawgn_fsk(EbNo_dB, 4), label="4-FSK", marker=:hexagon, markersize=4)

xlabel!("Eb/No (dB)", fontsize=12)
ylabel!("Bit Error Rate (BER)", fontsize=12)
title!("Теоретические BER для различных модуляций", fontsize=14)
Out[0]:

Вывод

Проведенный анализ теоретических характеристик BER для различных методов модуляции демонстрирует их разнообразное поведение в зависимости от отношения сигнал/шум (Eb/No). Как видно из графика, методы модуляции BPSK и QPSK показывают лучшую устойчивость к шумам при низких значениях Eb/No, что делает их идеальными для условий слабого сигнала. Однако с увеличением Eb/No более высокоуровневые методы модуляции, такие как 16-QAM и 64-QAM, обеспечивают более высокую спектральную эффективность, хотя и требуют более высокого отношения сигнал-шум для достижения сопоставимых значений BER.

Методы модуляции M-FSK, особенно 2-FSK и 4-FSK, демонстрируют промежуточные характеристики, что делает их применимыми в специфических сценариях, где важна простота реализации и устойчивость к частотным отклонениям. Полученные результаты подчеркивают важность выбора метода модуляции в зависимости от конкретных требований системы связи, таких, как допустимая вероятность ошибки, доступная полоса пропускания и энергетические ограничения.

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