Supprimer 'filtre.py'
parent
57d5cca798
commit
7492208179
@ -1,116 +0,0 @@
|
||||
from filtre_gui import *
|
||||
from math import *
|
||||
|
||||
#lancer le calcul
|
||||
def signals(self):
|
||||
self.calculer_pushbutton.clicked.connect(self.calc)
|
||||
|
||||
def calc(self):
|
||||
frequence = int(self.freqCp_lineedit.text())
|
||||
amplitude = float(self.amplitude_lineedit.text())
|
||||
impedance = float(self.impEntree_lineedit.text())
|
||||
ordre = int(self.ordre_lineedit.text())
|
||||
w = calcul_w( frequence)
|
||||
b=calcul_b(amplitude)
|
||||
gamma = calcul_gamma(b,ordre)
|
||||
ak=calcul_ak(ordre)
|
||||
bk = calcul_bk(ordre,gamma)
|
||||
gk = calcul_gk(ordre,ak,bk,gamma)
|
||||
ck,lk=ck_lk_calcul(ordre,impedance,w,gk)
|
||||
|
||||
r = calcul_r(ordre,impedance,b)
|
||||
rn=calcul_Rn(r,impedance)
|
||||
textdecompletion=''
|
||||
for i in range (ordre//2):
|
||||
textdecompletion= textdecompletion + "L" + str(i) + "= " + str(lk[i]) + " \n"
|
||||
self.resultatlk_textedit.setText(textdecompletion)
|
||||
textdecompletion=''
|
||||
for i in range (ordre//2):
|
||||
textdecompletion= textdecompletion + "C" + str(i) + "= " + str(ck[i]) + " \n"
|
||||
self.resultatck_textedit.setText(textdecompletion)
|
||||
self.resultatrn_lineedit.setText(str(rn))
|
||||
|
||||
#self.resultat_lineedit.setText('lk ='+str(lk)+'\nck='+str(ck)+'\nrn ='+str(rn))
|
||||
|
||||
#Calcul de wc
|
||||
def calcul_w(frequence):
|
||||
wc=2.*pi*frequence
|
||||
return wc
|
||||
|
||||
#Calcul de b
|
||||
def calcul_b(amplitude):
|
||||
b=log(cosh(amplitude/17.37)/sinh(amplitude/17.37))
|
||||
#b=log((exp(2*(impedance/17.37))+1)/((exp(2*(impedance/17.37))-1)))
|
||||
#b=0.002745
|
||||
return b
|
||||
|
||||
#Calcul de rn
|
||||
def calcul_r(ordre,impedance,b):
|
||||
if ordre==1:
|
||||
r=1.*impedance
|
||||
else:
|
||||
r=pow((tanh(b/4.)),2)
|
||||
return r
|
||||
|
||||
#Calcul de gamma
|
||||
def calcul_gamma(b,ordre):
|
||||
gamma=sinh(b/(2*ordre))
|
||||
return gamma
|
||||
|
||||
#Cacule de ak
|
||||
def calcul_ak(ordre):
|
||||
ak=[0]*ordre
|
||||
for i in range(ordre):
|
||||
ak[i]=sin(((2.*(i+1)-1)*pi)/(2.*ordre))
|
||||
return ak
|
||||
|
||||
#Calcul de bk
|
||||
def calcul_bk(ordre,gamma):
|
||||
bk=[0]*ordre
|
||||
for i in range(ordre):
|
||||
bk[i]=gamma*gamma+sin(((i+1)*pi)/ordre)*sin(((i+1)*pi)/ordre)
|
||||
return bk
|
||||
|
||||
#Calcul de gk
|
||||
def calcul_gk(ordre,ak,bk,gamma):
|
||||
gk=[0]*ordre
|
||||
gk[0] = ((2.*ak[0])/gamma)
|
||||
#print("GK0")
|
||||
#print(gk[0])
|
||||
for j in range(1,ordre):
|
||||
gk[j]=((4.*ak[j-1]*ak[j])/float((bk[j-1]*gk[j-1])))
|
||||
return gk
|
||||
|
||||
#Calcul de cl et lk
|
||||
def ck_lk_calcul(ordre, impedance, wc, gk):
|
||||
ck=[0]*ordre
|
||||
lk=[0]*ordre
|
||||
if (ordre%2)==0:
|
||||
for i in range(ordre//2):
|
||||
lk[i]=(impedance/wc)*gk[i]
|
||||
for i in range(ordre//2):
|
||||
ck[i]=(1./impedance)*(1./wc)*gk[i]
|
||||
else:
|
||||
for i in range(ordre//2):
|
||||
lk[i]=(impedance/wc)*gk[i]
|
||||
for i in range((ordre//2)+1):
|
||||
ck[i]=(1./impedance)*(1./wc)*gk[i]
|
||||
return(ck,lk)
|
||||
|
||||
def calcul_Rn(r,impedance):
|
||||
rn=r*impedance
|
||||
return rn
|
||||
|
||||
|
||||
Ui_MainWindow.signals = signals #edite les atibuts de Ui_MainWindow
|
||||
Ui_MainWindow.calc = calc #test = resultat du test
|
||||
|
||||
if __name__ == "__main__": # A library or a stand-alone program
|
||||
import sys
|
||||
app = QtWidgets.QApplication(sys.argv) # Must create a QApplication object, sys.argv allows passing parameters in command line
|
||||
MainWindow = QtWidgets.QMainWindow() # Create a main window instance.
|
||||
ui = Ui_MainWindow() # Create a Ui_MainWindow instance
|
||||
ui.setupUi(MainWindow) # Add widgets to the main window
|
||||
ui.signals() # Connect signals with the appropriate functions
|
||||
MainWindow.show() # Show the main window
|
||||
sys.exit(app.exec_()) # If a termination signal is captured, exit the program.
|
Loading…
Reference in New Issue