How can I get MATLAB codes for computing the Cramer-Rao Lower Bound for Received Signal Amplitude Estimation and Phase Difference Estimation
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Please I need Matlab codes that can let me compute Cramer-Rao Lower Bound for Received Signal Amplitude Estimation and Phase Difference Estimation in my localisation project. I am totally lost here. Thank you
3 comentarios
imsoon xhian
el 25 de En. de 2019
CRLB of RSS model explained in paper: " Relative Location Estimation in Wireless Sensor Networks " in section appendix C. CRB for Location Estimation
and CRLB with standard deviation changed i.e.

mfile is:
% this code simulates the CRLB of RSS measurements
clc;
clear all;
%************************************************************* PARAMETERS *********************************************************
d0=1;% reference distance (indoor scenario) (meter)
PLE=4; % path loss exponent
target_x=11.0; %true location (meter)
target_y=10.0;;%true location (meter)
s_x=[ 5 5 5 8 8 12 12 15 15 15];% x coordinate of anchor sensors (meter)
s_y=[ 5 10 15 0 20 0 20 5 10 15];% y coordinate of anchor sensors (meter)
L0=[40];% reference path loss (dB)
p0=[-10];% reference received power (dBm)
%******************************************************************* standard deviation range [0, 1, ..., 10] *****************************************************************
sigma=[0.0001:1:10.1]; % noise standard deviation (dB)
for w=1:length(sigma)
%%%%%%%%%%%%%%%%%%%%%%%%%%% CRLB BEGIN
for k3=1:length(s_x)
drivative_mu_x1(k3)=(-10*PLE/log(10)) * ( ([ target_x ]-s_x(k3)) )/ ...
( square(norm([target_x; target_y ]-[s_x(k3);s_y(k3)],2) ) );
end
drivative_mu_xx1=drivative_mu_x1;
for k2=1:length(s_x)
drivative_mu_y2(k2)=(-10*PLE/log(10))*( ([ target_y ]-s_y(k2)) )...
/( square(norm([target_x; target_y ]-[s_x(k2);s_y(k2)],2)) );
end
drivative_mu_yy2=drivative_mu_y2;
gama=[ eye(length(s_x))];
c1=[square(sigma(w))];
sigma1=c1*gama;
inv_sig=inv(sigma1);
J1(1,1)=drivative_mu_xx1''*inv_sig*drivative_mu_xx1';
J1(2,2)=drivative_mu_yy2''*inv_sig*drivative_mu_yy2';
J1(1,2)=drivative_mu_xx1''*inv_sig*drivative_mu_yy2';
J1(2,1)=J1(1,2);
J1_inv=inv(J1);
CRLB(w)=sqrt(J1_inv(1,1)+J1_inv(2,2));
%%%%%%%%%%%%%%%%%%%%%%%%%%% CRLB END
end
%*******************************************************************plot *****************************************************************
pic1=plot(sigma,CRLB,'r -o','LineWidth',3);
grid on;
title('Figure1 ')
xlabel('Standard deviation (dB)');
ylabel('RMSE (meter)');
leg1 = legend('CRLB');
Sugumar S J
el 7 de Jul. de 2021
Im getting a ouput with the variation in CRLB in increasing and decreasing. Can u suggest how to get the ouput as shown in the figure.
Respuestas (0)
Ver también
Categorías
Más información sobre Get Started with System Identification Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!