New ScreenPanel
This commit is contained in:
45
script/jepscript3.py
Executable file
45
script/jepscript3.py
Executable file
@@ -0,0 +1,45 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user