Initial
This commit is contained in:
41
zerocross_meas.py
Normal file
41
zerocross_meas.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import numpy as np
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import fft
|
||||
import IIR_filter
|
||||
|
||||
class zerocross_meas(object):
|
||||
"""docstring for fft_meas"""
|
||||
def __init__(self, fs=50e3, tn=1):
|
||||
self.fs = fs
|
||||
self.ts = 1/self.fs
|
||||
self.tn = tn
|
||||
self.time = 0
|
||||
self.freq = 0
|
||||
self.freq_ts = 0
|
||||
self.y = 0
|
||||
self.y_old = 0
|
||||
self.idx = 0
|
||||
self.LPfilter = IIR_filter.IIR_1_Order_LP(fs=self.fs, fc=200)
|
||||
|
||||
def step(self, x, time):
|
||||
|
||||
if time - self.time > self.ts:
|
||||
self.time = time
|
||||
self.y = self.LPfilter.step(x)
|
||||
|
||||
if self.y_old < 0 and self.y > 0:
|
||||
self.idx += 1
|
||||
|
||||
|
||||
if time - self.freq_ts > self.tn:
|
||||
self.freq = self.idx / self.tn
|
||||
self.freq_ts = time
|
||||
self.idx = 0
|
||||
|
||||
|
||||
self.y_old = self.y
|
||||
|
||||
|
||||
def print(self):
|
||||
print(self.freq)
|
||||
Reference in New Issue
Block a user