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

Расчёт BER для QPSK

Открыть пример в Engee

Блок Error Rate Calculation вычисляет частоту ошибок по битам (bit error rate, BER). Используя этот блок, мы можем получить данные о BER для системы связи и провести анализ эффективности нашей системы. В этом примере мы рассмотрим простую модель QPSK приёмника и передатчика. Она показана на рисунке ниже.

image.png

Далее зададим вспомогательную функцию для запуска модели.

In [ ]:
# Подключение вспомогательной функции запуска модели.
function run_model( name_model)
    
    Path = (@__DIR__) * "/" * name_model * ".engee"
    
    if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
        model = engee.open( name_model ) # Открыть модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
    else
        model = engee.load( Path, force=true ) # Загрузить модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
        engee.close( name_model, force=true ); # Закрыть модель
    end
    sleep(5)
    return model_output
end
Out[0]:
run_model (generic function with 1 method)

Далее выполним инициализацию показателей отношения сигнала к шуму для нашей модели и объявим переменную битовой ошибки.

In [ ]:
EbNoArr =  [1, 3, 5, 7, 10, 12, 15, 17, 20, 23, 25];
ber = zeros(length(EbNoArr));
EbNo = 0;

Теперь выполним запуск модели при разных значениях отношения сигнала к шуму.

In [ ]:
for i in 1:length(EbNoArr)
    EbNo = EbNoArr[i]
    run_model("QPSK") # Запуск модели.
    BER = collect(BER)
    ber[i]=BER.value[end][1]
end

Построим график BER.

In [ ]:
plot(EbNoArr,ber, seriestype=:scatter, title = "BER", label = "QPSK")
Out[0]:

Вывод

Как видно на этом примере, чем выше отношение сигнала к шуму, тем меньше ошибка. Здесь мы разобрали, как построить график BER для простой модели системы связи и узнали, как применить данный метод для проведения анализа системы.

Блоки, использованные в примере