50 lines
860 B
Python
50 lines
860 B
Python
import numpy as np
|
|
|
|
import matplotlib.pyplot as plt
|
|
import fft
|
|
|
|
class fft_meas(object):
|
|
"""docstring for fft_meas"""
|
|
def __init__(self, fs=50e3, tn=0.2):
|
|
self.fs = fs
|
|
self.ts = 1/fs
|
|
self.tn = tn
|
|
self.N = int(int(fs*tn))
|
|
self.data = np.zeros(self.N)
|
|
self.idx = -1
|
|
self.time = 0
|
|
|
|
self.freq = 0
|
|
self.a = 0
|
|
self.b = 0
|
|
self.c = 0
|
|
self.Y_C = 0
|
|
self.phi = 0
|
|
|
|
def step(self, data, time, f_H1, unit):
|
|
|
|
if time - self.time > self.ts:
|
|
self.time = time
|
|
self.idx += 1
|
|
|
|
self.data[self.idx] = data
|
|
|
|
if self.idx == self.N-1:
|
|
|
|
|
|
self.freq , self.a, self.b , self.c, self.Y_C, self.phi = fft.fft(x=self.data, fs=self.fs)
|
|
|
|
self.idx = -1
|
|
|
|
|
|
|
|
def plot(self):
|
|
#fs, a, b, c, YC, phi = ftt.fft(Ph1, sample_freq)
|
|
|
|
plt.plot(self.freq, self.c)
|
|
plt.xlabel("x")
|
|
plt.ylabel("y")
|
|
plt.title("Simple plot")
|
|
plt.show()
|
|
|