A simple analog Software Defined Radio back-end written in java especially made for cheap DIY direct conversion receivers such as those based on an SA602 chip or one-transistor regenerative receivers in oscillating mode. It includes narrow AM, SSB demodulation and can apply an AGC filter.

Table of Contents

Features and limitations

All of the above is planned to be implemented or refined some day.

The excellent The Scientist and Engineer's Guide to Digital Signal Processing has most of the basics for the algorithms I've used in this little project.

The FFT is used only for the waterfall display part and since it's not a particularly optimized algorithm it takes most of the processor time. It's derived from fftlab.

The SSB demodulator is based on a Weaver modulator, made with a pair of Goertzel algorithms used in reverse to generate the complex sine waves and a pair of Chebyshev filters with pre-computed coefficients.


The following are the passive circuits to add to an SA602 or similar to make the hardware part of an SDR.


Clapp oscillator with a varicap circuit added. Ceramic resonators work best because they can be pulled more easily than quartz crystals.

Input filter

Can be implemented using two separate, unshielded inductors placed near each other. It's important for the input to be tuned to suppress harmonics and for it to be differential for power supply hum noise immunity.

Recommended Java runtime

Java SE or OpenJDK 7.


Project page