CCCPaste

2926b95daf7e5

using Plots, Latexify

ϵ0 = 8.854187813*(10^-12)
μ0 = 1.256637062*(10^-6)
j = im

#questão 1
d2_1 = 35.21997862/1000
#

#questão 2
d2 = 0.049808571430478205
d3 = 0.024904285715239102
#
global f0 = 1.064*(10^9)

function getN(μr,ϵr)
    return √((μr*μ0)/(ϵ0*ϵr))
end

function getk(μr,ϵr, f)
    return 2*pi*f*√(μr*μ0*ϵ0*ϵr)
end

function getλ(f, μr, ϵr)
    return 1/(f*√(μr*μ0*ϵ0*ϵr))
end

function ρN(N1, N0)
    return ((N1-N0)/(N1+N0))    
end

function ρ_phase(z, ρ, k)
    return ρ*exp(-j*2*k*z)
end

function getN_ρ(ρ, N)
    return N*((ρ+1)/(1-ρ))
end

n1 = getN(1,1)
n2 = getN(1,4)
n3 = getN(1,16)
n4 = getN(1,16)

#println("d2 = ", getλ(f0, 1, 2)/4, " || d3 = ", getλ(f0, 1, 8)/4)

ρ3 = ρN(n4,n3)



global fi = f0 - 500*(10^6)

global x = []
global y = []


global bw_y = []



global fc_l = 0
global fc_h = 0
global count_f0 = 1

while (fi <= (f0 + 500*(10^6)))
    #=
    local k3 = getk(1,8,fi)
    local ρ2_p = ρ_phase(d3,ρ3,k3) 
    local n3_p = getN_ρ(ρ2_p, n3)
    =#
    
    local ρ2 = ρN(n3,n2)
    local k2 = getk(1,4,fi)
    local ρ1_p = ρ_phase(d2_1,ρ2,k2)
    local n2_p = getN_ρ(ρ1_p,n2)
    local ρ1 = ρN(n2_p,n1)
    
    local ab2_ρ1 = abs2(ρ1)

    append!(x, fi)
    append!(y, ab2_ρ1)
    
    if (ab2_ρ1 <= 0.001)
        append!(bw_y, ab2_ρ1)
        if(fc_l == 0)
            global fc_l = fi
        end
    else
        if((fc_h == 0) && (fc_l != 0))
            global fc_h = fi
        end
        append!(bw_y, 1)
    end
    
    if (fi != f0) && (fi < f0)
        global count_f0+= 1
    end
    global fi += 10*10^(3)
end

p = plot(x,y, label="", title=((latexify("abs2(ρ_1)"))))
plot!(x, bw_y, fillrange = 1, fillalpha = 0.125, fillcolor = :red, label = "largura da banda", legend = :outerbottom)
xlims!(p, (f0 - 500 *10^6), (f0 + 500*10^6))
ylims!(p, 0, 0.11)
xticks!(p, (f0-500*(10^6)):(150*(10^6)):(f0+500*(10^6)))
yticks!(p,(0:0.01:0.11))
vline!([f0], label="Frequência central(1.064 GHz)", legend = :outerbottom)
println(x[1]," Hz: ", y[1], ";\n",x[length(x)]," Hz: ", y[length(y)])
println(x[count_f0], " Hza: ", y[count_f0])
display(p)

println("fc_l: ", fc_l, "  ||  fc_h: ", fc_h, " || BW: ", (fc_h-fc_l))
savefig(p, "c3")
#println(bw_y)