Revision 5ede0e2b gr-wxgui/src/python/fftsink2.py
| b/gr-wxgui/src/python/fftsink2.py | ||
|---|---|---|
| 91 | 91 |
|
| 92 | 92 |
|
| 93 | 93 |
class fft_sink_f(gr.hier_block2, fft_sink_base): |
| 94 |
def __init__(self, parent, baseband_freq=0, |
|
| 94 |
def __init__(self, parent, baseband_freq=0, ref_scale=1.0,
|
|
| 95 | 95 |
y_per_div=10, y_divs=8, ref_level=50, sample_rate=1, fft_size=512, |
| 96 | 96 |
fft_rate=default_fft_rate, average=False, avg_alpha=None, |
| 97 | 97 |
title='', size=default_fftsink_size, peak_hold=False): |
| ... | ... | |
| 122 | 122 |
|
| 123 | 123 |
# FIXME We need to add 3dB to all bins but the DC bin |
| 124 | 124 |
self.log = gr.nlog10_ff(20, self.fft_size, |
| 125 |
-20*math.log10(self.fft_size)-10*math.log10(power/self.fft_size)) |
|
| 125 |
-20*math.log10(self.fft_size) # Adjust for number of bins |
|
| 126 |
-10*math.log10(power/self.fft_size) # Adjust for windowing loss |
|
| 127 |
-20*math.log10(ref_scale)) # Adjust for reference scale |
|
| 128 |
|
|
| 126 | 129 |
self.sink = gr.message_sink(gr.sizeof_float * self.fft_size, self.msgq, True) |
| 127 | 130 |
self.connect(self, self.s2p, self.one_in_n, self.fft, self.c2mag, self.avg, self.log, self.sink) |
| 128 | 131 |
|
| ... | ... | |
| 131 | 134 |
|
| 132 | 135 |
|
| 133 | 136 |
class fft_sink_c(gr.hier_block2, fft_sink_base): |
| 134 |
def __init__(self, parent, baseband_freq=0, |
|
| 137 |
def __init__(self, parent, baseband_freq=0, ref_scale=1.0,
|
|
| 135 | 138 |
y_per_div=10, y_divs=8, ref_level=50, sample_rate=1, fft_size=512, |
| 136 | 139 |
fft_rate=default_fft_rate, average=False, avg_alpha=None, |
| 137 | 140 |
title='', size=default_fftsink_size, peak_hold=False): |
| ... | ... | |
| 162 | 165 |
|
| 163 | 166 |
# FIXME We need to add 3dB to all bins but the DC bin |
| 164 | 167 |
self.log = gr.nlog10_ff(20, self.fft_size, |
| 165 |
-20*math.log10(self.fft_size)-10*math.log10(power/self.fft_size)) |
|
| 168 |
-20*math.log10(self.fft_size) # Adjust for number of bins |
|
| 169 |
-10*math.log10(power/self.fft_size) # Adjust for windowing loss |
|
| 170 |
-20*math.log10(ref_scale)) # Adjust for reference scale |
|
| 171 |
|
|
| 166 | 172 |
self.sink = gr.message_sink(gr.sizeof_float * self.fft_size, self.msgq, True) |
| 167 | 173 |
self.connect(self, self.s2p, self.one_in_n, self.fft, self.c2mag, self.avg, self.log, self.sink) |
| 168 | 174 |
|
Also available in: Unified diff