forked from awendt/pyrelacs
[app] adding powerspectrum as plot
This commit is contained in:
parent
a16fe0b735
commit
3433ef7132
@ -31,8 +31,8 @@ class PyRelacs(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setWindowTitle("PyRelacs")
|
||||
self.setMinimumSize(1000, 1000)
|
||||
self.plot_graph = pg.PlotWidget()
|
||||
self.beat_plot = pg.PlotWidget()
|
||||
self.power_plot = pg.PlotWidget()
|
||||
|
||||
self.threadpool = QThreadPool()
|
||||
self.repros = Repro()
|
||||
@ -49,20 +49,17 @@ class PyRelacs(QMainWindow):
|
||||
self.plot_calibration_button.setCheckable(True)
|
||||
self.plot_calibration_button.clicked.connect(self.plot_calibration)
|
||||
|
||||
self.text = QPlainTextEdit()
|
||||
self.text.setReadOnly(True)
|
||||
|
||||
layout = QGridLayout()
|
||||
layout.addWidget(self.plot_calibration_button, 0, 0)
|
||||
layout.addWidget(self.daq_disconnect_button, 0, 1)
|
||||
layout.addWidget(self.text, 3, 0, 1, 2)
|
||||
layout.addWidget(self.plot_graph, 2, 0, 1, 2)
|
||||
layout.addWidget(self.beat_plot, 2, 0, 1, 2)
|
||||
layout.addWidget(self.power_plot, 3, 0, 1, 2)
|
||||
|
||||
self.toolbar = QToolBar("Repros")
|
||||
self.addToolBar(self.toolbar)
|
||||
self.repros_to_toolbar()
|
||||
|
||||
self.setFixedSize(QSize(400, 300))
|
||||
# self.setFixedSize(QSize(400, 300))
|
||||
widget = QWidget()
|
||||
widget.setLayout(layout)
|
||||
self.setCentralWidget(widget)
|
||||
@ -111,8 +108,9 @@ class PyRelacs(QMainWindow):
|
||||
return decibel_psd
|
||||
|
||||
block = self.nix_file.blocks[0]
|
||||
for stim, fish in zip(
|
||||
list(block.data_arrays)[::2], list(block.data_arrays)[1::2]
|
||||
colors = ["red", "green", "blue", "black", "yellow"]
|
||||
for i, (stim, fish) in enumerate(
|
||||
zip(list(block.data_arrays)[::2], list(block.data_arrays)[1::2])
|
||||
):
|
||||
beat = stim[:] + fish[:]
|
||||
beat_squared = beat**2
|
||||
@ -123,10 +121,15 @@ class PyRelacs(QMainWindow):
|
||||
f_sq, powerspec_sq = welch(beat_squared, fs=40_000.0)
|
||||
powerspec_sq = decibel(powerspec_sq)
|
||||
peaks = find_peaks(powerspec_sq, prominence=20)[0]
|
||||
pen = pg.mkPen()
|
||||
self.plot_graph.plot(
|
||||
np.arange(0, len(beat)) / 40_000.0, beat_squared, pen=pen
|
||||
pen = pg.mkPen(colors[i])
|
||||
self.beat_plot.plot(
|
||||
np.arange(0, len(beat)) / 40_000.0,
|
||||
beat_squared,
|
||||
pen=pen,
|
||||
name=stim.name,
|
||||
)
|
||||
self.power_plot.plot(f_sq, powerspec_sq, pen=pen)
|
||||
self.power_plot.scatter(f[peaks], powerspec_sq[peaks])
|
||||
|
||||
def connect_dac(self):
|
||||
devices = uldaq.get_daq_device_inventory(uldaq.InterfaceType.USB)
|
||||
|
Loading…
Reference in New Issue
Block a user