방향 찾기: PDoA와 AoA
정밀 찾기 화면의 화살표는 거리만이 아니라 방향을 알려 준다. 거리는 6장의 왕복 시간으로 재지만, 방향은 다른 방법을 쓴다. 휴대폰 안의 UWB 안테나 두세 개에 신호가 도착한 위상의 차이를 재는 것이다. 이 장에서는 위상 차이에서 각도를 구하는 식, 안테나 간격이 반 파장이어야 하는 이유, 각도가 정확한 곳과 흔들리는 곳을 본다.
- 위상 차이(PDoA)에서 도착 각도(AoA)를 구하는 식을 경로 차이로 유도한다.
- 안테나 간격이 반 파장보다 넓으면 같은 위상 차이에 각도가 여럿 생기는 모호성을 확인한다.
- 정면에서는 정확하고 옆으로 갈수록 오차가 커지는 이유를 계산한다.
- 방위각·앙각에 안테나 셋이 필요하고, 두 안테나로는 앞뒤를 구별할 수 없음을 안다.
경로 차이 → 위상 차이 → 각도
멀리서 온 신호는 거의 평면파로 도착한다. 안테나 둘이 d만큼 떨어져 있고 신호가 정면에서 θ만큼 비스듬히 오면, 한 안테나에 도착하는 길이 다른 쪽보다 d·sin θ만큼 길다. 이 길이 차이를 시간으로 재기엔 너무 짧다(2 cm면 67 ps). 대신 반송파의 위상으로 잰다. 파장 λ만큼의 길이 차이가 위상 2π(360°)이므로
uwb-core uwb.c의 uwb_calc_aoa(pdoa, channel, antenna_separation) — 채널별 주파수로 파장을 구하고 asin(pdoa ÷ 2π × λ ÷ 간격)을 돌려준다.오른쪽에서 소리가 나면 오른쪽 귀에 아주 조금 먼저 닿는다. 뇌는 그 작은 시간 차이로 방향을 안다. 귀 사이가 좁으면 차이가 작아 둔하고, 너무 넓으면 높은 소리에서 어느 쪽 파도의 마루인지 헷갈린다. UWB는 두 안테나에 닿는 위상 차이로 같은 일을 한다.
평면파와 두 안테나
uwb_calc_aoa()와 같은 식이다.반 파장의 이유: 모호성
위상은 360°마다 같은 값으로 돌아온다. 경로 차이가 λ를 넘을 수 있으면, 위상 30°는 경로 차이 λ/12일 수도, λ + λ/12일 수도 있다. 경로 차이는 최대 d(θ = ±90°)이므로, d ≤ λ/2면 위상 차이가 −180°~180° 안에서 각도와 일대일로 대응한다. 그래서 UWB 안테나는 반 파장 간격, 9번 채널이면 약 1.9 cm 간격으로 놓는다. 휴대폰 뒷면에 들어갈 만큼 작은 이유이기도 하다.
안테나 간격을 λ/2에서 λ로 넓혔다. 같은 위상 차이에 해당하는 각도 후보는?
위상은 360°마다 같은 값으로 돌아온다.
같은 위상, 여러 각도
정면은 정확하고 옆은 흐릿하다
위상을 재는 데에도 잡음이 있다(수 도~10도). 식 θ = arcsin(…)에서 각도를 조금 바꿨을 때 위상이 얼마나 바뀌는지 보면, 정면(θ = 0)에서는 sin이 가팔라 위상이 크게 바뀌지만 옆(θ → 90°)에서는 sin이 거의 평평하다. 그래서 같은 위상 잡음이 옆쪽 각도에서 훨씬 큰 각도 오차가 된다. 오차는 대략 σθ ≈ σφ · λ ÷ (2π · d · cos θ).
각도별 각도 오차
방위각, 앙각, 그리고 앞뒤
안테나 두 개는 그 둘을 잇는 축에 대한 각도 하나만 안다. 좌우(방위각)와 위아래(앙각)를 모두 알려면 축이 다른 쌍이 하나 더 필요해, 보통 안테나 셋을 L자로 놓는다. Android UWB의 측정 설정에도 각도 보고를 “방위각만”, “앙각만”, “번갈아” 같은 방식으로 고르는 값이 있다.
또 하나, 두 안테나는 앞에서 온 신호와 같은 각도로 뒤에서 온 신호를 구별하지 못한다. 경로 차이 d·sin θ는 θ와 180° − θ에서 같기 때문이다. 휴대폰은 안테나 배치·기판·사람 몸이 뒤쪽 신호를 다르게 만드는 성질, 그리고 사용자가 움직일 때 거리·각도가 변하는 모양(관성 센서와 함께)을 이용해 앞뒤를 가린다. 정밀 찾기를 시작하면 휴대폰을 조금 움직여 보라고 하는 것이 그 때문이다.
각도 보고 방식: Android FiraParams.java의 AOA_RESULT_REQUEST_MODE_REQ_AOA_RESULTS_AZIMUTH_ONLY, _ELEVATION_ONLY, _INTERLEAVED · 수신 진단의 PDoA: uwb-core uwb_calc_pdoa()(라디안)
핵심 정리
- PDoA = 2π·d·sin θ ÷ λ, θ = arcsin(PDoA·λ ÷ 2πd) (
uwb_calc_aoa()). 9번 채널 λ = 3.75 cm. - 간격 d ≤ λ/2면 모호성이 없다. 그래서 안테나 간격은 반 파장(9번 채널 약 1.9 cm).
- 각도 오차 ≈ σφ·λ ÷ (2πd·cos θ). 정면이 가장 정확하고 옆으로 갈수록 나빠진다.
- 방위각 + 앙각에는 안테나 셋(L자). 두 안테나는 앞뒤를 구별하지 못해 움직임·배치로 가린다.
확인 퀴즈
9번 채널에서 모호성이 없는 최대 안테나 간격은?
반 파장 간격에서 잰 위상 차이가 90°면 각도는?
각도 오차가 가장 작은 방향은?
안테나 두 개로 구별할 수 없는 것은?