Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Software Tools SPICE, PCB CAD, speaker design and measurement software, calculators

Klippel Near Field Scanner on a Shoestring
Klippel Near Field Scanner on a Shoestring
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 5th June 2018, 10:35 PM   #261
3ll3d00d is online now 3ll3d00d  United Kingdom
diyAudio Member
 
3ll3d00d's Avatar
 
Join Date: Jan 2014
Quote:
Originally Posted by gedlee View Post
See post 193. If the package can do all this then we're good, but if not then I do not know what the GUI should look like. Static plots just aren't very useful when you have 3D data. You need an intuitive way to scroll through the data in real time.

Could that package do what Polarmap does now?
I believe so yes as you can register a callback to receive mouse move events (and can throttle those) and the lib is apparently built to support high refresh rates so shouldn't have a problem with redraw in response to live user input.
  Reply With Quote
Old 6th June 2018, 01:10 AM   #262
gedlee is offline gedlee  United States
diyAudio Member
 
gedlee's Avatar
 
Join Date: Dec 2004
Location: Novi, Michigan
You need mouse move and click events and then it might work. As long as the graphics show the level of detail that my app shows and the ability to interactively change the display I'm fine.

Does that package do circular contour plots. I was thinking that might be necessary to show how the sound varies with Psi as the plot on the left shows how the sound varies with Theta. That kind of display would be groundbreaking.

So basically there are three displays:

1) SPL contour as color in a theta versus frequency plot (theta chosen by mouse from plot 3)
2) SPL versus frequency at the theta value from plot 1 (mouse selected) (with power response and DI shown as well)
3) SPL contour as color (same as 1) as psi angle at the frequency selected from plot 1 (mouse selected)

This would show a complete mapping of a loudspeakers response in 3D space.
__________________
Earl Geddes Gedlee Website
  Reply With Quote
Old 6th June 2018, 02:25 PM   #263
3ll3d00d is online now 3ll3d00d  United Kingdom
diyAudio Member
 
3ll3d00d's Avatar
 
Join Date: Jan 2014
Quote:
Originally Posted by gedlee View Post
Does that package do circular contour plots. I was thinking that might be necessary to show how the sound varies with Psi as the plot on the left shows how the sound varies with Theta. That kind of display would be groundbreaking.
I googled this a bit and get the impression it can draw such charts albeit you pretty much have to draw it yourself.

However just to check we're talking about the same thing, you're talking about something like gnuplot 2D polar plot with heatmap from 3D dataset - possible? - Stack Overflow right?
  Reply With Quote
Old 6th June 2018, 03:20 PM   #264
gedlee is offline gedlee  United States
diyAudio Member
 
gedlee's Avatar
 
Join Date: Dec 2004
Location: Novi, Michigan
That looks like it could work, but not the way the author describes it. We have the results, SPL, as a function of three variables Theta, Psi and frequency. Each plot has SPL versus one or two of the variables; SPL(Theta, fixed Psi, Frequency) as a rectangular contour plot, SPL(Fixed Theta, Fixed Psi, Frequency) as a normal XY plot and finally SPL(Theta, Psi, Fixed Frequency) as a polar contour plot. In this last plot the radius would be Theta and the plots theta would be Psi, so this is different than described in that link. But the plotting technique appears that it should work.

When I did all this many many years ago, I could not find a plotting package that would work. Seems like more capable packages are now available.
__________________
Earl Geddes Gedlee Website

Last edited by gedlee; 6th June 2018 at 03:22 PM.
  Reply With Quote
Old 6th June 2018, 11:33 PM   #265
3ll3d00d is online now 3ll3d00d  United Kingdom
diyAudio Member
 
3ll3d00d's Avatar
 
Join Date: Jan 2014
Quote:
Originally Posted by gedlee View Post
3) set a window
is there a reason (e.g. some particular window) to do this in this software as opposed to exporting a windowed measurement from the measurement software? just trying to avoid duplicating functionality that already exists elsewhere

another Q on the DLL, linToLog takes a parameter named DeltaF. I assumed this was the frequency step (i.e. Fs/N where n is no of samples in the input data), is it correct?

I ask because I'm getting another array out of bounds error which might be driven by the size of the input data set (not 100% sure yet). When it does occur it comes from line 17 of spline.f90 (and complains about "Subscript #1 of the array U has value 4097 which is greater than the upper bound of 4096")

When it does complete normally then I get nothing back in the freqs output array (whereas I do get something back in the dataout array).

Obviously something is wrong but I don't know what.
  Reply With Quote
Old 7th June 2018, 01:37 AM   #266
gedlee is offline gedlee  United States
diyAudio Member
 
gedlee's Avatar
 
Join Date: Dec 2004
Location: Novi, Michigan
There is absolutely a reason for setting the window in the analysis software. That's because I often change the window by some amount to see if an aberration is window related or not. Data should always be stored as raw data and not manipulated in ways that cannot be undone. A window cannot be undone. And in the data set that you are using it is not windowed.

Your assumption about DeltaF is correct.

4097 elements would never occur because it must be a power of two. 4096 is the maximum array size set in this subroutine, so 4097 would be out of bounds. My arrays are all zero element based. (DataIn(0:NumFFTpts).

The code works with any FFT below 2048, like 1024, 512, 256. Try a smaller value.

Looking at the code, Freqs is input as an array of the desired log points, of length NumLogPts + 1

I am somewhat hazy on some of this since its been ten years since I wrote that code.
__________________
Earl Geddes Gedlee Website

Last edited by gedlee; 7th June 2018 at 01:39 AM.
  Reply With Quote
Old 7th June 2018, 09:05 AM   #267
3ll3d00d is online now 3ll3d00d  United Kingdom
diyAudio Member
 
3ll3d00d's Avatar
 
Join Date: Jan 2014
Quote:
Originally Posted by gedlee View Post
There is absolutely a reason for setting the window in the analysis software. That's because I often change the window by some amount to see if an aberration is window related or not. Data should always be stored as raw data and not manipulated in ways that cannot be undone. A window cannot be undone. And in the data set that you are using it is not windowed.
yes I understand that aspect. IMV this feature is non essential for this software as this functionality is available in a number of commonly used measurement software (REW & Arta for sure). Certainly something to add at some point though as it would be more convenient to do it in this software.


Quote:
Originally Posted by gedlee View Post
4097 elements would never occur because it must be a power of two. 4096 is the maximum array size set in this subroutine, so 4097 would be out of bounds. My arrays are all zero element based. (DataIn(0:NumFFTpts).

The code works with any FFT below 2048, like 1024, 512, 256. Try a smaller value.
ok got it.

Quote:
Originally Posted by gedlee View Post
Looking at the code, Freqs is input as an array of the desired log points, of length NumLogPts + 1
ok so to recap we previously (Klippel Near Field Scanner on a Shoestring) said this was an output, i.e. the function determines the log spacing based on the requested number of pts in the output. However it is actually input which means I have to calculate the freq pts I want in the output.

If this correct?
If so, how should I do this? your pdf mentions an ERB spacing, a quick google found me some code to do this (http://www.briansimulator.org/docs/r...hears.erbspace) so I could use that if that is the preferred approach.
  Reply With Quote
Old 7th June 2018, 06:35 PM   #268
3ll3d00d is online now 3ll3d00d  United Kingdom
diyAudio Member
 
3ll3d00d's Avatar
 
Join Date: Jan 2014
Quote:
Originally Posted by 3ll3d00d View Post
If so, how should I do this? your pdf mentions an ERB spacing, a quick google found me some code to do this (http://www.briansimulator.org/docs/r...hears.erbspace) so I could use that if that is the preferred approach.
FWIW the implementation of that is in https://github.com/brian-team/brian/...n/hears/erb.py
  Reply With Quote
Old 8th June 2018, 01:35 AM   #269
Dave Zan is offline Dave Zan  Australia
diyAudio Member
 
Join Date: Nov 2010
Quote:
Originally Posted by gedlee View Post
That looks like it could work, but not the way the author describes it. We have the results, SPL, as a function of three variables Theta, Psi and frequency...
Any particular reason you use psi rather than phi?
Theta,phi is practically universal in my text books, makes me wonder if there is some subtle implication in your choice.
The discussion has been helpful, thanks.

Best wishes
David
  Reply With Quote
Old 10th June 2018, 10:45 PM   #270
gedlee is offline gedlee  United States
diyAudio Member
 
gedlee's Avatar
 
Join Date: Dec 2004
Location: Novi, Michigan
Quote:
Originally Posted by 3ll3d00d View Post
ok so to recap we previously (Klippel Near Field Scanner on a Shoestring) said this was an output, i.e. the function determines the log spacing based on the requested number of pts in the output. However it is actually input which means I have to calculate the freq pts I want in the output.

If this correct?
If so, how should I do this? your pdf mentions an ERB spacing, a quick google found me some code to do this
Yes, my mistake it is calculated and then passed in. This array is need in both the GUI as well as the DLL so its best to just calculate it once.

I use two variables, Lowest_Dec and Number_Decs, for lowest decade, always 1, number of decades is always 3. Then the frequencies are:

Freq(i) = 2.0 * 10^(lowest_Dec + i * Number_Decs / Number_Linear_points)

The ERB has many options and it done in the DLL. The Lin_To_Log is just an interpolation from one set of points to another, no smoothing is done. And even this unsmoothed data can be useful. I just do not like linear spaced data points because that is not how we hear. Pitch is logarithmic.

Quote:
Originally Posted by Dave Zan View Post
Any particular reason you use psi rather than phi?
Yea, I guess that it is Phi, I just never thought about the name since it is obvious what angle it is.
__________________
Earl Geddes Gedlee Website
  Reply With Quote

Reply


Klippel Near Field Scanner on a ShoestringHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Klippel R&D Measurement Methodology SUBduction Multi-Way 3 11th December 2016 04:37 PM
TB W3-1878 Klippel graph aarvin2 Full Range 3 18th November 2012 03:04 PM
Why doesn't DIYAUDIO have a klippel? JZatopa The Lounge 26 14th November 2011 02:40 AM
Vinyl Scanner? Nehesi Analogue Source 37 20th July 2011 08:29 AM
TD15M, does anybody have one willing to donate for Klippel testing? thadman Multi-Way 71 4th September 2009 03:10 AM


New To Site? Need Help?

All times are GMT. The time now is 12:36 PM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.00%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki