Engee 文档
Notebook

声明模型参数

In [ ]:
using Images
In [ ]:
path_img = "$(@__DIR__)/img.jpg"
inp_img = imrotate(Gray.(load(path_img)), π*-90/180)
S = size(inp_img)
println("输入图像尺寸:∞(S))")
println()
num = 400 # 组数
println("组数:$num")
println("组中的值数:$((S[1]*S[2])/num)")
println()
bit_mask = 0b01010101 # max 8 bit
println("bit_mask: $bit_mask")
println()
fs = 100e3 # Hz
println("载波频率:<fs Hz")
deviation_fs = fs * 0.05 # 财政司司长的5%
println("偏差频率:<deviation_fs Hz")
println()
snr = 10;
println("SNR:<snr dB")
snr_linear = 10^(snr / 10)
signal_power = 1
noise_power = 1 / snr_linear
println("噪音功率:$noise_power")
println()
st = 1/fs*S[1]*S[2] # Sample time
println("倒数时间:$st")
solver_step = st/S[1]/S[2]
println("求解器步骤:$solver_step")
time_stop = st*2.1
println("模拟步骤:$st")
Размер входного изображения: (160, 160))

Количество групп: 400
Количество значений в группе: 64.0

bit_mask: 85

Несущая частота: 100000.0 Гц
Частота девиации: 5000.0 Гц

SNR: 10 дБ
Мощность шума: 0.1

Время одного отсчёта: 0.256
Шаг решателя: 1.0e-5
Шаг моделирования: 0.256

启动模型

In [ ]:
    name_model = "SSTV"
    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)
Building...
Progress 0%
Progress 5%
Progress 10%
Progress 16%
Progress 22%
Progress 27%
Progress 35%
Progress 41%
Progress 47%

模型工作的结果

In [ ]:
println("SNR:<snr dB")
println()
ber = ((collect(BER)).value)[end] 
println("总位数:$(Int(ber[3]))")
println("错误数:$(Int(Ber[2]))")
println("BER: $(round(ber[1], digits=2))")

inp = plot(framestyle=:none, grid=false, title = "入口")
heatmap!( 1:S[2], 1:S[1], permutedims(inp_img, (2, 1)), colorbar=false)

sim_img = imrotate(colorview(Gray, ((collect(img_FM))[3,:].value)), π*-90/180)
sim = plot(framestyle=:none, grid=false, title = "出口;出口")
heatmap!( 1:size(sim_img, 2), 1:size(sim_img, 1), permutedims(sim_img, (2, 1)), colorbar=false)

sim_error = (collect(error_sim)).value 
Average_error = round(sum(abs.(sim_error))/length(sim_error)*100, digits=2)
err = plot(sim_error, title = "平均误差为Aver Average_error % ")

plot(plot(inp, sim), err, layout = grid(2, 1, heights=[0.7, 0.3]), legend=false) 
SNR: 10 дБ

Всего бит: 430088
Кол-во ошибок: 39674
BER: 0.09
Out[0]: