Bonjour,
dans le cadre d'un projet je dois écrire un programme en Python permettant de représenter la fonction d'échelle et l'ondelette de Battle-Lemarié pour les splines d'ordre 1 et 2.
Pour la spline d'ordre 1, je trace la fonction de la manière suivante :
La fonction phi n'étant pas orthogonale à ses translatées il faut modifier phi pour obtenir une fonction phi_diese dont on ne connait que la transformée de Fourier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import numpy as np import matplotlib.pyplot as plt x=np.linspace(-1.5,1.5,1024) def phi(x): p=[] for i in range(len(x)): if abs(x[i])<=1: p.append(1-abs(x[i])) else: p.append(0) return p plt.plot(x,phi(x),'b',x,phi(2*x),'g',x,[elt/2. for elt in phi(2*x+1)],'g',x,[elt/2. for elt in phi(2*x-1)],'g') plt.show()
Afin de retrouver cette fonction, voici ce que je code :
Malheureusement le résultat n'est pas le bon, la fonction est "écrasée".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 def ftphidiese(x): ftphid=[] for i in range(len(x)): ftphid.append((np.sqrt(3.)*4.*(np.sin(x[i]/2.))**2)/(np.sqrt(2*np.pi)*(x[i]**2)*np.sqrt(1.+2.*(np.cos(x[i]/2.))**2))) return ftphid phidiese=np.fft.fftshift(np.fft.ifft(np.fft.ifftshift(ftphidiese(x)))) plt.plot(x,phidiese) plt.show()
Pour plus détail sur phi_diese, voir la page 158 de "ten lectures on wavelets" http://fr.scribd.com/doc/13764338/Te...es-on-Wavelets.
Quelqu'un peut-il m'aider ?
Merci.
Partager