discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Bug in fmdet_cf_imp.cc


From: Andy Walls
Subject: Re: [Discuss-gnuradio] Bug in fmdet_cf_imp.cc
Date: Sat, 09 Jun 2018 09:13:56 -0400

> 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
> ________________________
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]