• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DIY 3D Speaker Scanner - the Mathematics and Everything Else

OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
@Dave Zan Thanks!
No. I have not read Klippel's patent. I've read some of the comments in the DIYAudio thread but was feeling too lazy at the time. I'll go over there, look for the link, and read in the next few days.

[Edit: Added after initial post] I assume this is the patent you are referring to.
https://patents.google.com/patent/US20140198921
 
Last edited:
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
Here is my summary of Klippel's patent application. (Should really be a summary of the summary, as I leaned heavily on the “summary of invention” section [0012 – 0038].)

Their paper “Holographic Nearfield Measurement of Loudspeaker Directivity” explains some of the claims in the patent in a more readable form. However, it doesn't cover PSFS, which IMO is the most interesting.
https://www.klippel.de/fileadmin/kl...ld Measurement of Loudspeaker Directivity.pdf
The Klippel patent covers:
  • Primary source field separation (PSFS)
  • Validity assessments, user friendliness, and efficiency enhancements
PSFS [Invention summary 0012-0025]
PSFS is to mitigate the problem of re-reflections off the loudspeaker surfaces. During tests, sound radiated from the loudspeaker gets reflected by the room walls. Portions of the reflected sound go back to the loudspeaker and get re-reflected (and scattered). These secondary outgoing re-reflections cannot be separated from the primary outgoing sound using the standard sound field separation method (which in Klippel's patent it is called input output field separation, IOFS).
PSFS is to compensate for the re-reflections. This is done by:
  1. Considering only the late part of the impulse response by time windowing (i.e. time window to exclude the early sound), assuming the true loudspeaker response has already sufficiently decayed before the re-reflections start.
  2. Using only information from the late part of the impulse response and sound field separation, the re-reflections can be determined.
  3. With this knowledge, the re-reflections can be removed to extract the primary outgoing sound.
  4. Reliability of PSFS and standard field separation are assessed using error estimations and calculated correlations factors.
Subsequently:
  1. Reconstruction coefficients from both PSFS (works well at low frequencies) and windowed impulse response (works well at high frequencies) are computed. Errors from both methods are also estimated, and the optimal cross-over frequency is determined. Reconstruction coefficients calculated using PSFS are used below the crossover frequency, and those from windowed impulse response are used above the crossover frequency.
Note: In [0015 – 0016] (and [0067 - 0068]), the patent mentioned calculations of the “transmission” parameter and the “transparency” parameter. Formulas for them were provided by I have not figured out how they were derived. They may not be very important as they are probably just two of the many mathematical methods to perform PSFS.

Signal-to-noise ratio estimation [Invention summary 0026-0028]
A second mic is placed at a distance further from the primary mic. Signal-to-noise ratio (SNR) is determined by taking the ratio between the SPL's at the primary mic and at the secondary mic. The reason is that the secondary mic is further from the loudspeaker and therefore will measure a weaker SPL. However, contributions from ambient noise should be the pretty close for both mics. By taking the ratio, the SNR is determined, and if it exceeds a certain level, the measurement is considered invalid. Invalid measurements can be remedied by automatically retaking the measurement, taking more measurements and average the results, etc.

Adaptive optimization of the measurement grid [Invention summary 0029-0031]
Measurements are first done with a coarse grid. A preliminary analysis is done to identify the acoustical center and the main acoustical axis/axes of the loudspeaker. A second measurement grid can be generated and optimized using information from the preliminary analysis.

Optimal spherical harmonics expansion order N [Invention summary 0032]
Evaluate the additional contributions of the wave expansion functions as the order the spherical harmonics (N) increases. If the contribution drops off below a certain threshold, the optimal order is reached.

Automated determination of acoustical center and minimization of the number of measurement points [Invention summary 0033-0038]
A good estimate of the acoustical center greatly improves the convergence of the spherical wave expansion with a smaller N. The acoustical center can be estimated from a preliminary scan by various methods, e.g. low order wave expansion, impulse response group delay, maximum sound pressure levels, etc.
For loudspeakers with high directivity, fewer measurement points may be taken at the back of the loudspeaker and data at in-between locations are interpolated. This, combined with the denser measurements from the front, makes it possible to use fewer measurement points to generate a larger number of wave expansion coefficients.
Take advantage of the symmetries in the loudspeaker geometry to reduce the number of wave expansion coefficients (see the Klippel paper, section 4.3).
Eliminate the expansion functions when the associated coefficients are small.
(I don't fully understand this one [0037].) In an iterative process, lower order coefficients with low contributions are replaced with higher orders ones which offer better accuracy and resolution.
 

NickK

Member
Joined
Dec 27, 2019
Messages
10
Likes
5
Let me get this out of the ways first. Yes, my goal is to figure out how to build a 3D speaker scanner similar to Klippel's. Of course the first step is to figure out the theories.

Sorry for being long-winded in my report. Comments / critiques / corrections are appreciated. I'll try my best to answer questions. I only started reading up on acoustics a few months ago, and only the stuff that are related to this project. My understanding on this topic is very limited and I will be very surprised if I have not made plenty of noob mistakes.

Thanks.

Nice :)

Although reading python is like sticking forks in your eyes.

A lot of the loops would disappear with vectorisation if you used Octave (Matlab clone).
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
Nice :)

Although reading python is like sticking forks in your eyes.

A lot of the loops would disappear with vectorisation if you used Octave (Matlab clone).
My apologies to your eyeballs :)

The theory may be a bit esoteric, but implementing the math is actually very simple. It can be easily done in many languages if you have access to standard scientific libraries. I am going to write a post the describe the steps in the next day or two.
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
Now that I have some time digesting the Klippel's patent, and saw the initial results from Amir's near field scanner, I would like to share my observations and comments. I would also like to emphasize that I am definitely not advocating infringing on Klippel's patent.

On PSFS (primary source field separation)
Thanks to post #331 in “Announcement: ASR Will Be Measuring Speakers!” I got to see the Klippel NFS in action. The immediate thing that is interesting is that the test signal seemed to be an exponential sine sweep (ESS) repeated 3 times. I recorded the sound from the video, and compared it against an ESS signal I generated (20 Hz – 8 kHz, 0.5 second duration, 0.2 second silence, repeat 3 times). Here is the spectrogram comparison with Audacity.
Audacity capture.JPG

[Edit: Given the helpful corrections in the next few posts, what I said in the next paragraph is most likely incorrect. I crossed out the paragraph to preserve the history of the conversation.]
From my read of Klippel's patent PSFS works by time gating. I have no actual experience with measurements using ESS signal, but I don't think time gating can be used. The test signal duration is almost 2 seconds, and room reflections arrive far before the test signal ends. So I think currently the Klippel NFS measurements do not implement PSFS. I have doubts about how effective time gating is when used in PSFS, especially when it was completely left out in Klippel's paper on NFS (see link to it in post #23).

On the other claims
For our purposes, I also think the other “innovations” are not necessary. The acoustical center of the loudspeaker can be easily estimated as we know its geometry. I don't know how symmetry can be helpful as we must also consider the room. Unless the entire test environment is symmetrical, the mixed sound pressure field (from loudspeaker and from reflections) will not be symmetrical. Since we must first accurately reconstruct the mixed field before we can apply sound field separation to extract the sound field only from the loudspeaker, I believe we cannot simply consider only the loudspeaker symmetry and not pay attention to the rest of the room.

Automatic error estimations are nice, but not necessary for our purposes. I think convergence of solutions is reliable enough to determine when we have arrived at a satisfactory solution. We should also be able to visually determine the cross-over frequency from sound field separation (for low frequencies) to time gating (for high frequencies) by overlaying the plots.

To summarize, while I think the Klippel patent is very interesting, I don't think we'll lose much to Klippel with their “innovations”.
 
Last edited:

Dave Zan

Active Member
Joined
Nov 19, 2019
Messages
169
Likes
490
Location
Canberra, Australia
..Seemed to be an exponential sine sweep (ESS) repeated 3 times.
...So I think currently the Klippel NFS measurements do not implement PSFS.

I am also not experienced with measurements with ESS but I suspect your conclusion may not follow.
I will read up on it before I write more, just wanted to provide some feedback other than a "like".

On the other claims
For our purposes, I also think the other “innovations” are not necessary.
... I don't think we'll lose much to Klippel with their “innovations”.

Yes, this was more or less my opinion back in the DIYaudio thread.
Improvements to ease of use and speed are nice but not so important for DIY.

Best wishes
David
 

JohnPM

Senior Member
Technical Expert
Joined
Apr 9, 2018
Messages
344
Likes
919
Location
UK
From my read of Klippel's patent PSFS works by time gating. I have no actual experience with measurements using ESS signal, but I don't think time gating can be used. The test signal duration is almost 2 seconds, and room reflections arrive far before the test signal ends.
Gating would usually be applied to the impulse responses derived from the ratios of the FFTs of the response and the stimulus, not to the raw response signals themselves.
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
Gating would usually be applied to the impulse responses derived from the ratios of the FFTs of the response and the stimulus, not to the raw response signals themselves.
Thank you very much for the pointer. This is certainly something that I need to learn more about :)
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
See Farina's paper here for a good place to start.
Thanks! I have this paper in my collection, but obviously had not paid enough attention to actually understand it. I'll work on it.
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
My apologies to your eyeballs :)

The theory may be a bit esoteric, but implementing the math is actually very simple. It can be easily done in many languages if you have access to standard scientific libraries. I am going to write a post the describe the steps in the next day or two.
Next day or two turned into a week and a half :facepalm:. I again way over-estimated my productivity :facepalm::facepalm:. But here is my guide (preliminary, based only on theories) on how to implement a Klippel clone 3-D speaker scanner.

Comments, questions, suggestions are always welcome. I also attached it to the opening post.

Thanks.
 

Attachments

  • Part_4.pdf
    453 KB · Views: 207

No. 5

Active Member
Joined
Nov 1, 2019
Messages
145
Likes
121
Next day or two turned into a week and a half :facepalm:. I again way over-estimated my productivity :facepalm::facepalm:. But here is my guide (preliminary, based only on theories) on how to implement a Klippel clone 3-D speaker scanner.

Comments, questions, suggestions are always welcome. I also attached it to the opening post.

Thanks.
It may have taken longer than anticipated, but it's for a good cause, and I, for one, am willing to be patient. :)

The question now is, what's the next step?

If the idea is to make a DIY Scanner, it seems like the hardware and software almost need to be developed in parallel. Based on a spherical scan surface, Dave's concept from the DIYAudio thread seems like a good starting point. I can start doing some sketches in AutoCAD in the nearish future and I welcome any design input.
 
OP
NTK

NTK

Major Contributor
Forum Donor
Joined
Aug 11, 2019
Messages
2,712
Likes
5,991
Location
US East
It may have taken longer than anticipated, but it's for a good cause, and I, for one, am willing to be patient. :)

The question now is, what's the next step?

If the idea is to make a DIY Scanner, it seems like the hardware and software almost need to be developed in parallel. Based on a spherical scan surface, Dave's concept from the DIYAudio thread seems like a good starting point. I can start doing some sketches in AutoCAD in the nearish future and I welcome any design input.
Yes. I agree it is time to start discussing hardware. I am hoping that hardware will attract more participation in the discussion than mathematics :D

I'll start first with my half baked idea.

test-stand.jpg


I also have some ideas on components. I am prioritizing on ease of implementation at this point over cost, so unfortunately, this is not exactly for a "shoestring" budget.

The robot in my contraption hangs off an upper frame. The upper frame can be built using Unistrut or 80/20 aluminum extrusions. If people can't source these components at their locations, prefers to pay more money for probably better quality (but otherwise similar) aluminum extrusions, and/or for wider selections, you can also get them from either Item or Bosch Rexroth. I am pretty sure Klippel builds their NFS using either Item or Bosch Rexroth aluminum extrusions. Both offer linear motion drives to go with their systems.

Onto the robotic joints. Robotis offers some high torque robot servos. Unfortunately, they aren't cheap.

My current thought is for a robot that can measures up to a 1 m diameter sphere. I assume the mic, joints 3 to 5 and linkages will weigh <1 kg, and therefore the continuous torque rating for joint 2 will be 10 N-m, which requires a Dynamixel-P PM54-060-S250-R. We can use the smaller (and cheaper) Dynamixel-X for joints 3 to 5. For joint 1, we may use a small CNC rotary table with a stepper motor since we are not too concerned about its weight.

I haven't given much thought on the robot arms/linkages. I think we can construct them from some structural tubings or channels.

[Robotis e-manuals link.]

Now I have fired my first shot, I am anticipating return fire :p
 

Dave Zan

Active Member
Joined
Nov 19, 2019
Messages
169
Likes
490
Location
Canberra, Australia
The question now is, what's the next step?

I have been at work to try to convert the Klippel-style data into CTA 2034 standard plots but have found a few issues in the standard instead.
https://www.audiosciencereview.com/...a-2034-but-that-sounds-dull-apparently.10862/
Funny to report that someone else also founds flaws in Klippel's own conversion of data into 2034 format.
The Klippel problems are apparently solved, the standard issues are currently unresolved but should be soon.

I'll start first...

My own idea (as drawn by "No. 5" in the DIY thread) was
663851d1519182175-klippel-near-field-scanner-shoestring-imag0923_burst002-jpg


Pretty simple.
Phi rotation is neutral equilibrium- so has minimal power/torque requirements, can use cheap, low powered USB controlled stepper motor or rotary table.
Similarly the Theta rotation can be balanced with a small mass on the end of the cantilever extension, another cheap USB stepper.
Struts are carbon fibre for stiffness and low mass, less inertia for faster position steps (I have a few old X-country race ski poles I planned to donate.)
Minimal structure so less reflections and cost and less constrained by room dimensions.
One concession to simplicity and low cost was my plan to do the inner scan and then just manually reposition the microphone strut for the outer scan - with a simple slide.
Obviously I had in mind to do a two surface scan with no intermediate R values.
The simple 1 to 1 match with the co-ordinates means it would be easy to do a basic structure and just manually step the measurements, with protractors instead of stepper motors at the joints.
For a manual system the most convenient axes placement is a little different but the mechanics would be similar.

Best wishes
David
 
Last edited:

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,754
Likes
3,053
For anyone who doesn't see @Dave Zan image, you need to be logged in to diyaudio.com to see it. It's more or less what I had in mind, although for simplicity I'd probaby use an L instead of the arcs. Thanks mainly to hobby level 3d printing / cnc projects there are a load of cheap 3-axis controllers available with stepper drivers, which should be sufficient with the right gearing and motor selection. Belt, gear or worm drive to be decided, perhaps based on local availability. We just treat theta, phi and (mic slide) as x, y and z in the g-code sent to the controller. That also decouples the positioning machine implementation from the measurement controller.
 

maxxevv

Major Contributor
Joined
Apr 12, 2018
Messages
1,872
Likes
1,964
Yes. I agree it is time to start discussing hardware. I am hoping that hardware will attract more participation in the discussion than mathematics :D

I'll start first with my half baked idea.

View attachment 47251

I also have some ideas on components. I am prioritizing on ease of implementation at this point over cost, so unfortunately, this is not exactly for a "shoestring" budget.

The robot in my contraption hangs off an upper frame. The upper frame can be built using Unistrut or 80/20 aluminum extrusions. If people can't source these components at their locations, prefers to pay more money for probably better quality (but otherwise similar) aluminum extrusions, and/or for wider selections, you can also get them from either Item or Bosch Rexroth. I am pretty sure Klippel builds their NFS using either Item or Bosch Rexroth aluminum extrusions. Both offer linear motion drives to go with their systems.

Onto the robotic joints. Robotis offers some high torque robot servos. Unfortunately, they aren't cheap.

My current thought is for a robot that can measures up to a 1 m diameter sphere. I assume the mic, joints 3 to 5 and linkages will weigh <1 kg, and therefore the continuous torque rating for joint 2 will be 10 N-m, which requires a Dynamixel-P PM54-060-S250-R. We can use the smaller (and cheaper) Dynamixel-X for joints 3 to 5. For joint 1, we may use a small CNC rotary table with a stepper motor since we are not too concerned about its weight.

I haven't given much thought on the robot arms/linkages. I think we can construct them from some structural tubings or channels.

[Robotis e-manuals link.]

Now I have fired my first shot, I am anticipating return fire :p

Do you actually need so many axes for the jig ? Would X,Y and Z be suffice without the rotation of axis or plane ?
 

Krunok

Major Contributor
Joined
Mar 25, 2018
Messages
4,600
Likes
3,067
Location
Zg, Cro
Next day or two turned into a week and a half :facepalm:. I again way over-estimated my productivity :facepalm::facepalm:. But here is my guide (preliminary, based only on theories) on how to implement a Klippel clone 3-D speaker scanner.

Comments, questions, suggestions are always welcome. I also attached it to the opening post.

Thanks.

From your document: "When it is not provided by the loudspeaker manufacturer, we may define the loudspeaker’s reference axis as the line pointing in the forward direction either from the center point of the tweeter or the halfway point between the tweeter and the mid-range driver. "

Adding to the discussion about reference axis in Neumann KH80 thread, isn't the latter in most cases better idea than the former? :)
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,754
Likes
3,053
Haven't we potentially got 2 potentially different definitions of 'reference axis' here? There's one for the zero axis of the machine we're taking the measurements with, and another that's used for the zero axis of the response plots. If the manufacturer provides a reference axis then we'd position the speaker in the rig so the axes are aligned. If the manufacturer doesn't then we pick a nominal axis that we think is about right when positioning the speaker in the rig, but we could be wrong - this is the tweeter axis, halfway point etc. argument. However we're calculating a sound field, so by applying a transform we can plot results along any axis we like - tweeter axis, half way point, or some offset angle. We could even search for an axis that gives the 'best' result, however that's defined.
 
Top Bottom