# -*-coding:Latin-1 -* from math import * print("Entrez la fréquence de coupure:") frequence = input() #print(f) print("Entrez l'impédance d'entrée:") impedance=input() print("Entrez l'amplitude max:") amplitude=input() print("Entrez l'ordre du filtre:") ordre=input() #Calcul des paramètres #Calcule de wc wc=2*pi*frequence #Calcul de b b=log(cosh(amplitude/17.37)/sinh(amplitude/17.37)) #Calcul de gamma gamma=sinh(b/(2*ordre)) #initialisation i i=1 ak=[0]*ordre bk=[0]*ordre gk=[0]*ordre #Cacule de ak for i in range(ordre): ak[i-1]=sin((2*(i-1)*pi)/(2*ordre)) #Calcul de bk for i in range(ordre): bk[i-1]=pow(gamma,2)+(sin(i*pi)/ordre) print("test") print(bk) #Calcul de gk gk[0] = ((2*ak[1])/gamma) print(ak) print(gk[0]) print(bk[0]) for i in range(ordre): gk[i]=((4*ak[i-1]*ak[i])/(bk[i-1]*gk[i-1])) #Calcul de ck et lk if (ordre%2)==0: for i in range(ordre): lk[i]=(impedance/wc)*gk[i] for i in range(ordre): ck[i]=(1/impedance)*(1/wc)*gk[i-1] else: for i in range(ordre): lk[i]=(impedance/wc)*gk[i-1] for i in range(ordre): ck[i]=(1/impedance)*(1/wc)*gk[i] #Calcul de Rn if ordre==1: rn=1*impedance else: rn=pow((tanh(b/4)),2) print(ck)