The first FFT
Data is read from the analog input device driver as 16 bit words
or as 32 bit words.
The OSS provides data in these formats, so that is where we have to
start.
To retain dynamic range processing has to be done with 32 bit integers
or with 32 bit floating point numbers.
With Pentium processors and above floating point seems to be faster
than integer arithmetics so all the different first FFT implementations
use floating point numbers.
For SSB bandwidth 8 bit data from the A/D converter would be enough
and routines for that, possibly with integer arithmetics may
run faster on really slow computers.
The idea with the Linux DSP radio is that it shall use a radio A/D
converter and decimation chip to provide more bandwidth and more
dynamic range compared to systems based on audio boards.
Using it with more or less conventional radios is just a temporary
solution.
For quite some time older computers will be in use among radio
amateurs and the Linux dsp package is designed to be useful with
486 computers and upwards.
The timing tests on this page are intended to show how much
bandwidth can be processed with different computers and
it is my hope that others will run early test releases of
the dsp program to give a more complete overview of timings.
With time I hope to be able to set up a table of recommended
minimum compurers and parameters for different receiver
configurations.
System sizes and timing
The different uses of the Linux PC radio can be classified
after the amount of processing required.
The timings given in the links below is the time for reading
data, producing the fourier transforms and calculating the
average power spectrum.
These times are obtained from the main menu function:
F = HARDWARE TEST MODE
Sub function 8: Rx0 Spectrum
Timings are given in % of the time available for processing within
the dsp program.
1. Minimum (single channel, SSB bw)
A normal transceiver with SSB bandwidth (2 to 3.5 kHz) is
connected to a computer using a standard audio board sampling
at 4 to 8 kHz.
Timing for a minimum system using Pentium1 at 60MHz
Timing for a minimum system using Pentium MMX at 200MHz
2. Tiny (dual channel, SSB bw)
A dual transceiver, FT1000 or similar with SSB bandwidth
(2 to 3.5 kHz) is connected to a computer using a standard audio
board sampling at 4 to 8 kHz.
The two receiver channels are connected to two different antennas
and the computer uses the information from both antennas to optimise
S/N of the desired signal and to extract as much information as possible
about interfering signals in order to supress interference as efficiently
as possible.
Timing for a tiny system using Pentium1 at 60MHz
3. Small (single channel, FM bw)
A FM bandwidth radio, filter bandwidth somewhere in the 10 to 20 kHz
range is sampled at 20 to 44.1kHz by a standard audio board or a
direct conversion radio producing two audio signals from a single
RF source is sampled by a standard audio board in stereo at 10 to 44.1kHz.
Timing for a small system using Pentium1 at 60MHz
Timing for a small system using PentiumIII (Coppermine) at 650MHz
4. Medium (single channel, 40 to 90kHz bw or dual channel 20kHz bw)
A single RF channel is converted to two audio signals by use
of a direct conversion receiver.
The audio channels are sampled at 44.1 or 96kHz.
Timing for a medium system using Pentium Pro at 200MHz
Timing for a medium system using Pentium MMX at 200MHz
Timing for a medium system using PentiumIII (Coppermine) at 650MHz
5. Large (dual channel, 90kHz bw)
Two RF channels are converted to four audio signals by use
of two direct conversion receivers (possibly with converters
in front of them for VHF use)
The audio channels are sampled by a 96kHz four channel audio
board such as Delta44 and processed as in case 2 - but due to the
larger bandwidth processing is much more time consuming because
much more information is available about wide band interference sources.
For this reason interference rejection becomes more efficient.
Timing for a large system using PentiumIII (Coppermine) at 650MHz
6. Huge (single channel, large bw)
A radio A/D is used to sample a single RF channel at very
high speed and the digital data is converted to the baseband
and filtered to a bandwidth of 300kHz or more.
7. Collossal (dual channel, large bw)
One or two radio A/D chips are used to supply preprocessed
data from two antennas at a bandwidth of something like 0.5MHz
per channel.
This is about the maximum processing possible with modern standard
computers.
0.5MHz is enough to give extremely efficient noise blanker performance
under very difficult operation conditions.
|