Engee 文档
Notebook

扰频器

加扰器是执行加扰的软件或硬件设备(算法),即在不改变传输速率的情况下对数字流进行可逆变换,以获得随机序列的属性。
在这个例子中,用"伪随机二进制序列"(PRBS)进行加扰。 该序列由于长度15的LFSR而计算,由相关联的多项式1+x14+x15和初始值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步,BER为零。

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视频传输协议中使用的加扰方法的可能性。