QPSK 的误码率计算
误码率计算模块计算误码率(BER)。利用该模块,我们可以获得通信系统的误码率,并分析系统的性能。在本例中,我们将研究一个简单的 QPSK 接收机和发射机模型。如下图所示。

接下来,让我们定义一个运行模型的辅助函数。
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]:
接下来,我们初始化模型的信噪比,并声明比特误差变量。
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
绘制误码率图。
In [ ]:
plot(EbNoArr,ber, seriestype=:scatter, title = "BER", label = "QPSK")
Out[0]:
输出
从这个例子可以看出,信噪比越高,误差越小。
在此,我们展示了如何绘制通信系统简单模型的误码率图,以及如何应用这种方法来分析系统。