Files
dev/script/jepscript3.py
2018-01-19 10:56:53 +01:00

45 lines
1018 B
Python
Executable File

import numpy as np
from scipy.fftpack import fft
def plot(x,y, block = True):
import matplotlib.pyplot as plt
plt.figure()
plt.plot(x, y)
plt.grid()
#if show:
plt.show(block=block)
def get_f(N,T,F):
x = np.linspace(0.0, N*T, N)
y=0.0
for (a,f) in F:
y = y + a*np.sin(f * 2.0*np.pi*x)
return (x,y)
def get_fft(x,y,T):
N = len(x)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), N / 2)
yfp = 2.0/N * np.abs(yf[0:N/2])
return (xf,yf,yfp)
def get_fft2(y):
T = 1.0 / 800.0
N = len(y)
yf = fft(y)
return yf
xf = np.linspace(0.0, 1.0/(2.0*T), N/2)
yfp = 2.0/N * np.abs(yf[0:N/2])
return (xf,yf,yfp)
if __name__ == '__main__':
N = 600 # Number of sample points
T = 1.0 / 800.0 # sample spacing
F = [(1.0,50.0), (0.5,80.0)] #Sinuoisids
(x,y) = get_f(N,T,F)
(xf,yf,yfp) = get_fft(x,y,T)
plot(x,y, False)
plot(xf,yfp)