summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-fft/grc/fft_logpwrfft_x.block.yml9
-rw-r--r--gr-fft/python/fft/logpwrfft.py6
2 files changed, 11 insertions, 4 deletions
diff --git a/gr-fft/grc/fft_logpwrfft_x.block.yml b/gr-fft/grc/fft_logpwrfft_x.block.yml
index 47ca169496..1b8b4a4c30 100644
--- a/gr-fft/grc/fft_logpwrfft_x.block.yml
+++ b/gr-fft/grc/fft_logpwrfft_x.block.yml
@@ -36,6 +36,12 @@ parameters:
label: Average Alpha
dtype: real
default: '1.0'
+- id: shift
+ label: FFT Shift
+ dtype: bool
+ default: 'False'
+ options: ['True', 'False']
+ option_labels: ['On', 'Off']
inputs:
- domain: stream
@@ -55,7 +61,8 @@ templates:
ref_scale=${ref_scale},
frame_rate=${frame_rate},
avg_alpha=${avg_alpha},
- average=${average})
+ average=${average},
+ shift=${shift})
callbacks:
- set_sample_rate(${sample_rate})
- set_avg_alpha(${avg_alpha})
diff --git a/gr-fft/python/fft/logpwrfft.py b/gr-fft/python/fft/logpwrfft.py
index f3c27342cd..82f852e190 100644
--- a/gr-fft/python/fft/logpwrfft.py
+++ b/gr-fft/python/fft/logpwrfft.py
@@ -26,7 +26,7 @@ class _logpwrfft_base(gr.hier_block2):
Create a log10(abs(fft)) stream chain, with real or complex input.
"""
- def __init__(self, sample_rate, fft_size, ref_scale, frame_rate, avg_alpha, average, win=None):
+ def __init__(self, sample_rate, fft_size, ref_scale, frame_rate, avg_alpha, average, win=None, shift=False):
"""
Create an log10(abs(fft)) stream chain.
Provide access to the setting the filter and sample rate.
@@ -39,6 +39,7 @@ class _logpwrfft_base(gr.hier_block2):
avg_alpha: FFT averaging (over time) constant [0.0-1.0]
average: Whether to average [True, False]
win: the window taps generation function
+ shift: shift zero-frequency component to center of spectrum
"""
gr.hier_block2.__init__(self, self._name,
gr.io_signature(1, 1, self._item_size), # Input signature
@@ -48,10 +49,9 @@ class _logpwrfft_base(gr.hier_block2):
sample_rate=sample_rate,
vec_rate=frame_rate,
vec_len=fft_size)
-
if win is None: win = window.blackmanharris
fft_window = win(fft_size)
- fft = self._fft_block[0](fft_size, True, fft_window)
+ fft = self._fft_block[0](fft_size, True, fft_window, shift=shift)
window_power = sum([x*x for x in fft_window])
c2magsq = blocks.complex_to_mag_squared(fft_size)