3D User Localization for Planar Arrays in LoS Near- and Far-Fields via Summed Phase Differences
arXiv:2604.00727v1 Announce Type: new Abstract: This paper presents a phase-difference-based scheme for three-dimensional (3D) line-of-sight (LoS) user localization using a uniform planar array (UPA), applicable to both near-field and far-field regimes under the exact spherical-wave model. Unlike the previously studied two-dimensional (2D) uniform linear array (ULA) case, the 3D UPA case requires jointly exploiting the two array axes in order to recover the user's range, azimuth, and zenith angle. Adjacent-antenna phase-differences are first estimated from uplink pilots and then summed along the array axes to obtain unwrapped phase-differences between widely separated antenna elements. These summed phase-differences enable the construction of multiple three-equation systems whose solutions
View PDF HTML (experimental)
Abstract:This paper presents a phase-difference-based scheme for three-dimensional (3D) line-of-sight (LoS) user localization using a uniform planar array (UPA), applicable to both near-field and far-field regimes under the exact spherical-wave model. Unlike the previously studied two-dimensional (2D) uniform linear array (ULA) case, the 3D UPA case requires jointly exploiting the two array axes in order to recover the user's range, azimuth, and zenith angle. Adjacent-antenna phase-differences are first estimated from uplink pilots and then summed along the array axes to obtain unwrapped phase-differences between widely separated antenna elements. These summed phase-differences enable the construction of multiple three-equation systems whose solutions yield the user's range, azimuth, and zenith angle. We quantify the number of such equation systems, provide a representative closed-form estimator that uses only three phase-difference sums, and propose an all-data nonlinear least-squares estimator that exploits all available sums. Numerical results show that the least-squares estimator, when initialized by the closed-form estimate, achieves Cramér--Rao bound accuracy. Moreover, unlike state-of-the-art baseline schemes, whose performance depends on well-tuned hyperparameters, the proposed estimators are hyperparameter-free.
Subjects:
Signal Processing (eess.SP); Information Theory (cs.IT)
Cite as: arXiv:2604.00727 [eess.SP]
(or arXiv:2604.00727v1 [eess.SP] for this version)
https://doi.org/10.48550/arXiv.2604.00727
arXiv-issued DOI via DataCite
Submission history
From: Nikola Zlatanov [view email] [v1] Wed, 1 Apr 2026 10:40:36 UTC (141 KB)
Sign in to highlight and annotate this article

Conversation starters
Daily AI Digest
Get the top 5 AI stories delivered to your inbox every morning.
More about
modelannounceavailable
Resolve.ai Alternative: Open Source AI for Incident Investigation
Key Takeaway: Resolve.ai is a $1B-valued AI SRE platform used by Coinbase, DoorDash, and Salesforce — but pricing requires contacting sales with no public pricing page. Aurora is an open source (Apache 2.0) alternative that delivers autonomous AI investigation with sandboxed cloud execution, infrastructure graphs, and knowledge base search — completely free and self-hosted. What is Resolve.ai? Resolve.ai is an AI-powered autonomous SRE platform founded in 2024 by Spiros Xanthos (former SVP at Splunk, co-creator of OpenTelemetry ) and Mayank Agarwal. It raised $125M in Series A at a reported $1 billion valuation , backed by Lightspeed and Greylock with angels including Fei-Fei Li and Jeff Dean. Resolve.ai positions as "machines on call for humans" — a multi-agent AI system that autonomously

I Built Consistent Hashing From Scratch in Go — Here's What I Learned
If you've ever added a server to a cache cluster and watched your database melt, you already know the problem consistent hashing solves. You just might not know it by name. I built a full implementation from scratch in Go to understand it deeply. This post walks through what I learned — the problem, the fix, and the gotchas nobody tells you about. The five-minute version You have 5 cache servers. You route keys with hash(key) % 5 . Life is good. Then traffic spikes and you add a 6th server. Now it's hash(key) % 6 . Sounds harmless, right? Here's what actually happens: Before: hash("user:1001") % 5 = 3 → Server C After: hash("user:1001") % 6 = 1 → Server A ← moved! That key was sitting happily on Server C. Now every client thinks it's on Server A, where it doesn't exist. Cache miss. The req
Knowledge Map
Connected Articles — Knowledge Graph
This article is connected to other articles through shared AI topics and tags.
More in Releases

Biome Makers Launches BeCrop® 4.0: Advancing AI-Powered Soil Intelligence for Agriculture and Nature Restoration - Global Agriculture
Biome Makers Launches BeCrop® 4.0: Advancing AI-Powered Soil Intelligence for Agriculture and Nature Restoration Global Agriculture

I Built Consistent Hashing From Scratch in Go — Here's What I Learned
If you've ever added a server to a cache cluster and watched your database melt, you already know the problem consistent hashing solves. You just might not know it by name. I built a full implementation from scratch in Go to understand it deeply. This post walks through what I learned — the problem, the fix, and the gotchas nobody tells you about. The five-minute version You have 5 cache servers. You route keys with hash(key) % 5 . Life is good. Then traffic spikes and you add a 6th server. Now it's hash(key) % 6 . Sounds harmless, right? Here's what actually happens: Before: hash("user:1001") % 5 = 3 → Server C After: hash("user:1001") % 6 = 1 → Server A ← moved! That key was sitting happily on Server C. Now every client thinks it's on Server A, where it doesn't exist. Cache miss. The req


Discussion
Sign in to join the discussion
No comments yet — be the first to share your thoughts!