Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ro = sqrt(sum((repmat(uo,1,M-1)-so(:,2:M)).^2,1))';
ro = ro - norm(uo-so(:,1)); % True source TDOAs (range
differences).
r_tildeo = [];
for i = 1 : N
c = co((i-1)*D+1:i*D);
rt = sqrt(sum((repmat(c,1,M-1)-so(:,2:M)).^2,1))';
rt = rt - norm(c-so(:,1));
r_tildeo = [r_tildeo; rt]; % True calibration TDOAs (range
differences).
end;
% [x, error] = tdoa(time_estimate, AP, Node, Tag)
R = (eye(M-1)+ones(M-1))/2;
J = eye(M*D);
i = 1; % Program counter.
fprintf('Simulation in progress');
Q_e =eye(N*D)*10^(sigma_e/10);
% Covariance matrix of the calibration position noise.
crlb(i)=tractdoaLocSenPosErrMultiCalEmtrIaccLocCRLB(so,uo,co,Q_alpha,Q_c,
Q_beta,Q_e);
SimulationMSE = 0;
chol_Q_alpha = chol(Q_alpha);
chol_Q_beta = chol(Q_beta);
chol_Q_c = chol(Q_c);
chol_Q_e = chol(Q_e);
delta_r = chol_Q_alpha'*randn(M-1,1);
r = ro + delta_r; % Noisy source TDOAs (range
differences).
delta_r_tilde = chol_Q_c'*randn(N*(M-1),1);
r_tilde = r_tildeo + delta_r_tilde; % Noisy calibration TDOAs
(range differences).
delta_c = chol_Q_e'*randn(N*D,1);
c = co + delta_c; % Noisy calibration
positions.
u =
TDOALocSenPosErrMultiCalEmtrIaccLoc(s,r,r_tilde,c,Q_alpha,Q_c,Q_beta,Q_e)
;
SimulationMSE = SimulationMSE + norm(u-uo,2)^2;
end;
mse(i) = SimulationMSE/L;
i = i + 1; % Update program counter.
end;
fprintf('\n');