> From: Eugene Grayver > Subject: [Discuss-gnuradio] Bug in fmdet_cf_imp.cc > Date: Fri, 8 Jun 2018 18:48:56 +0000 > > Hello, > > > > There is a bug in the FM demod. Unbelievably (almost), I reported a > bug in the same line a couple of years ago. At that time I also > goofed (should have not retyped it). The equation is STILL wrong!
Issues submitted to the mailing list will ultimately be forgotten. Issues submitted in GitHub shouldn't get lost. https://github.com/gnuradio/gnuradio/issues > > Sdot = d_scl * (-S0+d_8*S1-d_8*S2+S4); > > > > Should be > > > > Sdot = d_scl * (-S0+d_8*S1-d_8*S3+S4); > > > > > > > > It is crazy that the basic FM demo works at all. Well, all of these discrete derivatives are approximations. Depending on the input, the filter still might be close enough. What's really crazy is that this block is implementing an FIR in that "Sdot =" line and storing input sample history itself in some other lines, in a C++ loop. This block should be using volk SIMD implementations for the FIR filtering and using the block's history functionality to handle the history. In fact, to get an even better derivative, instead of using the existing taps, this block could use the MMSE interpolating differentitator (with a mu fixed at 0.0) to get a better derivative and use a volk implementation at the same time. Regards, Andy > _______________________ > Eugene Grayver, Ph.D. > Aerospace Corp., Sr. Eng. Spec. > Tel: 310.336.1274 > ________________________ > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio