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
- Quadrature stereo input and FM demodulation are not supported
- The bandwidth of the demodulators is about 5Khz and can not be
- There are no internal decoders for data modes, however the
Record button produces WAV files in a format that should be
compatible with the File -> Audio -> Playback function in
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
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.
SE or OpenJDK 7.