mirror of https://github.com/PentHertz/srsLTE.git
chest dl to support multiple rx antennas
This commit is contained in:
parent
e8cf638f1d
commit
462d222fd2
|
@ -128,8 +128,8 @@ if (length(SNR_values)>1)
|
||||||
ylabel('BLER')
|
ylabel('BLER')
|
||||||
axis([min(SNR_values) max(SNR_values) 1/Npackets/(Nsf+1) 1])
|
axis([min(SNR_values) max(SNR_values) 1/Npackets/(Nsf+1) 1])
|
||||||
else
|
else
|
||||||
plot(abs(symbols{1}-pdschSymbols2))
|
%plot(abs(symbols{1}-pdschSymbols2))
|
||||||
%scatter(real(symbols{1}),imag(symbols{1}))
|
scatter(real(pdschSymbols2),imag(pdschSymbols2))
|
||||||
fprintf('Matlab: %d OK\nsrsLTE: %d OK\n',decoded, decoded_srslte);
|
fprintf('Matlab: %d OK\nsrsLTE: %d OK\n',decoded, decoded_srslte);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -105,6 +105,11 @@ SRSLTE_API void srslte_chest_dl_set_smooth_filter3_coeff(srslte_chest_dl_t* q,
|
||||||
SRSLTE_API void srslte_chest_dl_set_noise_alg(srslte_chest_dl_t *q,
|
SRSLTE_API void srslte_chest_dl_set_noise_alg(srslte_chest_dl_t *q,
|
||||||
srslte_chest_dl_noise_alg_t noise_estimation_alg);
|
srslte_chest_dl_noise_alg_t noise_estimation_alg);
|
||||||
|
|
||||||
|
SRSLTE_API int srslte_chest_dl_estimate_multi(srslte_chest_dl_t *q,
|
||||||
|
cf_t *input[SRSLTE_MAX_RXANT],
|
||||||
|
cf_t *ce[SRSLTE_MAX_RXANT][SRSLTE_MAX_PORTS],
|
||||||
|
uint32_t sf_idx);
|
||||||
|
|
||||||
SRSLTE_API int srslte_chest_dl_estimate(srslte_chest_dl_t *q,
|
SRSLTE_API int srslte_chest_dl_estimate(srslte_chest_dl_t *q,
|
||||||
cf_t *input,
|
cf_t *input,
|
||||||
cf_t *ce[SRSLTE_MAX_PORTS],
|
cf_t *ce[SRSLTE_MAX_PORTS],
|
||||||
|
|
|
@ -354,12 +354,26 @@ int srslte_chest_dl_estimate_port(srslte_chest_dl_t *q, cf_t *input, cf_t *ce, u
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int srslte_chest_dl_estimate(srslte_chest_dl_t *q, cf_t *input[SRSLTE_MAX_RXANT], cf_t *ce[SRSLTE_MAX_RXANT][SRSLTE_MAX_PORTS], uint32_t sf_idx, uint32_t nof_rx_antennas)
|
||||||
|
{
|
||||||
|
for (uint32_t rxant=0;rxant<nof_rx_antennas;rxant++) {
|
||||||
|
for (uint32_t port_id=0;port_id<q->cell.nof_ports;port_id++) {
|
||||||
|
if (srslte_chest_dl_estimate_port(q, input[rxant], ce[rxant][port_id], sf_idx, port_id)) {
|
||||||
|
return SRSLTE_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return SRSLTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
int srslte_chest_dl_estimate(srslte_chest_dl_t *q, cf_t *input, cf_t *ce[SRSLTE_MAX_PORTS], uint32_t sf_idx)
|
int srslte_chest_dl_estimate(srslte_chest_dl_t *q, cf_t *input, cf_t *ce[SRSLTE_MAX_PORTS], uint32_t sf_idx)
|
||||||
{
|
{
|
||||||
uint32_t port_id;
|
uint32_t port_id;
|
||||||
|
|
||||||
for (port_id=0;port_id<q->cell.nof_ports;port_id++) {
|
for (port_id=0;port_id<q->cell.nof_ports;port_id++) {
|
||||||
srslte_chest_dl_estimate_port(q, input, ce[port_id], sf_idx, port_id);
|
if (srslte_chest_dl_estimate_port(q, input, ce[port_id], sf_idx, port_id)) {
|
||||||
|
return SRSLTE_ERROR;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return SRSLTE_SUCCESS;
|
return SRSLTE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue