40 lines
835 B
Python
40 lines
835 B
Python
|
import PyQt5
|
||
|
import pyqtgraph as pg
|
||
|
from pyqtgraph.Qt import QtGui, QtCore
|
||
|
import numpy as np
|
||
|
from scipy.signal import hilbert
|
||
|
from scipy.fft import fft, fftfreq
|
||
|
from scipy.signal.windows import hamming
|
||
|
|
||
|
a = 250000
|
||
|
b = 450000
|
||
|
ch1 = np.load("siglent_ch1.npy")[a:b]
|
||
|
ch2 = np.load("siglent_ch2.npy")[a:b]
|
||
|
|
||
|
ch1 = ch1 - np.mean(ch1)
|
||
|
ch2 = ch2 - np.mean(ch2)
|
||
|
|
||
|
out_samples = []
|
||
|
prev_ref = ch1[0]
|
||
|
for sample, ref in zip(ch1, ch2):
|
||
|
if prev_ref*ref < 0:
|
||
|
out_samples.append(sample)
|
||
|
prev_ref = ref
|
||
|
|
||
|
|
||
|
app = QtGui.QApplication([])
|
||
|
mainwindow = QtGui.QMainWindow()
|
||
|
|
||
|
widget = pg.PlotWidget()
|
||
|
mainwindow.setCentralWidget(widget)
|
||
|
|
||
|
mainwindow.show()
|
||
|
|
||
|
out_samples = out_samples*hamming(len(out_samples))
|
||
|
|
||
|
widget.clear()
|
||
|
widget.plot(2*473.6*fftfreq(len(out_samples))[:len(out_samples)//2], np.abs(fft(out_samples))[:len(out_samples)//2])
|
||
|
|
||
|
app.exec_()
|
||
|
|