The downsampling experiment

As I mentioned in my previous post, my “optimizations” of the multi-mode receiver code caused a sudden loss in performance.This was a big surprise because what I did was to replace two filters with only one, which I would expected to yield a performance gain and certainly not a loss. What happened at the same time was that the sample rate in the demodulators went from 50 ksps to 250 ksps and it was the responsibility of the demodulators to downsample this to 50 ksps. I suspected that this might have cause the increased CPU load and I have set up a simple experiment to confirm it.

Continue reading “The downsampling experiment”

AM/FM/SSB software receiver with Qt GUI

I have been a bit quiet over the last few weeks but don’t you worry, it is only because I have been busy and I can now present you what I have been tinkering with during the last few weeks: An AM, FM, SSB and CW receiver implemented using GNU Radio (python) and Qt graphical user interface.

Continue reading “AM/FM/SSB software receiver with Qt GUI”

GNU Radio 3.3.0 on Mac OS X – USRP

I have now tried the USRP on Mac OS X using the MacPorts installation and I am happy to report that it works very well. Indeed, the USRP is really plug and play on OS X and there is no need to configure udev or anything like it is the case on e.g. Ubuntu Linux. The video below shows the FM receiver listening on the local APRS frequency.

Continue reading “GNU Radio 3.3.0 on Mac OS X – USRP”

An experiment with Theora and Ogg for DVB

Yesterday I have been testing the DVB setup using Theora encoded video in Ogg container instead of the H.264/MPEG-TS I have been using so far. Initial tests looked promising, but at the end the link was rather choppy and broken.

On this first screen shot I am running the simulator (i.e. no USRP) with a test pattern as video source. This setup was very stable and I was surprised to see that mplayer got synced much faster than when using H.264/MPEG-TS.

The GNU Radio DVB setup running in simulator mode using Theora codec in Ogg container.


The second screen shot shows the setup running with the GMSK transceiver and again using a video test pattern as source. I have let it run for over 2 hours during which it was very stable. Of course, I was playing with the RF settings while it was running to make it loose the signal and force it to resync – no problems there.

The GNU Radio DVB transceiver using Theora codec in Ogg container running with a videotestsrc.

Finally, I replaced the video test pattern with the Logitech Webcam Pro 9000 as video source and this is when things have started to become bad. The video came up all right but already after a few minutes, the playback becomes choppy and mplayer starts spitting “Ogg: bad packet in stream 0” messages out in the console. At the same time, the frame rate drops to about 1 fps. So this is not very useful.

The GNU Radio DVB transceiver using Theora codec in Ogg container running with the Logitech Webcam Pro 9000

For now, I will stick to H.264/MPEG-TS.

Broken RFX1200 and more sensitivity measurements

I went to OZ7SAT today to do some measurements on the receiver boards. I wanted to see how the sensitivities compare to that of the WBX receiver that I have measured earlier using a CW signal and SSB receiver. The criteria was again to find the weakest signal that I could both hear and see on the spectrum scope and that I would be able to decode if it was a Morse code transmission. The limiting parameter is actually the spectrum scope, because I can hear tones much weaker than what is visible on the 512 channel FFT scope.

Continue reading “Broken RFX1200 and more sensitivity measurements”

Simple SSB transmitter using complex bandpass filter

There are several ways to generate a single side band signal in a software radio and I am slowly exploring each and every one of them. For this first attempt I have decided to try using a basic amplitude modulation followed by a bandpass filter with complex taps that can select either the upper or the lower side bands.

Continue reading “Simple SSB transmitter using complex bandpass filter”

VO-52 satellite with GNU Radio, USRP and WBX

On Saturday 10 July 2010, I have recorded this pass of VO-52. It is the linear transponder downlink between 145.875 and 145.925 MHz. I really don’t understand why people get so crowded in the middle of the passband when there is 50 kHz to play with. Continue reading “VO-52 satellite with GNU Radio, USRP and WBX”

C-band Receiver Hardware for UNITEC-1

With only a few days left until the launch of UNITEC-1 (May 17) to Venus, we are getting ready to track it and I am trying to catch up on the documentation part – this time a brief description of the receiver hardware.

Recall the system architecture where the 5.84 GHz RF signal is converted to 640 MHz using the KU LNC 5659 C PRO low noise down converter, and…

C-band receiver architecture

This article gives a high level walkthrough of the receiver used to convert the 640 MHz IF to digital baseband, i.e. the blue box called USRP in the above diagram.

Continue reading “C-band Receiver Hardware for UNITEC-1”

GRC Examples

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.

Continue reading “GRC Examples”

SSTV Robot OZ9STV with USRP and WBX

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.

Continue reading “SSTV Robot OZ9STV with USRP and WBX”