Beamformer
Beamforming is split into the prototype classes TransmitBeamformer
and ReceiveBeamformer
for beamforming operations during signal transmission and reception, respectively.
They are both derived from the base BeamformerBase
.
This is due to the fact that some beamforming algorithms may be exclusive to transmission or reception use-cases.
Should a beamformer be applicable during both transmission and reception both prototypes can be inherited.
An example for such an implementation is the Conventional
beamformer.
- class FocusMode(value)
Bases:
enum.Enum
The focus mode of the beamformer.
- SPHERICAL = 0
Focus points in spherical coordinates, i.e. azimuth and zenith angles in radians.
- HORIZONTAL = 1
Focus points in horizontal coordinates, i.e. azimuth and elevation angles in radians.
- CARTESIAN = 2
Focus points in Cartesian coordinates, i.e. xyz in m.
- DEVICE = 3
Focus points considering peer devices.
- class BeamformerBase(operator=None)
Bases:
abc.ABC
Base class for all beam steering precodings.
Args:
- operator (Operator, optional):
The operator this beamformer is attached to. By default, the beamformer is considered floating.
- property operator: Optional[hermespy.core.device.Operator]
The operator this beamformer is assigned to.
- Return type
Optional
[Operator
]- Returns
Handle to the operator. None if the beamformer is considered floating.
- class TransmitBeamformer(operator=None)
Bases:
hermespy.beamforming.beamformer.BeamformerBase
,abc.ABC
Base class for beam steering precodings during signal transmissions.
Args:
- operator (Transmitter, optional):
The operator this beamformer is attached to. By default, the beamformer is considered floating.
- abstract property num_transmit_input_streams: int
Number of input streams required by this beamformer.
- Return type
int
- Returns
Number of input streams.
- abstract property num_transmit_output_streams: int
Number of output streams generated by this beamformer.
- Return type
int
- Returns
Number of output streams.
- abstract property num_transmit_focus_angles: int
Number of required transmit focus angles.
- Return type
int
- Returns
Number of focus angles.
- property transmit_focus: Tuple[numpy.ndarray, hermespy.beamforming.beamformer.FocusMode]
Focus points of the beamformer during transmission.
- Return type
Tuple
[ndarray
,FocusMode
]- Returns
Numpy array of focus points elevation and azimuth angles
Focus mode
- class ReceiveBeamformer(operator=None)
Bases:
abc.ABC
Base class for beam steering precodings during signal receptions.
Args:
- operator (Receiver, optional):
The operator this beamformer is attached to. By default, the beamformer is considered floating.
- abstract property num_receive_input_streams: int
Number of input streams required by this beamformer.
- Return type
int
- Returns
Number of input streams.
- abstract property num_receive_output_streams: int
Number of output streams generated by this beamformer.
- Return type
int
- Returns
Number of output streams.
- abstract property num_receive_focus_angles: int
Number of required transmit focus angles.
- Return type
int
- Returns
Number of focus angles.
- property receive_focus: Tuple[numpy.ndarray, hermespy.beamforming.beamformer.FocusMode]
Focus points of the beamformer during reception.
- Return type
Tuple
[ndarray
,FocusMode
]- Returns
Numpy array of focus points elevation and azimuth angles
Focus mode
- receive(signal, focus_points=None, focus_mode=FocusMode.SPHERICAL)
Focus a signal model towards a certain target.
- Parameters
signal (Signal) – The signal to be steered.
focus_points (np.ndarray, optional) – Focus point of the steered signal power. Two-dimensional numpy array with the first dimension representing the number of points and the second dimension representing the point values.
focus_mode (FocusMode, optional) – Type of focus points. By default, spherical coordinates are expected.
- Return type
- Returns
Signal focused towards the requested focus points.
- property probe_focus_points: numpy.ndarray
- Return type
ndarray
- probe(signal, focus_points=None)
Focus a signal model towards a certain directions of interest.
- Parameters
signal (Signal) – The signal to be steered.
focus_points (np.ndarray, optional) – Focus point of the steered signal power. Two-dimensional numpy array with the first dimension representing the number of points and the second dimension representing the point values.
- Return type
ndarray
- Returns
Stream samples of the focused signal towards all focus points. A three-dimensional numpy array with the first dimension representing the number of focus points, the second dimension the number of returned streams and the third dimension the amount of samples.