Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # tuotetaan kohinainen signaali
- # poistetaan kohinaa IIR-suodattimien avulla (lfilter,filtfilt)
- # Juhani Kaukoranta 27.1.2024
- import matplotlib.pyplot as plt
- import numpy as np
- from scipy.signal import lfilter,filtfilt
- x = np.linspace(0,np.pi , 1000) # x axis
- y = np.sin(x**2) * np.cos(x) # alkuperäinen signaali
- noise = np.std(y)*np.random.standard_normal(len(x))/6 # kohinaa
- y = y + noise # kohina lisätty signaaliin
- # suodatin
- n = 50 # mitä suurempi n, suurempi suodatus
- b = [1.0 / n] * n
- a = 1
- yy1 = lfilter(b, a, y) # lfilter-suodatettu
- yy2 = filtfilt(b,a,y) # filfilt-suodatettu
- fig, (ax1,ax2,ax3) = plt.subplots(3, 1, sharex=True)
- fig.suptitle('Kohinainen signaali, lfilter-suodatettu, filtfilt-suodatettu')
- ax1.plot(x, y,linewidth=1, linestyle="-", c="b") # kohinainen signaali
- ax1.set_ylabel('kohinainen')
- ax2.plot(x, yy1, linewidth=1, linestyle="-", c="b") # kohinainen signaali
- ax2.set_ylabel('lfilter')
- ax3.plot(x, yy2, linewidth=1, linestyle="-", c="b") # kohinainen signaali
- ax3.set_ylabel('filtfilt')
- ax3.set_xlabel('time (s)')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement