jack06215

[numpy] low-pass filter high-pass filter

Jul 3rd, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.18 KB | None | 0 0
  1. import pandas as pd
  2. import dask.dataframe as dd
  3. import numpy as np
  4. import os
  5. from sklearn.datasets import make_classification
  6. import matplotlib.pyplot as plt
  7.  
  8. def high_pass(s, threshold=1e7):
  9.     fourier = np.fft.rfft(s)
  10.     frequencies = np.fft.rfftfreq(s.size, d=2e-2/s.size)
  11.     fourier[frequencies < threshold] = 0
  12.     return np.fft.irfft(fourier)
  13.  
  14. def low_pass(s, threshold=1e4):
  15.     fourier = np.fft.rfft(s)
  16.     frequencies =np.fft.rfftfreq(s.size, d=2e-2 / s.size)
  17.     fourier[frequencies > threshold] = 0
  18.     return np.fft.irfft(fourier)
  19.  
  20. # features
  21. df = make_classification(n_samples = n_samples, n_features = 10)
  22. df_raw = pd.DataFrame(df[0], columns = ['var1', 'var2', 'var3', 'var4', 'var5', 'var6', 'var7', 'var8', 'var9', 'var10'])
  23.  
  24. # class
  25. df_raw['class'] = df[1]
  26. del df
  27.  
  28. hf_signal_1 = high_pass(df_raw['var1'].values, threshold=1e4)
  29.  
  30. plt.plot(df_raw['var1'].values, color='lightgray')
  31. plt.plot(hf_signal_1, color='black')
  32.  
  33. lf_signal_1 = low_pass(df_raw['var1'].values)
  34. plt.plot(df_raw['var1'].values, color='lightgray')
  35. plt.plot(lf_signal_1, color='black')
  36.  
  37. plt.plot(df_raw['var1'].values, color='black')
  38. plt.plot(lf_signal_1 + hf_signal_1, color='lightgray')
Add Comment
Please, Sign In to add comment