Few days ago I wrote about how I upgraded the simple double side band receiver implemented in the GNU Radio Companion to a simple single side band receiver. This initial implementation used some default values for the AGC attack and decay rates. These values were acceptable; however, I wanted to spend some time trying to find better values that would correspond to Fast, Medium and Slow AGC – just as we are used to in commercial radios.
The simple SSB software defined radio receiver is now functional!
Few days ago I wrote about how to upgrade the simple double side band receiver to single side band. The modification was supposed to be very simple and involved changing the band pass filter from using real taps to use complex taps. The upgrade wasn’t quite as easy, though.
When I presented the Simple CW Receiver few weeks ago I also mentioned and demonstrated that it is actually a double side band receiver (it’s around 2:35 in the video). This is good for AM and FM, but can be very inconvenient for receiving CW and SSB (single side band). If the station we are trying to receive is surrounded by other stations on the neighbouring channels, these will interfere via the opposite side band. Therefore, it was time to look into single side band reception.
One of the things I want to do with GNU Radio and the USRP is video transmissions over radio. For this purpose I need a way to read video sources – including files, webcams and other video capture devices – and to display or save it on the other end.
I suppose the right way to do this is to create specific signal sources and sinks for GNU Radio. This can be done either by “direct access”, i.e. read the UVC device directly, or by using a higher level library like libvlc or the ffmpeg libraries (libav*). The latter has indeed been used for audio and the code is available from the Comprehensive GNU Radio Archive (CGRAN) under Mediatools.
For this experiment, however, I decided to try something simpler that that I can try and conclude within an evening: Use VLC as capture and playback applications and connect to GNU Radio using either the TCP or UDP interfaces.
After finishing the initial “smoke tests” on the 5.6-5.9 GHz receiver setup – in particular the KU LNC 5659 C PRO down converter, we decided to measure the sensitivity of the WBX receiver over the whole range. We define sensitivity in this respect as the weakest CW signal that:
- Gives an SNR of at least 5dB on the spectrum scope in GNU Radio (before filtering)
- Produces a clearly audible signal in the speaker
This corresponds roughly to the weakest Morse code signal we could decode using the receiver and while it is definitely not a universal measure for the performance of the receiver, it is a good figure to compare with other ham radio equipment. Noise figure and IP measurements are available from Ettus Research.
The USRP/WBX receiver was connected directly to a well calibrated signal generator using 50 cm of AIRCELL 5 coax cable. The computer was running the Simple CW Receiver V0.3 🙂
We found that a -130 dBm signal is clearly detectable over the whole range, which is quite good. The screenshots below were all taken using a -130 dBm signal, except the 70 MHz measurement, which was taken using -133 dBm. As you will see, we increased the RF gain at the higher frequencies to get a better SNR. Click on the images to get a full resolution screenshot.
I had some time to improve on the simple CW receiver by adding the frequency translating filter to allow easy tuning within the sampled spectrum. This feature was missing from the previous versions because I did not know how to specify the filter taps parameter of the gr_freq_xlating_fir_filter_xxx block in GRC. Of course, all I had to do was RTFM to find out. GRC is smart enough to allow entering complete python statements (including function calls) for parameter values, so all I had to do was to create a variable filter_taps and use firdes.band_pass(1, samp_rate, low, high, trans, firdes.WIN_HAMMING, 6.76) as value, then use filter_taps as parameter for the xlating filter.
I was playing with GNU Radio, the USRP and the WBX daughterboard tonight preparing for the tests of the 5.7/5.8 GHz receiver setup tomorrow. For some reason that I can not remember, I have decided to tune in to 432.471 MHz – the UHF frequency of the OZ7IGY beacon, which is located approximately 50 km (24 mi) from me.
I knew I could receive it even when I am inside using my FT-817 but I didn’t really expect to receive it with the USRP+WBX. Well, I was wrong. Already with the lousy multi-band whip I could hear it. It wasn’t strong but I could hear it. I decided to try with the Arrow antenna and voila, suddenly I could receive it with 40+ dB SNR!
The software was a slightly modified version of the simple CW receiver I posted yesterday, implemented in GNU Radio Companion. The modification consisted of adding a waterfall display after the band pass filter. I have included the GNU Radio flow graph at the end of the video, the one below is without the waterfall display:
So, what do you think, how does the CW sound in a so simple software defined radio?
I have been playing with GNU Radio and GRC (GNU Radio Companion) over the weekend and I ended up implementing a very simple CW receiver. This will be very handy on Tuesday when we will be testing the 5.8 GHz UNITEC-1 setup for the first time using the OZ7IGY beacon on 5.76093 GHz. Here is a quick video demo of the receiver where I use my Yaesu FT-817ND to transmit a test signal.
Yesterday I have received the C-band down-converter that I have ordered last week for the UNITEC-1 receiver station.
Watch video on YouTube.
I have also uploaded a few high resolution photos to my Picasa Albums:
If you can’t read the specs, you can see them on my work-in-progress wiki page about the C-band Receiver Station.
Next step will be to connect it to the USRP equipped with the WBX and TVRX daughterboards (need 400…700 MHz receiver) and use some basic GNU Radio receiver software to test it using the OZ7IGY beacon, which transmits on 5.7 GHz (5760.930 MHz to be precise) and is definitely within our range. We can probably also find a signal generator for 5.6/5.7/5.8/5.9 GHz somewhere for better tests.
If everything goes according to current plans, JAXA will launch their PLANET-C spacecraft towards Venus on May 18, 2010. To fill out the empty space and available payload mass on the H-IIA rocket, they will also bring four university built cubesats into orbit. One of these cubesats, UNITEC-1, is very special in that it will follow PLANET-C all the way to Venus, although without any propulsive capabilities to make trajectory corrections it might end up somewhere else – we’ll see about that. Another special thing about UNITEC-1 is that it will be using the 6 cm amateur radio band. Cubesats have a tendency to be stuck on VHF and UHF frequencies for understandable reasons, so a 5.8 GHz signal from deep space will be an interesting challenge!
The mission for us radio amateurs is much more than just trying to listen for UNITEC-1. As I see it, radio amateurs can:
- Receive telemetry from an interplanetary spacecraft. UNITEC-1 will transmit telemetry on 5.84 GHz using very simple ON/OFF keying at 1 bit per second. This is quite exciting – I believe it will be the first time that we can receive unencrypted telemetry from an interplanetary spacecraft.
- Support the UNITEC-1 operators by tracking their craft. By providing them with accurate measurements of antenna pointing and Doppler shift, the operators can estimate the actual trajectory of the craft (remember, UNITEC-1 does not have any coherent tracking transponder on-board). More tracking data from around the world will improve their statistics significantly.
There is a formal call for support on the UNITEC-1 website requesting the global amateur radio community to help with tracking. You can also read about the actual mission UNITEC-1 will carry out during its journey to Venus. Be sure to check out the PDF file that gives many details relevant to tracking.
We plan on assembling a system consisting of:
- The 7 meter parabolic dish at OZ7SAT
- A wide band feed that should be good up to 10 GHz
- A Low noise down-converter (LNC)
- Universal Software Radio Peripheral (USRP) with an appropriate RF daughterboard (probably WBX trasceiver or TVRX receiver)
- GNU Radio-based software defined radio receiver
We are going to need a C-band downconverter. From Kuhne we have several choices. One kind uses 1.4…1.7 GHz as IF, the other kind uses 400…700 MHz as IF. Since we already have about 40 meters of H1000-class cable between the antenna and the control room, we chose the UHF version to reduce the cable losses.
The LNC has been ordered and it should arrive next week. We have everything else on stock but will need to write some software. There is plenty of time though until 17 May. In any case, stay tuned for updates during the coming weeks.