Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import numpy as np
  3. from sklearn.linear_model import Lasso
  4. import matplotlib.pyplot as plt
  5. from scipy.fftpack import dct, idct
  6.  
  7. N       = 1200
  8. M       = 120
  9. noise   = 0.1
  10. x       = np.linspace(0,1,N)
  11.  
  12. # signal original
  13. y_clear = np.cos(2*np.pi*10*x) + np.cos(5*np.pi*x)
  14.  
  15. # signal bruité
  16. y = y_clear + np.random.normal(0,noise,N)
  17.  
  18. # on choisit des indices au hasard, M parmi N, M << N
  19. r = np.random.choice(N-1,M,replace=False)
  20. r.sort()
  21.  
  22. # on sample le signal
  23. y2 = y[r]
  24.  
  25. # A = matrice de DCT inverse
  26. I = np.identity(N)
  27. A = idct(I,norm='ortho',axis=0)
  28. A = A[r]
  29.  
  30. # y_lasso = argmin ||Ax - y||^2_2 + alpha* ||x||_1
  31. #           x € R^n
  32.  
  33. lasso   = Lasso(alpha=0.001)
  34. lasso.fit(A, y2)
  35. y_lasso = lasso.coef_
  36.  
  37. # Affichage
  38.  
  39. plt.plot(idct(y_lasso,norm='ortho',axis=0),color='blue',label='Reconstruction L_1, M = ' + str(M))
  40. plt.plot(y_clear,color='green',label='Signal original N = ' + str(N))
  41. plt.plot(y,color='purple',label='Signal avec bruit', alpha=0.45)
  42. plt.legend()
  43. plt.savefig('cs_lasso.png',bbox_inches='tight')
  44. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement