SM 5 BSZ - First FFT timing on different computers.
(Jan 15 2001)

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.