This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/osmocom-sdr@lists.osmocom.org/.
Michał Morański michal.moranski at gmail.comW dniu 2013-09-16 15:05, Miroslav Slugeň pisze: > Thanks for testing, is it 32bit arch? Right. > > All memory buffers used in SSE should be 16bit aligned, please try no > SSE version: > > rtl_fm -X -F 2 -J 5 -f yourfreq > > Also you can try modified rtl_fm version i send as attachment which > use memalign to allocate buffers instead of malloc, but it is only for > gcc. Yeah! The code attached works perfectly! Thank you so much! :) > > On X86_64 platform all malloc are 16bit aligned so i missed this. > > Those errors when compiling are not important, but also in SSE part. > > Miroslav Slugeň > +420 724 825 885 > > Michał Morański napsal(a): >> W dniu 2013-09-16 11:38, Miroslav Slugeň pisze: >>> 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. >> Thanks for rapid answer. I just compiled your code. >> First, i got this message when compiling: >> /usr/lib/gcc/i486-linux-gnu/4.4.3/include/emmintrin.h:32:3: error: >> #error "SSE2 instruction set not enabled" >> Then i've added line to CMakeLists.txt: >> set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3") >> After that i was able to compile the code, but with some warnings: >> >> /usr/src/rtl-sdr/src/rtl_fm.c: In function ‘low_pass_complex’: >> /usr/src/rtl-sdr/src/rtl_fm.c:451: warning: dereferencing pointer ‘v_r’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:436: note: initialized from here >> /usr/src/rtl-sdr/src/rtl_fm.c:452: warning: dereferencing pointer ‘v_i’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:436: note: initialized from here >> /usr/src/rtl-sdr/src/rtl_fm.c: In function ‘low_pass_real’: >> /usr/src/rtl-sdr/src/rtl_fm.c:769: warning: dereferencing pointer ‘v_m’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:755: note: initialized from here >> /usr/src/rtl-sdr/src/rtl_fm.c:850: warning: dereferencing pointer ‘v_m’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:872: warning: dereferencing pointer ‘v_m’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:834: note: initialized from here >> /usr/src/rtl-sdr/src/rtl_fm.c:851: warning: dereferencing pointer ‘v_p’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:834: note: initialized from here >> /usr/src/rtl-sdr/src/rtl_fm.c:852: warning: dereferencing pointer ‘v_s’ >> does break strict-aliasing rules >> /usr/src/rtl-sdr/src/rtl_fm.c:873: warning: dereferencing pointer ‘v_s’ >> does break strict-aliasing rules >> >> Now i got segfaults when i try to run rtl_fm -X -f 90.4e6 : >> root at dabplus:/usr/src/rtl-sdr# rtl_fm -X -f 90.4e6 - >> Found 1 device(s): >> 0: Realtek, RTL2838UHIDIR, SN: 00000001 >> >> Using device 0: Lifeview LV5TDeluxe >> Found Fitipower FC0013 tuner >> Oversampling input by: 6x. >> Oversampling output by: 1x. >> Buffer size: 7.11ms >> Tuned to 90704000 Hz. >> Sampling at 1152000 Hz. >> Output at 48000 Hz. >> LP Complex: FIR hamming (SSE2), size: 32 >> LP Real: FIR hamming stereo (SSE2), size: 64 >> Tuner gain set to automatic. >> Tuner AGC ON. >> De-epmhasis IIR: 50.0 us >> Segmentation fault >> >> My processor: >> root at dabplus:/usr/src/rtl-sdr# cat /proc/cpuinfo >> processor : 0 >> vendor_id : GenuineIntel >> cpu family : 6 >> model : 28 >> model name : Intel(R) Atom(TM) CPU D525 @ 1.80GHz >> ..... >> root at dabplus:/usr/src/rtl-sdr# cat /etc/issue >> Ubuntu 10.04.4 LTS \n \l >> >> root at dabplus:/usr/src/rtl-sdr# uname -r >> 2.6.32-38-generic-pae >> >> >> >>> >>> I have RDS decoder also, but it is very ugly and not all issues are >>> solved. >> Wow :) If you searching for help with that you can count on me. >> >>> >>> 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ł. >>>> >>>> >> >>