Engee 文档
Notebook

单BER脉冲的影响

在本例中,我们将考虑具有单个数据干扰的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的点。 要避免这种情况,请使用插值和平均。