Skip to content
Snippets Groups Projects
Commit c5e74112 authored by Merlo, Jason's avatar Merlo, Jason
Browse files

Fixed rescaling on spectrogram widget

parent cc914e25
No related branches found
No related tags found
No related merge requests found
...@@ -20,7 +20,7 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -20,7 +20,7 @@ class SpectrogramWidget(pg.PlotWidget):
super(SpectrogramWidget, self).__init__() super(SpectrogramWidget, self).__init__()
# Copy arguments to member variables # Copy arguments to member variables
self.data_mgr = radar.data_mgr self.data_mgr = radar.daq
self.source = self.data_mgr.source self.source = self.data_mgr.source
self.radar = radar self.radar = radar
self.spectrogram_length = spectrogram_length self.spectrogram_length = spectrogram_length
...@@ -28,6 +28,8 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -28,6 +28,8 @@ class SpectrogramWidget(pg.PlotWidget):
self.source.sample_chunk_size / self.source.sample_rate self.source.sample_chunk_size / self.source.sample_rate
self.show_max_plot = show_max_plot self.show_max_plot = show_max_plot
self.fft_xrange = fft_xrange
# TODO temp # TODO temp
self.speed = 10 self.speed = 10
self.downsample = 10 self.downsample = 10
...@@ -97,7 +99,7 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -97,7 +99,7 @@ class SpectrogramWidget(pg.PlotWidget):
self.addItem(self.img) self.addItem(self.img)
# Allocate image array to store spectrogram # Allocate image array to store spectrogram
self.img_array = np.zeros((int(self.radar.cfft_data.size / self.downsample), spectrogram_length)) self.img_array = np.zeros((round(self.radar.fast_fft_data.size / self.downsample), spectrogram_length))
# Get the colormap # Get the colormap
colormap = cm.get_cmap("jet") # cm.get_cmap("CMRmap") colormap = cm.get_cmap("jet") # cm.get_cmap("CMRmap")
...@@ -114,13 +116,13 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -114,13 +116,13 @@ class SpectrogramWidget(pg.PlotWidget):
# yscale = (log_freq_range[-1] / self.img_array.shape[0]) # yscale = (log_freq_range[-1] / self.img_array.shape[0])
# self.img.scale((1. / self.source.sample_rate) * self.source.chunk_size / self.speed, yscale) # self.img.scale((1. / self.source.sample_rate) * self.source.chunk_size / self.speed, yscale)
# self.setLogMode(y=True) # self.setLogMode(y=True)
self.img.scale(1, self.radar.bin_size * self.downsample) self.img.scale(1, self.radar.fast_bin_size * self.downsample)
self.setRange(disableAutoRange=True, yRange=np.array(fft_xrange)) self.setRange(disableAutoRange=True, yRange=np.array(fft_xrange))
self.setLimits( self.setLimits(
yMin=-self.source.sample_rate/2, yMax=self.source.sample_rate/2) yMin=-self.source.sample_rate/2, yMax=self.source.sample_rate/2)
self.img.translate(0, -self.radar.cfft_data.size / (2 * self.downsample)) self.img.translate(0, -self.radar.fast_fft_data.size / (2 * self.downsample))
self.setLabel('left', 'Frequency', units='Hz') self.setLabel('left', 'Frequency', units='Hz')
self.showGrid(x=False, y=True) self.showGrid(x=False, y=True)
...@@ -139,9 +141,9 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -139,9 +141,9 @@ class SpectrogramWidget(pg.PlotWidget):
ALPHA = 0.75 ALPHA = 0.75
AVG_SAMPLES = 2*self.speed AVG_SAMPLES = 2*self.speed
if self.radar.cfft_data is not None: if self.radar.fast_fft_data is not None:
downsampled = self.radar.cfft_data[::self.downsample] downsampled = self.radar.fast_fft_data[::self.downsample]
log_fft = 10 * np.log(downsampled) log_fft = 10 * np.log(downsampled)
...@@ -175,3 +177,18 @@ class SpectrogramWidget(pg.PlotWidget): ...@@ -175,3 +177,18 @@ class SpectrogramWidget(pg.PlotWidget):
# When paused, redraw after reset # When paused, redraw after reset
if self.data_mgr.paused: if self.data_mgr.paused:
self.update() self.update()
self.rescale()
def rescale(self):
self.img.resetTransform()
self.update_period = \
self.source.sample_chunk_size / self.source.sample_rate
self.img.scale(1, self.radar.fast_bin_size * self.downsample)
self.setRange(disableAutoRange=True, yRange=np.array(self.fft_xrange))
self.setLimits(
yMin=-self.source.sample_rate/2, yMax=self.source.sample_rate/2)
self.img.translate(0, -self.radar.fast_fft_data.size / (2 * self.downsample))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment