FSAF (Fast subband adaptive filtering) measurement

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,131
I removed the sock, and added a LR2 high pass at 20Hz. The result of this FSAF measurement confuses me, as the total distortion is reduced through the entire spectrum of the speaker, right up to 20kHz, and significantly so as well. Is there a reasonable explanation for such a change in TD throughout with only a 20Hz high pass applied?
It does seem odd, perhaps Michael will have some ideas. If I run tests over a loopback connection with artificially induced distortion the results are not affected by adding a HP on the stimulus. I wonder if room resonances are having an effect on the process and the HP is attenuating the lowest resonances? Could try higher HP frequencies and see if the results stabilise.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Yes, the results are as expected if I compare for example a 100Hz high pass to 200Hz high pass, in that the tweeter distortion stays at the same lower level. It only becomes elevated when I include some subsonic noise in the stimulus.

I'll see if I can generate some audio track with a low frequency noise superimposed to compare with real audio.
 

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
It is the spectrum of the residual
Yes - Harmonics (Distortion), IMDs and (Barkhausen-)Noise,
like one would see on an spectrum-analyzer (on peak hold?), analyzing the residual audio (file).

the fundamental graph is the spectrum of the linear part of the response
No, it is the transfer function of the DUT


You all are stuck in e.g. Farina THD 2...9
get over that useless metric!

Listen!

Best regards
Bernd
 
Last edited:

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
@dcibel: I replicated your hpf results. It is Barkhausen noise elevating your high frequency in TD+N graph. Listen!

@John Mulcahy: Sorry, i got lost in a kaleidoscope.

Best regards
Bernd
 

Attachments

  • gray .zip
    970.6 KB · Views: 13
Last edited:

dcibel

Member
Joined
Sep 10, 2017
Posts
296
You've only shown that noise level of the residual is increased, this much is obvious from the graph. Please let's not jump to conclusions.
 

FSAF

Member
Joined
Oct 4, 2024
Posts
22
@dcibel: I replicated your hpf results. It is Barkhausen noise elevating your high frequency in TD+N graph. Listen!

@John Mulcahy: Sorry, i got lost in a kaleidoscope.

Best regards
Bernd
Barkhausen, which is described by the same math as quantum mechanics, is not the simplest way to analyze the problem. Please let me think of a way to explain it through hysteresis. It may take a few days.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
@dcibel: I replicated your hpf results. It is Barkhausen noise elevating your high frequency in TD+N graph. Listen!
Since you've posted the details of your measurement conditions elsewhere, I want to be clear that I am not questioning the ability of a driver to generate distortion products higher up in frequency when excited with low frequency signal. I am questioning how high frequency distortion propagates to the tweeter output in a 2-way passive speaker, and only in response to input stimulus, not directly correlated to cone excursion.

Your post here implies that you've tested a single driver, which is not a replication of my test or concern.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
I think the primarily FSAF does not work well into subsonic frequencies, as Mike suggests in post 134.

I think part of my problem may be that Motu claims a DC coupled input, so subsonic noise is throwing things off a bit. For example, I found my repeatability problem with a questionable electrical switch contact helped a lot, but not a 100% resolution. Background noise is of primary concern, and I found I got more reliable results by lowering the IR length from 500ms to 200ms, however overall distortion level is increased when I do this, which again, is confusing.
 

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
2-way passive speaker
and now?
you blame REW for revealing...
you blame FSAF for revealing...

what is next to blame?

a switch... haha Wackelkontakt ...another thread cluttered with Wackelkontakt

Not the switch?
Not the "jig"?

tweeter output
You definitely measured the tweeter output? - how do I know that's nonsense? ;-)

Best regards
Bernd
 
Last edited:

dcibel

Member
Joined
Sep 10, 2017
Posts
296
I'm just going to ignore you now. Right or wrong, your comments are not enlightening or encouraging, they are condescending. Nobody will see the light with that attitude.

I will continue evaluating on my own.
 
Last edited:

FSAF

Member
Joined
Oct 4, 2024
Posts
22

Attachments

  • Modelling.of.Loudspeakers.pdf
    1.9 MB · Views: 2,053

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Read through the document tonight. I like that it was presented in a manner that a basic human like my self could understand, and I particularly related to section 3.1 :)

Reading about measurement methods and noise reinforced that I am headed down the right path with my own speaker testing / evaluation regimen. I agree that displaying harmonics at their harmonic frequency is a better view of reality, though I usually don't present data in this way to others since it will just confuse things since harmonic data is usually presented differently.

It also suggests that I should consider my large condenser mic for distortion testing, so I will evaluate that. Mine is a low cost MXL 770, but with the diaphragm replaced with a nice "K 47" style 1" capsule.

FWIW, a driver that will soon see the gauntlet of FSAF is Wavecor WF120BD03. Displaying harmonics at the harmonic frequency shows that nice flat line 3rd harmonic, at a nice low level of 0.1%. It may not be until next week when I complete further testing however.
1730780366537.png
 

Tikkidy

Member
Joined
Feb 22, 2019
Posts
55
One of the challenges of measuring in a non-anechoic chamber is noise pollution. There's a surprising amount of low frequency noise in an average post-COVID home office, which of course affects the measurement of both the Sweep and FSAF.
A large diaphragm mic like the Rode NT1 may have a self-noise of ~5dB(A), but being cardioid and thus having a proximity effect, needs constant re-tuning and re-calibration, which is extremely time-consuming and limits its use as a practical everyday device.

From the (5.40Beta) Help file:

"Cross correlation averaging​

This option is only applicable to harmonic distortion measurements when capturing a signal which is driving both the measurement input and the loopback reference input. It reduces the noise contribution of the input stages by performing a cross correlation between the inputs and averaging the result. The nominal reduction for uncorrelated noise is 5*log10(number of averages), so 100 averages lowers the uncorrelated input noise contribution by 10 dB, 10,000 averages lower it by 20 dB. The overall noise floor reduction may be much smaller due to contributions which are common to both inputs. The default is to plot the real parts of the cross correlation results, as the imaginary parts are due to input noise rather than signal. However, this produces plots with spikes down to the minimum plotting level (around -240 dBFS). The alternative is Use cross correlation magn. which plots the magnitude of the complex results, including the contribution of the imaginary part. That gives cleaner plots but is slower to converge to the noise figure that excludes input noise contributions.

If it is possible to drive one input with an inverted version of the signal the Invert correlation reference option can be used, allowing common mode noise to be cancelled.

Note that harmonic phase information is not available when using cross correlation averaging."


My question is- would cross correlation averaging, with or without inversion of the 2nd input, be helpful in reduction of the noise in the environment (and/or microphone), whilst taking measurements with the Sweep or FSAF?
 
Last edited:

FSAF

Member
Joined
Oct 4, 2024
Posts
22
Both Sine Sweep and FSAF are already at the CR bound. See Cramer-Rao bound for a detailed explanation of why there are limits to precision no matter what tricks you play. Nothing helps, nothing could help, nothing will help.

1) correction - the uncorrelated noise reduction is sqrt(N), so 100 repetitions earn 20dB, 10,000 earn 40db, etc. 3dB per doubling of time.
2) The minimum plotting level of -240 dB is roughly double-precision noise floor. Yes, theoretically it is ~255dB for double precision but... only theoretically. Single precision (23-bit mantissa) gives you about 120 dB in the real world.
3) cardio mics apply a differentiator to far noise (and room reflections) by effectively working as a 1st order high-pass filter. It reduces the noise coming from a distance that any omni microphone would otherwise pick up in full. Sometimes (in marketing), cardio mics are called "noise-canceling".

Yes, you need to calibrate a large diaphragm cardio mic once for each distance... but you can get (at least) 20 dB less noise with a large diaphragm cardio mic, which is equivalent to a 100 times longer test. Is 1 hour per a single test a good alternative to 30 seconds with a large mic? AFAIK, there are no low-noise 1/4" pressure mics, and none are expected in the foreseeable future.

IMHO, it would be great if this recalibration is supported in REW because only a few people are fluent in MATLAB.
 

Tikkidy

Member
Joined
Feb 22, 2019
Posts
55
Is perhaps what you are referring to, described earlier in
as…?

Coherent averaging​

“This option is only applicable to harmonic distortion measurements and only when capturing a single input. If it is selected the FFT data is phase aligned according to the phase of the fundamental before averaging, this can lower the noise floor substantially compared to magnitude averaging without needing very long FFTs - in fact shorter FFTs (e.g. 64k) will allow faster averaging and more quickly lower the noise floor. The noise level drops by about 3 dB for each doubling of the number of averages. Mains frequency components will be suppressed along with any other noise not harmonically related to the fundamental, so this option is only suitable for examining harmonic levels. Note that if the harmonic levels are varying coherent averaging will converge to their average level whilst magnitude averaging will converge to their rms level. The various noise-related values in the distortion panel (THD+N, N, N+D) continue to be calculated from magnitude-averaged data and remain valid”
(Bold- my emphasis)



“AFAIK, there are no low-noise 1/4" pressure mics, and none are expected in the foreseeable future.

IMHO, it would be great if this recalibration is supported in REW because only a few people are fluent in MATLAB.”

The lowest noise 1/4” mic that I know of is rated at 24dB(A). It seems to be designed & marketed for the EV automotive industry, and not a mass market/affordable consumer product.

I am in agreement that if an affordable (cardioid) phantom powered mic could be a suitable alternative to an externally powered condenser mic, this would be appreciated by many.

How could it be possibly implemented? Different mic calibration files that are saved/recalled for different microphone distances? eg. 2cm, 20cm, 50cm, 1m, or other arbitrary user defined distances?
 
Last edited:

FSAF

Member
Joined
Oct 4, 2024
Posts
22
Re 100 -> 10 vs 20dB: I have made such obvious mistakes so many times... screwing up with the simplest calculations and signs is very typical for mathematicians. We easily operate with page-long formulas but miss the simplest details:-) Let's forget about it.

The way it could be implemented is completely up to John. It seems he has all the tools already, it's a matter of rearranging them. Of course, he may have his own priorities and scheduling, and we need to respect them.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
I think it's not too difficult to use a different calibration file for various different situations as it is. Calibration file is easily changed either before or after measurement, so you don't have to be diligent about process, just keep track of measurement distance and load the appropriate calibration.

The question I have is, would a simple substitution method between a large condenser and small condenser mic be sufficient for creating a calibration at multiple distances? I would think so.
 

FSAF

Member
Joined
Oct 4, 2024
Posts
22
I finally cleaned up the FSAF & SPKID code and found a way to do joint-time-frequency ReLS regularization on @dcibel samples. It's terrific when people try your products and highlight deficiencies.
Now it looks much better:
241110-comp-lf.png

Not perfect, of course, but the wild Lf variations are gone. It will take me a few days to check-in and upload the update, and then John will be able to integrate it.

Any more deficiencies to take care of? I am not promising to fix all of them, but I will try.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Terrific!

I haven't returned to any FSAF testing, but am off work next week so I hope to complete some further evaluation in a quiet house, and try my large condenser mic.

On the topic of microphones, another user indicated to me that Behringer B5 has surprisingly good distortion performance for a cheap microphone, and the capsules are supposedly fairly consistent that a "generic" calibration may be good enough for most people. It uses an 18mm capsule and claims a low self-noise of only 18dBA.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,131
would a simple substitution method between a large condenser and small condenser mic be sufficient for creating a calibration at multiple distances?
You can make a cal file by substitution at the measurement distance, yes, but for a cardioid mic it is typically only valid for that distance.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Precisely, so I would make a few for my commonly used measurement distances. For example, I usually stick to 315mm for distortion, as it provides a good balance between SPL at the mic vs room interaction, and makes for easy math of about 10dB to determine SPL at 1m.
 

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Much testing over the past day. Comparing my large condenser to small condenser, the large condenser provides a bit better noise floor, but not as much as I was hoping for. Primary driving factor for noise floor is any background noise. I don't have an anechoic chamber or a sound insulated theatre room, so any noise from kitchen fridge, car driving by the house, dog walking around, etc. has potential to contaminate the noise floor and greater impact than the mic alone. I am generally only taking two measurements in a row now for confirmation, if they both match then delete one.

It's staggering to compare the noise floor of 5.5s sine sweep, to 5-15s of FSAF measurement. The bottom traces are the sweep noise floor, a good 20-30dB lower.
1731536079027.png


With a small 120mm driver like Wavecor WF120BD03, there is a huge difference with LR2 HP at 20Hz, vs at 300Hz. It is broad spectrum overall TD difference, so the TD vs frequency doesn't give many hints on the cause of the distortion.

The following tests were completed at a level of 83dB/1m, with mic placed at 315mm, so about 93dB presented at the mic.

Here's with HP at 20Hz:
1731539966489.png


...and here's with HP at 300Hz:
1731539980775.png


These were tested with real music, a "pop" track, showing 15.6dB crest factor, and the sample includes clipping (thanks music industry), however a wide spectrum of excitation for this sample. Listening to the residual has the obvious "crackling" distortion in the full range sample, and much much less so with a high pass in place.

I then added a low pass filter instead, at 500Hz, and played the same track with HP at 20Hz. Simply adding the low pass gets rid of the crackling, the high frequency products are now absent despite the driver producing the same bass output.
1731535872092.png


I completed a lot of other measurements with and without passive filter components in place to confirm, but not easily presented to an online forum. The above detail should be enough to indicate that the "secret" to a low FSAF result is simply a multi-way speaker. 3-way to separate bass and midrange - high frequencies will reduce the modulated distortion products created by a woofer greatly.
 
Last edited:

dcibel

Member
Joined
Sep 10, 2017
Posts
296
Overlay of the 3 measurements in the previous post.
1731540298142.png


Frequency response of filters applied.
1731543822592.png
 
Last edited:
Top Bottom