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]