Hey Tom, I just re-read the section around eq 39, and you are right. I looked at 39 and thought he setup the ratio, Eq37/Eq38, but that's not what he did. It's clear now and you're code is correct. Sorry about that.
Rich On Thu, Oct 15, 2015 at 10:57 AM, Tom Rondeau <[email protected]> wrote: > On Thu, Oct 15, 2015 at 1:49 PM, Richard Bell <[email protected]> > wrote: > >> I figured out what was causing my numbers to be incorrect using M2M4. I >> was overlooking the fact that I was injecting noise at sample rate, but >> estimating noise power and a decimated rate. Once I took this into account, >> the estimate was in line with what I expect. >> >> I have not reconciled the difference between the paper algorithm and >> implemented gnuradio algorithm, but that will have to wait for another day, >> since it seems to work for now. >> >> Rich >> > > Good. I was just about to respond. > > I'm not sure what you're missing between eq. 39 in the paper and the code > as it's written? Ignoring that I call them d_signal and d_noise (and the > results of the estimates always looked fine to me), what's different? > > The mpsk_snr_est_m2m4 is specific to PSK constellations where ka and kw > are assumed known. For other modulations, he solves it, but you need to > know ka and kw as parameters, which is where the problem lies in using it. > I put it in there as a tool for future use in other scenarios, but it's > unnecessary for M-PSK and more computations. > > Tom > > > > >> On Tue, Oct 13, 2015 at 6:10 PM, Richard Bell <[email protected]> >> wrote: >> >>> I've been comparing the m2m4 algorithm from the Norman Beaulieu paper "A >>> Comparison of SNR Estimation Techniques" to what is implemented in the >>> mpsk_snr_est.cc file. I see two implementations of the algorithm in that >>> file, one of which looks perfectly in-line with the paper and the other >>> does not. I am having issues producing proper noise power estimates using >>> the MPSK SNR Estimator Probe block, so it forced me to dig into this stuff. >>> >>> The algorithm that does not match the paper, is what is actually used in >>> gnuradio, so I'd like to discuss this. The two different implementations >>> are in the mpsk_snr_est.cc file and are defined in two different functions >>> >>> 1) mpsk_snr_est_m2m4::snr() >>> 2) snr_est_m2m4::snr() >>> >>> The algorithm in 1) is what is instantiated and used referring to the >>> set_type() function defined in probe_mpsk_snr_est_c_impl.cc. >>> >>> The problem with 1) is that it uses equation 39 from the paper, which >>> represents SNR and concluded the Signal power must be the numerator and the >>> noise power must be the denominator. This is not necessarily true, because >>> much simplification has occurred to produce that SNR equation. The >>> algorithm in 2) does not make this mistake and is what I believe should be >>> used. >>> >>> As far as I can tell, 2) snr_est_m2m4::snr never gets used. This happens >>> to be the algorithm that agrees with the paper perfectly. What is going on >>> here, is this a place holder or can this be used without re-compiling GNU >>> Radio? >>> >>> Thanks, >>> Rich >>> >> >> >> _______________________________________________ >> Discuss-gnuradio mailing list >> [email protected] >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >> >> >
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
