# génération des 3 courbes cibles Duelund

import math
import cmath

fc=1000                       # fréquence caractéristique
a=4                           # facteur amortissement

inf=20                        # fréquence inférieure
sup=20000                     # fréquence supérieure
N=101                         # nombre de points
offset=90                     # décalage en dB

file_low=open("low_Duelund.frd","w")       # nom des fichiers .frd
file_mid=open("mid_Duelund.frd","w")
file_high=open("high_Duelund.frd","w")

for i in range(0,N):
    
    f=inf*(sup/inf)**(i/(N-1))
    low=1/(1+a*1j*f/fc-(f/fc)**2)**2          # fonctions de transfert
    mid=(a**2-2)*low*(f/fc)**2
    high=low*(f/fc)**4
    
    file_low.write(str(f))
    file_low.write("\t")
    file_low.write(str(20*math.log10(abs(low))+offset))
    file_low.write("\t")
    file_low.write(str(57.29*cmath.phase(low)))
    file_low.write("\n")

    file_mid.write(str(f))
    file_mid.write("\t")
    file_mid.write(str(20*math.log10(abs(mid))+offset))
    file_mid.write("\t")
    file_mid.write(str(57.29*cmath.phase(mid)))
    file_mid.write("\n")

    file_high.write(str(f))
    file_high.write("\t")
    file_high.write(str(20*math.log10(abs(high))+offset))
    file_high.write("\t")
    file_high.write(str(57.29*cmath.phase(high)))
    file_high.write("\n")
    
file_low.close()
file_mid.close()
file_high.close()
