Complex FIR and Stereo support for rtl_fm

Miroslav Slugeň thunder.m at email.cz
Mon Sep 16 09:50:49 UTC 2013


I also forget to add that you can now use:

-W for FM radio in USA (deemphasis 75us)
-X for FM radio in other countries (deemphasis 50us)

This mode is designed for 48kHz reception, i know it is not necessary 
(fm radio has only 16kHz, so 32kHz shouhld be enough), but it is because 
of good multiplications, othervise we have to use complicated resampler.

Usage for FM reception will be now:
rtl_fm -X -f 97400000 - | aplay -r 48k -f S16_LE -t raw -c 2

Mirek

Miroslav Slugeň napsal(a):
> Hi, i used git from 14.9.2013, if you get errors from actual git it
> could be because some functions might go into upstream, i also add as
> attachment just rtl_fm.c so just replace it your version with this
> version and it should work.
>
> I have RDS decoder also, but it is very ugly and not all issues are solved.
>
> Miroslav Slugeň
> +420 724 825 885
>
> Michał Morański napsal(a):
>> 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