Engee 文档
Notebook

单个误码率脉冲的影响

在本例中,我们考虑的是数据中存在单一干扰的 BPSK 接收机和发射机系统。系统本身如下图所示。

image.png

在顶层,我们可以看到随机数据集发生器、BPSK 和脉冲发生器,如下图所示。

image.png

该子系统中有 3 个脉冲发生器。通过使用延迟和加法器,我们可以增加这些脉冲的数量。

接下来,让我们设置辅助函数来启动模型。

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 [ ]:
EnableImpulse = 0;
run_model("BPSK_and_Impulse") # Запуск модели.

BER = collect(BER)
println("BER: " * string(BER.value[end]))

EnableImpulse = 1;
run_model("BPSK_and_Impulse") # Запуск модели.

BER = collect(BER)
print("BER: " * string(BER.value[end]))
Building...
Progress 0%
Progress 0%
Progress 5%
Progress 10%
Progress 17%
Progress 22%
Progress 28%
Progress 34%
Progress 40%
Progress 46%
Progress 51%
Progress 56%
Progress 62%
Progress 67%
Progress 73%
Progress 78%
Progress 84%
Progress 89%
Progress 95%
Progress 100%
Progress 100%
BER: [0.0, 0.0, 1501.0]
Building...
Progress 5%
Progress 14%
Progress 20%
Progress 25%
Progress 31%
Progress 37%
Progress 43%
Progress 48%
Progress 53%
Progress 59%
Progress 65%
Progress 70%
Progress 75%
Progress 80%
Progress 85%
Progress 90%
Progress 96%
Progress 100%
Progress 100%
BER: [0.002664890073284477, 4.0, 1501.0]

输出

从结果中我们可以看到,在我们的案例中,有几个值在添加干扰后被错误识别。这很可能是因为有些点被识别为 1 而不是 0。