Engee 文档
Notebook

Scrambler

加扰器是一种软件或硬件设备(算法),用于执行加扰,即在不改变传输速率的情况下对数字流进行可逆变换,以获得随机序列的特性。 在本例中,加扰是通过 "伪随机二进制序列"(PRBS)实现的。该序列由长度为 15 的 LFSR 计算得出,相关多项式为 1+ x^14 + x^15,初始值为 100101010000000。下图还描述了伪随机序列发生器的公式。

image.png

接下来,让我们来看看已实现的加扰和解扰方案。下图显示了该算法的操作和比特比较。

image_2.png

让我们使用我们描述的运行函数运行这个模型,并保存比特误差结果。

In [ ]:
function run_model(name_model)
    Path = string(@__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
    return model_output
end

run_model("Scrambler_descrambler")
Building...
Progress 100%
Out[0]:
Dict{String, DataFrames.DataFrame} with 2 entries:
  "Error Rate Calculation.Out" => 1001×2 DataFrame…
  "Selector.1"                 => 1001×2 DataFrame

让我们分析一下保存的值。在 1001 步期间,误码率等于零。

In [ ]:
# Считывание из simout сохранённых сигналов
BER = simout["Scrambler_descrambler/Error Rate Calculation.Out"];
BER = collect(BER)
BER[end-3:end,:]
Out[0]:

4 rows × 2 columns

timevalue
AnyAny
19.97[0.0, 0.0, 998.0]
29.98[0.0, 0.0, 999.0]
39.99[0.0, 0.0, 1000.0]
410.0[0.0, 0.0, 1001.0]

结论

根据这次演示的结果,我们研究了在 DVB 第二代视频传输协议中使用加扰方法的可能性。

示例中使用的块