Sunday, November 14, 2010

PCM Spectrum Analyser and Octal FSK Decoder / Encoder

This was a prototyping project to see if I could capture PCM (pulse code modulated) data from my sound card - where the sound was encoded using an octal FSK (frequency shift keyed) method and then decode it. The application displays the captured waveform (amplitude / time domain), a frequency /time domain plot and frequency components using a fast fourier transformt (FFT) of a sampled portion of the original waveform. It also has a waterfall type frequency display which is generated from iterative FFTs over the complete waveform. Not only can the application capture and decode the PCM data - but it can also use an inverse fourier transform (fourier synthesis) to encode data to PCM. It even includes a method to synthesize noise on the generated PCM waveform. The intention is that this prototype will form the basis of an octal FSK encoder / decoder service that allows multiple client applications on a network to send and receive data over a radio channel. Developed in C# making use of DirectX DirectSound and the Exocortex.DSP (http://www.exocortex.org/dsp/) digital signal processing engine.

Saturday, November 13, 2010

Software Defined Radio and PSK31 Decode using Digipan

I recently purchased a WinRadio Excalibur Software Defined Radio (SDR). This very cool radio can scan and analyse radio signals across the full 0.00 - 50.00 MHz range - and therefore makes great wide spectrum analyser! It supports AM, AMS, FM, LSB/USB (SSB), CW, DRM, FSK and UDM modulation.

For a while I listened to amateur bands (particularly 20 and 15m) and recorded "QSOs" in my own QSO logging software (which I will feature on this blog at some stage soon) - however I quickly became interested in decoding digital modes in the amateur bands (i.e. PSK31 etc).

The screen capture above shows the SDR recieving PSK31 and decoding using a free software application called Digipan. To set this up I also had to download VAC (Virtual Audio Cable) to route the audio to digipan for decoding.