import numpy as np
import matplotlib.pyplot as plt

# R et C sont les valeurs en ohm et en farad des composants de la ligne.
# f est la fréquence du signal d'entrée
# la procédure retourne les valeurs de Ri (en kilo ohm) et Ci (en nano farad) avec 3 chiffres significatifs.

def Zi(R,C,f):
    omega=2*np.pi*f
    XX=(R*C*omega)**2
    A=np.sqrt(1+np.sqrt(1+16/XX))
    Ri=R/2*(1+1/np.sqrt(2)*A)
    Ci=C/np.sqrt(2)*A
    print("Ri = ",significatif(Ri/1000,3)," kOhm")
    print("Ci = ",significatif(Ci*1e9,3), "nF")
    return

#    print("1/(RC) = ",1/(R*C), "Hz")

    
def significatif(x,digit):
    if x == 0:
        return 0
    return round(x,digit-int(np.floor(np.log10(abs(x))))-1)