Monday 17 October 2022

OpenAI Whisper joins the Radio War


Recently, I have been trying to use OpenAI Whisper program to transcribe 
and translate signals received over radio. The above screenshot is from a 
Russian Language transmission  on 7.07 MHz LSB in the 40m Amateur band. 
I used the medium model and an NVIDIA RTX2080 Super graphics card.

Although the results are nowhere near perfect, it does seem to understand 
the gist of what is being said. Click on the picture above to see more detail.

The program uses a 30 sec sliding window to operate, so has some limitations, 
for example it does not like quick fire overs as it looses context. 
The Large model has even better performance but, requires more VRAM than 
is on the card I am using. I may at some stage try using an RTX3090 which has 
24G of VRAM.

The program does not like co-channel interference or selective fading (on AM signals).

The program in using an Anaconda environment and PyTorch   (an AI framework).
At the moment my python program is very simple and, I am sure, can be improved.
On receive, I tried a number of WebSDRs. I have used in to listen to QO-100
narrowband where it translated many different languages. I also used it to translate
traffic from Russian AM stations around 3.1 MHz

Wednesday 1 June 2022

Project M17 Digital Radio


I have been playing with  M17 using both my own software and a modified 
TYT MD-UV380 DMR handheld running OpenRTX software. OpenRTX
now supports transmit and receive.
The top video is a quick test over QO-100 using my software for transmit
and SDR++ for receive. The middle is my software receiving M17 from
a handheld. The final is my first tests using a Raspberry PI4 and LimeSDR
running my software.
I have released my implementation of M17 on Github, if anyone wants to
play with it, they will need to go into the Release directory and do a make. 
They will have to already have the development packages for LimeSuite, 
Codec2 and ncurses installed on their machine. 
It runs in a console and typing h will give you the list of commands. 
There is no network support yet, so you won't be able to join 
a reflector. It is just proof of concept. The code is very dirty and could 
do with a good tidy up.

I am now considering what I should do next with the project. I am not a DStar,
DMR or Fusion user, so am totally clueless.
I wanted to run it on a much smaller CPU but due to the chip shortage
getting anything at the moment is problematic.

Sunday 1 May 2022

Using LimeSDR, GNURadio and NVIDIA's Riva voice tools



This is just a short blog entry. I have been experimenting using AI speech decoding 
and GNU Radio. I apologise for the quality of the video.
I am using NVIDIA's Riva speech tools running on an RTX3090 being fed with 
audio samples  generated by GNURadio. 
The example above is listening to BBC Radio 4, but I have also tried it with NBFM 
on the 2M band. 
The duplication in the output window is down to the Python code not wrapping at 
the end of the line correctly and is not an issue with Riva. 
To use Riva, you have to register with NVIDIA before you can download the suite. 
I tried using it on a RTX2080 Super card, but it gave loads of out of memory errors, 
so the above example is  running on a RTX3090 with 24G of memory. 
In the above setup, I am running GNURadio on one computer talking to another 
computer running the Riva server via Wi-Fi. I am only doing this because my 
big machine is nowhere near my antennas.  

I have not tried SSB on HF yet, that will be the next challenge. Riva also supports 
text to speech.

Voice recognition has come a long way since I last played with it 20 or more 
years ago then I was using IBM's Dragon Naturally Speaking which I used to 
control an HF radio running my  PC-ALE software.

Monday 7 December 2020

My attempt at applying Deep Learning to Amateur Radio

I have been interested in learning about Artificial Intelligence AI so to make it interesting I thought I would do something Amateur Radio related.

I started off using the NVIDIA Jetson Inferencing repository on github.

I then modified that to accept a grayscale waterfall display from a LimeSDR both for capturing labelled images and for detection/inferencing using SSD Mobilenet v1. The waterfall is produced by a very simple program that uses the cuFFT library and some CUDA code. The video above shows my initial results of monitoring the QO-100 narrowband transponder. It is not perfect but shows the possibilities. 

Since doing the video I have captured more data and used a regular Linux machine to do the training using an RTX 3090 graphics card. I am now getting more reliable results. However yet more training is still required. I will also have to do some more training on 2M to capture some NBFM signals (not seen on QO-100). When I get an HF antenna up that works I may try it on HF as well. While the training is done on a regular Linux PC the inferencing (the bit that does the actual processing of realtime images) is done on a Jetson XavierNX but would work equally as well on a Jetson Nano.

A while ago I also played around with NVIDIA Digits using that to analyse DATV signals looking for signals that have real people in them and not just test cards or looped videos. So there are plenty of things to use it for.  

I can also think of many non Amateur Radio projects to use it for.

Wednesday 6 February 2019

MRF7S242500 amplifier, sometimes things don't go as planned!


There has been some interest in the 2.4 GHz PA I built for QO100.
At the time I could not find anyone to supply a PCB using the correct 
material so I used RO4350B instead. My first attempt didn't work 
very well, this turned out to be due to inadequate grounding. 
After a re-build I got closer to the expected results. 
The amplifier has a gain before saturation of about 14.7 dB which 
matches the data sheet but I have been unable to achieve more than 
130 watts CW output well below the device limit of 250 watts. 
I have also had to modify the output match slightly to get that amount. 
So while it produces enough power for my requirements it 
no where near meets the specification.

The hot spot in the middle is an electrolytic capacitor on the drain supply 
and is hot because when these pictures were taken the amplifier was 
suffering from low frequency oscillation. This has now been fixed by 
adding extra decoupling to the bias supply and moving some wires about. 
The output coax is temporary as I don't have anything suitable in stock. 
Originally I had a 200 watt circulator in the amplifier. 
I removed the circulator to see if that was the problem. It wasn't.

I have since learned that it is possible to purchase the original PCBs 
made by the same company that NXP use. Useful information but a 
bit late for me.

AMSAT-DL use an amplifier built by Achim DH2VA using an 
MRF24300N which was built using a board from 
and worked first time and to spec.

For anyone wanting a high power amplifier for this band it looks like 
Ampleon do a suitable pallet amplifier. They do two version one which 
only requires a few milliwatts and another than requires about 4 watts drive. 
Currently only the 4 watt version BPC2425M9X250Z is available from stock.