MovingPointSourceDipole#
- class acoular.sources.MovingPointSourceDipole
Bases:
PointSourceDipole,MovingPointSourceDefine a moving point source with dipole characteristics.
This class extends the functionalities of
PointSourceDipoleandMovingPointSourceto simulate a dipole source that moves along adefined trajectory. It incorporates both rotational and translational dynamics for the dipole lobes, allowing simulation of complex directional sound sources.- Key Features:
Combines dipole characteristics with source motion.
Supports rotation of the dipole directivity via the
rvecattribute.Calculates emission times using Newton-Raphson iteration.
See also
PointSourceDipoleFor stationary dipole sources.
MovingPointSourceFor moving point sources without dipole characteristics.
- digest = Property( …
A unique identifier for the current state of the source, based on its properties. (read-only)
- rvec = CArray(dtype=float, shape=(3,), value=np.array((0, 0, 0)))
A reference vector, perpendicular to the x and y-axis of moving source, defining the axis of rotation for the dipole directivity. If set to
(0, 0, 0), the dipole is only translated along thetrajectorywithout rotation. Default is(0, 0, 0).
- get_emission_time(t, direction)
Calculate the emission time and related properties for a moving source.
- Parameters:
- t
numpy.ndarray The current receiving time at the microphones.
- direction
floatornumpy.ndarray Direction vector for the source’s dipole directivity.
- t
- Returns:
- tuple
A tuple containing:
- te
numpy.ndarray Emission times for each microphone.
- te
- rm
numpy.ndarray Distances from the source to each microphone.
- rm
- Mr
numpy.ndarray Radial Mach numbers for the source’s motion.
- Mr
- xs
numpy.ndarray Source coordinates at the calculated emission times.
- xs
Warning
Ensure that the maximum iteration count (
100) is sufficient for convergence in all scenarios, especially for high Mach numbers or long trajectories.Notes
The emission times are computed iteratively using the Newton-Raphson method. The iteration terminates when the time discrepancy (
eps) is below a threshold (epslim) or after 100 iterations.
- result(num=128)
Generate the output signal at microphones in blocks.
- Parameters:
- num
int, optional Number of samples per block to yield. Default is
128.
- num
- Yields:
numpy.ndarrayA 2D array of shape (
num,num_channels) containing the signal detected at the microphones. The last block may have fewer samples ifnum_samplesis not a multiple ofnum.
Notes
Radial Mach number adjustments are applied if
conv_ampis enabled.