On Thu, Aug 28, 2014 at 7:04 AM, Tom Rondeau <[email protected]> wrote:
> On Wed, Aug 27, 2014 at 9:33 AM, Jared Dulmage <[email protected]> > wrote: > >> It appears that the MPSK m2m4 SNR estimator has an extra factor of 2. >> >> gnuradio/gr-digital/mpsk_snr_est.cc:169:175 >> double >> mpsk_snr_est_m2m4::snr() >> { >> double y1_2 = d_y1*d_y1; >> return 10.0*log10(2.0*sqrt(2*y1_2 - d_y2) / >> (d_y1 - sqrt(2*y1_2 - d_y2))); >> } >> >> where d_y1 and d_y2 are the running 2nd and 4th moments of the input, >> respectively. >> >> The 2.0* is not present in the estimate expression from the reference >> (Pauluzzi and Beaulieu eq. 39). >> >> The 3 dB offset can also be seen by generating a signal (say random BPSK) >> with AWGN, measuring the signal and noise powers separately while >> estimating the SNR via the m2m4 on the sum. >> >> It's an easy fix, I just wanted to get verification and notify other >> users. >> >> Thanks, >> Jared. >> > > Hi Jared, > > I'd have to review the paper again, but I suspect you're right. I was > using this estimator just the other day and scratching my head about the > results. I was on a plane, though, and was really focused on something else. > > Thanks! > > Tom > Just tested this and it looks fine the way it is. Are you doing real or complex signals? The estimators are designed to work with complex numbers, so that might be the difference you're seeing. I just have a simple simulation that I can switch between BPSK and QPSK (both complex signals, though). I use the MPSK measurement block and calculate the power of the signal and noise separately and output that to a number sink. With the current method, I see the same SNRs on both paths. There is also the gr-digital/examples/snr_estimators.py example you can explore to compare them. Tom
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
