SM 5 BSZ - Linux dsp radio, setting up the first fft.
(Feb 06 2001)

The information on this page is valid only if the second fft is enabled


The first fft setup affects receiver dynamic range

This page shows some screen dumps with the signal from a AM modulated signal generator (old style, vacuum tubes). Fig 1 shows what the signal really looks like. The processing is with 16384 points for both the first and the second fft, with a sin to power 4 window for the first fft and a sin squared window for the second.

The high resolution graph shows the second fft with one pixel per fft bin separated into the polarisations specified by the polarisation graph. Nearly linear polarisation at an angle of 48 degrees, slightly elliptic right hand. The signal from the signal generator is fed to both channels of the receiver with slightly different cable lengths, that is why the polarisation is slightly elliptic.

The waterfall graph of fig. 1 does not show more spurs than those visible in the first fft graph so they originate in the analog hardware. A synthetiser of modest purity was used as a local oscillator.



Fig 1. Overkill processing parameters used to demonstrate the signal used for screen dumps on this page. The high resolution graph (red) shows that the resolution is far better than indicated by the waterfall graph. The signal generator is modulated by 50Hz hum. Not as bad as the graph indicates, the selective limiter has attenuated the carrier but not the sidebands. The baseband graph, green (dsp00-09) is the third fft operating at a sampling speed of 6000Hz with negliable processing time. Signals of better quality are needed to show what it is useful for!


Figure 2 shows what happens when inadequate processing is performed by the first fft. The reason for the spurs is that sucessive back transforms do not fit to each other. The second fft runs with a much larger transform size, 8192 points in fig 2 as in all other screen dumps except fig.1. The mismatch between transforms create transients that form the sidebands clearly visible in fig 2.

In real life it is not as bad as it looks. A signal 70dB above the noise floor will typically be a few kHz wide anyway so some extra interference close to it might not make much of a difference.



Fig 2. Inadequate processing of the first fft. Few points and low order window make the strong signals surrounded by spurs that might hide a desired weak signal.
There are two ways to get rid of the sidebands around strong signals.

Just by increasing the size of the first fft one can make transients occur less frequently, with less total energy in the sidebands as a consequence.

By use of a better window one can remove the transients inherent in the transform itself that arises from the matching of the ends of each transform. This way energy belonging to the strong sine wave will not be distributed over many fft bins.

Fig. 3 shows the performance with 1024 fft and sin squared windows. This level of processing will be adequate in most situations although the discontinuity spurs are still visible.

The 1024 sin squared window forward plus backward transform use 16.06 + 6.90 = 22.96% of the total available time.



Fig 3. First fft size 1024 with sin squared window.
Doubling the transform size to 2048, keeping the sine squared window increases the processing time to 26.61% and practically eliminates the transient sidebands. This is shown in fig. 4.


Fig 4. Compared to fig. 3 the transform size is doubled. The processing time does not increase very much, from 23 to 26.6% only.
As an alternative, the window can be improved. Figure 5 shows a 1024 fft with a sin to power 3 window. The transforms are spaced closer in time so they join each other at a point where the window is about -3dB. for this reason and because the window has to be compensated for in the back transform the time increases more this way as compared to the doubling of the transform size but the difference is small.

Note that the AGC action can be seen in fig 5. The blue regions close to the strongest spectral lines indicate a lower signal level despite the hum and noise sidebands of the signal itself.



Fig 5. Compared to fig. 3 the window order is increased by one to sin to power 3.

Suggested parameters for the first fft

From an inspection of fig. 4 and 5 one would conclude that they are both equally good. This is not really the case as one can see from a comparison between fig. 6 and 7. Both these figures show a zoom view on the signal with modulation switched off. It is quite clear that improving the window is better than increasing the transform size.



Fig 6. Compare to figure 7.


Fig 7. An improved window function is better than a twice as large transform. Compare to figure 6.
All the figures 1 to 7 were produced with the first fft running in its simplest implementation, vers 0.

The Linux pc radio using Delta44 at 96kHz to provide 90kHz bandwidth, when run on a Pentium III, can well use the parameters demonstrated in fig.8. Using the SIMD instructions of Pentium III (fft1 version 5) the total time for forwards and backwards transformation is 23.25% on a 650MHz Coppermine. Note that the sidebands visible in fig. 8 are the 50Hz hum sidebands of the signal generator, not a processing error.



Fig 8. Good enough, with margin, is to use 100Hz bandwidth with a sin to power 3 window. For 90kHz bandwidth the transform size becomes 2048.