Complex FIR and Stereo support for rtl_fm

Michał Morański michal.moranski at
Mon Sep 16 09:36:12 UTC 2013

W dniu 2013-09-13 15:22, Miroslav Slugeň pisze:
> Hi again,
> I am working on my own SDR project for Stereo FM radio support, but i 
> would like to also improve quality for rtl_fm application, i made 
> unoficial patch to add:
> Complex FIR - to filter strong signals close to wanted signal
> Real FIR - to filter pilot from FM
> Stereo FIR
> Stereo Deemphasis
> AGC support - it can give better resolution of IQ data
> Some other improvments in FM radio code.
> All FIR filters has 3 possible variants, simple, LUT, SSE2 instricts, 
> of course SSE is the fastest one and it should works on Intel Atoms, 
> but not on ARM.
> Feel free to use any part of code in any of you programs, I know that 
> this code is little to much to add it into rtl_fm, but maybe it could 
> somebody help to recieve HW stereo FM radio.
> Speed of SSE code is much better than anything you can get around 
> here, on Core i7 it consume only 5% of one CPU, so i could demodulate 
> at least 80 channels at the same time in stereo quality of course.
> I tried this code only on AMD64 and GCC Linux, so i am not sure if it 
> can be compiled under windows.
Hi! Very nice to hear, that someone working on Stereo FM reception. I'm 
building a small remote devices with rtl-dongles as fm stereo receivers. 
Now i'm using gnu-radio to decode fm-stereo, but as you all know, 
gnu-radio is a large and heavy project and it's wasting its 
capatibilities in that role.
It would be very nice if native rtl-sdr software can decode fm-stereo.

Which version of rtl-sdr was used as base version? I'm getting errors 
after applying the patch to last version:

patching file rtl_fm.c
Hunk #2 succeeded at 47 (offset 5 lines).
Hunk #3 succeeded at 87 (offset 9 lines).
Hunk #4 succeeded at 144 (offset 9 lines).
Hunk #5 succeeded at 169 (offset 9 lines).
Hunk #6 succeeded at 190 (offset 9 lines).
Hunk #7 FAILED at 239.
Hunk #8 FAILED at 258.
Hunk #9 succeeded at 314 (offset 13 lines).
Hunk #10 succeeded at 420 (offset 13 lines).
Hunk #11 succeeded at 994 (offset 13 lines).
Hunk #12 FAILED at 1106.
Hunk #13 succeeded at 1148 (offset 15 lines).
Hunk #14 succeeded at 1259 (offset 35 lines).
Hunk #15 succeeded at 1268 (offset 35 lines).
Hunk #16 succeeded at 1290 (offset 35 lines).
Hunk #17 succeeded at 1301 with fuzz 2 (offset 36 lines).
Hunk #18 succeeded at 1351 (offset 38 lines).
Hunk #19 succeeded at 1378 (offset 38 lines).
Hunk #20 succeeded at 1389 (offset 38 lines).
Hunk #21 succeeded at 1508 (offset 50 lines).
Hunk #22 succeeded at 1527 (offset 50 lines).
3 out of 22 hunks FAILED -- saving rejects to file rtl_fm.c.rej

P.S. Are you planning to add support for RDS in the future?

Regards, Michał.

More information about the osmocom-sdr mailing list