crazyhub said:

**but is it sure that the directivity of such a "circle array" can be regarded (even approximated) as a driver alone of same SD?**

That statement is clearly false, because it implies that the arrangement of the smaller drivers doesn't matter (only the net Sd). However, for a tightly packed array, a driver of similar "radius" is a decent approximation. I never use that though because it is straightforward to model the directivity of the array directly. For example, for a 4 driver square array:

First off, a piston's directivity function is:

R(x) = 2*J_1(k*a*sin(x)) / (k*a*sin(x))

J_1: Bessel function of first kind and first order

x: angle off-axis

k: wavenumber (w/c where w is angular frequency and c the speed of sound)

a: piston radius

For an array of sources, all of the same directivity, the total directivity of the system is the directivity of the sources multiplied by the directivity of the array. The directivity of an array of say 4 sources in the two main dimensions has a simple expression. The geometry in the attached picture shows how to think about this. Putting this together, the directivity of the system in the two main dimensions is:

R(x) = 2*J_1(k*a*sin(x)) / (k*a*sin(x)) * |1 + e^(i*k*d*sin(x))| /2

and

R(x) = 2*J_1(k*a*sin(x)) / (k*a*sin(x)) * |1 + 2*e^(i*k*d/sqrt(2)*sin(x)) + e^(i*k*d*2/sqrt(2)*sin(x))| /4

The first factor is the directivity of the piston, and the second factor the directivity of the array. The symbol | | means complex modulus, and we need to divide by 2 and 4 respectively so that on-axis we get 1.

How you take it from here is up to you, but what I do is make a function in matlab that has as inputs the piston radius (a), center-center separation (d), and frequency (w/2pi), and displays the corresponding polar plot for both axes.