PSK31 Modulator

Overview

PSK31 is a digital mode used in amateur radio for two way communications.  Here is a summary of what PSK31 is (from the official web site http://aintel.bi.ehu.es/psk31.html):

  • PSK31 is a new digital mode designed by Peter G3PLX that betters SLOWBPSK, an idea and implementation of Pawel SP9VRC
  • Based on the RTTY mode of operation,
  • useful for live keyboard to keyboard QSO that works at 31.25 bauds,
  • that uses varicode character coding that gives 50wpm,
  • easy to use and monitor,
  • that give very good copy under low Eb/No numbers and is thus suitable for QRP,
  • that instead of using FSK or on/off keying uses BPSK or QPSK with a Viterbi decoder,
  • uses advanced DSP and narrow band (31 Hz!!) techniques.
So, why would you spend most of a Sunday coding and debugging a mode that goes only 31.25 bauds!  Well here is my reasons:
  • It is one way to become familiar with mbed.
  • It is really cool seeing your messages popping up on the laptop when you get it right.
  • I do not need higher rates for my intended applications - beacon, remote monitoring, etc.
  • It gives me an opportunity to play around with the idea of controlling radio beacons remotely!
  • It is also a test bed for other ideas I would like to test.

Current Status

I have reinvented the wheel and developed the modulator algorithm from scratch based on the information available from Moe AE4JY's site, here.  The algorithm works well, with the exception of some splattering on the frequency spectrum which I still need to address.  I have tested the algorithm using fldigi and it works.
In hindsight, reinventing the wheel was a mistake and I should have just migrated the existing open code available on the Web. This will be a future challenge when I attempt a PSK31 demodulator.

Hardware

The PSK31 modulator uses the D/A converter on the mbed board to produce a PSK31 modulated message at 500Hz.  The signal was fed into my sound card and decoded using fldigi.  Very simple.  However, I will need to improve this with buffer/isolation circuitry (possibly one reason for the spectrum splattering).

Software

The algorithm uses the Ticker object to provide the timing requirements of PSK31 and lookup tables to generate the carrier signal. Currently, it transmit a fix message.

Next steps for this project

  1. Interface to enable remote control of the message, audio level and carrier frequency. Possibly using the RPC or HTTP.
  2. Test through cheap radio modules (e.g. http://www.sparkfun.com/commerce/product_info.php?products_id=8949)
  3. PSK31 demodulator - this will likely be using existing code.


2 comments

28 Apr 2011

Chris, are you still working on this project?
I would be very interested do decode PSK31 signals with the mbed.

vy 73 de Hermann AJ4ZS / DL8MCP

29 Apr 2011
user Hermann AJ4ZS wrote:

Chris, are you still working on this project?
I would be very interested do decode PSK31 signals with the mbed.

vy 73 de Hermann AJ4ZS / DL8MCP

Hi Hermanne,

Me too:-)  I have done the coding side successfully and tested this by direct connection to the laptop, but not the decoding of PSK31.  The coding need further improvement to minimise clicking, otherwise it works.

If you are interested in PSK31 on the mbed, I would recommend you consider migrating one of the many existing code to the mbed platform.  It may be easier.  I will probably come back to this later this year.

73 Chris zl2cco

You need to log in to post a comment