Hi Kyle

I’ve looked at your commit. They way you are calculating the derivative of the 
sample may not actuate enough. I’m calculating the derivative as ds(n) = 
(s(n+1) - s(n-1))/2. Implementing a higher order derivative gives better sound, 
but eats the performance gain.

I’ve also tried to make a integer only version of the demodulator, but the 
rounding errors makes it sound terrible. Strange enough it is also faster doing 
things partly in integer and partly in floats.

I’v tried to profile the four methods in osx:

atan Fast: 11.5%running time
aran:lut 17.6% running time
atan std: 49.6% running time
aes: fm_demod2 22.9% running time

The percentage given is time spend in fm_dmod relative to the rest of the 
program.
/Anders

Den 30/01/2014 kl. 16.35 skrev keenerd <[email protected]>:

> On 1/30/14, keenerd <[email protected]> wrote:
>> On 1/30/14, Anders Lynge Esbensen <[email protected]> wrote:
>>> I've implemented a faster FM demodulator for rlt_fm.
>> 
>> Let me see if I can get a fixed-point version written.
> 
> I've cleaned it up and it is in my repo.  You can enable it with "-A ale"
> https://github.com/keenerd/rtl-sdr/commit/025fb56dff98
> 
> Some quick benchmarks:
> std: 10%
> fast: 7%
> lut: 7%
> ale: 7%
> 
> Sound quality is also noticably worse with ale, but that might be from
> an error in the fixed point conversion.  How does the math look to
> you?
> 
> -Kyle
> http://kmkeen.com
> 


Reply via email to