Modes in horns
Not only plane or spherical waves propagate in horns. Above a certain frequency, the wave front becomes much more complex, and this complex wave front can be described as a weighted sum of mode functions.
You may be familiar with standing waves in rooms. These standing waves can only exist at certain frequencies, and their shape is given by the so-called boundary conditions. For a room with hard walls, the boundary condition is that the velocity perpendicular to the wall should be zero. That means that the pressure has its maximum values at the walls. A room will have modes in all three directions, and the pressure at any point will be a sum of the contributions from all excited modes.
Another example of modes is the vibration of a string. A string is fixed at the ends, so the boundary condition is that the displacement should be zero at the ends. The mode functions for displacement are sine functions. Then the string can vibrate with shapes that are sums of sine functions that can fulfil the condition of zero displacement at the ends.
In horns, the pressure distribution across a cross-section can also be viewed as a sum of mode functions that meet the boundary conditions. For an axisymmetric horn, using a plane cross section, these functions can be cylindrical Bessel functions. These are the mode functions for a cylindrical tube of constant cross section. A horn can be approximated by a series of short, cylindrical tubes. At each change of cross section, the mode functions in the two tubes must be matched. The mode functions will not be the same in the two tubes. This means that a single mode coming to a change in cross section will generate a series of other modes in the following duct. This is known as mode coupling.
This fact can be used to simulate horns, by letting the wave at the throat propagate through the horn, generating new modes at each change in cross section, and letting them propagate or decay through the next part of the horn, and so on. A method to do this is described by Kemp in his thesis. During my project in Numerical Acoustics this fall (2011), I implemented this method and compared it to BEM. The report can be found here. The end result was in very good agreement with BERIM (a boundary element method for horns in infinite baffles), and much faster. I plan to make the method available, hopefully both as a little Windows executable, and as a Matlab toolbox. Update: The Matlab toolbox is available here.
Update: Spring 2012 I undertook a more detailed evaluation of the modal propagation method, to check the accuracy and computation times etc. The report can be downloaded here.