ScopeDSP transforms data between the time and frequency domains using mixfft, which implements the flexible and highly efficient Mixed-Radix Fast Fourier Transform. The FFT is functionally equivalent to its more general cousin, the Direct Fourier Transform (DFT)–it’s just a lot faster when computing transforms of more than a few points. ScopeDSP can do FFTs for any data length whose prime factors are less than 2000. Therefore, it can do all powers of two (e.g. 8, 1024, 1048576), all powers of ten (e.g. 10, 1000, 1000000), and even strange numbers like 2491 (which is 47 * 53).

With this flexibility in FFT transform size, you no longer are limited to working with data sample sizes in powers of two. However, if you wish to work with powers of two, ScopeDSP can automatically set the transform size as the largest power of two less than or equal to the data set size. You also can set the transform size manually.

The FFT is used for both the forward (time-to-frequency) and reverse (frequency-to-time) transforms. The only practical difference between forward and reverse transforms is that a scaling factor proportional to the transform size must be applied in one direction; you can specify whether the FFT scaling factor is applied to the forward transform or the reverse transform.

For time-to-frequency transforms, you can specify that a subset of the data is to be transformed by setting the current Time data range.

Frequency components generated by the FFT can be examined both as graphs and in tabular form via the Frequency List. See the Plot Examples and the Tutorial for many examples of Frequency Plots and Lists.

Integrated Decibel Support

ScopeDSP’s integrated support of decibel units for graphs and lists is a very simple, but very useful feature. Frequency magnitude can be displayed in linear units, but, more likely, you will want to plot them in decibels (the default). You can specify ScopeDSP’s decibel reference value. This allows you to define the dB relationship between the Time and Frequency representations of your signals. This is primarily useful when the codes in your Time Data have physical meaning. For example, a code of “1.0” might mean “1.0 Volts into 50 Ohms”.

More often, though, you are just using decibels for relative measurements. For these cases, ScopeDSP can automatically set the decibel reference value to the power of the maximum frequency component. Therefore, the maximum will show as “0 dBc” and other components will have a negative value.

ScopeDSP also lets you define the decibel name, for example, “dB”, “dBc”, “dBm”, or whatever you like.

Another useful feature is that you can specify a minimum dB clipping value; this is used to prevent extremely low dB values (e.g., “-305.7”) from consuming most of the vertical resolution of a Frequency Data plot when ScopeDSP sets the plot range automatically .