comnum.LowRank#
- class comnum.LowRank(r_hh, noise, rank)#
The rank-p LMMSE estimator of Edfors et al. (1998) for the correlation
r_hhofNvalues:h_p = U D_p U^H h_ls,D_pdiagonal ofdelta_k = lambda_k / (lambda_k + noise)fork < pand of 0 beyond.- Parameters:
- Raises:
ValueError – unless
r_hhis square, for a rank of 0 or aboveN, or a negative noise.
Example
>>> import comnum >>> r = comnum.random_delay_correlation(64, 5, 4.0) >>> est = comnum.LowRank(r, 17 / 9 / 100, 8) >>> round(est.mse(r, 17 / 9 / 100) / 64, 4) 0.002
- estimate(h_ls)#
The estimate from the LS estimates (their eq. (9)).
- Parameters:
h_ls (array_like) – the
NLS estimates (complex).- Returns:
the estimate (complex128).
- Return type:
- Raises:
ValueError – unless
h_lshasNvalues.
- mse(r_true, noise_true)#
The mean square error
E||h - h_p||^2on a channel of correlationr_truewith LS estimates of noisenoise_true(their eq. (10)).- Parameters:
r_true (array_like) – the correlation of the channel.
noise_true (float) –
beta / SNRof the channel.
- Returns:
the error, summed over the
Nvalues.- Return type:
- Raises:
ValueError – unless
r_truehas the size of the design.
- mse_floor(r_true)#
The floor of the error at infinite SNR (their eq. (11)).
- Parameters:
r_true (array_like) – the correlation of the channel.
- Returns:
the floor, summed over the
Nvalues.- Return type:
- Raises:
ValueError – for an input that is not a matrix of numbers, or a matrix of another size than the design.
- eigenvalues#
The eigenvalues of the correlation, decreasing.
- Type: