Hello, j'ai un soucis avec une fonction math sur plusieurs de mes codes python
J'ai installer plusieurs librairies mais je trouve aucune solutions
import matplotlib.pyplot as plt
import matplotlib.pylab as pyl
import soundfile as sf
import numpy
import scipy
from scipy import signal
from scipy.signal import periodogram
from math import *
def dectobin(nb,bits):
n=''
for j in range (bits):
if 2**(bits-1-j) <= nb :
nb=nb-2**(bits-1-j)
n+='1'
else :
n+='0'
return(n)
def bintodec(nb):
n=0
for i in range(len(nb)):
n+=int(nb[i])*2**(len(nb)-1-i)
return(n)
def XORbin(n1,n2):
n=['0']*len(n1)
for i in range (len(n1)):
if n1[i] == '1' :
if n2[i] == '1':
n[i]='0'
else :
n[i]='1'
elif n2[i] == '1' :
n[i]='1'
return(''.join(n))
def antisignal(filename):
r=[]
data, Fe = sf.read(filename)
p=int(Fe*0.10)
for j in range (int(len(data/p)-1)):
f,FFT = periodogram(data[j*p:(j+1)*p], Fe)
for i in range (len(FFT)):
if FFT[i]>0.01:
r.append(f[i])
break
quode=''
for i in range (len(r)) :
if r[i] < 20400 and r[i]>19500 :
quode+='0'
elif r[i] > 20399 :
quode+='1'
return(quode)
def decodageManch(codé):
c=''
for j in range (int(len(codé)/2)) :
chars=''
for i in range (2) :
chars+=codé[i+j*2]
if chars == '10' :
c+='1'
elif chars == '01' :
c+='0'
return(c)
def verifCRC(data) :
cle='1010'
r=data[0:4]
i=0
while i < (len (data)-2):
if r[0] == '0':
if 4+i<len(data):
r+=data[4+i]
r=r[1:5]
else :
r=r[1:4]
return(r)
i+=1
k=1
else:
r=XORbin(r,cle)
def fromtrams(trams) :
dt=''
taillet=trams[33:49]
taillet=bintodec(taillet)
for i in range (int(len(trams)/taillet)) :
tram=trams[(0+i)*taillet:(1+i)*taillet]
dp=tram[0]
numerot=tram[1:17]
nbtotalt=tram[17:33]
flagd=tram[49:57]
données=tram[57:57+256]
crc=tram[313:316]
r=bintodec(verifCRC(données+crc))
if r != 0 :
print('il y a une erreur dans la trame n°',numerot)
print(r)
flagf=tram[316:324]
dt+=données
return(dt)
def decodageASCII(c) :
d=''
for i in range (int(len(c)/8)) :
nb=0
for j in range (8) :
nb+=int(c[j+8*i])*2**(7-j)
if nb == 0 :
return (d)
d+=chr(nb)
return(d)
def decodeRLE(data,n1):
j=0
decoded=[]
n=n1
for j in range (len(data)):
for i in range (0,int(data[j])):
decoded.append(n)
if n == '0':
n='1'
else:
n='0'
return(''.join(decoded))
def décompress(n) :
bits=bintodec(n[0:5])
n1=n[5]
nb=[]
for i in range (int((len(n)-6)/bits)):
nb.append(bintodec(n[6+bits*i:6+bits+bits*i]))
nb=decodeRLE(nb,n1)
return(nb)
codé=antisignal('bruit.wav')
déc=decodageManch(codé)
déco=fromtrams(déc)
décodé=décompress(déco)
#décodé=decodageASCII(décodé)
print('message recu :',décodé)
voici mon code et donc les erreurs se trouve sur le from du math import

et donc voici les erreurs si quelqu'un pourrais m'éclairer merci