#!/usr/bin/pyhton3

### 11. 2. 21 - v izpeljavo (14) vstavim meritev
# P0 pomerjen na fotodiodi???
# N0 na fotodiodi

import numpy as np
import matplotlib.pyplot as plt



db2lin = lambda x: 10**(x/10)
# nepotrebne velicine
#T0 = 290 # sobna temperatura [K]
#Tel = 3.55e7 # pomerjena elektricna temperatura [K]
#kB = 1.38e-23 #boltzmannova konstanta
#F = 10**(2.5/10) # sumno stevilo v linearnih enotah
Q = 2100 # kvaliteta resonatorja
#Toe = 1e5 #temperatura linije [K] - vzel iz Matjazeve skripte
f0 = 10.5e9 # frekvenca nosilca [Hz]
tau = 1022*1.4676/3e8 #zakasnitev linije [s]

Pc = db2lin(-3.6-25)
N0 = db2lin(-120.41)


def L(df, Pc, N0):
    # prva izpeljava: enacba (14)
    L = 0.5 * N0/Pc
    L *= np.abs(1-np.exp(-2j*np.pi*tau*df)/(1+2j*Q*df/f0))**-2
    return 10*np.log10(L)

df = np.linspace(1e2, 1e5, 1e5)
plt.figure()
plt.semilogx(df,L(df,Pc, N0),'c') # Pc = -30 dBm izhod za fotodiode
plt.xlabel("Frekvenčni odmik [Hz]")
plt.ylabel("Spektralna gostota šuma [dBc/Hz]")
plt.grid(True)
#plt.savefig("dve-enacbi.png")
plt.show()

data = np.column_stack((df, L(df,Pc,N0)))
np.savetxt("analitika.csv", data, delimiter=',')
