Acoustic Horn Design – The Easy Way (Ath4)

This Internal Ring is designed to fit inside a DE250 throat. It has a large discontinuity at the throat exit. I suspect that's the type of diffraction resulting in higher order modes you're talking about. However, are those HOMs beyond my ability to hear if I can only hear up to 12,000Hz; or do the HOMs exist throughout the entire bandwidth the horn plays once they are generated at any point along the horn?

My ears aren't good so if it's past 12kHz it doesn't exist in my world. (Plus my tinnitus ringing away all the time)
 

Attachments

  • 33152_DE250_8.75_RingInternal.png
    33152_DE250_8.75_RingInternal.png
    12.4 KB · Views: 50
  • 33152_DE250_8.75_Impedance.png
    33152_DE250_8.75_Impedance.png
    57.6 KB · Views: 50
cough

not a single soul?
That process will give the phase with the propagation delays included which makes it look all wrapped and weird. Removing the fixed delay in VACS or letting Vituix make it minimum phase will make it look nicer.
Wow I've missed the whole FRDExport parameter :D

ATH FRDexport gets me the phase issue, windows 10 and latest ath from few days ago. Exporting from VACS seems to be fine though. I found some old post where mabat says exporting normalized response should get rid of the phase data, which is probably the reason it works. Same effect with FRDexport by ticking "Minimum phase" in VituixCAD like fluid suggests.
 

Attachments

  • vacs-export.png
    vacs-export.png
    45.2 KB · Views: 41
  • frd-export.png
    frd-export.png
    77.9 KB · Views: 42
Member
Joined 2004
Paid Member
Last edited:
Member
Joined 2004
Paid Member
This Internal Ring is designed to fit inside a DE250 throat. It has a large discontinuity at the throat exit. ...
As the throat is made also effectively smaller (which is not a small thing), all the HOMs should shift higher in frequency (as I understant the matter) and I suspect that it's already high enough not to matter. You can also see that above 15 kHz the directivity issues went away. What remains is the reflection at the discontinuity and the wavy throat acoustic impedance, which corresponds to the frequency response "bumps" but these are readily correctable at the signal level.
 
Last edited:
  • Like
Reactions: 1 user
- If you specify Distance in ABEC.Polars, FRs are simply calculated at that distance from the origin and VACS phases include all the propagation delays (may seem "weird" due to wrapping but they are correct). Ath currently removes the delay corresponding to this distance automatically in the FRD export function. This is the recommended way how to obtain the data for a crossover simulation. Don't use any PhaseComp unless you know what you're doing.
Thanks, I don't understand the advice though, how should I configure it? There must be Distance in ABEC.Polars, otherwise there is an error "error: observation distance not defined for polar map 'SPL'" so I understand recommended way is to use Distance parameter, and leave out PhaseComp parameter.

Should the Distance be some specific value or some other parameter is wrong? Attached is Distance 1, 2, 3. There seems to be some compensation as it moves but group delay shouldn't look like that I think, indicating there is an error.

edit. I'm on windows 10 and tried again ABEC in windows 8 compatibility mode, same results. Something else is wrong than windows number?
 

Attachments

  • phase-1m.png
    phase-1m.png
    77 KB · Views: 35
  • phase-2m.png
    phase-2m.png
    87.8 KB · Views: 33
  • phase-3m.png
    phase-3m.png
    84.5 KB · Views: 37
Last edited:
Member
Joined 2004
Paid Member
Yes, use Distance, 2m or more should work in most cases. I haven't checked but maybe if you normalize the data, you don't need to remove any delay then, and becaue Ath does that automatically irrespective of that, maybe you should use PhaseComp = -Distance (the negative value of distance) to cancel it. Try and see what it does. It's really nothing mysterious or critical, just "tilting" the overall phase so it's not wrapped too much.

That chaotic group delay is just a consequence of that heavily wrapped phase response and not enough frequency points (as it's calculated as it's slope).
 
Last edited:
thanks, for some reason it doesn't seem to help. Tried combinations on NormAngle and PhaseComp with the Distance but the phase seems to be the same no matter. Double checked I'm using correct data, command and so on.

Here is ABEC.Polars and variations tested, no difference in phase data
Code:
ABEC.Polars:SPL = {
 MapAngleRange = 0,180,37
 Offset=0
 NormAngle =
 Distance = 2
 PhaseComp = -2
 FRDExport = {
    NamePrefix = cd_hor
 }
}

Tried these: 

 NormAngle = 0
 Distance = 2
 PhaseComp = -2

 NormAngle = 0
 Distance = 2
; PhaseComp = -2

 NormAngle =
 Distance = 2
 PhaseComp = -2

 NormAngle =
 Distance = 2
; PhaseComp = -2
 
Member
Joined 2004
Paid Member
PhaseComp must be inside the FRDExport block:
Code:
ABEC.Polars:SPL = {
  MapAngleRange = 0,180,37
  NormAngle = 10
  Distance = 2  
  FRDExport = {
     NamePrefix = cd_hor
     PhaseComp = -2
  }
}

Ath just always removes the following delay from the exported FRD data: delay = (Distance + PhaseComp)/344
If there's no need to remove any delay, set PhaseComp = -Distance.
 
Last edited:
For sure, I'll compensate with DSP delay after measuring a real thing, mainly interested in what DI is at the ath design phase. It would be nice to have real phase for sure but for now couldn't get it working. I have only few centimeter difference in acoustic centers and know its not a big deal compared to crossover frequency wavelength. Need to adjust for it anyway in the end.
 
Last edited:
Here is a simulation for zero throat length with 18.5mm diameter throat entrance vs the original factory 24mm long throat (B&C DE250 as close as I can measure with my tools). However, I don't understand what impact impedance has beyond equalization. Do large impedance changes/swings create problems that don't show up in the ABEC simulations, e.g.: high order modes described by Earl Geddes; group delay problems; or something else?
Now that I have a little experience manipulating impedance I don't know what I should be targeting if the compression driver won't allow a zero throat length for my chosen coverage angle.

tadPhasePlug.jpg


Are you intending to mill the compression driver so the exit is larger?

Or mask off part of the phase plug?

I'm just trying to figure out how you'll change the exit angle without doing that.
 
Last night I made another attempt at extracting polars with uncorrupted phase data on Win11 with compatibility mode (Win8) enabled for ABEC3. The results did not improve. I have also replaced Distance=2m with Farfield=true in a second step, the resulting phase issue remained:
The data isn't corrupted it just includes the full propagation delay so it is wrapped.

The whole point of exporting phase data is to have the real phase, including all the relative propagation delays, captured in the data. Minimum phase is generally useless for simulation of a multiway system (unless you are willing to do a lot of guesswork and sacrifice accuracy).
The simulated phase from the woofer in Ath is not likely to be much better than estimating the voice coil position and applying an offset to minimum phase data.
Results are same as with Minimum phase tick, can't seem to get normalization off. :D Well, normalized is fine for my use.
Just remove the Norm = line or uncomment it with //, for an already solved simulation edit the Observation script to take it out and rerun the Spectrum calculation
 
  • Like
Reactions: 1 user
The data isn't corrupted it just includes the full propagation delay so it is wrapped.
If this was the case it should be possible to remove it in VCad with a delay of 2 meters, but it does not. However, after mabat had indicated that entering PhaseComp in the section FRD export was required, I did the change to the wg.cfg it after the system was already solved in ABEC3 and it seemingly worked. I will do another test another night.
 
The data isn't corrupted it just includes the full propagation delay so it is wrapped.
Actually, it's after removing a delay that wasn't there, i.e. there's a negative delay added.

The simulated phase from the woofer in Ath is not likely to be much better than estimating the voice coil position and applying an offset to minimum phase data.
And what about all the delays off-axis, including a waveguide, and the corresponding diffractions?
But OK, a voice coil position is a special case that's not fully modeled.
 
If this was the case it should be possible to remove it in VCad with a delay of 2 meters, but it does not. However, after mabat had indicated that entering PhaseComp in the section FRD export was required, I did the change to the wg.cfg it after the system was already solved in ABEC3 and it seemingly worked. I will do another test another night.
If you have applied phase comp of the delay distance then you have removed the delay twice and put it into negative time as mabat said, this still wraps and looks the same so you would have to add time in Vituix, or just remove Phase comp and use distance parameter in ABEC polars, that's what I did and it worked.
 
However, after mabat had indicated that entering PhaseComp in the section FRD export was required
The truth is that I mentioned all of this at the moment I introduced the functionality :)

"You have to set an explicit distance for the polars if you want to export them. This will be also the default delay compensation (which you can manually adjust with the PhaseComp value, that will be added to the Distance value)."

https://www.diyaudio.com/community/...-design-the-easy-way-ath4.338806/post-6996527

- Obviously, if you normalize the data, the basic propagation delay corresponding to Distance disappears by definition. Normalized phase responses should be relative to the phase at the normalization angle. I hope this is the case.
 
Last edited: