Announcement

Collapse
No announcement yet.

Acoustic 3rd order with Linkwitz-Riley characteristics?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by dlr View Post
    You still have the issue of vertical off-axis lobing response if you do this, but it probably tends to reduce the lobe magnitude.
    That's not really too much of a problem IME. If the overlap sums by 6 dB, the lobe maximum is at the observation point, like an LR.

    The lobe shape may differ from LR, but IME a symmetrical lobe isn't that much of a benefit. IME it's more important to aim for a decent mid range response at the floor bounce, to avoid a bad suckout at standing height ~ 8' from the speakers and to tune the crossover knees to try and reduce any driver off axis bloom or big discontinuity in dispersion between drivers.

    Also, IME, a little bit of overlap ripple is generally OK as the ripple magnitude is much less than shown by response changes with even small changes in listening position.

    I simulated quite a few filter alignments of my own creation, accounting for driver responses, phases, & differing locations in 3 dimensions (but not edge diffraction), and I found a nice trade off between on axis, off axis, group delay and roll off using a all-pass derived filter based on alignments between Butterworth and Bessel. Lipshitz has an old AES paper that shows how to derive filters that sum to all pass (ie flat) using any all pole transfer function as the starting point. General trade offs I found in my sims:
    - the farther from Butterworth for the all pole starting point (Linkwitz Riley uses Butterworth), the lower the rate of asymptotic roll off for the "derived" filter section. So I always use the all pole for high pass, derived for low pass
    - the higher the Q of the all pole starting point, the worse the group delay near overlap

    BTW, For your winfilters, if you could add e^(-tau), you would have a model for bulk delay (eg to tweeter).

    Comment


    • #17
      Originally posted by fatmarley View Post

      Vance shows the +3db hump off-axis (+ or -15 degrees depending on polarity IIRC). According to Jeff bagby you should get a flat response on-axis.

      Ack, sorry, its been so long since I worked with text book filters, you're right. Odd order sum flat, even have hump. Vance showed offsetting the evens got rid of the hump quite nicely

      Comment


      • #18
        Originally posted by DDF View Post
        That's not really too much of a problem IME. If the overlap sums by 6 dB, the lobe maximum is at the observation point, like an LR.
        True, but that's at Fc. If the two sections are not both LR, then in the overlap region close to Fc there could be lobing and it could be broad, so it's a case of "it depends".

        The lobe shape may differ from LR, but IME a symmetrical lobe isn't that much of a benefit. IME it's more important to aim for a decent mid range response at the floor bounce, to avoid a bad suckout at standing height ~ 8' from the speakers and to tune the crossover knees to try and reduce any driver off axis bloom or big discontinuity in dispersion between drivers.

        Also, IME, a little bit of overlap ripple is generally OK as the ripple magnitude is much less than shown by response changes with even small changes in listening position.
        I can't argue with any of that.

        BTW, For your winfilters, if you could add e^(-tau), you would have a model for bulk delay (eg to tweeter).
        I've got a way to enter driver offsets for pure time delay, not sure whether you mean something different by bulk delay.

        dlr
        WinPCD - Windows .NET Passive Crossover Designer

        Dave's Speaker Pages

        Comment


        • #19
          Originally posted by dlr View Post
          I've got a way to enter driver offsets for pure time delay, not sure whether you mean something different by bulk delay.

          dlr
          Saw you mention using s-plane math, thought it might be helpful to mention e^-(s*r/c) is how to add bulk delay in s-math.

          Comment


          • #20
            Originally posted by DDF View Post
            Saw you mention using s-plane math, thought it might be helpful to mention e^-(s*r/c) is how to add bulk delay in s-math.
            The targets are all generated using s-plane equations, some from references I found such as the one at Rane. Maybe the way I implemented them in code is a bit klutzy, but it's these equations and others that I used directly or extended for higher orders and I had to hand calculate the coefficients for many of the equations, both magnitude and phase. There may be better ways to code it. Most references I found were very limited. Plus most examples simply show a single set of curves for a normalized display. The user can select the Fc desired, so mine is probably not the cleanest implementation with a user interface. The user can add delay based on distance, so the delay is simply the phase delay associated with the discrete frequency points calculated. It's not RLC networks of any kind.

            When writing this it was the first time I had ever coded s-plane math so much was new to me.

            dlr
            WinPCD - Windows .NET Passive Crossover Designer

            Dave's Speaker Pages

            Comment


            • #21
              Originally posted by dlr View Post
              The user can add delay based on distance, so the delay is simply the phase delay associated with the discrete frequency points calculated. It's not RLC networks of any kind.
              Dave, not sure if this was in reference to the equation in my previous post, hope I didn't just add confusion. To clarify, the "r" is distance to observer in meters, the "c" is speed of sound at 343 m/s

              Since you have the s-plane math coded, I think you'd enjoy simulating your own filters that always sum to all pass (flat magnitude) but give different lobing and group delays depending on the biquads used. There are infinite possibilities. The math goes like this.

              Low pass(s) = L(s) = 1/(P(s))^2, where P(s) is your nth order polynomial
              All pass with same phase response as P(s) = A(s) = P(-s)/P(s)
              High Pass = H(s) = A(s) - L(s)

              High pass asymptotic roll off rate will be less than low pass unless polynomial is Butterworth. For better tweeter power handling at the cost of less low pass roll-off rate, just flip the role of L(s) and H(s)

              To add driver models to the simulation, just use biquads to represent low and high pass roll off of the drivers (drivers are minimum phase) and multiply the H(s) by the tweeter model and L(s) by the woofer model

              To add differential bulk delay between drivers to the observation point, multiply the further driver by e^(-sr/c), r = distance difference, c = speed of sound.

              Did all this on a Vax in Fortran way back when, works dandy!

              Comment


              • #22
                What he said, but of course there always ends up being some sort of spread away from Fc and or tweaking of cap coil ratio,
                and as you mentioned defraction, any sort of zobel, eq, baffle step, correcting for things like floor bounce, general impedance,
                [email protected] in other words witchcraft.
                Guess xmax's age.

                My guess: 15. His grammar is passable. His trolling is good.

                Comment


                • #23
                  Originally posted by DDF View Post

                  Dave, not sure if this was in reference to the equation in my previous post, hope I didn't just add confusion. To clarify, the "r" is distance to observer in meters, the "c" is speed of sound at 343 m/s
                  My mistake on reading, thanks for the clarification.

                  Since you have the s-plane math coded, I think you'd enjoy simulating your own filters that always sum to all pass (flat magnitude) but give different lobing and group delays depending on the biquads used. There are infinite possibilities. The math goes like this.

                  Low pass(s) = L(s) = 1/(P(s))^2, where P(s) is your nth order polynomial
                  All pass with same phase response as P(s) = A(s) = P(-s)/P(s)
                  High Pass = H(s) = A(s) - L(s)

                  High pass asymptotic roll off rate will be less than low pass unless polynomial is Butterworth. For better tweeter power handling at the cost of less low pass roll-off rate, just flip the role of L(s) and H(s)

                  To add driver models to the simulation, just use biquads to represent low and high pass roll off of the drivers (drivers are minimum phase) and multiply the H(s) by the tweeter model and L(s) by the woofer model

                  To add differential bulk delay between drivers to the observation point, multiply the further driver by e^(-sr/c), r = distance difference, c = speed of sound.

                  Did all this on a Vax in Fortran way back when, works dandy!
                  Thanks for this as well. I don't have time at the moment, but I will take note of this for later reference. Looks interesting. I really do need to clean up/improve the code.

                  dlr
                  WinPCD - Windows .NET Passive Crossover Designer

                  Dave's Speaker Pages

                  Comment

                  Working...
                  X