Advertisement
jukaukor

DenoiseSignal2.py

Jan 27th, 2024
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. # tuotetaan kohinainen signaali
  2. # poistetaan kohinaa IIR-suodattimien avulla (lfilter,filtfilt)
  3. # Juhani Kaukoranta 27.1.2024
  4. import matplotlib.pyplot as plt
  5. import numpy as np
  6. from scipy.signal import lfilter,filtfilt
  7. x = np.linspace(0,np.pi , 1000) # x axis
  8. y = np.sin(x**2) * np.cos(x) # alkuperäinen signaali
  9. noise = np.std(y)*np.random.standard_normal(len(x))/6 # kohinaa
  10. y = y + noise # kohina lisätty signaaliin
  11. # suodatin
  12. n = 50 # mitä suurempi n, suurempi suodatus
  13. b = [1.0 / n] * n
  14. a = 1
  15. yy1 = lfilter(b, a, y) # lfilter-suodatettu
  16. yy2 = filtfilt(b,a,y) # filfilt-suodatettu
  17. fig, (ax1,ax2,ax3) = plt.subplots(3, 1, sharex=True)
  18. fig.suptitle('Kohinainen signaali, lfilter-suodatettu, filtfilt-suodatettu')
  19. ax1.plot(x, y,linewidth=1, linestyle="-", c="b") # kohinainen signaali
  20. ax1.set_ylabel('kohinainen')
  21. ax2.plot(x, yy1, linewidth=1, linestyle="-", c="b") # kohinainen signaali
  22. ax2.set_ylabel('lfilter')
  23. ax3.plot(x, yy2, linewidth=1, linestyle="-", c="b") # kohinainen signaali
  24. ax3.set_ylabel('filtfilt')
  25. ax3.set_xlabel('time (s)')
  26. plt.show()
  27.  
  28.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement