Spectrum analyzer absolute levels are off

Spectrum analyzer absolute levels are off

Postby ieronim » Thu Jun 21, 2018 1:50 am

I am currently evaluating Multi-Instrument and I am puzzled by some inconsistencies I found with the spectrum analyzer. I simply cannot rely on the spectrum display to read the absolute level of the input signal with any acceptable degree of accuracy. Here's my setup:

Audio Precision System Two used as analog signal generator, putting out a sine wave at 11.8 dBu. My ADC clips at 11.9 dBu, so I'm at -0.1dBFS in the digital domain.
Multi-Instrument correctly displays -0.1 dBFS on the level meter in the top right corner of the screen. The multimeter window also correctly reads 11.8dBu (I calibrated Multi-Instrument to my ADC's sensitivity).
In the spectrum analyzer window, no matter which FFT window size or function I pick, I can never get an accurate absolute level display. The spectrum analyzer processing is set as follows:
Y Scale: dBFS or dBu (they're both off)
Processing: Peaks (1).

When the Y scale is set to dBu, the displayed Peak Level is correct (11.8 dBu), but the top of the spectrum line is at least 2 or 3dB lower on the grid, depending on FFT size and function settings. There's just no combination of FFT size and function that I could set in order to get the spectrum line to show an accurate level.

When the Y scale is set to dBFS, the Peak display is no longer accurate (it shows -3.14dBFS instead of -0.1), and the top of teh spectrum line is even lower, around -5 or -6, depending on FFT settings.

I tried this with various input frequencies and FFT settings, and the spectrum analyzer absolute levels are never accurate.

Am I doing something wrong? If not, what is going on here?

See attached screenshot.
The actual ADC analog input level is 11.8dBu, which works out to -0.1dBFS in the digital domain.
Untitled.png (140.46 KiB) Viewed 224 times
Posts: 1
Joined: Thu Jun 21, 2018 12:43 am

Re: Spectrum analyzer absolute levels are off

Postby VirtinsTech » Thu Jun 21, 2018 4:42 am

Thank you for your questions. The results are actually all correct (see VIRTINS comment in the screenshot below).

VirtinsComment.png (173.38 KiB) Viewed 221 times

The spectrum analyzer always shows RMS values while the input peak level indicator at the upper right corner shows the peak value. This is about 3dB difference for a sine wave.

Spectral leakage is the result of the inherent assumption in the DFT/FFT algorithm that the time record in a DFT/FFT segment is exactly repeated throughout all time and that signals contained in a DFT/FFT segment are thus periodic at intervals that correspond to the length of the DFT/FFT segment. If the time record in a DFT/FFT segment has a non-integer number of cycles, this assumption is violated and spectral leakage occurs. A window function can be used to suppress the spectral leakage such that the energy of a sine wave leaks mainly into the few adjacent FFT bins around the main spectral line. But still, the main spectral line will become lower due to the leakage of its energy to its adjacent spectral lines. Despite the spectrum leakage, MI is able to calculate the RMS values of the frequency components accurately and displayed them on the top of the spectrum graph.

The following is a special example in which no spectrum leakage occurs. The FFT segment contains exactly 32768 / 48000 x 1000.4882812 = 683 signal cycles, thus no spectral leakage occurs. The main spectral line in the graph is -3 dBV which is a correct RMS value of a sine wave with an amplitude of 1V. Note under this particular situation, Rectangle window function should be used. If a non-rectangle window function is used instead, spectral leakage will still occurs.

NoSpectralLeakage.png (104.88 KiB) Viewed 221 times
Site Admin
Posts: 102
Joined: Tue Oct 01, 2013 3:06 pm

Return to Bug Reports

Who is online

Users browsing this forum: No registered users and 0 guests