Welcome, Guest
Username: Password: Remember me
This is the optional Forum header for the Suggestion Box.

TOPIC:

Re: Linkwitz transform 10 years 9 months ago #4197

  • Crumboo
  • Crumboo's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 144
  • Thank you received: 14
Hi and thanks again CharlieLaub,

I just had a quick look at the link you posted. Looks very nice indeed! I have a few suggestions for your excel-file (maybe the features is already there?):
  • Plotting the total response of several cascaded biquad filters
  • Define the distances of the different speakers in a loudspeaker and plot the combined response in different angels (or even polar plots?)
  • Import measured data (.frd for example) and apply filters on this data

There is a solver add-in in excel (at least in some versions) that can be used for curve-fitting, for example fit a biquad function to a defined "target" curve by adjusting the biquad parameters.

I will be happy to have a look on your spreadsheet if you interested. :)

And yes, I would be grateful for information on calculating z, z^-1 etc. :)

Please Log in or Create an account to join the conversation.

Re: Linkwitz transform 10 years 9 months ago #4198

  • CharlieLaub
  • CharlieLaub's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 113
  • Thank you received: 8
Well 2 out of 3 ain't bad... My design tools already do these:
* Plotting the total response of several cascaded biquad filters
* Import measured data (.frd for example) and apply filters on this data

The tools are designed to work from measurements made at a single point in space, or extrapolated there, e.g. somewhere on the listening axis. There is no need to input location information for the driver, because you determine the acoustic offset from a set of three measurements and then the tools incorporate the phase response resulting from the group delay in to the overall response. No more guesstimating where the acoustic center of your driver is located like in some other programs!

Thanks for mentioning the Excel solver - good idea. I have been thinking of how I can implement it as an add-on to my spreadsheet tools, and it probably is doable. I am currently writing a simulated-annealing based solver that will be implemented (hopefully) in a OpenOffice Calc add-on, since my tools also work under OO Calc. It should be much more versatile at multi-dimensional minimization/optimization compared to the Excel solver, since it can avoid getting stuck in local minima. It's based on an algorithm that I developed a few years back.

-Charlie

Please Log in or Create an account to join the conversation.

Re: Linkwitz transform 10 years 9 months ago #4207

  • CharlieLaub
  • CharlieLaub's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 113
  • Thank you received: 8
Here is how to computer the filter response, given the "biquad coefficients":

First, define the digital frequency (omega) as w = 2*pi*f*T

where f is the frequency in Hertz, and T is the sampling interval, T = (sampling frequency)^-1

Then z = EXP( 0 + iw )

where i is (-1)^0.5. Note that z is a complex number.

To get other powers of z, use exponentiation. For instance in Excel:

z^-1 = IMPOWER(IMEXP(COMPLEX(0,w)),-1)
z^-2 = IMPOWER(IMEXP(COMPLEX(0,w)),-2)

In the above Excel formulas, I have inserted "w" in place of a cell reference to w.

After computing these quantities, use the definition of the transfer function, the coefficients of each term, and Excel's complex number functions IMDIV, IMSUM, and IMPRODUCT to compute the quantity H(z) shown below:



Finally, compute the magnitude and phase response from the transfer function using IMABS And IMARGUMENT, noting that the phase angle computed by IMARGUMENT will be in radians.

-Charlie
The following user(s) said Thank You: Crumboo

Please Log in or Create an account to join the conversation.

Last edit: by CharlieLaub.

Re: Linkwitz transform 10 years 9 months ago #4209

  • Crumboo
  • Crumboo's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 144
  • Thank you received: 14
Hi again,

As for specifying the distance between speakers I meant in the vertical direction (not the "depth"). While measured data is needed for the actual filter calculations, it could be useful to simulate the combined response in different directions as well. The tools you are developing will be very useful! :)

Please Log in or Create an account to join the conversation.

Re: Linkwitz transform 10 years 9 months ago #4210

  • Crumboo
  • Crumboo's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 144
  • Thank you received: 14
I followed the steps you wrote in order to calculate the response, and I now get the correct result! :) Thank you so much CharlieLaub!

Please Log in or Create an account to join the conversation.

Re: Linkwitz transform 10 years 9 months ago #4211

  • CharlieLaub
  • CharlieLaub's Avatar
  • Offline
  • Premium Member
  • Premium Member
  • Posts: 113
  • Thank you received: 8
If you really want to calculate the off-axis response of a loudspeaker, you need to know the positions in space for all the drivers, not just the x,y position on the baffle, but also the z position (distance in front of or behind the baffle plane, or from some reference point/plane).

There are some tools that you can use to calculate off-axis responses, such as the Baffle Response Simulator . Doing these calculations correctly is not trivial, because you need to use a good directivity model of the driver. If you download and try out the BRS, you will see that it takes some time to calculate the response. In the end, it's still a model of a rigid piston, and off axis measurements would be more accurate.

The approach that I have taken with my crossover design tool is intended to keep things simple. You start with the on-axis response using measurements taken there. If you want to know the off-axis response, you need to supply different measurements, or at least change the acoustic delays in each driver response spreadsheet to reflect the different pathlengths to the off-axis position(s).

-Charlie

Please Log in or Create an account to join the conversation.

Moderators: devteam