Short Version: Please help me troubleshoot why I cannot acquire GPS with my USRP+DBSRX, but I can using KD7LMO's sample data recorded with USRP+DBSRX. Long Version: Hi, I wrote a GPS acquisition routine which operates inside a GR block fed by the USRP or gr.file_source. The acquisition routine is a variation of the weak signal approach presented in "Fundamentals of Global Positioning System Receivers a Software Approach". My acquisition routine works great when applying GR's file_source on the KD7LMO USRP-recorded GPS samples. However, I cannot acquire using a USRP source_c. Please share any tips you have. Here are some things I tried: 1. Antenna/environment Assuming GPS was simply not visible from my window, used the Leadtek 9546EVK (http://tinyurl.com/yqx3nv) with the same GPS antenna I used on the USRP. The Leadtek was able to acquire and track GPS with C/N0 > 40. I have tried using this antenna on the USRP with and without a 30dB low noise amplifier. 2. Birdies When commanded to tune to GPS L1 (1.57542GHz), the DBSRX front end tunes to a slightly higher freq (r=8,n=3151,Fs=4e6) and compensates with a software DDC. Witht these values of r and n, a birdie can be seen at L1+1MHz in USRP's FFT and in an HP spectrum analyzer hooked to a GPS antenna near the USRP. I eliminated it with different values of r and n (r=2, n=788) and a slightly higher DDC. I accomplished this by adding a hack at line 289 of db_dbs_rx.py that works when Fs=4e6: # Avoid birdie when LO is set close to L1 if freq==1575420000: best_r = 2 best_n = 788 3. Signal generator Thinking I was improperly tuning the USRP, I connected a signal generator to it and verified that L1 was being brought to baseband. However I was frightened to see some artifacts on the USRP FFT that do not appear on the HP spectrum analyzer. They appear out of the noise for strong input signals (-75dBm). 4. Enclosure I do not have an enclosure for my USRP. This could be a problem. 5. Others KD7LMO managed to record a beautiful signal (40+ C/N0) and I don't think he did anything fancy except use an amplifier. I wonder if i am doing something boneheaded e.g. setting the gain to zero. Q: Should I be worried about the birdie I saw? Q: Does my hack do what I think it does? Q: Should I be worried about these artifacts I see? Q: What does set_gain() do on the USRP with a DBSRX board? What should I set it to? Thanks for your help and ideas. I am a c++ guy new to this antenna stuff. Thanks, Chris
on 2007-04-04 13:24
on 2007-04-04 20:34
> However, I cannot acquire using a USRP source_c. Please share any > tips you have. Are you sure the antenna is getting power? (Are you using an active patch antenna?) You would need to short J101 on the dbs_rx to complete the 5V bias tee. Incidentally, with the 5V in place, the board cannot survive shorts at the antenna SMA connector---a small inductor acts as a fuse and gets toasted. Replacing it results in good operation again, though. > > > 3. Signal generator > Thinking I was improperly tuning the USRP, I connected a signal > generator to it and verified that L1 was being brought to baseband. > However I was frightened to see some artifacts on the USRP FFT that do > not appear on the HP spectrum analyzer. They appear out of the noise > for strong input signals (-75dBm). I also see some pretty strong spurs, usually at multiples of 4 MHz, but this hasn't hurt signal quality too much. > > Q: Does my hack do what I think it does? It sounds okay, but you could also try just giving a frequency of 1575.6, which will result in the same R and N. > > Q: What does set_gain() do on the USRP with a DBSRX board? What > should I set it to? I've been using a gain of 92, which gives a signal strong enough so that sending only the most-significant 8 bits over USB still results in a good signal. You might try several different gain values; if you're not setting the gain at all, that's probably a problem. Have you tried the usrp_rx_cfile.py application to dump a file similar to KD7LMO's? For example, ./usrp_rx_cfile.py -g 92 -R a -d 8 -f 1.57542G -N 100M -s -8 >gps.usrp Since you've successfully acquired satellites with the KD7LMO files, this may not be an issue, but it might be good to specify a large Doppler search range for the acquisition step (say +- 50 kHz), consistent with the 50ppm absolute accuracy of the USRP's LO. Cheers, Peter M.