Solve 4 circles with known centers and radii

Hello everyone,
I am working on a positioning system where I have distances of a pinger (sound-source) from 4 microphones in a 3-D space. I need to find the intersection of these 4 circles to find the position of the pinger. Note that the sensors and distance calculation model are noisy and hence these 4 circles may or may not meet a single point. I could have used fsolve if they met at a single point. In most cases, they are forming a small volume and I need to find the centre point of the volume for further steps of the algorithm.
Any help or suggestion would be really helpful. Let me know if you don't understand the exact question.
Thank you in advance,
Amit

Answers (1)

You can try to use image processing toolbox
clc,clear
[x,y] = meshgrid(1:100);
A1 = (x-20).^2+ (y-30).^2 < 15^2;
A2 = (x-57).^2+ (y-30).^2 < 25^2;
A3 = (x-28).^2+ (y-74).^2 < 30^2;
A = A1 | A2 | A3;
imshow(A)
Then just use bwlabel to separate each region

2 Comments

Thank you @darova for your time and efforts. Umm, I could say that I know a little bit of image processing and let me have a brief look at what are you saying. But from what I understood at this moment is you are talking about solving in 2-D. I don't know exactly what bwlebel does but I think this way I could have X and Y coordinates, but not the Z as the centres of these spheres of each microphone need not be coplanar. Let me know if you dont understand what I am saying.
Anyway thank you,
Amit
I used 2D case to simplify the problem and to visualize
You can use it in 3D too
[x,y,z] = meshgrid(1:100);
A1 = (x-x0).^2+(y-y0).^2+(z-z0).^2 < R^2;
% A2 = ...
% A3 = ...
Don't forget about scaling
bwlabel seperates each region (it numerates them)

Sign in to comment.

Categories

Find more on Graphics Performance in Help Center and File Exchange

Asked:

on 22 Feb 2021

Commented:

on 25 Feb 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!