aspcol.soundfieldcontrol.solve_power_weighted_qos_uplink
- aspcol.soundfieldcontrol.solve_power_weighted_qos_uplink(R, noise_pow, sinr_targets, max_pow, audio_cov, tolerance=1e-12, max_iters=20, verbose=False)
Calculates a control filter and power allocation that solves the signal-weighted uplink Quality of Service problem in the time-domain
The control filter is SINR-optimal and takes the spectral characteristics of the audio signal into account. In order to use it for sound zone control it should first be power-normalized with normalize_beamformer, and then scaled according to power_alloc_qos_downlink It is the proposed method of [brunnstromSignaltointerferenceplusnoise2023].
- Parameters:
R (ndarray of shape (num_zones, num_zones, bf_len, bf_len)) – R[z,i,:,:] is R_{zi} from the paper below, can be seen in eq. (5) The first axis is the room impulse responses from loudspeakers to zone z The second axis is the desired audio signal for zone i
noise_power (ndarray of shape (num_zones,))
sinr_targets (ndarray of shape (num_zones,))
max_pow (float)
audio_cov (ndarray of shape (num_zones, bf_len, bf_len)) – defined in the paper below right above (7) or in equation (8)
tolerance (float) – The relative mean square difference between two subsequent iterations at which the algorithm is considered to have converged.
max_iters (int) – The number of iterations after which the algorithm terminates regardless of convergence. For infeasible max_pow and/or sinr_targets, the algorithm will never converge. For feasible parameters, depending on the tolerance, the algorithm generally converges in 3-7 iterations
- Returns:
w (ndarray of shape (num_zones, bf_len)) – the SINR-optimal control filter
q (ndarray of shape (num_zones,)) – the uplink power allocation
References
[brunnstromSignaltointerferenceplusnoise2023] J. Brunnström, T. van Waterschoot, and M. Moonen, “Signal-to-interference-plus-noise ratio based optimization for sound zone control,” IEEE Open Journal of Signal Processing, vol. 4, pp. 257–266, 2023, doi: 10.1109/OJSP.2023.3246398.