MUSIC (Multiple Signal Classification)
MIMO (Multi Input Multi Output) 환경에서 여러 개의 안테나에서 발생하는 phase 차이를 이용하여 모델링한 신호를 분해하고 적절한 알고리즘을 통해 Angle of Arrival (혹은 Direction of Arrival)을 구하는 것이 목적이다.
Signal Modeling
다음 그림은 Multi-Antenna에서 얻을 수 있는 신호의 모습을 나타낸다.
(그림 출처 : AFall: Wi-Fi-based Device-free Fall Detection System using Spatial Angle of Arrival [1] )
이 때 phase difference φ는 다음과 같이 나타낼 수 있다.
φ(θ)=e−j2πfcdsinθ
θ는 AoA, f는 중심 주파수, d는 안테나 사이의 거리, c는 빛의 속도이다.
이를 통해 antenna array의 phase difference를 벡터로 나타내면 다음과 같다. 다른 말로 steering vector 라고도 한다.
a(θ)=[1,φ(θ),φ(θ)2,...,φ(θ)(M−1)]T
이 때, i 번째 안테나에서 수신된 신호는 다음과 같이 나타낼 수 있다.
xi(t)=φ(θ)(i−1)s(t)+ni(t)
여기서 s(t)는 첫 번째 안테나에서 수신된 신호를 나타내고 ni(t)는 i 번째 안테나에서 받은 noise를 의미한다.
또한 전체 안테나에서 수신된 신호를 벡터로 다음과 같이 나타낼 수 있다.
X(t)=[x1(t),x2(t),...,xM(t)]T=a(θ)s(t)+N(t)
Multipath 환경을 고려한다면, 수신되는 신호는 multipath 개수만큼 존재할 것이다. Multipath 환경에서 L 개의 multi signal이 존재한다면,
X(t)=l=1∑La(θl)sl(t)+N(t)=AS(t)+N(t)
여기서 L<M이다. 즉 안테나 개수가 multipath의 개수보다 많아야 한다.
EVD of the Signal and get Noise Vector
위 신호는 단순히 수식적으로 모델링만 한 것이지, 우리가 실제로 안테나로부터 알 수 있는 값 자체는 X(t)이다.
우선 X(t)의 autocorrelation을 구하면 다음과 같다.
RXX=E[XXH]=E[(AS+N)(AS+N)]=AE[SSH]AH+E[NNH]=ARSAH+RN
다만 실제로 저렇게 RXX를 구하는 것은 어렵기 때문에 현실적인 application에서는 X의 sample을 K개 모아서 평균을 내는 방식으로 근사값을 구하게 된다.
R^X=K1k=1∑KXXH
어쨋든 이렇게 R^X를 구했으면 이 autocorrelation 값에 eigen value decomposition을 적용할 수 있게 된다. 즉
R^Xvi=λivi
가 되며, R^X가 M차원의 벡터이기 때문에 결과적으로 총 M 개의 eigenvalue와 eigenvector를 얻게 된다. 여기서 M은 안테나의 개수이다. 이때 R^X는 Hermitian이기 때문에 각 eigenvector들 끼리는 orthogonal하다.
eigenvalue를 크기에 대해 내림차순으로 정렬하면, 정렬된 eigenvalue Λ=[λ1,λ2,...,λM]와 그에 대응하는 eigenvector V=[v1,v2,...,vM]를 얻게 된다.
Noise floor[2]에 의하면 noise 차원은 상대적으로 작은 eigenvalue를 갖게 된다. 따라서 위 eigenvector V=[v1,v2,...,vM]를 signal과 관련된 eigenvector VS=[v1,v2,...,vL]와 noise와 관련된 eigenvectorVN=[vL+1,vL+2,...,vM]로 나눌 수 있다.
위에서 RXX=ARSAH+RN에서 직관적으로 알 수 있듯이 M차원의 RXX는 L차원의 RS와 나머지 RN으로 이루어진 것을 알 수 있다. 따라서 RXX는 M개의 eigenvector를 갖고 그 중 L개의 eigenvector는 RS의 eigenvector이고 나머지 M−L개는 RN의 eigenvector가 된다.
AoA Estimation
PMUSIC 함수를 다음과 같이 정의한다.
PMUSIC(θ)=aH(θ)VNVNHa(θ)1
PMUSIC 을 최대로 만드는 것은 a(θ)와 VN이 orthogonal한 지점이다. 다만 현실에서는 항상 Noise가 존재하기 때문에 a(θ)와 VN이 정확히 orthogonal하지는 못하다.
따라서 PMUSIC 을 최대로 만드는 θ의 값을 찾는다. (The sharpest peak of PMUSIC(θ))
θ^=θargmax PMUSIC(θ)
일반적으로 AoA는 −2π≤θ≤2π범위에서 가지므로 −2π에서 2π까지 1도 혹은 0.5도 (사용자 마음)씩 변화시켜가며 PMUSIC(θ)를 최대로 만드는 θ를 찾는다.
모든 각도에 대해서 계산하면 더 정확한 AoA를 얻을 수 있지만 계산량이 늘어나므로 일반적으로 1도나 0.5도씩 비교한다
결과적으로 θ^가 우리가 원하는 AoA의 값이 된다.
Appendix
MUSIC 알고리즘을 본격적으로 진행하기 전에, MUSIC 알고리즘에서 사용되는 간단한 선형대수학 지식들을 짚고 넘어가겠다.
Hermitian Matrix
-
정의 : A complex squared matrix that is equal to it's own conjugate transpose
-
A=AT, ai,j=aj,i
-
ex)
⎝⎜⎛22−i42+i3−i4i1⎠⎟⎞
-
Hermitian 끼리 더하고 product 곱을 해도 그 결과는 Hermitian이다.
Hermitian Conjugate
-
행렬을 transpose시킨 후 conjugate 시킨다. 기호로 여러개가 있는 것 같은데, 본 포스팅에서는 H로 나타내겠다.
-
ex)
A=(11+i−2−ii), AH=(1−2+i1−ii)
-
A가 Hermitian 행렬이면, AH도 Hermitian 행렬이다.
-
임의의 행렬 A에 대하여 AAH와 AHA도 Hermitian 행렬이다.
Reference
[1] S. Chen, W. Yang, Y. Xu, Y. Geng, B. Xin and L. Huang, "AFall: Wi-Fi-based Device-free Fall Detection System using Spatial Angle of Arrival," in IEEE Transactions on Mobile Computing, Early Access, 2022
[2] https://en.wikipedia.org/wiki/Noise_floor
[3] https://www.diva-portal.org/smash/get/diva2:724272/FULLTEXT01.pdf