Doing THD calc
This commit is contained in:
58
measurements.py
Normal file
58
measurements.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
import IIR_filter
|
||||
|
||||
import zerocross_meas
|
||||
import fundamental_freq_meas
|
||||
import fft_meas
|
||||
|
||||
|
||||
class measurements(object):
|
||||
"""docstring for fft_meas"""
|
||||
def __init__(self, fs=50e3):
|
||||
# Sample Frequency
|
||||
self.fs = fs
|
||||
# Sample Period
|
||||
self.ts = 1/self.fs
|
||||
|
||||
# Low Pass Filter
|
||||
# fs = Sample Frequency, fc = LP Cutoff Frequency
|
||||
self.LPfilter = IIR_filter.IIR_1_Order_LP(fs=self.fs, fc=200)
|
||||
|
||||
|
||||
|
||||
# Zero Crossing Algorithem
|
||||
# fs = Sample Frequency, fc = LP Cutoff Frequency
|
||||
self.zerocross = zerocross_meas.zerocross_meas()
|
||||
|
||||
# Fundamental Frequency Algorithem
|
||||
# fs = Sample Frequency, tn = Time Period for calculations
|
||||
self.base_freq = fundamental_freq_meas.fundamental_freq_meas(fs=self.fs, tn=1)
|
||||
|
||||
# FFT Algorithem
|
||||
# fs = Sample Frequency, tn = Time Period for calculations
|
||||
# 61000-4-7 says 200ms
|
||||
# 10-cycles for 50Hz
|
||||
# 12-cycles for 60Hz
|
||||
self.fft = fft_meas.fft_meas(fs=self.fs, tn=0.2)
|
||||
|
||||
|
||||
def Interupt(self, y):
|
||||
|
||||
# Filter Input
|
||||
y_hat = self.LPfilter.step(y)
|
||||
# Zerocross detection (self.zerocross.flag)
|
||||
self.zerocross.detect(y_hat)
|
||||
# Calculate the Fundamental frequency (self.base_freq.freq)
|
||||
self.base_freq.step(y_hat, self.zerocross.flag)
|
||||
# Calculate the FFT of the signal
|
||||
self.fft.step(y, self.base_freq.freq, unit="I")
|
||||
|
||||
|
||||
def print(self):
|
||||
print(self.base_freq.freq)
|
||||
|
||||
def plot(self):
|
||||
self.fft.plot_Y_H()
|
||||
|
||||
Reference in New Issue
Block a user