Wednesday 23 March 2016

SSB from Raspberry Pi

The next thing I want to try is to generate SSB from the Raspberry Pi. To do this I use the "rpitx" program. To get this go to GitHub/F5OEO/rpitx where you will find everything you need and also stuff for SSTV, NBFM modes.

But first I need an audio file, which must be a mono, "wav" format, file and sampled at 48kHz. My Raspberry Pi is called "fido" and my "SSB" directory looks like this:

  pi@fido:~/SSB $ ls
  CQIQ.wav  CQ.wav  pissb  rpitx  usage.txt
Here you can see the original "CQ.wav" file. I generated this file on my Mac using the built-in microphone and Soundstudio software. I recorded it, converted it to mono, converted the sample rate to 48kHz, then applied some EQ and compression/normalisation. The result is not marvellous but its OK for testing.

Screen Shot 2016 03 23 at 11 26 43

You can also see in the directory this file after conversion to an "IQ" format file, "CQIQ.wav" - the kind you get from or send to your SDR radio to receive or transmit SSB, this is a stereo file with I = left and Q = right.

Screen Shot 2016 03 23 at 11 29 34

The conversion is made with the program "pissb", it converts to USB today, LSB is not yet an option:
  ./pissb CQ.wav CQIQ.wav
Then to transmit this as SSB, with the output on GPIO18 (pin12) of the R_PI, at 7110kHz:
  sudo ./rpitx -m IQ -i audioIQ.wav -f 7110.0 -l
"sudo", or run as superuser, is needed to access the GPIO pins. The command line is made up like this
  -m IQ                   - is the mode of transmission, that is IQ
  -i audioIQ.wav          - is the input file name
  -f 7110.0               - is the frequency in kHz
  -l                      - means loop, or repeat the transmission
This is the received signal on my Arduino SDR using the HDSDR software. Frankly it is not very good SSB and the bandwidth is over 3.5kHz, but it is readable.

Screen Shot 2016 03 23 at 11 18 50

The creator of the program is said to be working on improving the SSB generation.

No comments: