I have previously written about Phase Decomposition, and I still think that this is a highly underutilized technique, as it gives you a lot of insight that you would not otherwise get. Having implemented in COMSOL Multiphysics (if you want to do this too, you can check the products) makes life a little easier when it comes doing the detective work regarding loudspeaker radiation. However, just as this technique has been promoted mainly by Klippel from a measurement perspective, another technique that you can get with the Klippel software packages is Axial Symmetrical Decomposition as seen on one of their very nice and illustrative posters:
The idea here is that any surface displacement, without any regard to sound (as opposed to the Phase Decomposition), can be decomposed into a Radial displacement part and a Circumferential displacement part. For example, a pure piston displacement will only have a radial part as all parts move the same radial for any angle you choose, whereas a pure rocking mode will have a zero radial part, since for any radius you can integrate around the angle without getting a net results, and hence the rocking mode will consist purely of a circumferential part.
For a complex surface displacement it can be very informative to see the split between the two displacement parts; probably more so for the off-axis response, but those details are not important for now. What is important is that this decomposition technique can also be implemented in your simulation software, at least if it has the proper Projection and Extrusion operators available, and the obvious choice is of course COMSOL Multiphysics.
Now, without getting to much into the details of the implementation, the way I did it may not be the optimal way of doing it, but for anyone who wants to try it, I will show the principle schematic below. It is fairly convoluted, and for now I don't see it being a product as the Phase Decomposition technique, so you can give it a go, and if you absolutely cannot live without it, we can work something out.
Green arrows are projection; orange arrows are extrusions. Since I control the total displacement, I can easily turn on and off the 'rocking' part to verify that the final result is in fact correct: The result of all of these operations is to find the radial part by way of integration in the angular direction for each radius. Once this is known, the difference between the total displacement and the radial displacement is by defintion the circumferential displacement.
Best of luck implementing this; maybe it is just my brain which is not suited for these operations, but this was not trivial.
Honestly, I am not sure I will ever use this much. The phase decomposition is awesome and I always apply it per default, but the above technique I would probably only use it in very specific cases. But at least now it has been shown that it can be done without any linking to MATLAB or similar. Let me know what you think. Would you see a use for it?