Looking at your signal path, there shouldn't be any problem. Since you are mixing copies of exactly the same pink noise signal it should cancel exactly at line level. It's the delay thru the air between speaker and mic that causes trouble.I'm getting around the random-ness of the noise by recording a minute or so of generated pink noise, and using that for all further tests.
Would it be possible to slightly delay the inverted pink noise before it gets mixed back in? That ought to achieve a deeper null.
At my former place of employ, I once did a similar "subtractive" method for reducing oscilloscope probe noise.
I measured just the probe noise and made an FFT of it. Not knowing what to do with the phase part, I set that to "0" for all frequencies. Then I measured probe + signal, where signal was larger, but on the same order as noise. Subtracting noise FFT from signal + noise FFT and inverting back to time domain, I recovered the signal without noise pretty handily. I showed some Tektronix reps the idea, as it allowed probe noise reduction even for a single shot measurement.
It wasnt perfect however (recovered amplitude was a bit lower than actual) and worked only as proof of concept - nobody agreed that it was yet ready for real measurements.
This was using signals about the same amplitude, say 3 mV noise on a 5mV signal, not signal DBs of level lower than the noise. I only mention the technique because I set the FFT phase part to all 0 deg and it could demonstrate a null through subtraction in the FFT domain - for the most part.
Also, I think I did a long-ish time aquisition of the probe noise to characterize it and the final FFT amplitude levels were resulting from an average of many FFT'd acquisitions. I think I tried doing averages of the phase part and it didnt "playback" any better for the nulling operation than with them all set to "0". Really what best to do with the phase information during the probe noise characterization FFT I never determined.
Good luck!
I measured just the probe noise and made an FFT of it. Not knowing what to do with the phase part, I set that to "0" for all frequencies. Then I measured probe + signal, where signal was larger, but on the same order as noise. Subtracting noise FFT from signal + noise FFT and inverting back to time domain, I recovered the signal without noise pretty handily. I showed some Tektronix reps the idea, as it allowed probe noise reduction even for a single shot measurement.
It wasnt perfect however (recovered amplitude was a bit lower than actual) and worked only as proof of concept - nobody agreed that it was yet ready for real measurements.
This was using signals about the same amplitude, say 3 mV noise on a 5mV signal, not signal DBs of level lower than the noise. I only mention the technique because I set the FFT phase part to all 0 deg and it could demonstrate a null through subtraction in the FFT domain - for the most part.
Also, I think I did a long-ish time aquisition of the probe noise to characterize it and the final FFT amplitude levels were resulting from an average of many FFT'd acquisitions. I think I tried doing averages of the phase part and it didnt "playback" any better for the nulling operation than with them all set to "0". Really what best to do with the phase information during the probe noise characterization FFT I never determined.
Good luck!
Last edited:
Well, the delay through the air is also accounted for - one of the recordings I'll make is of the speaker playing just the pink noise.
Delay isn't the only problem here - if the frequency response of the speaker isn't perfect, then the pink noise will never cancel properly.
I guess I'm not communicating this very clearly.
Looking at the diagram again:
The red signals (arrows) are essentially "pure". They've been digitally generated, and have never seen a transducer.
The blue signals have been through the speaker & mic. We'll say they have been distorted by the speaker.
The green signal is the measurement sweep that REW wants to see.
So, as a setup step, we play pure pink noise through the speaker, and record the result. The desk time aligns everything, and we have a copy of distorted pink noise including frequency response anomalies, time-of-flight, harmonic distortion, etc.
When we want to add a test signal, we do the following:
- Play a mix through the speaker: pure pink noise and the test signal.
- What the mic picks up is distorted pink noise and a distorted test signal.
- In order to extract the distorted test signal, we use the previously-recorded sample of distorted pink noise to null that part of what the mic picks up, leaving us with a distorted test signal, which is fed to REW.
Again, as far as REW knows, there's just a sine sweep happening. We add pure pink noise to it, feed it through a speaker, and subtract distorted pink noise from the mic's return feed.
I hope that clears things up. It looks to me like this could really work.
Chris
Delay isn't the only problem here - if the frequency response of the speaker isn't perfect, then the pink noise will never cancel properly.
I guess I'm not communicating this very clearly.
Looking at the diagram again:
The red signals (arrows) are essentially "pure". They've been digitally generated, and have never seen a transducer.
The blue signals have been through the speaker & mic. We'll say they have been distorted by the speaker.
The green signal is the measurement sweep that REW wants to see.
So, as a setup step, we play pure pink noise through the speaker, and record the result. The desk time aligns everything, and we have a copy of distorted pink noise including frequency response anomalies, time-of-flight, harmonic distortion, etc.
When we want to add a test signal, we do the following:
- Play a mix through the speaker: pure pink noise and the test signal.
- What the mic picks up is distorted pink noise and a distorted test signal.
- In order to extract the distorted test signal, we use the previously-recorded sample of distorted pink noise to null that part of what the mic picks up, leaving us with a distorted test signal, which is fed to REW.
Again, as far as REW knows, there's just a sine sweep happening. We add pure pink noise to it, feed it through a speaker, and subtract distorted pink noise from the mic's return feed.
I hope that clears things up. It looks to me like this could really work.
Chris
Chris I understand what you're doing and you're getting good results. I'm just interested in improving the system, which I think would bot be too difficult. By using a recording of pink noise that has already been thru the speaker and mic, you eliminate those from the measurement. mostly. That's good for this test as we want to find small signals normally masked to the ear.
But from doing this a few times I know that the better synchronized the signals, the deeper the null. Nulling out as much of the pink noise as possible helps find the small signals hidden in the noise. On a simple DAC/ADC loopback I've been able to get an 82dB null. I think with patience I can get more. Getting 30dB on a speaker-mic combo like you have is already a very good start. I guess you doing multiple sweeps with averaging in REW to reduce the pink noise? That would be a decent alternative to a tight sync.
But from doing this a few times I know that the better synchronized the signals, the deeper the null. Nulling out as much of the pink noise as possible helps find the small signals hidden in the noise. On a simple DAC/ADC loopback I've been able to get an 82dB null. I think with patience I can get more. Getting 30dB on a speaker-mic combo like you have is already a very good start. I guess you doing multiple sweeps with averaging in REW to reduce the pink noise? That would be a decent alternative to a tight sync.
At my former place of employ, I once did a similar "subtractive" method for reducing oscilloscope probe noise.
I measured just the probe noise and made an FFT of it.
Good stuff! Have been following this thread that is doing similar work?
Digital Distortion Compensation for Measurement Setup
I worked on this today trying various approaches and tests. With a soundcard loopback it's not too hard to get a null better than 100 dB. With acoustic measurements getting anywhere near that is difficult indeed.
However, I did achieve some rather low level FR measurements of Fostex headphones. See the attached plot. The highest trace labeled "Nominal" is a good loud listening level for me. You'll then see the FR at decreasing levels below that, as far as the noise would allow. These headphones look pretty well behaved.
However, I did achieve some rather low level FR measurements of Fostex headphones. See the attached plot. The highest trace labeled "Nominal" is a good loud listening level for me. You'll then see the FR at decreasing levels below that, as far as the noise would allow. These headphones look pretty well behaved.
Attachments
Or maybe not so interesting after all. 😉It might be interesting to see FR measurements of drivers playing at very low levels.
Or maybe not so interesting after all. 😉
Agreed.
In my Google Drive folder, there's an REW file of some very low SPL measurements - down below what I could hear.
Apart from acoustic noise creeping in (see the ReadMe), things stay pretty stable down there.
I am planning on getting back to doing some more measurements, probably on Monday.
Chris
Yes, acoustic noise was my big problem and I was testing headphones! Doing 8 sweeps helped pulled the signal out of the noise.
Yep, repeat sweeps certainly help.
Just wondering - which mic are you using?
Condenser mics have a noise floor, too. The Beyer MC930 I'm using is pretty good in that regard - about 10dB lower noise than my MM1 measurement mic.
Just thinking that there's another potential source of low-level noise there.
Chris
Just wondering - which mic are you using?
Condenser mics have a noise floor, too. The Beyer MC930 I'm using is pretty good in that regard - about 10dB lower noise than my MM1 measurement mic.
Just thinking that there's another potential source of low-level noise there.
Chris
Oh for sure the mic! My goofy headphone measurement rig uses an old Behringer ECM8000. But it's not just the mic. I can see increased noise - must notably at 60 Hz - when I put the headphones onto the rig. I certainly do not hear that noise by ear, but it shows up clearly in the spectrum.
Planning on getting back to this over the next couple of days.
Lots of testing to do, to make sure the signal flow diagram I posted previously will actually work.
After that, what do people want to see?
It looks like we've pretty much done the very-low-SPL tests, but extracting signals from underneath a load of noise is an area that's very interesting IMO. If we can quantify that properly, then there's a potential new standard for measuring actual fidelity. Exciting stuff.
Chris
Lots of testing to do, to make sure the signal flow diagram I posted previously will actually work.
After that, what do people want to see?
It looks like we've pretty much done the very-low-SPL tests, but extracting signals from underneath a load of noise is an area that's very interesting IMO. If we can quantify that properly, then there's a potential new standard for measuring actual fidelity. Exciting stuff.
Chris
Yes indeed. It's not too difficult in the electrical domain, rather more fussy in the acoustical domain.
If one can clearly demonstrate that this device retains more low level detail that some device, that's useful information.
If one can clearly demonstrate that this device retains more low level detail that some device, that's useful information.
Did a bit of playing around today. Link to some files: DDR Testing - Google Drive
I used the setup I've posted about previously, with the digital mixing desk handling most of the processing. I don't think it's possible to simultaneously use a USB feed to/from the laptop and the SSD, so ended up using analogue I/O to get signal to/from the laptop.
The results are rather interesting. I did end up having to apply a delay somewhere (4.2ms, IIRC) to get good cancellation (I was monitoring what was going back to the laptop using headphones), not sure if that'll be needed in these files.
Files available are as follows:
- Speaker playing pink noise
- Speaker playing pink noise & sweeps, probably with some keyboard noises and mouse clicks
- REW file of what I got when I used the desk to cancel out the pink noise and ran the sweeps through the middle.
I set off with the sweep at approx. +6dB over the noise, and went down by 6dB at a time until the response was getting really fuzzy. You can listen to the .WAV files for yourself to see how audible (or not) the sweep was.
I included a few notes in the REW file, too.
Heading to bed now, but I think the results are pretty interesting.
Chris
I used the setup I've posted about previously, with the digital mixing desk handling most of the processing. I don't think it's possible to simultaneously use a USB feed to/from the laptop and the SSD, so ended up using analogue I/O to get signal to/from the laptop.
The results are rather interesting. I did end up having to apply a delay somewhere (4.2ms, IIRC) to get good cancellation (I was monitoring what was going back to the laptop using headphones), not sure if that'll be needed in these files.
Files available are as follows:
- Speaker playing pink noise
- Speaker playing pink noise & sweeps, probably with some keyboard noises and mouse clicks
- REW file of what I got when I used the desk to cancel out the pink noise and ran the sweeps through the middle.
I set off with the sweep at approx. +6dB over the noise, and went down by 6dB at a time until the response was getting really fuzzy. You can listen to the .WAV files for yourself to see how audible (or not) the sweep was.
I included a few notes in the REW file, too.
Heading to bed now, but I think the results are pretty interesting.
Chris
Looks like something went wrong with the "noise" upload. Fixed now, and I've added a text file to show when the sweeps are.
An interesting hearing test is to play the sweep + noise file, and see how far along you can get. I could hear the -18dB one pretty well, but the last two lots of sweeps at -24dB and -30dB were very difficult to pick out, and I couldn't do so reliably.
For those following along, one file is a recording of some pink noise, and the other is pink noise + sine sweeps. If you load those files into something like Audacity, you can combine the two, which cancels out the noise an unearths the sine sweeps.
I did this in real-time, with a clever mixing desk, and presented the sweeps back to REW, which made the .mdat file.
You can also try just listening for the sine sweeps while they're mixed with the pink noise.
My conclusion so far is that the microphone & mixing desk were managing to extract detail (the sine sweep) that I can't hear on the recording (and couldn't hear in-room). It would be interesting to find out how other people find this test - can you hear the last sweeps underneath the pink noise?
Chris
An interesting hearing test is to play the sweep + noise file, and see how far along you can get. I could hear the -18dB one pretty well, but the last two lots of sweeps at -24dB and -30dB were very difficult to pick out, and I couldn't do so reliably.
For those following along, one file is a recording of some pink noise, and the other is pink noise + sine sweeps. If you load those files into something like Audacity, you can combine the two, which cancels out the noise an unearths the sine sweeps.
I did this in real-time, with a clever mixing desk, and presented the sweeps back to REW, which made the .mdat file.
You can also try just listening for the sine sweeps while they're mixed with the pink noise.
My conclusion so far is that the microphone & mixing desk were managing to extract detail (the sine sweep) that I can't hear on the recording (and couldn't hear in-room). It would be interesting to find out how other people find this test - can you hear the last sweeps underneath the pink noise?
Chris
I understand that reproducing square waves through a speaker to begin with is just about not happening, but it would be interesting to see if there's any difference to a square wave sweep with or without the pink noise process.
Just wondering if a slightly more complex signal behaves differently together with the noise.
Just wondering if a slightly more complex signal behaves differently together with the noise.
I was able to hear 5 or 6 series of sweeps down in the noise. Adding the pink to the recorded file gave a pretty good null and uncovered the sweeps.
Funny, if I use software noise reduction it wipes out the lowest level sweeps. Might be a good test of how noise reduction works.
Funny, if I use software noise reduction it wipes out the lowest level sweeps. Might be a good test of how noise reduction works.
- Home
- Loudspeakers
- Full Range
- Low level FR measurements?