On this page you will find a few software defined radio (SDR) examples implemented in the GNU Radio Companion aka GRC. They are very simple yet functional examples I created while I was learning GNU Radio and SDR. I hope other who are learning GNU Radio and SDR might also find them useful.
I was fooling around with the USRP / WBX on the 2 meter band tonight when I suddenly stumbled upon some very strong SSTV transmission. It turned out to be the OZ9STV robot located only a few kilometers from me. That explained why I had more than 40 dB SNR even though I was only using a bad whip antenna indoors.
Tuesday, April 13, 2010 we finally got a chance to test the 5.8 GHz receiver for the UNITEC-1 ground station on the air. The weather was nice and the weak wind allowed us to be on the roof and listen for the OZ7IGY beacon 40 km away.
New update of the simple receiver – version 0.6 – with the following changes:
- Added frequency entry widget to change USRP frequency
- Also created AM and narrow FM versions
Today I felt like doing an experiment that is not quite on my TODO list – a binaural CW receiver. A binaural CW receiver is a receiver that gives a spatial feeling while you are tuning. As I understand it, you have to use stereo where the signals move from one side to the other as you tune and are in the middle when you are tuned to the frequency.
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.
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.
This video shows my first on-the-air tests with the WBX transceiver using the USRP (Universal Software Radio Peripheral) and GNU Radio.
The receiver was tested using wide band FM broadcast, APT signal from NOAA 17 satellite and Copenhagen VOLMET. I have also performed some tests using DVB-T signal and wireless sensor signals but I wanted to keep the video short so these were not included. I can post them in separate videos if there is interest.
I have been quite busy during the last weeks doing overtime at work, nonetheless, I have managed to carry out some small on the air tests of my newly acquired WBX transceiver boards for the USRP and GNU Radio. Tonight, I tuned in to Copenhagen VOLMET that transmits AM on 127.000 MHz.