tag:blogger.com,1999:blog-5096278891763426276.post816383728626550138..comments2024-03-28T18:37:12.987+02:00Comments on absorptions: Receiving RDS with the RTL-SDROona Räisänenhttp://www.blogger.com/profile/08764440174916554983noreply@blogger.comBlogger44125tag:blogger.com,1999:blog-5096278891763426276.post-47200654722906534592017-04-07T05:46:17.092+03:002017-04-07T05:46:17.092+03:00Hi Oona!!!
I'm very happy to have found somebo...Hi Oona!!!<br />I'm very happy to have found somebody that can help me for a little great trouble...<br />I'm trying to modify the original visual studio source code of "Theremino SDR" program because I need for a new application to decode not only PI , PS and radio text.<br />I need to visualize and to put in a text box AF and to visualize the BER % of rds signal.<br />Can you gently help me for this add?<br />Theremino SDR has a RDS decoder but it has no AF and no BER.<br />I need this because I need to use this in car as a carputer radio.<br />Thank you very much!!!Anonymoushttps://www.blogger.com/profile/15005285238752754271noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-24646073859455810212016-12-03T21:48:01.428+02:002016-12-03T21:48:01.428+02:00So glad you've found it useful :) No need to b...So glad you've found it useful :) No need to be scared, I like writing code.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-44881901771804151062016-12-03T13:11:43.956+02:002016-12-03T13:11:43.956+02:00Yesterday I was so ethusiastic I haven't check...Yesterday I was so ethusiastic I haven't checked the ps at all, when I saw the radiotext, so later I just realized I was thinking: "Oh shoosh I really need this important data of station name, so I got scared and thinking about it, if you had so much work to work on all that source code (which I can imagine) or did you forgot". Today I woke up and after the breakfast I just wanted to bother you with my annoyance, and just check out your site and I've seen that you just updated "25minutes ago" and I just switch state of mind from the being too concerned into ecstasy again hehe :) Thank you again Oona, It means a lot to me. It will serve very efficiently. I'll keep you post it. You made my day again :) Thank you, once again.<br /><br />RegardsAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-48204723268543344482016-12-02T14:09:56.332+02:002016-12-02T14:09:56.332+02:00Oh my Lord, Oona I love you. I will be in touch. I...Oh my Lord, Oona I love you. I will be in touch. I think I have something for you in exchange - not related with programming though :) Cya<br /><br />EnjoyAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-43357992817599456812016-12-01T20:12:38.054+02:002016-12-01T20:12:38.054+02:00Thanks, very valuable data. I've fixed this is...Thanks, very valuable data. I've fixed this issue now; the current version on GitHub correctly decodes group 2B radiotext.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-34547378376438873222016-12-01T14:23:16.383+02:002016-12-01T14:23:16.383+02:00https://bpaste.net/show/abe9b29ddd11 <-what red...https://bpaste.net/show/abe9b29ddd11 <-what redsea gets in hex;<br />https://bpaste.net/show/a6350652a69d <-decoded with json<br /><br />0B should be decoded as "KRKA" and 2B should be decoded as "PRIJETNO POSLUSANJE RADIA KRKA" (and by the way as I said it always the same name for radiotext if that matters anything).<br />Please chech this for saving some time mybe-> already part of decoded hex PS + RT to strings https://bpaste.net/show/5879f0dbc044<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-36436123523561820352016-11-29T20:05:01.136+02:002016-11-29T20:05:01.136+02:00Start the program with this command:
rtl_fm -M fm...Start the program with this command:<br /><br />rtl_fm -M fm -l 0 -A std -p 0 -s 171k -g 40 -F 9 -f 87.9M | ./src/redsea -x<br /><br />Remember to replace 87.9M with the frequency that transmits 0B and 2B groups.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-44422403662309367402016-11-29T19:10:02.774+02:002016-11-29T19:10:02.774+02:00and by the way, what do you mean exactly with &quo...and by the way, what do you mean exactly with "-x flag" which one to be exact?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-75566215985704384262016-11-29T18:31:27.050+02:002016-11-29T18:31:27.050+02:00Please do this:
1. Tune to a frequency that transm...Please do this:<br />1. Tune to a frequency that transmits 0B and 2B groups.<br />2. Start redsea with the -x switch.<br />3. Let it run for a minute or two.<br />4. Copy and paste the output to pastebin.<br />5. Write the pastebin link here, in the comments section.<br /><br />This way I have some example data to work on. I don't have any test data on 0B and 2B groups, as I told above. 0B and 2B groups are not very common, and I don't have any test data to work on. Redsea already has support for 0B and 2B groups, but if it seems not be working, I need some test data.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-14882841072179368732016-11-29T13:41:57.582+02:002016-11-29T13:41:57.582+02:00if you just get me a advice how to change source c...if you just get me a advice how to change source code or maybe just a script would be very helpful. Now I have some backup programming skill by another person who is helping me right now, with this case of yours. Which is very useful, i just need the decode also 0B, and 2B groups. Sorry for being annoying, but it is very important to me. And once again, thank you for this very easy to use and useful programAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-16258637350358725562016-11-29T13:37:54.774+02:002016-11-29T13:37:54.774+02:00thank you for fast reply. So your code doesn't...thank you for fast reply. So your code doesn't decode 2B and 0B groups? (which is the same as 2A and 0A) Can I change that? Because this 2B uses for radiotext and i need that very bad, but the problem might be, because the fragment of '2B' is 4B long not 2B as group of '2A'. But it migh be the problems with the sampling mybe also? Once i remember that at gnu radio receiver didn't show me the rds information (at least radiotext) only the pi code like in your example - if i encrased the sample rate bigger then 1.2MS/s. So might be with the problem also here I don't know. But as I said I get rds information with gqrx app which is similar to yours only that i can't decode 2B group which is radiotext. And yes 2B and 0B uses to transmit radiotext and ps as well: http://www.nrscstandards.org/nrsc/NRSCFiles/RUWG/RUWG%20archive/PS%20specification%20-%20updated%20RDS%20Standard.pdf<br />http://www.nrscstandards.org/DocumentArchive/NRSC-4%201998.pdf<br /><br />So how can I help myself, any idea very please?<br />Thank you<br />RegardsAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-82560402306119251252016-11-29T07:49:09.201+02:002016-11-29T07:49:09.201+02:00Yes, redsea is sensitive to noise. This is a known...Yes, redsea is sensitive to noise. This is a known issue, and any ideas are welcome: <a href="https://github.com/windytan/redsea/issues/30" rel="nofollow">https://github.com/windytan/redsea/issues/30</a>. More about the recent versions in <a href="http://www.windytan.com/2016/10/redsea-07-lightweight-rds-decoder.html" rel="nofollow">this blog post</a>.<br /><br />By the way, I've never actually received a station that uses 2B groups. If you do receive a good signal at some point it'd be interesting to see a minute or two's worth of output using the -x flag.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-58199612336695322282016-11-28T16:19:37.216+02:002016-11-28T16:19:37.216+02:00I think the problem is at reception power(gain), b...I think the problem is at reception power(gain), but I might be wrong. I just check the code and there is definitely decoding for B groups also involved, but where I see the problem is that when I check the exact radio station with the 'gqrx' radio app which has also rds decoder It gets all the demand information also as fast as other radio that has 2A groups instead(which i get also immediatelly). But the reception power is weaker on the radio station (using 2B groups - in a way that varies from -3dBFS to the -11dBFS, it has some frequencies nearby, mybe thats the problem but it gets ful of values of rds at the end) <br /><br />So from the redsea side I get tuned (to avoid DC spike) a little different frequency then gqrx(using hardware frequency which is a little lower then redsea is set (only +103k). So from the redsea i get only pi code in the issued radio station (with groups of Bs). No matter how much time i wait. The radio station with groups of As <br />i get the all information almost immediately. And now I am confused as you also i suppose. I write too much and complicate. Forgive me. I just like app pretty much, not gonna lie, very simple and useful for my purpose. So I am asking to help me please.<br /><br />Hope i was enough exact with my explanation to understand me, other wise please let me put this problem in another way that you will definitely understand. <br /><br />thank you once again OonaAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-37653730681121567012016-11-28T13:22:35.549+02:002016-11-28T13:22:35.549+02:00Oh, okay. Thank you. But now I see the one problem...Oh, okay. Thank you. But now I see the one problem. I am trying to decode 2B and 0B groups also, some of the radios uses B also as you know I suppose. So where should I change the source code to solved this problem? I mean I get the 2B groups but without decoded text, but I am having bad radio reception at where I am using it - right now. Does redsea decode B groups also? I am confused, sorryAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-52564121686062898632016-11-24T09:38:16.837+02:002016-11-24T09:38:16.837+02:00This Linux command would extract only the first fu...This Linux command would extract only the first fully received RadioText field at 89.2 MHz (it uses jq):<br /><br />./rtl-rx.sh -f 89.2M | grep "\"radiotext\"" | jq '.radiotext' | head -n 1Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-30690268547290451262016-11-22T20:59:31.641+02:002016-11-22T20:59:31.641+02:00Hello Oona.
I have a problem. I am using ubuntu 1...Hello Oona. <br />I have a problem. I am using ubuntu 14.04 and I think that your redsea decoder could solved that without 2 much complicating with GNU radio: I would like to scan fm airband and from couple of captured stations I want to parse only radiotext group (one completed line per station), and then simultaneously by some database such as couchDB (apache) or maybe would be better RDBMS(Relational Database Management System) to store radiotext. And I have no idea how to start with even one single simple entry of radiotext being stored into database. Any kind of advice would bring me a lot of happiness, since I have very little of programming skill. <br /><br />And also, for trimming only one line of the radio stream I was wondering if i could help myself -- with following if statement: <br />if (rt_.isComplete()){<br /> printf(",\"radiotext\":\"%s\"",rt_.getLastCompleteStringTrimmed().c_str());} -- but i don't know where to put it and if does it make any sence or how to modify the script to do that.<br /><br />Thank you for your timeAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-41547071569988413722016-03-14T08:22:34.547+02:002016-03-14T08:22:34.547+02:00Thanks, very useful insight! I struggle(d) with PL...Thanks, very useful insight! I struggle(d) with PLL filters and the ones used here are not based on any thorough planning, to be honest. I'm writing a new version of redsea so I will take this into account.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-42840636265874290992016-03-14T01:55:43.664+02:002016-03-14T01:55:43.664+02:00Hi, thank you for the nice post. I am not a DSP ex...Hi, thank you for the nice post. I am not a DSP expert. Nevertheless, I have a few comments on your PLL. In your C-code you calculate the phase error: <br />d_phi_sc = 2*LP_PLL(bb0*bb1) <br />with bb0 = LP(sample[i]*cos(sc_phi)) approx. cos(d_phi)<br />and bb1 = LP(sample[i]*sin(sc_phi)) approx. -sin(d_phi)<br />Here sc_phi is the phase of your PLL signal and LP and LP_PLL are your two low pass filters. I assume the signal as sample[i] = cos(phi[i]) which gives you after mixing (=multiplication) + filtering the sin or cos of the phase difference d_phi. With this your d_phi_sc should converge towards 2*0.5*sin(2*d_phi). I think you assume d_phi is small and use sin(2*d_phi) ~ 2*d_phi. But this is wrong as long as your PLL is not locking. I did a simulation of the signal which confirms this. Additionally, on a real signal I see it sometimes locking and sometimes not. Without having tested it I would suggest to use:<br />d_phi_sc = atan2(-bb1,bb0) <br />which gives you the true phase error in all quadrants. Additionally, your small locking bandwidth and the large phase shift introduced by your filters (especially your 2.4kHz filter) could be improved. Maybe only one filter before the atan2 might be needed? Greetings, AndreasAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-5403674514918175732016-01-04T14:21:59.915+02:002016-01-04T14:21:59.915+02:00A few hints for those trying to figure out the cod...A few hints for those trying to figure out the code: It's worth mentioning that the code no longer matches the description above - in particular, the pilot tone stuff has been removed. Also, the subcarrier filter has been changed and no longer matches the mkfilter command line given in the code - the order is now 2 not 10.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-10892326235526095102015-11-18T10:43:03.997+02:002015-11-18T10:43:03.997+02:00Yeah, the waveform graphic is beautiful and very c...Yeah, the waveform graphic is beautiful and very clear! I second this :)Arunhttps://www.blogger.com/profile/13611078330223585792noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-83173382426118073262015-11-06T19:09:33.250+02:002015-11-06T19:09:33.250+02:00Great project. I just tested it on a little netboo...Great project. I just tested it on a little netbook (dell mini 1018) with a rtl-sdr usb dongle... On debian 8.2.<br />It works great. <br />I can understand and see how RDS works... my next step is to get TMC; but it seems more difficult... (I also saw your article about that... but did not test anything about TMC)<br />ThanksLudo972noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-65112299856510036462015-10-12T18:40:17.775+03:002015-10-12T18:40:17.775+03:00Very nice project! I've tested it on atom mini...Very nice project! I've tested it on atom mini itx mainboard with ubuntu 10.04 and it works nicely :) It would be very cool to "marry" your code with this one: http://comments.gmane.org/gmane.comp.mobile.osmocom.sdr/299 . It's a rtl_fm modification which enables fm stereo reception. I've tested it and it works. Then we can have lightweight fm stereo+RDS receiver. Keep the good work, you're amazing :)Anonymoushttps://www.blogger.com/profile/02330322427945605194noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-55752243427196694532015-08-14T18:13:40.422+03:002015-08-14T18:13:40.422+03:00On top of that, the noise resistance of redsea is ...On top of that, the noise resistance of redsea is pretty bad.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-53525200275618712162015-08-14T16:08:31.010+03:002015-08-14T16:08:31.010+03:00With all this recent meteor shower activity, what&...With all this recent meteor shower activity, what's your thoughts on using rtlsdr in conjunction with redsea to pick up RDS from meteor scatter? My thoughts are, as standard, rtl sdr dongles might not be sensitive enough, and there might not be enough time for your software to "lock on" to the signal.robnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-59569552883343230072015-06-20T21:36:06.955+03:002015-06-20T21:36:06.955+03:00I am running Ubuntu 14.04 LTS 64 bit. Other RTLSDR...I am running Ubuntu 14.04 LTS 64 bit. Other RTLSDR applications, such as ADS-B, GQRX are running well. But redsea return no RDS data. Any idea?Anonymousnoreply@blogger.com