import numpy as np
import matplotlib.pyplot as plt
from IPython import embed

# Create a signal that (kinda) looks like an ECG

# Samples/sec
fs = 500

seconds = 3
t = np.linspace(0, seconds, fs*seconds)

x = (np.mod(t+0.5, 1) < 0.1)

# Add some 60Hz noise
x = x + 0.2 * np.sin(2*np.pi * 60 * t)

# Add some white noise
x = x + 0.1 * np.random.random(t.size)

## Okay, now let's filter this noise out
z = np.fft.fft(x)
z[177:185] = 0
z[186:1314] = 0
z[1315:1322] = 0
#plt.plot(np.abs(z))

y = np.fft.ifft(z);

plt.plot(x, color=[0.8, 0.8, 1.0])
plt.plot(y)
plt.show()

