sfs.fd.esa

Compute ESA driving functions for various systems.

ESA is abbreviation for equivalent scattering approach.

ESA driving functions for an edge-shaped SSD are provided below. Further ESA for different geometries might be added here.

Note that mode-matching (such as NFC-HOA, SDM) are equivalent to ESA in their specific geometries (spherical/circular, planar/linear).

Functions

line_2d_edge(omega, x0, xs, *[, alpha, Nc, c]) Driving function for 2-dimensional line source with edge ESA.
line_2d_edge_dipole_ssd(omega, x0, xs, *[, …]) Driving function for 2-dimensional line source with edge dipole ESA.
plane_2d_edge(omega, x0[, n, alpha, Nc, c]) Driving function for 2-dimensional plane wave with edge ESA.
plane_2d_edge_dipole_ssd(omega, x0[, n, …]) Driving function for 2-dimensional plane wave with edge dipole ESA.
point_25d_edge(omega, x0, xs, *[, xref, …]) Driving function for 2.5-dimensional point source with edge ESA.
sfs.fd.esa.plane_2d_edge(omega, x0, n=[0, 1, 0], *, alpha=4.71238898038469, Nc=None, c=None)[source]

Driving function for 2-dimensional plane wave with edge ESA.

Driving function for a virtual plane wave using the 2-dimensional ESA for an edge-shaped secondary source distribution consisting of monopole line sources.

Parameters:
  • omega (float) – Angular frequency.
  • x0 (int(N, 3) array_like) – Sequence of secondary source positions.
  • n ((3,) array_like, optional) – Normal vector of synthesized plane wave.
  • alpha (float, optional) – Outer angle of edge.
  • Nc (int, optional) – Number of elements for series expansion of driving function. Estimated if not given.
  • c (float, optional) – Speed of sound
Returns:

  • d ((N,) numpy.ndarray) – Complex weights of secondary sources.
  • selection ((N,) numpy.ndarray) – Boolean array containing True or False depending on whether the corresponding secondary source is “active” or not.
  • secondary_source_function (callable) – A function that can be used to create the sound field of a single secondary source. See sfs.fd.synthesize().

Notes

One leg of the secondary sources has to be located on the x-axis (y0=0), the edge at the origin.

Derived from [SSR16]

sfs.fd.esa.plane_2d_edge_dipole_ssd(omega, x0, n=[0, 1, 0], *, alpha=4.71238898038469, Nc=None, c=None)[source]

Driving function for 2-dimensional plane wave with edge dipole ESA.

Driving function for a virtual plane wave using the 2-dimensional ESA for an edge-shaped secondary source distribution consisting of dipole line sources.

Parameters:
  • omega (float) – Angular frequency.
  • x0 (int(N, 3) array_like) – Sequence of secondary source positions.
  • n ((3,) array_like, optional) – Normal vector of synthesized plane wave.
  • alpha (float, optional) – Outer angle of edge.
  • Nc (int, optional) – Number of elements for series expansion of driving function. Estimated if not given.
  • c (float, optional) – Speed of sound
Returns:

  • d ((N,) numpy.ndarray) – Complex weights of secondary sources.
  • selection ((N,) numpy.ndarray) – Boolean array containing True or False depending on whether the corresponding secondary source is “active” or not.
  • secondary_source_function (callable) – A function that can be used to create the sound field of a single secondary source. See sfs.fd.synthesize().

Notes

One leg of the secondary sources has to be located on the x-axis (y0=0), the edge at the origin.

Derived from [SSR16]

sfs.fd.esa.line_2d_edge(omega, x0, xs, *, alpha=4.71238898038469, Nc=None, c=None)[source]

Driving function for 2-dimensional line source with edge ESA.

Driving function for a virtual line source using the 2-dimensional ESA for an edge-shaped secondary source distribution consisting of line sources.

Parameters:
  • omega (float) – Angular frequency.
  • x0 (int(N, 3) array_like) – Sequence of secondary source positions.
  • xs ((3,) array_like) – Position of synthesized line source.
  • alpha (float, optional) – Outer angle of edge.
  • Nc (int, optional) – Number of elements for series expansion of driving function. Estimated if not given.
  • c (float, optional) – Speed of sound
Returns:

  • d ((N,) numpy.ndarray) – Complex weights of secondary sources.
  • selection ((N,) numpy.ndarray) – Boolean array containing True or False depending on whether the corresponding secondary source is “active” or not.
  • secondary_source_function (callable) – A function that can be used to create the sound field of a single secondary source. See sfs.fd.synthesize().

Notes

One leg of the secondary sources has to be located on the x-axis (y0=0), the edge at the origin.

Derived from [SSR16]

sfs.fd.esa.line_2d_edge_dipole_ssd(omega, x0, xs, *, alpha=4.71238898038469, Nc=None, c=None)[source]

Driving function for 2-dimensional line source with edge dipole ESA.

Driving function for a virtual line source using the 2-dimensional ESA for an edge-shaped secondary source distribution consisting of dipole line sources.

Parameters:
  • omega (float) – Angular frequency.
  • x0 ((N, 3) array_like) – Sequence of secondary source positions.
  • xs ((3,) array_like) – Position of synthesized line source.
  • alpha (float, optional) – Outer angle of edge.
  • Nc (int, optional) – Number of elements for series expansion of driving function. Estimated if not given.
  • c (float, optional) – Speed of sound
Returns:

  • d ((N,) numpy.ndarray) – Complex weights of secondary sources.
  • selection ((N,) numpy.ndarray) – Boolean array containing True or False depending on whether the corresponding secondary source is “active” or not.
  • secondary_source_function (callable) – A function that can be used to create the sound field of a single secondary source. See sfs.fd.synthesize().

Notes

One leg of the secondary sources has to be located on the x-axis (y0=0), the edge at the origin.

Derived from [SSR16]

sfs.fd.esa.point_25d_edge(omega, x0, xs, *, xref=[2, -2, 0], alpha=4.71238898038469, Nc=None, c=None)[source]

Driving function for 2.5-dimensional point source with edge ESA.

Driving function for a virtual point source using the 2.5-dimensional ESA for an edge-shaped secondary source distribution consisting of point sources.

Parameters:
  • omega (float) – Angular frequency.
  • x0 (int(N, 3) array_like) – Sequence of secondary source positions.
  • xs ((3,) array_like) – Position of synthesized line source.
  • xref ((3,) array_like or float) – Reference position or reference distance
  • alpha (float, optional) – Outer angle of edge.
  • Nc (int, optional) – Number of elements for series expansion of driving function. Estimated if not given.
  • c (float, optional) – Speed of sound
Returns:

  • d ((N,) numpy.ndarray) – Complex weights of secondary sources.
  • selection ((N,) numpy.ndarray) – Boolean array containing True or False depending on whether the corresponding secondary source is “active” or not.
  • secondary_source_function (callable) – A function that can be used to create the sound field of a single secondary source. See sfs.fd.synthesize().

Notes

One leg of the secondary sources has to be located on the x-axis (y0=0), the edge at the origin.

Derived from [SSR16]