Selective Leakage¶
The selective leakage implementation allows for the definition of frequency-domain filter characteristics for each transmit-receive antenna pair within a radio-frequency frontend.
Configuring a SimulatedDevice's
with a selective isolation model is achived by setting the isolation
property of an instance.
1# Create a new device
2simulation = Simulation()
3device = simulation.new_device()
4
5# Specify the device's isolation model with a high-pass characteristic
6leakage_frequency_response = np.zeros((1, 1, 101))
7leakage_frequency_response[0, 0, :50] = np.linspace(1, 0, 50, endpoint=False)
8leakage_frequency_response[0, 0, 50:] = np.linspace(0, 1, 51, endpoint=True)
9leakage_impulse_response = ifft(ifftshift(leakage_frequency_response))
10device.isolation = SelectiveLeakage(leakage_impulse_response)
- class SelectiveLeakage(leakage_response, *args, **kwargs)[source]¶
Bases:
Serializable
,Isolation
Model of frequency-selective transmit-receive leakage.
- Parameters:
leakage_response (np.ndarray) – Three-dimensional leakge impulse response matrix \(\mathbf{H}\) of dimensions \(M \times N \times L\), where \(M\) is the number of receive streams and \(N\) is the number of transmit streams and \(L\) is the number of samples in the impulse response.
- Raises:
ValueError – If the leakage response matrix has invalid dimensions.