Hi All: Thanks to Tom for the suggestion and comments. I can report that with additional decimation down to 2 samples/symbol in the PSK demod, that I am getting valid data from the RDS/RBDS stream! It was exciting to see valid data coming from my program for the first time! It’s not perfect but I am recovering valid station identifier codes (‘PI' codes from RBDS block type ‘A’ and ‘C’).
Now to work on refinement of my C decoding program. I will likely add a TCP sink to the flowgraph and modify the C code so that it can read either from a file or a socket, thus enabling real time decoding. Kevin > On Nov 7, 2015, at 3:53 PM, Kevin McQuiggin <mcqui...@sfu.ca> wrote: > > Thank you Tom, I will adjust the decimation and then take a look at your > other suggestion. I’ll keep you posted as to how it goes. At least I feel > that I am on the right track now! > > Kevin > >> On Nov 7, 2015, at 11:02 AM, Tom Rondeau <t...@trondeau.com >> <mailto:t...@trondeau.com>> wrote: >> >> >> >> On Sat, Nov 7, 2015 at 12:40 AM, Kevin McQuiggin <mcqui...@sfu.ca >> <mailto:mcqui...@sfu.ca>> wrote: >> Hi All: >> >> I hope that this is not too simple a question for the group. I have spent >> several weeks working on this issue (reading, studying, experimenting), and >> as success is still elusive, it is time to ask for assistance. Thanks in >> advance for any assistance you may be able to give. >> >> This post is kind of long, but I am trying to provide thorough and complete >> information! >> >> >> Goal: >> >> My goal is data recovery and then decoding of RDS/RBDS 57 KHz sub carrier >> signals in the FM broadcast band. This is a learning exercise - I know of >> gr-rds; redsea, etc, but I want to accomplish this myself! I’m not >> interested in downloading and running a working package! I have used redsea >> for testing, but I want to learn the process and reach this goal this myself. >> >> My post is specifically related to problems with the 57 KHz sub carrier >> recovery, and PSK demodulation of that signal. See below. >> >> >> System and Other Relevant Data: >> >> USRP B200, good antenna >> Ubuntu 14.04 >> Gnuradio 3.7.8 >> Year-old i5-based system, 32 GB RAM, USB 3.0 working. Gnuradio and the >> USRP work well in all other respects. I have several other analog receivers >> working. >> “Redsea” works well on RDS recovery with an RTL dongle on the same >> antenna, so it is not a reception problem. >> I have read the RDBS specs front to back >> >> >> Project Components: >> >> There are two components to this project: the signal recovery and >> demodulation; and the post-processing to recover the RDS/RBDS blocks and >> groups from the demodulated data. I am not interested at this time in >> processing the RDS data in real time. I want to pack demod data bits and >> send them to a file sink. Then I have written a C program that will read >> the data file and recover the RDS blocks and groups in a post-processing >> fashion. At least in theory! I need valid demod data first. >> >> I have verified that the bit packing in my flowgraph, i.e. the LSB/MSB >> ordering of the individual demod bits is working appropriately. My C >> program has also been pretty thoroughly tested. If I can get valid data >> into it, I am pretty sure that it will recover RDS blocks and groups. >> >> >> The Problem: >> >> On the recovery/demodulation side, I am having problems in recovering the >> BPSK sub carrier and doing the demodulation. I will present my flowgraph >> below. >> >> >> Summary of Flowgraph: >> >> I use a USRP source tuned to a known-good RDS station at 93.7 MHz. I use a >> low pass filter to isolate 200 KHz, then pass the signal through the WBFM >> receiver. At one point I added a frequency sink here and could see the 57 >> KHz sub carrier clearly. >> >> The output of the demodulator goes to a frequency translating FIR filter >> centred at 57 KHz with a bandwidth of ~2.6 KHz. This signal goes into the >> PSK demodulator, set with what seems to be appropriate parameters - this is >> my main area of concern! >> >> The RDS data stream runs at 1187.5 bps. In the PSK demod block I compute >> “samples per signal” by dividing my samp_rate by the decimation of the FIR >> xlating filter (20), then further dividing by 1187.5 and casting to int, for >> a figure of 20 samples per symbol. >> >> Bits (one per byte) coming out of the demod are packed in a LSB manner and >> then go into a file sink. >> >> I have tried several approaches to the demodulation (PFB, MPSK, PSK Demod, >> RRC filter, Costas Loop, CMA equalizer, etc) and through the use of >> constellation sinks I can see that in several iterations I have achieved a >> fairly good, stable 2-point constellation. The guided tutorials and several >> other sources, including some videos on YouTube have been very helpful, but >> valid bits are eluding me. >> >> >> Generally, you don't want to be handling 20 sps, and some of the blocks can >> fall apart over that number. You really want to knock your bandwidth down to >> 2 samples/symbol, which you can do in the frequency translating filter >> that's already decimating some. >> >> If this works, you might then want to look at the performance of the blocks >> in your flowgraph to see if you'd be better off with a multistage down >> conversion system. >> >> Tom > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio