Como melhorar os valores de RSSI para uma única fonte?

0

Estou fazendo uma posição interna. Já implementei um algoritmo no qual estou lendo o valor RSSI do ponto de acesso e aplicando o filtro kalman para cada valor de leitura e para cada dispositivo móvel separadamente. A precisão foi ruim. Quero aproveitar a vantagem de ler os valores de RSSI para o mesmo dispositivo móvel várias vezes e melhorar a precisão.

Atualmente, o que estou fazendo é ler o valor RSSI e chamar o filtro kalman com valor ex_estimated e ex_predication value. como o código abaixo.

Eu quero melhorar a precisão: qualquer um pode me recomendar métodos ou melhorar para aumentar a precisão


float kalmanfilter_1D(float z_measured, float P_last, float x_est_last)
{

//initialize with a measurement

float Q = 0.022;   // noise power desirable
float R = 0.617;   // noise power estimated

float K;
float P;
float P_temp;
float x_temp_est;
float x_est;

if (P_last == 0)
P_last = z_measured;
//do a prediction
x_temp_est = x_est_last;  // Xt=A*X(t-1)+B*u
                  // Pt=A*P(t-1)+R
P_temp = P_last + Q;
//calculate the Kalman gain
K = P_temp * (1.0 / (P_temp + R));
printf("filter K=%f\n", K);
//correct
x_est = x_temp_est + K * (z_measured - x_temp_est);
printf("filter x_est=%f\n", x_est);
// update 
pred_pr= (1 - K) * P_temp;
est_pr=x_est;
P_last_tmp=pred_pr;

return x_est;
}

Obrigado por todos

    
por Moh. Qaid 16.09.2016 / 23:19

0 respostas