FSAF (Fast subband adaptive filtering) measurement

sm52

Member
Joined
Mar 14, 2019
Posts
1,015
As I assume, for FSAF you need to choose a signal level at which the noise level will be minimal. And this is not the highest signal level. As the signal level increases from the optimal level, the noise will also increase. Well, it's worth waiting a little. So John can implement improvements.
It will take me a few days to check-in and upload the update, and then John will be able to integrate it.
 

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
Please let's not jump to conclusions.
Yes, sir
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.
No, sir

This time it is more complicated ;-)
Attached are two (FSAF residual audio) files:

The "rew filtered" file was made with full range grey noise file set for excitation.
The filters set in REW FSAW were: L-R8 hpf 40 Hz and L-R8 lpf 2kHz

The "pre filtered" file was made with pre filtered gray noise file set for excitation.
The gray noise was low pass filtered in audacity with 48dB/oct low pass filter at 2kHz, exported as .wav.
The filters set in REW FSAW were: L-R8 hpf 40 Hz (and L-R8 lpf 20kHz)

So the (audible) excitation while performing the measurement was the same for both residual files.
(even the crackling above 2 kHz was audible same while measuring.)

Now please listen:


@FSAF : why?

Best regards
Bernd
 

Attachments

  • 20241114 filtered residuals .zip
    2.7 MB · Views: 8

dcibel

Member
Joined
Sep 10, 2017
Posts
292
If I understand correctly, you are comparing two "identical" files, one is a pre-filtered file, and the other is filtered by REW.

I reproduced your test, however using REW's generator for pink noise. In Audacity, I set HP 20Hz/12dB, and LP 1000Hz/48dB. In REW, I used 20Hz/BU12 and 1000Hz/BU48.

Comparison of measurement has slightly different output level, because of the HP applied to the pre-filtered file, the RMS level of the rest of the spectrum is slightly elevated. Not enough to make a big difference for this comparison, but difference would be even greater had I used 40Hz HP.

The residual produced is rather similar on my end, and I think any difference can be observed by review of the accompanying charts and graphs.

Compare FR - REW is somehow able to extrapolate the entire frequency response of the driver using a pre-filtered audio file that effectively produces no output beyond 3kHz.
1731617378446.png


Distortion levels are resulting from change in SPL: only, and small difference is observed at 10kHz at the driver breakup.
1731617512422.png



Reviewing the fundamental, because REW has extrapolated the entire frequency response for the pre-filtered measurement, there is a difference in fundamental present, somehow extrapolate from noise.
1731617575418.png


To confirm, noise floor is very similar between both measurements.
1731617667703.png
 

Attachments

  • filter comparison.zip
    5.3 MB · Views: 9,628

dcibel

Member
Joined
Sep 10, 2017
Posts
292
Difference in level was 3dB between pre-filtered and REW filtered measurement. When I adjusted the level by 3dB, overall distortion levels are very comparable. This in interesting, however has not changed the conclusion I jumped to earlier ;).

1731619244544.png
 
Last edited:

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
The "rew filtered" file was made with full range grey noise file set for excitation.
The filters set in REW FSAF were: L-R8 hpf 40 Hz and L-R8 lpf 2kHz

The "pre filtered" file was made with pre filtered gray noise file set for excitation.
The gray noise was low pass filtered in audacity with 48dB/oct low pass filter at 2kHz, exported as .wav.
The filters set in REW FSAF were: L-R8 hpf 40 Hz (and L-R8 lpf 20kHz)
So virtually no LP/lpf was used in REW FSAF for measuring and generating my residual with the already LP filtered file.

@dcibel Thank you for replicating my experiment. And a big thank you for publishing your residual audio. "Hidden" in red letters is my guess. (If you allow me to guess ;-) )

@FSAF and @John Mulcahy : Thank you very much!! I see no need to change anything.

Best regards
Bernd
 

dcibel

Member
Joined
Sep 10, 2017
Posts
292
Sorry, perhaps I did not complete a perfect replication of your test. When measuring with the pre-filtered file, I turned filters in REW off entirely, and included the HP in the filtered file, so the comparison was entirely pre-filtered pink noise from file, vs REW fitlered pink noise on playback. A 20kHz LP seems a bit redundant since the file I created was already low passed at 1kHz.
 
Last edited:

dcibel

Member
Joined
Sep 10, 2017
Posts
292
I did! Exclamation point!
1731654446388.png


Both of my files sound the same, only audible difference is amplitude. Adjust for same volume and they can't be differentiated.
 

FSAF

Member
Joined
Oct 4, 2024
Posts
21
I am glad that FSAF, however imperfect, helps.

My experience agrees with @dcibel. Driving a woofer in a 2-way configuration below 2*Fs results in excessive audible distortions in HF. It was quite informative to me to gradually shift the HP frequency from 50Hz to 4*Fs and see/listen to the changes. 3-way greatly alleviates the problem and is much less irritable to my ears.

I am working on improving FSAF, addressing its deficiencies, one by one, step by step. There are very reasonable "why" questions that I still can not answer. Thank you very much for the feedback, it helps a lot!
 

dcibel

Member
Joined
Sep 10, 2017
Posts
292
Glad I could help with the evaluation. It's really interesting to run these comparisons, and I am still baffled by the magic that has constructed a frequency response accurate to 20kHz with a stimulus signal that is low passed at 1kHz/BU48.

The FSAF measurement and it's results are quite interesting regardless, please let me/us know what tests we can complete at home to aid in the "addressing its deficiencies" portion.
 

FSAF

Member
Joined
Oct 4, 2024
Posts
21
@Berndh Why the noise is different? This is one of the "why" questions I have no answers for. It's all my fault. The REW LP filtering is done "after the" FSAF samples "reference", and Audacity is "before". FSAF is no good at working with singular signals like sharply pre-filtered noise. It runs into multiple problems (aliasing, mis-regularization, etc), all at once. That's why REW adds high-frequency noise to fill the spectrum > 15kHz. This is a known problem I do not know [yet] how to address properly.

@dcibel REW sine sweep can also recover an accurate FR, even more accurately than FSAF due to its orthogonal basis. Per FFT bin, the same: X*Y/(X*X+sigma_nse^2) where X is the FFT of the [arbitrary] filtered sine sweep, then IFFT, etc. You do not have to run constant amplitude sine sweep and punish your ears on high-frequencies. Of course, the harmonics will not correspond to a particular excitation level - but if you are only interested in FR, that shall be ok.
 

sm52

Member
Joined
Mar 14, 2019
Posts
1,015

FSAF

When I took measurements, I wanted to reduce the noise level as much as possible. On John's advice, I fed a non-inverted signal to one input of the external sound card, the same inverted signal to the second input, and used the REW toolkit to process both. But instead of reducing the noise, I got a strong increase in it. Do you think my actions are incorrect?
 

FSAF

Member
Joined
Oct 4, 2024
Posts
21
@sm52 John's advice is generally correct but you asked the wrong guy. As a scientist, I would need to know the detailed measurements of the self-noise of each channel and device, interconnect isolation, mic / room / outside noise, RF influence WiFi/BT, etc to start thinking of an answer;-) In experimental physics, taking care of reproducibility, noise, and the results' variance is 90+% of the work, so welcome to the club!
 

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
@John Mulcahy :

I think would be nice and useful to include the filter settings in the .mdat file, to avoid horrendous scenes culminated in #183

Best regards,
Bernd
 

Berndh

Registered
Joined
Sep 19, 2023
Posts
9
Your notes are wrong, sir !

I did some digital forensics. The REW filtered excitation was set to 1 kHz lpf, as part of the experiment. This sets a 1kHz high shelf filter attenuation for the residual audio and the TD+N graph. But @dcibel set a give or take 2kHz lpf for the 1kHz pre filtered excitation. This sets a 2kHz high shelf filter attenuation for the residual audio. If this is not a fraudulent mindset by the personal, this is inept engineering.

Now go and crackle along ;-)
Bildschirmfoto zu 2024-11-20 17-31-03.png


There are 9,623 digital fraudsters somewhere at the internet.
.......................................................................................................................................



The fact that a high shelf(?) attenuation is set, following the excitation lpf setting in the excitation window by REW FSAF, is proven by my experiment in #177
@John Mulcahy and @FSAF: Is it a shelf? What is the depth of this shelf?
That's why REW adds high-frequency noise to fill the spectrum > 15kHz.
Is it to reverse this?


I repeat ! :
@FSAF and @John Mulcahy : Thank you very much!! I see no need to change anything.
Best regards
Bernd
 

dcibel

Member
Joined
Sep 10, 2017
Posts
292
I have nothing to gain or reason to present "fraudulent" data. I've already got what I wanted out of the little experiment so draw whatever conclusion you wish. Your grey audio clip didn't come with an .MDAT file, what are you hiding??
 
Last edited:

dcibel

Member
Joined
Sep 10, 2017
Posts
292
@John Mulcahy , a feature request for FSAF would be to include a couple seconds of silence before playing back the audio track file, so that the background noise floor can be well captured in the residual audio files. It would avoid the need for extra work via Audacity or some other audio editor to create a customized file with silence included.Perhaps simply including the audio for the noise floor determination in the residual file would do the trick.
 
Last edited:

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,114
The residual is aligned so that the stimulus, capture and residual can be compared at the same timestamps, putting extra content ahead of the residual would break that alignment. Putting silence ahead of the stimulus may break REW's attempts to align the capture with the stimulus. What are you after that isn't shown in the noise floor spectrum?
 

dcibel

Member
Joined
Sep 10, 2017
Posts
292
Well, you could include the content in all 3 - stimulus, capture, and residual. It's not a big deal, more so that if someone provides a file of residual recording without accompanying MDAT file, the spectrum of the noise floor may not be easily captured unless the stimulus included some silence. For example when Mike asked for some recordings for his analysis, he asked that I use an audio track that included a couple seconds of silence prior to the stimulus. It's doable outside of REW, just requires a few extra steps.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,114
I should have checked my code before replying, the first two seconds of the mic wav file is the silence capture. The exc, res and lti file contents are already offset to take account of that.
 

Tikkidy

Member
Joined
Feb 22, 2019
Posts
55
For future reference:
Software: REW V5.40 β60

83dB@1m (ref. to 1KHz)
These recordings were in the same session.
REW Settings:
1733175181094.png 1733175116498.png

Results:


1733148005874.png



Harmonic distortion testing with usual Sweep. I use 256k samples, with multiple repetitions (4) to reject background noise






1733148668901.png


EDIT: Blip at 7KHz is due to crickets at night. ^^^


Residual attached is for "FSAF Qdust no HP" + 0dB gain applied.



Setup:
Windows 11 PC
Output: Audient iD24 -> Hypex UcD400MP -> Driver Under Test
Input: Brüel & Kjær 4191 mic -> Brüel & Kjær 2669 pre-amp -> Brüel & Kjær 2690 power supply/signal conditioner -> Audient iD24 input (pre-amp bypassed)
mic SPL calibration via Landtek ND9B (+/- 0.3dB)
 
Last edited:
Top Bottom