chest dl to support multiple rx antennas

master
Ismael Gomez 8 years ago
parent e8cf638f1d
commit 462d222fd2

@ -128,8 +128,8 @@ if (length(SNR_values)>1)
ylabel('BLER')
axis([min(SNR_values) max(SNR_values) 1/Npackets/(Nsf+1) 1])
else
plot(abs(symbols{1}-pdschSymbols2))
%scatter(real(symbols{1}),imag(symbols{1}))
%plot(abs(symbols{1}-pdschSymbols2))
scatter(real(pdschSymbols2),imag(pdschSymbols2))
fprintf('Matlab: %d OK\nsrsLTE: %d OK\n',decoded, decoded_srslte);
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_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,
cf_t *input,
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;
}
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)
{
uint32_t 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;
}

Loading…
Cancel
Save