MovingPointSource#
- class acoular.sources.MovingPointSource
Bases:
PointSourceDefine a moving
point sourceemitting asignal.The
MovingPointSourceclass models a sound source that follows aspecified trajectorywhile emitting asignal. This allows for the simulation of dynamic acoustic scenarios, e.g. sources changing position over time such as vehicles in motion.See also
PointSourceFor modeling stationary point sources.
TrajectoryFor specifying source motion paths.
- conv_amp = Bool(False, desc='determines if convective amplification is considered')
Determines whether convective amplification is considered. When
True, the amplitude of the signal is adjusted based on the relative motion between the source and microphones. Default isFalse.
- trajectory = Instance(Trajectory, desc='trajectory of the source')
Instance of the
Trajectoryclass specifying the source’s motion. The trajectory defines the source’s position and velocity at any given time.
- prepadding = Enum('loop', desc='Behaviour for negative time indices.')
Behavior of the signal for negative time indices. Currently only supports
'loop'. Default is'loop'.
- digest = Property( …
A unique identifier for the current state of the source, based on its properties. (read-only)
- get_moving_direction(direction, time=0)
Calculate the moving direction of the source along its trajectory.
This method computes the updated direction vector for the moving source, considering both translation along the
trajectoryand rotation defined by thereference vector. If thereference vectoris (0, 0, 0), only translation is applied. Otherwise, the method incorporates rotation into the calculation.- Parameters:
- direction
numpy.ndarray The initial orientation of the source, specified as a three-dimensional array.
- time
float, optional The time at which the
trajectoryposition and velocity are evaluated. Defaults to0.
- direction
- Returns:
numpy.ndarrayThe updated direction vector of the moving source after translation and, if applicable, rotation. The output is a three-dimensional array.
Notes
The method computes the translation direction vector based on the
trajectory’s velocity at the specified time.If the
reference vectoris non-zero, the method constructs a rotation matrix to compute the new source direction based on thetrajectory’s motion and thereference vector.The rotation matrix ensures that the new orientation adheres to the right-hand rule and remains orthogonal.
- result(num=128)
Generate the output signal at microphones in blocks, accounting for source motion.
The
result()method provides a generator that yields blocks of the signal received at microphones. It incorporates thesource's trajectory, convective amplification (if enabled), and environmental propagation effects.- Parameters:
- num
int, optional Number of samples per block to be yielded. 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.
- Raises:
IndexErrorIf no more samples are available from the signal source.
Notes
The method iteratively solves for the emission times of the signal at each microphone using the Newton-Raphson method.
Convective amplification is applied if
conv_amp= True, modifying the signal’s amplitude based on the relative motion between the source and microphones.The signal’s emission time is calculated relative to the trajectory’s position and velocity at each step.