Hello, 1) In Log Power FFT documentation 'Create a log10(abs(fft)) stream chain, with real or complex input.' it seems that is missing the ^2. 2) I write a generic SNR routine as a Python block. It seems OK.
import numpy as npfrom gnuradio import gr class my_snr(gr.decim_block): # decimation = fft_size """SNR calculation by George SV1BDS""" def __init__(self, fft_size = 1024 ): # only default arguments here """arguments to this function show up as parameters in GRC""" gr.decim_block.__init__( self, name='SNR', # will show up in GRC in_sig=[np.complex64], out_sig=[np.float32], decim = fft_size ) self.set_relative_rate(1.0/fft_size) self.fft_size = fft_size def work(self, input_items, output_items): """SNR routine""" a = np.asarray(input_items[0][:]) f = np.fft.fft(a) x = 10*np.log10(np.real(f*np.conj(f))) output_items[0][:] = np.amax(x)-np.mean(x) return 1 Is it of general interest to include it in GNURadio ? Best regards