diff --git a/qspectrumanalyzer/__main__.py b/qspectrumanalyzer/__main__.py
index 2a87922..50e1332 100644
--- a/qspectrumanalyzer/__main__.py
+++ b/qspectrumanalyzer/__main__.py
@@ -11,7 +11,8 @@
from qspectrumanalyzer.utils import str_to_color, human_time
from qspectrumanalyzer.settings import QSpectrumAnalyzerSettings
-from qspectrumanalyzer.smoothing import QSpectrumAnalyzerSmoothing
+from qspectrumanalyzer.smoothing_frequency import QSpectrumAnalyzerSmoothingFrequency
+from qspectrumanalyzer.smoothing_temporal import QSpectrumAnalyzerSmoothingTemporal
from qspectrumanalyzer.persistence import QSpectrumAnalyzerPersistence
from qspectrumanalyzer.colors import QSpectrumAnalyzerColors
from qspectrumanalyzer.baseline import QSpectrumAnalyzerBaseline
@@ -58,6 +59,11 @@ def __init__(self, parent=None):
self.data_storage = None
self.power_thread = None
self.backend = None
+
+ self.last_freq_min = 0
+ self.last_freq_max = 0
+ self.last_bin_size = 0
+
self.setup_power_thread()
self.update_buttons()
@@ -176,7 +182,8 @@ def load_settings(self):
self.peakHoldMaxCheckBox.setChecked(settings.value("peak_hold_max", 0, int))
self.peakHoldMinCheckBox.setChecked(settings.value("peak_hold_min", 0, int))
self.averageCheckBox.setChecked(settings.value("average", 0, int))
- self.smoothCheckBox.setChecked(settings.value("smooth", 0, int))
+ self.freqSmoothCheckBox.setChecked(settings.value("smooth", 0, int))
+ self.temporalSmoothCheckBox.setChecked(settings.value("temporal_smooth", 0, int))
self.persistenceCheckBox.setChecked(settings.value("persistence", 0, int))
self.baselineCheckBox.setChecked(settings.value("baseline", 0, int))
self.subtractBaselineCheckBox.setChecked(settings.value("subtract_baseline", 0, int))
@@ -217,7 +224,8 @@ def save_settings(self):
settings.setValue("peak_hold_max", int(self.peakHoldMaxCheckBox.isChecked()))
settings.setValue("peak_hold_min", int(self.peakHoldMinCheckBox.isChecked()))
settings.setValue("average", int(self.averageCheckBox.isChecked()))
- settings.setValue("smooth", int(self.smoothCheckBox.isChecked()))
+ settings.setValue("smooth", int(self.freqSmoothCheckBox.isChecked()))
+ settings.setValue("temporal", int(self.temporalSmoothCheckBox.isChecked()))
settings.setValue("persistence", int(self.persistenceCheckBox.isChecked()))
settings.setValue("baseline", int(self.baselineCheckBox.isChecked()))
settings.setValue("subtract_baseline", int(self.subtractBaselineCheckBox.isChecked()))
@@ -309,6 +317,24 @@ def start(self, single_shot=False):
self.waterfallPlotWidget.history_size = settings.value("waterfall_history_size", 100, int)
self.waterfallPlotWidget.clear_plot()
+ freq_mhz_min = self.startFreqSpinBox.value()
+ freq_mhz_max = self.stopFreqSpinBox.value()
+ span_mhz = freq_mhz_max - freq_mhz_min
+ bin_size_kHz = self.binSizeSpinBox.value()
+ bin_num = span_mhz * 1000 / bin_size_kHz if bin_size_kHz > 0 else -1
+ self.labelBins.setText(str(freq_mhz_min) + " to " + str(freq_mhz_max) + " MHz" + "\nSpan: " + str(span_mhz) + " MHz - " + str(round(bin_num)) +" Bins" )
+
+ freq_changed = self.last_freq_min != freq_mhz_min or self.last_freq_max != freq_mhz_max
+ if freq_changed:
+ # Set the plotter to defined x range (override any zooming)
+ diff_hz = span_mhz * 1000 * 1000
+ add_hz = diff_hz * 0.01
+ self.spectrumPlotWidget.setXRange(freq_mhz_min * 1000 * 1000 - add_hz, freq_mhz_max * 1000 * 1000 + add_hz)
+
+ self.last_freq_min = freq_mhz_min
+ self.last_freq_max = freq_mhz_max
+ self.last_bin_size = bin_size_kHz
+
self.spectrumPlotWidget.main_curve = bool(self.mainCurveCheckBox.isChecked())
self.spectrumPlotWidget.main_color = str_to_color(settings.value("main_color", "255, 255, 0, 255"))
self.spectrumPlotWidget.peak_hold_max = bool(self.peakHoldMaxCheckBox.isChecked())
@@ -323,6 +349,7 @@ def start(self, single_shot=False):
self.spectrumPlotWidget.persistence_length = settings.value("persistence_length", 5, int)
self.spectrumPlotWidget.persistence_decay = settings.value("persistence_decay", "exponential")
self.spectrumPlotWidget.persistence_color = str_to_color(settings.value("persistence_color", "0, 255, 0, 255"))
+
self.spectrumPlotWidget.clear_plot()
self.spectrumPlotWidget.clear_peak_hold_max()
self.spectrumPlotWidget.clear_peak_hold_min()
@@ -332,10 +359,15 @@ def start(self, single_shot=False):
self.data_storage.reset()
self.data_storage.set_smooth(
- bool(self.smoothCheckBox.isChecked()),
+ bool(self.freqSmoothCheckBox.isChecked()),
settings.value("smooth_length", 11, int),
settings.value("smooth_window", "hanning")
)
+ self.data_storage.set_temporal_smooth(
+ bool(self.temporalSmoothCheckBox.isChecked()),
+ settings.value("temporal_smooth_length", 11, int),
+ settings.value("temporal_smooth_window", "hanning")
+ )
self.data_storage.set_subtract_baseline(
bool(self.subtractBaselineCheckBox.isChecked()),
settings.value("baseline_file", None)
@@ -363,6 +395,89 @@ def stop(self):
if self.power_thread.alive:
self.power_thread.stop()
+ def computeFreq(self, zoom, right):
+ freq_mhz_min = self.startFreqSpinBox.value()
+ freq_mhz_max = self.stopFreqSpinBox.value()
+ freq_mhz_mid = (freq_mhz_max + freq_mhz_min) / 2.0
+ freq_mhz_diff = abs(freq_mhz_max - freq_mhz_min)
+ bin_size_kHz = float(self.binSizeSpinBox.value())
+ print("computeFreq: freq_mhz old:", freq_mhz_min, freq_mhz_max, freq_mhz_diff, bin_size_kHz)
+ zoom_steps = [ 20, 50, 100, 200, 500, 1000 ]
+ mod_steps = [ 10, 25, 50, 100, 250, 500 ]
+ a_pos = [ 0, 1, 2, 3, 4, 5 ]
+ bin_sizes = [ 2, 10, 20, 50, 100, 1000 ]
+ mod = 10
+ bin_size = bin_size_kHz
+ diff = freq_mhz_diff
+ if zoom > 0:
+ print("computeFreq: zoom in")
+ # freq_mhz_diff = freq_mhz_diff / 2
+ diff = freq_mhz_diff
+ for a in reversed(a_pos):
+ f = zoom_steps[a]
+ if f < freq_mhz_diff:
+ diff = f
+ mod = mod_steps[a]
+ bin_size = bin_sizes[a]
+ break
+ freq_mhz_diff = diff
+ print("computeFreq: zoom in, diff: ", diff)
+ if zoom < 0:
+ print("computeFreq: zoom out")
+ diff = freq_mhz_diff
+ for a in a_pos:
+ f = zoom_steps[a]
+ if f > freq_mhz_diff:
+ diff = f
+ mod = mod_steps[a]
+ bin_size = bin_sizes[a]
+ break
+ freq_mhz_diff = diff
+ # freq_mhz_diff = freq_mhz_diff * 2
+
+ freq_mhz_diff = round(freq_mhz_diff)
+ if freq_mhz_diff < 20:
+ freq_mhz_diff = 20
+
+ if right != 0:
+ fact = (right / 100)
+ print("computeFreq: shift by ", freq_mhz_mid, right, fact, freq_mhz_diff)
+ freq_mhz_mid = freq_mhz_mid + round(freq_mhz_diff * fact)
+ for a in a_pos:
+ if zoom_steps[a] == diff:
+ mod = mod_steps[a]
+ bin_size = bin_sizes[a]
+ break
+
+ freq_mhz_min = freq_mhz_mid - round(freq_mhz_diff / 2)
+ freq_mhz_max = freq_mhz_mid + round(freq_mhz_diff / 2)
+ m_10 = freq_mhz_min % mod
+ print("computeFreq: freq_mhz ...:",freq_mhz_min, mod, diff)
+ if m_10 > 0:
+ freq_mhz_min -= m_10
+ freq_mhz_max -= m_10
+ print("computeFreq: freq_mhz new:", freq_mhz_min, freq_mhz_max, freq_mhz_diff)
+ self.startFreqSpinBox.setValue(freq_mhz_min)
+ self.stopFreqSpinBox.setValue(freq_mhz_max)
+ self.binSizeSpinBox.setValue(bin_size)
+
+ @QtCore.Slot()
+ def on_buttonZoomOut_clicked(self):
+ self.computeFreq(-1, 0)
+
+ @QtCore.Slot()
+ def on_buttonZoomIn_clicked(self):
+ self.computeFreq(1, 0)
+
+ @QtCore.Slot()
+ def on_buttonFreqLeft_clicked(self):
+ self.computeFreq(0, -50)
+
+ @QtCore.Slot()
+ def on_buttonFreqRight_clicked(self):
+ self.computeFreq(0, 50)
+
+
@QtCore.Slot()
def on_startButton_clicked(self):
self.start()
@@ -412,7 +527,7 @@ def on_persistenceCheckBox_toggled(self, checked):
curve.setVisible(checked)
@QtCore.Slot(bool)
- def on_smoothCheckBox_toggled(self, checked):
+ def on_freqSmoothCheckBox_toggled(self, checked):
settings = QtCore.QSettings()
self.data_storage.set_smooth(
checked,
@@ -420,6 +535,15 @@ def on_smoothCheckBox_toggled(self, checked):
settings.value("smooth_window", "hanning")
)
+ @QtCore.Slot(bool)
+ def on_temporalSmoothCheckBox_toggled(self, checked):
+ settings = QtCore.QSettings()
+ self.data_storage.set_temporal_smooth(
+ checked,
+ settings.value("temporal_smooth_length", 11, int),
+ settings.value("temporal_smooth_window", "hanning")
+ )
+
@QtCore.Slot(bool)
def on_baselineCheckBox_toggled(self, checked):
self.spectrumPlotWidget.baseline = checked
@@ -446,16 +570,27 @@ def on_baselineButton_clicked(self):
)
@QtCore.Slot()
- def on_smoothButton_clicked(self):
- dialog = QSpectrumAnalyzerSmoothing(self)
+ def on_freqSmoothButton_clicked(self):
+ dialog = QSpectrumAnalyzerSmoothingFrequency(self)
if dialog.exec_():
settings = QtCore.QSettings()
self.data_storage.set_smooth(
- bool(self.smoothCheckBox.isChecked()),
+ bool(self.freqSmoothCheckBox.isChecked()),
settings.value("smooth_length", 11, int),
settings.value("smooth_window", "hanning")
)
+ @QtCore.Slot()
+ def on_temporalSmoothButton_clicked(self):
+ dialog = QSpectrumAnalyzerSmoothingTemporal(self)
+ if dialog.exec_():
+ settings = QtCore.QSettings()
+ self.data_storage.set_temporal_smooth(
+ bool(self.temporalSmoothCheckBox.isChecked()),
+ settings.value("temporal_smooth_length", 11, int),
+ settings.value("temporal_smooth_window", "hanning")
+ )
+
@QtCore.Slot()
def on_persistenceButton_clicked(self):
prev_persistence_length = self.spectrumPlotWidget.persistence_length
diff --git a/qspectrumanalyzer/data.py b/qspectrumanalyzer/data.py
index 283237a..1a93dfc 100644
--- a/qspectrumanalyzer/data.py
+++ b/qspectrumanalyzer/data.py
@@ -2,6 +2,7 @@
from Qt import QtCore
import numpy as np
+from pprint import pprint
from qspectrumanalyzer.utils import smooth
from qspectrumanalyzer.backends import soapy_power
@@ -70,9 +71,15 @@ class DataStorage(QtCore.QObject):
def __init__(self, max_history_size=100, parent=None):
super().__init__(parent)
self.max_history_size = max_history_size
+
self.smooth = False
self.smooth_length = 11
self.smooth_window = "hanning"
+
+ self.temp_smooth = False
+ self.temp_smooth_length = 10
+ self.temp_smooth_window = "hanning"
+
self.subtract_baseline = False
self.prev_baseline = None
self.baseline = None
@@ -90,6 +97,7 @@ def reset(self):
self.wait()
self.x = None
self.history = None
+ self.history_raw = None
self.reset_data()
def reset_data(self):
@@ -131,8 +139,12 @@ def update(self, data):
def update_data(self, data):
"""Update main spectrum data (and possibly apply smoothing)"""
+
+ if self.temp_smooth:
+ history_raw = self.history_raw.get_buffer()
+ data["y"] = self.smooth_data_temporal(history_raw, -1)
if self.smooth:
- data["y"] = self.smooth_data(data["y"])
+ data["y"] = self.smooth_data_freq(data["y"])
self.y = data["y"]
self.data_updated.emit(self)
@@ -145,8 +157,10 @@ def update_history(self, data):
"""Update spectrum measurements history"""
if self.history is None:
self.history = HistoryBuffer(len(data["y"]), self.max_history_size)
+ self.history_raw = HistoryBuffer(len(data["y"]), self.max_history_size)
self.history.append(data["y"])
+ self.history_raw.append(data["y"])
self.history_updated.emit(self)
def update_average(self, data):
@@ -173,10 +187,27 @@ def update_peak_hold_min(self, data):
self.peak_hold_min = np.minimum(self.peak_hold_min, data["y"])
self.peak_hold_min_updated.emit(self)
- def smooth_data(self, y):
- """Apply smoothing function to data"""
+ def smooth_data_freq(self, y):
+ """Apply frequency smoothing function to data"""
return smooth(y, window_len=self.smooth_length, window=self.smooth_window)
+ def smooth_data_temporal(self, buf_raw, t_pos):
+ """Apply temporal smoothing function to data"""
+ n_len = self.temp_smooth_length
+ n_back = len(buf_raw)
+ if n_back < n_len:
+ n_len = n_back
+ freq_num = len(buf_raw[t_pos])
+ arr = np.empty(freq_num)
+ for x in range(freq_num):
+ val_sum = 0
+ for y in range(t_pos, t_pos * n_len -1, -1):
+ v = buf_raw[y][x]
+ # print("X/Y:", x, y, v)
+ val_sum += v
+ arr[x] = val_sum / n_len
+ return arr
+
def set_smooth(self, toggle, length=11, window="hanning"):
"""Toggle smoothing and set smoothing params"""
if toggle != self.smooth or length != self.smooth_length or window != self.smooth_window:
@@ -185,6 +216,14 @@ def set_smooth(self, toggle, length=11, window="hanning"):
self.smooth_window = window
self.start_task(self.recalculate_data)
+ def set_temporal_smooth(self, toggle, length=11, window="hanning"):
+ """Toggle smoothing and set smoothing params"""
+ if toggle != self.temp_smooth or length != self.temp_smooth_length or window != self.temp_smooth_window:
+ self.temp_smooth = toggle
+ self.temp_smooth_length = length
+ self.temp_smooth_window = window
+ self.start_task(self.recalculate_data)
+
def set_subtract_baseline(self, toggle, baseline_file=None):
"""Toggle baseline subtraction and set baseline"""
baseline = None
@@ -225,6 +264,8 @@ def recalculate_history(self):
"""Recalculate spectrum measurements history"""
if self.history is None:
return
+ if self.history_raw is None:
+ return
history = self.history.get_buffer()
if self.prev_baseline is not None and len(history[-1]) == len(self.prev_baseline):
@@ -233,26 +274,49 @@ def recalculate_history(self):
if self.subtract_baseline and self.baseline is not None and len(history[-1]) == len(self.baseline):
history -= self.baseline
- self.history_recalculated.emit(self)
+ self.history_recalculated.emit(self)
def recalculate_data(self):
"""Recalculate current data from history"""
if self.history is None:
return
+ if self.history_raw is None:
+ return
history = self.history.get_buffer()
- if self.smooth:
- self.y = self.smooth_data(history[-1])
+ history_raw = self.history_raw.get_buffer()
+ # pprint(vars(history))
+ print("HistLan:", len(history))
+
+ bin_num_freq = 0
+ if len(history) > 0:
+ arr_0 = history[-1]
+ bin_num_freq = len(arr_0)
+ print("FreqLen:", len(arr_0))
+
+ if self.temp_smooth:
+ n_back = len(history_raw)
+ print("n_back:", n_back, bin_num_freq)
+ if n_back > 0:
+ self.y = self.smooth_data_temporal(history_raw, -1)
+ else:
+ self.y = history[-1]
+ print("n_back:", n_back, bin_num_freq)
+
+ elif self.smooth:
+ self.y = self.smooth_data_freq(history[-1])
self.average_counter = 0
self.average = self.y.copy()
self.peak_hold_max = self.y.copy()
self.peak_hold_min = self.y.copy()
for y in history[:-1]:
+ print(" - SmoothHist:", y)
self.average_counter += 1
- y = self.smooth_data(y)
+ y = self.smooth_data_freq(y)
self.average = np.average((self.average, y), axis=0, weights=(self.average_counter - 1, 1))
self.peak_hold_max = np.maximum(self.peak_hold_max, y)
self.peak_hold_min = np.minimum(self.peak_hold_min, y)
+
else:
self.y = history[-1]
self.average_counter = self.history.history_size
diff --git a/qspectrumanalyzer/languages/qspectrumanalyzer_cs.ts b/qspectrumanalyzer/languages/qspectrumanalyzer_cs.ts
index d938478..22b2a8f 100644
--- a/qspectrumanalyzer/languages/qspectrumanalyzer_cs.ts
+++ b/qspectrumanalyzer/languages/qspectrumanalyzer_cs.ts
@@ -394,44 +394,87 @@
- QSpectrumAnalyzerSmoothing
+ QSpectrumAnalyzerSmoothingTemporal
-
- Smoothing - QSpectrumAnalyzer
+
+ Smoothing Temporal - QSpectrumAnalyzer
-
+
&Window function:
-
+
rectangular
-
+
hanning
-
+
hamming
-
+
bartlett
-
+
blackman
-
+
+ Window len>h:
+
+
+
+
+ QSpectrumAnalyzerSmoothingFrequency
+
+
+ Smoothing Frequency - QSpectrumAnalyzer
+
+
+
+
+ &Window function:
+
+
+
+
+ rectangular
+
+
+
+
+ hanning
+
+
+
+
+ hamming
+
+
+
+
+ bartlett
+
+
+
+
+ blackman
+
+
+
+
Window len>h:
diff --git a/qspectrumanalyzer/plot.py b/qspectrumanalyzer/plot.py
index 3473bb3..8f23ea0 100644
--- a/qspectrumanalyzer/plot.py
+++ b/qspectrumanalyzer/plot.py
@@ -34,6 +34,9 @@ def __init__(self, layout):
self.create_plot()
+ def setXRange(self, start, end):
+ self.plot.setXRange(start, end, padding=0)
+
def create_plot(self):
"""Create main spectrum plot"""
self.posLabel = self.layout.addLabel(row=0, col=0, justify="right")
@@ -218,7 +221,7 @@ def recalculate_persistence(self, data_storage):
for i in range(min(self.persistence_length, data_storage.history.history_size - 1)):
data = data_storage.history[-i - 2]
if data_storage.smooth:
- data = data_storage.smooth_data(data)
+ data = data_storage.smooth_data_freq(data)
self.persistence_data.append(data)
QtCore.QTimer.singleShot(0, lambda: self.update_persistence(data_storage, force=True))
diff --git a/qspectrumanalyzer/qspectrumanalyzer.ui b/qspectrumanalyzer/qspectrumanalyzer.ui
index b65c947..8d210e2 100644
--- a/qspectrumanalyzer/qspectrumanalyzer.ui
+++ b/qspectrumanalyzer/qspectrumanalyzer.ui
@@ -7,11 +7,11 @@
0
0
1200
- 892
+ 907
- QSpectrumAnalyzer
+ QSpectrumAnalyzer Enhanced
@@ -52,7 +52,7 @@
0
0
1200
- 32
+ 33
-
-
-
- Qt::Vertical
-
-
-
- 20
- 0
-
-
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 40
+ 16777215
+
+
+
+ <
+
+
+
+ -
+
+
+ true
+
+
+
+ 40
+ 16777215
+
+
+
+ >
+
+
+ false
+
+
+
+ -
+
+
+
+ 40
+ 16777215
+
+
+
+ -
+
+
+
+ -
+
+
+
+ 40
+ 16777215
+
+
+
+ +
+
+
+
+
+
+ -
+
+
-
+
+
+
+
+
+
+
@@ -343,9 +409,15 @@
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+ 3
+
999.000000000000000
+
+ 0.010000000000000
+
1.000000000000000
@@ -422,15 +494,32 @@
- -
-
+
-
+
- Smoothing
+ Freq. Smoothing
-
-
+
+
+ ...
+
+
+ false
+
+
+
+ -
+
+
+ Temporal Smoothing
+
+
+
+ -
+
...
@@ -439,14 +528,14 @@
- -
+
-
Persistence
- -
+
-
...
@@ -456,7 +545,7 @@
- -
+
-
Qt::Vertical
@@ -501,14 +590,14 @@
- -
+
-
Baseline
- -
+
-
...
@@ -518,7 +607,7 @@
- -
+
-
Subtract baseline
@@ -601,8 +690,10 @@
peakHoldMaxCheckBox
peakHoldMinCheckBox
averageCheckBox
- smoothCheckBox
- smoothButton
+ freqSmoothCheckBox
+ freqSmoothButton
+ temporalSmoothCheckBox
+ temporalSmoothButton
persistenceCheckBox
persistenceButton
baselineCheckBox
diff --git a/qspectrumanalyzer/qspectrumanalyzer_smoothing_frequency.ui b/qspectrumanalyzer/qspectrumanalyzer_smoothing_frequency.ui
new file mode 100644
index 0000000..71f3432
--- /dev/null
+++ b/qspectrumanalyzer/qspectrumanalyzer_smoothing_frequency.ui
@@ -0,0 +1,151 @@
+
+
+ QSpectrumAnalyzerSmoothingFrequency
+
+
+
+ 0
+ 0
+ 250
+ 130
+
+
+
+ Frequency Smoothing - QSpectrumAnalyzer
+
+
+
-
+
+
-
+
+
+ &Window function:
+
+
+ windowFunctionComboBox
+
+
+
+ -
+
+
+ 1
+
+
-
+
+ rectangular
+
+
+ -
+
+ hanning
+
+
+ -
+
+ hamming
+
+
+ -
+
+ bartlett
+
+
+ -
+
+ blackman
+
+
+
+
+ -
+
+
+ Window len>h:
+
+
+ windowLengthSpinBox
+
+
+
+ -
+
+
+ 3
+
+
+ 1001
+
+
+ 11
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 1
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+ windowFunctionComboBox
+ windowLengthSpinBox
+ buttonBox
+
+
+
+
+ buttonBox
+ accepted()
+ QSpectrumAnalyzerSmoothingFrequency
+ accept()
+
+
+ 218
+ 104
+
+
+ 157
+ 129
+
+
+
+
+ buttonBox
+ rejected()
+ QSpectrumAnalyzerSmoothingFrequency
+ reject()
+
+
+ 218
+ 110
+
+
+ 224
+ 129
+
+
+
+
+
diff --git a/qspectrumanalyzer/qspectrumanalyzer_smoothing.ui b/qspectrumanalyzer/qspectrumanalyzer_smoothing_temporal.ui
similarity index 92%
rename from qspectrumanalyzer/qspectrumanalyzer_smoothing.ui
rename to qspectrumanalyzer/qspectrumanalyzer_smoothing_temporal.ui
index 54f7b1d..0311c83 100644
--- a/qspectrumanalyzer/qspectrumanalyzer_smoothing.ui
+++ b/qspectrumanalyzer/qspectrumanalyzer_smoothing_temporal.ui
@@ -1,7 +1,7 @@
- QSpectrumAnalyzerSmoothing
-
+ QSpectrumAnalyzerSmoothingTemporal
+
0
@@ -11,7 +11,7 @@
- Smoothing - QSpectrumAnalyzer
+ Temporal Smoothing - QSpectrumAnalyzer
-
@@ -118,7 +118,7 @@
buttonBox
accepted()
- QSpectrumAnalyzerSmoothing
+ QSpectrumAnalyzerSmoothingTemporal
accept()
@@ -134,7 +134,7 @@
buttonBox
rejected()
- QSpectrumAnalyzerSmoothing
+ QSpectrumAnalyzerSmoothingTemporal
reject()
diff --git a/qspectrumanalyzer/scripts/build_ui_code.sh b/qspectrumanalyzer/scripts/build_ui_code.sh
new file mode 100755
index 0000000..c135e7e
--- /dev/null
+++ b/qspectrumanalyzer/scripts/build_ui_code.sh
@@ -0,0 +1,9 @@
+outfolder="./"
+
+FILES=$(ls qspectrumanalyzer*.ui)
+for i in $FILES ; do
+ outfile=$outfolder"ui_"`basename $i .ui`.py
+ echo $i
+ echo $outfile
+ pyuic5 -o $outfile $i
+done
\ No newline at end of file
diff --git a/qspectrumanalyzer/scripts/start.sh b/qspectrumanalyzer/scripts/start.sh
new file mode 100755
index 0000000..0645c4f
--- /dev/null
+++ b/qspectrumanalyzer/scripts/start.sh
@@ -0,0 +1 @@
+python3 -m qspectrumanalyzer
\ No newline at end of file
diff --git a/qspectrumanalyzer/smoothing.py b/qspectrumanalyzer/smoothing_frequency.py
similarity index 81%
rename from qspectrumanalyzer/smoothing.py
rename to qspectrumanalyzer/smoothing_frequency.py
index 900b34e..1b3cfd6 100644
--- a/qspectrumanalyzer/smoothing.py
+++ b/qspectrumanalyzer/smoothing_frequency.py
@@ -1,9 +1,9 @@
from Qt import QtCore, QtWidgets
-from qspectrumanalyzer.ui_qspectrumanalyzer_smoothing import Ui_QSpectrumAnalyzerSmoothing
+from qspectrumanalyzer.ui_qspectrumanalyzer_smoothing_frequency import Ui_QSpectrumAnalyzerSmoothingFrequency
-class QSpectrumAnalyzerSmoothing(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSmoothing):
+class QSpectrumAnalyzerSmoothingFrequency(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSmoothingFrequency):
"""QSpectrumAnalyzer spectrum smoothing dialog"""
def __init__(self, parent=None):
# Initialize UI
diff --git a/qspectrumanalyzer/smoothing_temporal.py b/qspectrumanalyzer/smoothing_temporal.py
new file mode 100644
index 0000000..381e5a9
--- /dev/null
+++ b/qspectrumanalyzer/smoothing_temporal.py
@@ -0,0 +1,29 @@
+from Qt import QtCore, QtWidgets
+
+from qspectrumanalyzer.ui_qspectrumanalyzer_smoothing_temporal import Ui_QSpectrumAnalyzerSmoothingTemporal
+
+
+class QSpectrumAnalyzerSmoothingTemporal(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSmoothingTemporal):
+ """QSpectrumAnalyzer temporal smoothing dialog"""
+ def __init__(self, parent=None):
+ # Initialize UI
+ super().__init__(parent)
+ self.setupUi(self)
+
+ # Load settings
+ settings = QtCore.QSettings()
+ self.windowLengthSpinBox.setValue(settings.value("temporal_smooth_length", 11, int))
+
+ window_function = settings.value("temporal_smooth_window", "hanning")
+ i = self.windowFunctionComboBox.findText(window_function)
+ if i == -1:
+ self.windowFunctionComboBox.setCurrentIndex(0)
+ else:
+ self.windowFunctionComboBox.setCurrentIndex(i)
+
+ def accept(self):
+ """Save settings when dialog is accepted"""
+ settings = QtCore.QSettings()
+ settings.setValue("temporal_smooth_length", self.windowLengthSpinBox.value())
+ settings.setValue("temporal_smooth_window", self.windowFunctionComboBox.currentText())
+ QtWidgets.QDialog.accept(self)
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer.py b/qspectrumanalyzer/ui_qspectrumanalyzer.py
index 39b3609..8272c4c 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer.py
@@ -1,17 +1,20 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerMainWindow(object):
def setupUi(self, QSpectrumAnalyzerMainWindow):
QSpectrumAnalyzerMainWindow.setObjectName("QSpectrumAnalyzerMainWindow")
- QSpectrumAnalyzerMainWindow.resize(1200, 892)
+ QSpectrumAnalyzerMainWindow.resize(1200, 907)
self.centralwidget = QtWidgets.QWidget(QSpectrumAnalyzerMainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
@@ -41,7 +44,7 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.horizontalLayout.addWidget(self.plotSplitter)
QSpectrumAnalyzerMainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(QSpectrumAnalyzerMainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 1200, 32))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 1200, 33))
self.menubar.setObjectName("menubar")
self.menu_File = QtWidgets.QMenu(self.menubar)
self.menu_File.setObjectName("menu_File")
@@ -57,13 +60,12 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.controlsDockWidget.sizePolicy().hasHeightForWidth())
self.controlsDockWidget.setSizePolicy(sizePolicy)
- self.controlsDockWidget.setMinimumSize(QtCore.QSize(190, 130))
+ self.controlsDockWidget.setMinimumSize(QtCore.QSize(156, 130))
self.controlsDockWidget.setFeatures(QtWidgets.QDockWidget.DockWidgetFloatable|QtWidgets.QDockWidget.DockWidgetMovable)
self.controlsDockWidget.setObjectName("controlsDockWidget")
self.controlsDockWidgetContents = QtWidgets.QWidget()
self.controlsDockWidgetContents.setObjectName("controlsDockWidgetContents")
self.gridLayout_2 = QtWidgets.QGridLayout(self.controlsDockWidgetContents)
- self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.startButton = QtWidgets.QPushButton(self.controlsDockWidgetContents)
self.startButton.setObjectName("startButton")
@@ -84,14 +86,13 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frequencyDockWidget.sizePolicy().hasHeightForWidth())
self.frequencyDockWidget.setSizePolicy(sizePolicy)
- self.frequencyDockWidget.setMinimumSize(QtCore.QSize(208, 166))
+ self.frequencyDockWidget.setMinimumSize(QtCore.QSize(222, 199))
self.frequencyDockWidget.setFeatures(QtWidgets.QDockWidget.DockWidgetFloatable|QtWidgets.QDockWidget.DockWidgetMovable)
self.frequencyDockWidget.setObjectName("frequencyDockWidget")
self.frequencyDockWidgetContents = QtWidgets.QWidget()
self.frequencyDockWidgetContents.setObjectName("frequencyDockWidgetContents")
self.formLayout = QtWidgets.QFormLayout(self.frequencyDockWidgetContents)
self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.ExpandingFieldsGrow)
- self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setObjectName("formLayout")
self.label_2 = QtWidgets.QLabel(self.frequencyDockWidgetContents)
self.label_2.setObjectName("label_2")
@@ -144,8 +145,35 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.binSizeSpinBox.setProperty("value", 10.0)
self.binSizeSpinBox.setObjectName("binSizeSpinBox")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.binSizeSpinBox)
- spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.formLayout.setItem(3, QtWidgets.QFormLayout.SpanningRole, spacerItem1)
+ self.buttonsLayout = QtWidgets.QHBoxLayout()
+ self.buttonsLayout.setObjectName("buttonsLayout")
+ self.buttonFreqLeft = QtWidgets.QPushButton(self.frequencyDockWidgetContents)
+ self.buttonFreqLeft.setMinimumSize(QtCore.QSize(0, 0))
+ self.buttonFreqLeft.setMaximumSize(QtCore.QSize(40, 16777215))
+ self.buttonFreqLeft.setObjectName("buttonFreqLeft")
+ self.buttonsLayout.addWidget(self.buttonFreqLeft)
+ self.buttonFreqRight = QtWidgets.QPushButton(self.frequencyDockWidgetContents)
+ self.buttonFreqRight.setEnabled(True)
+ self.buttonFreqRight.setMaximumSize(QtCore.QSize(40, 16777215))
+ self.buttonFreqRight.setDefault(False)
+ self.buttonFreqRight.setObjectName("buttonFreqRight")
+ self.buttonsLayout.addWidget(self.buttonFreqRight)
+ self.buttonZoomOut = QtWidgets.QPushButton(self.frequencyDockWidgetContents)
+ self.buttonZoomOut.setMaximumSize(QtCore.QSize(40, 16777215))
+ self.buttonZoomOut.setObjectName("buttonZoomOut")
+ self.buttonsLayout.addWidget(self.buttonZoomOut)
+ self.buttonZoomIn = QtWidgets.QPushButton(self.frequencyDockWidgetContents)
+ self.buttonZoomIn.setMaximumSize(QtCore.QSize(40, 16777215))
+ self.buttonZoomIn.setObjectName("buttonZoomIn")
+ self.buttonsLayout.addWidget(self.buttonZoomIn)
+ self.formLayout.setLayout(3, QtWidgets.QFormLayout.SpanningRole, self.buttonsLayout)
+ self.textLayout = QtWidgets.QHBoxLayout()
+ self.textLayout.setObjectName("textLayout")
+ self.labelBins = QtWidgets.QLabel(self.frequencyDockWidgetContents)
+ self.labelBins.setText("")
+ self.labelBins.setObjectName("labelBins")
+ self.textLayout.addWidget(self.labelBins)
+ self.formLayout.setLayout(4, QtWidgets.QFormLayout.SpanningRole, self.textLayout)
self.frequencyDockWidget.setWidget(self.frequencyDockWidgetContents)
QSpectrumAnalyzerMainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.frequencyDockWidget)
self.settingsDockWidget = QtWidgets.QDockWidget(QSpectrumAnalyzerMainWindow)
@@ -159,7 +187,6 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.settingsDockWidgetContents = QtWidgets.QWidget()
self.settingsDockWidgetContents.setObjectName("settingsDockWidgetContents")
self.gridLayout = QtWidgets.QGridLayout(self.settingsDockWidgetContents)
- self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_4 = QtWidgets.QLabel(self.settingsDockWidgetContents)
self.label_4.setObjectName("label_4")
@@ -169,7 +196,9 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.gridLayout.addWidget(self.label_6, 0, 1, 1, 1)
self.intervalSpinBox = QtWidgets.QDoubleSpinBox(self.settingsDockWidgetContents)
self.intervalSpinBox.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.intervalSpinBox.setDecimals(3)
self.intervalSpinBox.setMaximum(999.0)
+ self.intervalSpinBox.setSingleStep(0.01)
self.intervalSpinBox.setProperty("value", 1.0)
self.intervalSpinBox.setObjectName("intervalSpinBox")
self.gridLayout.addWidget(self.intervalSpinBox, 1, 0, 1, 1)
@@ -201,22 +230,29 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.averageCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
self.averageCheckBox.setObjectName("averageCheckBox")
self.gridLayout.addWidget(self.averageCheckBox, 6, 0, 1, 1)
- self.smoothCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
- self.smoothCheckBox.setObjectName("smoothCheckBox")
- self.gridLayout.addWidget(self.smoothCheckBox, 7, 0, 1, 1)
- self.smoothButton = QtWidgets.QToolButton(self.settingsDockWidgetContents)
- self.smoothButton.setAutoRaise(False)
- self.smoothButton.setObjectName("smoothButton")
- self.gridLayout.addWidget(self.smoothButton, 7, 2, 1, 1)
+ self.freqSmoothCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
+ self.freqSmoothCheckBox.setObjectName("freqSmoothCheckBox")
+ self.gridLayout.addWidget(self.freqSmoothCheckBox, 7, 0, 1, 2)
+ self.freqSmoothButton = QtWidgets.QToolButton(self.settingsDockWidgetContents)
+ self.freqSmoothButton.setAutoRaise(False)
+ self.freqSmoothButton.setObjectName("freqSmoothButton")
+ self.gridLayout.addWidget(self.freqSmoothButton, 7, 2, 1, 1)
+ self.temporalSmoothCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
+ self.temporalSmoothCheckBox.setObjectName("temporalSmoothCheckBox")
+ self.gridLayout.addWidget(self.temporalSmoothCheckBox, 8, 0, 1, 2)
+ self.temporalSmoothButton = QtWidgets.QToolButton(self.settingsDockWidgetContents)
+ self.temporalSmoothButton.setAutoRaise(False)
+ self.temporalSmoothButton.setObjectName("temporalSmoothButton")
+ self.gridLayout.addWidget(self.temporalSmoothButton, 8, 2, 1, 1)
self.persistenceCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
self.persistenceCheckBox.setObjectName("persistenceCheckBox")
- self.gridLayout.addWidget(self.persistenceCheckBox, 8, 0, 1, 1)
+ self.gridLayout.addWidget(self.persistenceCheckBox, 9, 0, 1, 1)
self.persistenceButton = QtWidgets.QToolButton(self.settingsDockWidgetContents)
self.persistenceButton.setAutoRaise(False)
self.persistenceButton.setObjectName("persistenceButton")
- self.gridLayout.addWidget(self.persistenceButton, 8, 2, 1, 1)
- spacerItem2 = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.gridLayout.addItem(spacerItem2, 11, 0, 1, 1)
+ self.gridLayout.addWidget(self.persistenceButton, 9, 2, 1, 1)
+ spacerItem1 = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.gridLayout.addItem(spacerItem1, 12, 0, 1, 1)
self.cropSpinBox = QtWidgets.QSpinBox(self.settingsDockWidgetContents)
self.cropSpinBox.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.cropSpinBox.setObjectName("cropSpinBox")
@@ -232,14 +268,14 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.gridLayout.addWidget(self.gainSpinBox, 1, 1, 1, 2)
self.baselineCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
self.baselineCheckBox.setObjectName("baselineCheckBox")
- self.gridLayout.addWidget(self.baselineCheckBox, 9, 0, 1, 1)
+ self.gridLayout.addWidget(self.baselineCheckBox, 10, 0, 1, 1)
self.baselineButton = QtWidgets.QToolButton(self.settingsDockWidgetContents)
self.baselineButton.setAutoRaise(False)
self.baselineButton.setObjectName("baselineButton")
- self.gridLayout.addWidget(self.baselineButton, 9, 2, 1, 1)
+ self.gridLayout.addWidget(self.baselineButton, 10, 2, 1, 1)
self.subtractBaselineCheckBox = QtWidgets.QCheckBox(self.settingsDockWidgetContents)
self.subtractBaselineCheckBox.setObjectName("subtractBaselineCheckBox")
- self.gridLayout.addWidget(self.subtractBaselineCheckBox, 10, 0, 1, 1)
+ self.gridLayout.addWidget(self.subtractBaselineCheckBox, 11, 0, 1, 1)
self.settingsDockWidget.setWidget(self.settingsDockWidgetContents)
QSpectrumAnalyzerMainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.settingsDockWidget)
self.levelsDockWidget = QtWidgets.QDockWidget(QSpectrumAnalyzerMainWindow)
@@ -253,7 +289,6 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
self.levelsDockWidgetContents = QtWidgets.QWidget()
self.levelsDockWidgetContents.setObjectName("levelsDockWidgetContents")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.levelsDockWidgetContents)
- self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.histogramPlotLayout = GraphicsLayoutWidget(self.levelsDockWidgetContents)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Expanding)
@@ -301,9 +336,11 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
QSpectrumAnalyzerMainWindow.setTabOrder(self.colorsButton, self.peakHoldMaxCheckBox)
QSpectrumAnalyzerMainWindow.setTabOrder(self.peakHoldMaxCheckBox, self.peakHoldMinCheckBox)
QSpectrumAnalyzerMainWindow.setTabOrder(self.peakHoldMinCheckBox, self.averageCheckBox)
- QSpectrumAnalyzerMainWindow.setTabOrder(self.averageCheckBox, self.smoothCheckBox)
- QSpectrumAnalyzerMainWindow.setTabOrder(self.smoothCheckBox, self.smoothButton)
- QSpectrumAnalyzerMainWindow.setTabOrder(self.smoothButton, self.persistenceCheckBox)
+ QSpectrumAnalyzerMainWindow.setTabOrder(self.averageCheckBox, self.freqSmoothCheckBox)
+ QSpectrumAnalyzerMainWindow.setTabOrder(self.freqSmoothCheckBox, self.freqSmoothButton)
+ QSpectrumAnalyzerMainWindow.setTabOrder(self.freqSmoothButton, self.temporalSmoothCheckBox)
+ QSpectrumAnalyzerMainWindow.setTabOrder(self.temporalSmoothCheckBox, self.temporalSmoothButton)
+ QSpectrumAnalyzerMainWindow.setTabOrder(self.temporalSmoothButton, self.persistenceCheckBox)
QSpectrumAnalyzerMainWindow.setTabOrder(self.persistenceCheckBox, self.persistenceButton)
QSpectrumAnalyzerMainWindow.setTabOrder(self.persistenceButton, self.baselineCheckBox)
QSpectrumAnalyzerMainWindow.setTabOrder(self.baselineCheckBox, self.baselineButton)
@@ -314,7 +351,7 @@ def setupUi(self, QSpectrumAnalyzerMainWindow):
def retranslateUi(self, QSpectrumAnalyzerMainWindow):
_translate = QtCore.QCoreApplication.translate
- QSpectrumAnalyzerMainWindow.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "QSpectrumAnalyzer"))
+ QSpectrumAnalyzerMainWindow.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "QSpectrumAnalyzer Enhanced"))
self.menu_File.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&File"))
self.menu_Help.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&Help"))
self.controlsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Controls"))
@@ -328,6 +365,10 @@ def retranslateUi(self, QSpectrumAnalyzerMainWindow):
self.stopFreqSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " MHz"))
self.label.setText(_translate("QSpectrumAnalyzerMainWindow", "&Bin size:"))
self.binSizeSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " kHz"))
+ self.buttonFreqLeft.setText(_translate("QSpectrumAnalyzerMainWindow", "<"))
+ self.buttonFreqRight.setText(_translate("QSpectrumAnalyzerMainWindow", ">"))
+ self.buttonZoomOut.setText(_translate("QSpectrumAnalyzerMainWindow", "-"))
+ self.buttonZoomIn.setText(_translate("QSpectrumAnalyzerMainWindow", "+"))
self.settingsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Settings"))
self.label_4.setText(_translate("QSpectrumAnalyzerMainWindow", "&Interval [s]:"))
self.label_6.setText(_translate("QSpectrumAnalyzerMainWindow", "&Gain [dB]:"))
@@ -338,8 +379,10 @@ def retranslateUi(self, QSpectrumAnalyzerMainWindow):
self.peakHoldMaxCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Max. hold"))
self.peakHoldMinCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Min. hold"))
self.averageCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Average"))
- self.smoothCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Smoothing"))
- self.smoothButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
+ self.freqSmoothCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Freq. Smoothing"))
+ self.freqSmoothButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
+ self.temporalSmoothCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Temporal Smoothing"))
+ self.temporalSmoothButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
self.persistenceCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Persistence"))
self.persistenceButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
self.gainSpinBox.setSpecialValueText(_translate("QSpectrumAnalyzerMainWindow", "auto"))
@@ -351,5 +394,4 @@ def retranslateUi(self, QSpectrumAnalyzerMainWindow):
self.action_Quit.setText(_translate("QSpectrumAnalyzerMainWindow", "&Quit"))
self.action_Quit.setShortcut(_translate("QSpectrumAnalyzerMainWindow", "Ctrl+Q"))
self.action_About.setText(_translate("QSpectrumAnalyzerMainWindow", "&About"))
-
from pyqtgraph import GraphicsLayoutWidget
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py b/qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py
index 50592f9..5971eeb 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_baseline.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_baseline.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerBaseline(object):
def setupUi(self, QSpectrumAnalyzerBaseline):
@@ -40,8 +43,8 @@ def setupUi(self, QSpectrumAnalyzerBaseline):
self.label.setBuddy(self.baselineFileEdit)
self.retranslateUi(QSpectrumAnalyzerBaseline)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerBaseline.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerBaseline.reject)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerBaseline.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerBaseline.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerBaseline)
QSpectrumAnalyzerBaseline.setTabOrder(self.baselineFileEdit, self.baselineFileButton)
@@ -50,4 +53,3 @@ def retranslateUi(self, QSpectrumAnalyzerBaseline):
QSpectrumAnalyzerBaseline.setWindowTitle(_translate("QSpectrumAnalyzerBaseline", "Baseline - QSpectrumAnalyzer"))
self.label.setText(_translate("QSpectrumAnalyzerBaseline", "Baseline &file:"))
self.baselineFileButton.setText(_translate("QSpectrumAnalyzerBaseline", "..."))
-
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_colors.py b/qspectrumanalyzer/ui_qspectrumanalyzer_colors.py
index 150b303..51aba8d 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_colors.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_colors.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_colors.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_colors.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerColors(object):
def setupUi(self, QSpectrumAnalyzerColors):
@@ -98,8 +101,8 @@ def setupUi(self, QSpectrumAnalyzerColors):
self.label.setBuddy(self.baselineColorButton)
self.retranslateUi(QSpectrumAnalyzerColors)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerColors.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerColors.reject)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerColors.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerColors.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerColors)
QSpectrumAnalyzerColors.setTabOrder(self.mainColorButton, self.peakHoldMaxColorButton)
QSpectrumAnalyzerColors.setTabOrder(self.peakHoldMaxColorButton, self.peakHoldMinColorButton)
@@ -122,5 +125,4 @@ def retranslateUi(self, QSpectrumAnalyzerColors):
self.persistenceColorButton.setText(_translate("QSpectrumAnalyzerColors", "..."))
self.label.setText(_translate("QSpectrumAnalyzerColors", "&Baseline color:"))
self.baselineColorButton.setText(_translate("QSpectrumAnalyzerColors", "..."))
-
from pyqtgraph import ColorButton
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_persistence.py b/qspectrumanalyzer/ui_qspectrumanalyzer_persistence.py
index 02ee4ee..db93fde 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_persistence.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_persistence.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_persistence.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_persistence.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerPersistence(object):
def setupUi(self, QSpectrumAnalyzerPersistence):
@@ -44,8 +47,8 @@ def setupUi(self, QSpectrumAnalyzerPersistence):
self.retranslateUi(QSpectrumAnalyzerPersistence)
self.decayFunctionComboBox.setCurrentIndex(1)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerPersistence.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerPersistence.reject)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerPersistence.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerPersistence.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerPersistence)
QSpectrumAnalyzerPersistence.setTabOrder(self.decayFunctionComboBox, self.persistenceLengthSpinBox)
QSpectrumAnalyzerPersistence.setTabOrder(self.persistenceLengthSpinBox, self.buttonBox)
@@ -57,4 +60,3 @@ def retranslateUi(self, QSpectrumAnalyzerPersistence):
self.decayFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerPersistence", "linear"))
self.decayFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerPersistence", "exponential"))
self.label.setText(_translate("QSpectrumAnalyzerPersistence", "Persistence length:"))
-
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_settings.py b/qspectrumanalyzer/ui_qspectrumanalyzer_settings.py
index e6773a5..1fe5462 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_settings.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_settings.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_settings.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_settings.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerSettings(object):
def setupUi(self, QSpectrumAnalyzerSettings):
@@ -129,8 +132,8 @@ def setupUi(self, QSpectrumAnalyzerSettings):
self.label_6.setBuddy(self.paramsEdit)
self.retranslateUi(QSpectrumAnalyzerSettings)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerSettings.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerSettings.reject)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerSettings.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerSettings.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSettings)
QSpectrumAnalyzerSettings.setTabOrder(self.backendComboBox, self.executableEdit)
QSpectrumAnalyzerSettings.setTabOrder(self.executableEdit, self.executableButton)
@@ -168,4 +171,3 @@ def retranslateUi(self, QSpectrumAnalyzerSettings):
self.bandwidthSpinBox.setSuffix(_translate("QSpectrumAnalyzerSettings", " MHz"))
self.lnbSpinBox.setToolTip(_translate("QSpectrumAnalyzerSettings", "Negative frequency for upconverters, positive frequency for downconverters."))
self.lnbSpinBox.setSuffix(_translate("QSpectrumAnalyzerSettings", " MHz"))
-
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_settings_help.py b/qspectrumanalyzer/ui_qspectrumanalyzer_settings_help.py
index 06b59cf..3e07347 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_settings_help.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_settings_help.py
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_settings_help.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_settings_help.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
-from Qt import QtCore, QtGui, QtWidgets
class Ui_QSpectrumAnalyzerSettingsHelp(object):
def setupUi(self, QSpectrumAnalyzerSettingsHelp):
@@ -26,12 +29,11 @@ def setupUi(self, QSpectrumAnalyzerSettingsHelp):
self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(QSpectrumAnalyzerSettingsHelp)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerSettingsHelp.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerSettingsHelp.reject)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerSettingsHelp.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerSettingsHelp.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSettingsHelp)
QSpectrumAnalyzerSettingsHelp.setTabOrder(self.helpTextEdit, self.buttonBox)
def retranslateUi(self, QSpectrumAnalyzerSettingsHelp):
_translate = QtCore.QCoreApplication.translate
QSpectrumAnalyzerSettingsHelp.setWindowTitle(_translate("QSpectrumAnalyzerSettingsHelp", "Help - QSpectrumAnalyzer"))
-
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_frequency.py b/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_frequency.py
new file mode 100644
index 0000000..e34becf
--- /dev/null
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_frequency.py
@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'qspectrumanalyzer_smoothing_frequency.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.6
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_QSpectrumAnalyzerSmoothingFrequency(object):
+ def setupUi(self, QSpectrumAnalyzerSmoothingFrequency):
+ QSpectrumAnalyzerSmoothingFrequency.setObjectName("QSpectrumAnalyzerSmoothingFrequency")
+ QSpectrumAnalyzerSmoothingFrequency.resize(250, 130)
+ self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerSmoothingFrequency)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.formLayout = QtWidgets.QFormLayout()
+ self.formLayout.setObjectName("formLayout")
+ self.label = QtWidgets.QLabel(QSpectrumAnalyzerSmoothingFrequency)
+ self.label.setObjectName("label")
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
+ self.windowFunctionComboBox = QtWidgets.QComboBox(QSpectrumAnalyzerSmoothingFrequency)
+ self.windowFunctionComboBox.setObjectName("windowFunctionComboBox")
+ self.windowFunctionComboBox.addItem("")
+ self.windowFunctionComboBox.addItem("")
+ self.windowFunctionComboBox.addItem("")
+ self.windowFunctionComboBox.addItem("")
+ self.windowFunctionComboBox.addItem("")
+ self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.windowFunctionComboBox)
+ self.label_2 = QtWidgets.QLabel(QSpectrumAnalyzerSmoothingFrequency)
+ self.label_2.setObjectName("label_2")
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
+ self.windowLengthSpinBox = QtWidgets.QSpinBox(QSpectrumAnalyzerSmoothingFrequency)
+ self.windowLengthSpinBox.setMinimum(3)
+ self.windowLengthSpinBox.setMaximum(1001)
+ self.windowLengthSpinBox.setProperty("value", 11)
+ self.windowLengthSpinBox.setObjectName("windowLengthSpinBox")
+ self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.windowLengthSpinBox)
+ self.verticalLayout.addLayout(self.formLayout)
+ spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.verticalLayout.addItem(spacerItem)
+ self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerSmoothingFrequency)
+ self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
+ self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
+ self.buttonBox.setObjectName("buttonBox")
+ self.verticalLayout.addWidget(self.buttonBox)
+ self.label.setBuddy(self.windowFunctionComboBox)
+ self.label_2.setBuddy(self.windowLengthSpinBox)
+
+ self.retranslateUi(QSpectrumAnalyzerSmoothingFrequency)
+ self.windowFunctionComboBox.setCurrentIndex(1)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerSmoothingFrequency.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerSmoothingFrequency.reject) # type: ignore
+ QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSmoothingFrequency)
+ QSpectrumAnalyzerSmoothingFrequency.setTabOrder(self.windowFunctionComboBox, self.windowLengthSpinBox)
+ QSpectrumAnalyzerSmoothingFrequency.setTabOrder(self.windowLengthSpinBox, self.buttonBox)
+
+ def retranslateUi(self, QSpectrumAnalyzerSmoothingFrequency):
+ _translate = QtCore.QCoreApplication.translate
+ QSpectrumAnalyzerSmoothingFrequency.setWindowTitle(_translate("QSpectrumAnalyzerSmoothingFrequency", "Frequency Smoothing - QSpectrumAnalyzer"))
+ self.label.setText(_translate("QSpectrumAnalyzerSmoothingFrequency", "&Window function:"))
+ self.windowFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerSmoothingFrequency", "rectangular"))
+ self.windowFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerSmoothingFrequency", "hanning"))
+ self.windowFunctionComboBox.setItemText(2, _translate("QSpectrumAnalyzerSmoothingFrequency", "hamming"))
+ self.windowFunctionComboBox.setItemText(3, _translate("QSpectrumAnalyzerSmoothingFrequency", "bartlett"))
+ self.windowFunctionComboBox.setItemText(4, _translate("QSpectrumAnalyzerSmoothingFrequency", "blackman"))
+ self.label_2.setText(_translate("QSpectrumAnalyzerSmoothingFrequency", "Window len>h:"))
diff --git a/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing.py b/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_temporal.py
similarity index 65%
rename from qspectrumanalyzer/ui_qspectrumanalyzer_smoothing.py
rename to qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_temporal.py
index 7c8da5e..8c0fe0f 100644
--- a/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing.py
+++ b/qspectrumanalyzer/ui_qspectrumanalyzer_smoothing_temporal.py
@@ -1,25 +1,28 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_smoothing.ui'
+# Form implementation generated from reading ui file 'qspectrumanalyzer_smoothing_temporal.ui'
#
-# Created by: PyQt5 UI code generator 5.8
+# Created by: PyQt5 UI code generator 5.15.6
#
-# WARNING! All changes made in this file will be lost!
+# WARNING: Any manual changes made to this file will be lost when pyuic5 is
+# run again. Do not edit this file unless you know what you are doing.
-from Qt import QtCore, QtGui, QtWidgets
-class Ui_QSpectrumAnalyzerSmoothing(object):
- def setupUi(self, QSpectrumAnalyzerSmoothing):
- QSpectrumAnalyzerSmoothing.setObjectName("QSpectrumAnalyzerSmoothing")
- QSpectrumAnalyzerSmoothing.resize(250, 130)
- self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerSmoothing)
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_QSpectrumAnalyzerSmoothingTemporal(object):
+ def setupUi(self, QSpectrumAnalyzerSmoothingTemporal):
+ QSpectrumAnalyzerSmoothingTemporal.setObjectName("QSpectrumAnalyzerSmoothingTemporal")
+ QSpectrumAnalyzerSmoothingTemporal.resize(250, 130)
+ self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerSmoothingTemporal)
self.verticalLayout.setObjectName("verticalLayout")
self.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
- self.label = QtWidgets.QLabel(QSpectrumAnalyzerSmoothing)
+ self.label = QtWidgets.QLabel(QSpectrumAnalyzerSmoothingTemporal)
self.label.setObjectName("label")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
- self.windowFunctionComboBox = QtWidgets.QComboBox(QSpectrumAnalyzerSmoothing)
+ self.windowFunctionComboBox = QtWidgets.QComboBox(QSpectrumAnalyzerSmoothingTemporal)
self.windowFunctionComboBox.setObjectName("windowFunctionComboBox")
self.windowFunctionComboBox.addItem("")
self.windowFunctionComboBox.addItem("")
@@ -27,10 +30,10 @@ def setupUi(self, QSpectrumAnalyzerSmoothing):
self.windowFunctionComboBox.addItem("")
self.windowFunctionComboBox.addItem("")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.windowFunctionComboBox)
- self.label_2 = QtWidgets.QLabel(QSpectrumAnalyzerSmoothing)
+ self.label_2 = QtWidgets.QLabel(QSpectrumAnalyzerSmoothingTemporal)
self.label_2.setObjectName("label_2")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
- self.windowLengthSpinBox = QtWidgets.QSpinBox(QSpectrumAnalyzerSmoothing)
+ self.windowLengthSpinBox = QtWidgets.QSpinBox(QSpectrumAnalyzerSmoothingTemporal)
self.windowLengthSpinBox.setMinimum(3)
self.windowLengthSpinBox.setMaximum(1001)
self.windowLengthSpinBox.setProperty("value", 11)
@@ -39,7 +42,7 @@ def setupUi(self, QSpectrumAnalyzerSmoothing):
self.verticalLayout.addLayout(self.formLayout)
spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
- self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerSmoothing)
+ self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerSmoothingTemporal)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
@@ -47,22 +50,21 @@ def setupUi(self, QSpectrumAnalyzerSmoothing):
self.label.setBuddy(self.windowFunctionComboBox)
self.label_2.setBuddy(self.windowLengthSpinBox)
- self.retranslateUi(QSpectrumAnalyzerSmoothing)
+ self.retranslateUi(QSpectrumAnalyzerSmoothingTemporal)
self.windowFunctionComboBox.setCurrentIndex(1)
- self.buttonBox.accepted.connect(QSpectrumAnalyzerSmoothing.accept)
- self.buttonBox.rejected.connect(QSpectrumAnalyzerSmoothing.reject)
- QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSmoothing)
- QSpectrumAnalyzerSmoothing.setTabOrder(self.windowFunctionComboBox, self.windowLengthSpinBox)
- QSpectrumAnalyzerSmoothing.setTabOrder(self.windowLengthSpinBox, self.buttonBox)
+ self.buttonBox.accepted.connect(QSpectrumAnalyzerSmoothingTemporal.accept) # type: ignore
+ self.buttonBox.rejected.connect(QSpectrumAnalyzerSmoothingTemporal.reject) # type: ignore
+ QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSmoothingTemporal)
+ QSpectrumAnalyzerSmoothingTemporal.setTabOrder(self.windowFunctionComboBox, self.windowLengthSpinBox)
+ QSpectrumAnalyzerSmoothingTemporal.setTabOrder(self.windowLengthSpinBox, self.buttonBox)
- def retranslateUi(self, QSpectrumAnalyzerSmoothing):
+ def retranslateUi(self, QSpectrumAnalyzerSmoothingTemporal):
_translate = QtCore.QCoreApplication.translate
- QSpectrumAnalyzerSmoothing.setWindowTitle(_translate("QSpectrumAnalyzerSmoothing", "Smoothing - QSpectrumAnalyzer"))
- self.label.setText(_translate("QSpectrumAnalyzerSmoothing", "&Window function:"))
- self.windowFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerSmoothing", "rectangular"))
- self.windowFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerSmoothing", "hanning"))
- self.windowFunctionComboBox.setItemText(2, _translate("QSpectrumAnalyzerSmoothing", "hamming"))
- self.windowFunctionComboBox.setItemText(3, _translate("QSpectrumAnalyzerSmoothing", "bartlett"))
- self.windowFunctionComboBox.setItemText(4, _translate("QSpectrumAnalyzerSmoothing", "blackman"))
- self.label_2.setText(_translate("QSpectrumAnalyzerSmoothing", "Window len>h:"))
-
+ QSpectrumAnalyzerSmoothingTemporal.setWindowTitle(_translate("QSpectrumAnalyzerSmoothingTemporal", "Temporal Smoothing - QSpectrumAnalyzer"))
+ self.label.setText(_translate("QSpectrumAnalyzerSmoothingTemporal", "&Window function:"))
+ self.windowFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerSmoothingTemporal", "rectangular"))
+ self.windowFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerSmoothingTemporal", "hanning"))
+ self.windowFunctionComboBox.setItemText(2, _translate("QSpectrumAnalyzerSmoothingTemporal", "hamming"))
+ self.windowFunctionComboBox.setItemText(3, _translate("QSpectrumAnalyzerSmoothingTemporal", "bartlett"))
+ self.windowFunctionComboBox.setItemText(4, _translate("QSpectrumAnalyzerSmoothingTemporal", "blackman"))
+ self.label_2.setText(_translate("QSpectrumAnalyzerSmoothingTemporal", "Window len>h:"))