spharpy.beamforming#

Functions:

dolph_chebyshev_weights(n_max, design_parameter)

Calculate the weights for a spherical Dolph-Chebyshev beamformer.

maximum_front_back_ratio_weights(n_max[, ...])

Weights that maximize the front-back ratio of the beam pattern.

normalize_beamforming_weights(weights, n_max)

Normalize the beamforming weights such that the complex amplitude of a plane wave is not distorted.

rE_max_weights(n_max[, normalize])

Weights that maximize the length of the energy vector.

spharpy.beamforming.dolph_chebyshev_weights(n_max, design_parameter, design_criterion='sidelobe')[source]#

Calculate the weights for a spherical Dolph-Chebyshev beamformer. The design criterion can either be a desired side-lobe attenuation or a desired main-lobe width. Once one criterion is chosen, the other will become a dependent property which will be chosen accordingly.

Parameters:
  • n_max (int) – Spherical harmonic order

  • design_parameter (float, double) – This can either be the desired side-lobe attenuation or the width of the main-lobe in radians.

  • design_criterion ('sidelobe', 'mainlobe') – Whether the design parameter argument is the desired side-lobe attenuation or the desired main-lobe width.

Returns:

weigths – An array containing the weight coefficients $d_nm$.

Return type:

ndarray, double

References

spharpy.beamforming.maximum_front_back_ratio_weights(n_max, normalize=True)[source]#

Weights that maximize the front-back ratio of the beam pattern. This is also often referred to as the super-cardioid beam pattern.

Parameters:
  • n_max (int) – The spherical harmonic order

  • normalize (bool) – If True, the weights will be normalized such that the complex amplitude of a plane wave is not distorted.

Returns:

weigths – An array containing the weight coefficients

Return type:

ndarray, double

Note

The weights are calculated from an eigenvalue problem

References

[3] B. Rafaely, Fundamentals of Spherical Array Processing, Springer, 2015.

spharpy.beamforming.normalize_beamforming_weights(weights, n_max)[source]#

Normalize the beamforming weights such that the complex amplitude of a plane wave is not distorted.

Parameters:
  • weights (ndarray, double) – An array containing the beamforming weights

  • n_max (int) – The spherical harmonic order

Returns:

weights – An array containing the normalized beamforming weights

Return type:

ndarray, double

spharpy.beamforming.rE_max_weights(n_max, normalize=True)[source]#

Weights that maximize the length of the energy vector. This is most often used in Ambisonics decoding.

Parameters:
  • n_max (int) – Spherical harmonic order

  • normalize (bool) – If True, the weights will be normalized such that the complex amplitude of a plane wave is not distorted.

Returns:

weights – An array containing the weight coefficients.

Return type:

ndarray, double

References