상세 컨텐츠

본문 제목

Poisson Point Process(PPP)란? 실제 Code로 직접 배우는 PPP

이동통신(LTE/5G)

by 현민  2021. 9. 7. 10:54

본문

※해당 포스팅은 제 네이버 블로그 https://blog.naver.com/gusals1620/222491996445 에서도 확인하실 수 있습니다.

 

 

 

 

5G 시대에 접어듦에 따라 스몰셀(Small Cell)들이 많이 배치되어 밀도가 높아지는 UDN(Ultra Dense Network) 환경이 되어가고 있습니다.

이렇게 고밀도로 셀이 배치되는 'Densification' 기술은 5G의 핵심 기술로 평가되고 있습니다.

 

Densitification의 성능 효과를 살펴보기 위해서는 주변 셀들과의 관계를 잘 살펴보아야 하는데, 5G 이전에는 이 관계를 보기 위해 hexagonal grid 모양으로 셀을 디자인하고 이 구조에서 성능을 평가했습니다.

 

그런데 요즘 연구의 trend는 densification 즉 스몰셀들의 효과를 더 잘 살펴보기 위해, 시뮬레이션을 할 때 Poisson point process와 Stochastic geometry 이론을 이용하여 기지국 위치와 밀도를 모델링하고 SINR의 통계적인 분포를 유도하는 방향으로 진행되고 있습니다. 이렇게 통신 분야에서 Poisson point process(이하 PPP)가 많이 사용되고 있지만 이에 대한 한글 자료가 많지 않아 직접 글을 쓰게 되었습니다.

 

우선 PPP는 point process의 한 종류입니다. Point process는 수학적으로 랜덤하게 위치하는 점들의 집합을 의미합니다. PPP는 point process 중에서도 점들의 집합을 유한 크기의 영역으로 나누었을 때 각 영역에 있는 점의 수가 포아송 분포를 갖는 랜덤 변수인 경우를 의미합니다.

 

아래 그림은 PPP를 사용해서 기지국 위치를 모델링한 것과, 실제 기지국의 위치를 비교한 것입니다.

출처 : J. G. Andrews, F. Baccelli and R. K. Ganti, "A Tractable Approach to Coverage and Rate in Cellular Networks," in IEEE Transactions on Communications, vol. 59, no. 11, pp. 3122-3134, November 2011

 

왼쪽 그림은 PPP로 기지국을 모델링한 것이고, 오른쪽 그림은 실제 LTE 환경에서 기지국의 위치입니다. 기존에 사용한 hexagonal grid와는 거리가 멀지만, PPP로 모델링한 것은 실제 환경과 상당히 비슷함을 알 수 있습니다. 그림의 출처는 Texas Austin의 Jeffrey Andrews 교수님의 논문

"A Tractable Approach to Coverage and Rate in Cellular Networks,"으로, PPP 환경에서의 SINR distribution과 전송률을 유도한 최초의 논문입니다.

 

PPP의 parameter로는 intensity(density) λ가 있습니다. λ 값은 밀도, 즉 일정 넓이에서 점들의 개수를 결정합니다. 예를 들어 1km^2 내에 5개의 매크로셀(Macro Cell)이 위치 하는 환경을 만들고 싶다면, λ = 5/km^2로 설정하여 시뮬레이션 코드를 작성하시면 됩니다.

 

PPP를 사용한 실제 논문에서 이 parameter들을 어떻게 설정하는지 예시를 통해 보겠습니다.

출처 : H. Elshaer, M. N. Kulkarni, F. Boccardi, J. G. Andrews and M. Dohler, "Downlink and Uplink Cell Association With Traditional Macrocells and Millimeter Wave Small Cells," in IEEE Transactions on Wireless Communications, vol. 15, no. 9, pp. 6244-6258, Sept. 2016

예시로 든 논문에서는 1km^2 내에 5개의 매크로셀, 50개의 스몰셀, 200명의 UE(User Equippment)가 있음을 알 수 있습니다. 이 parameter를 그대로 사용하여 PPP를 시뮬레이션하는 코드를 자세히 다루겠습니다.

 

아래는 제가 작성한 시뮬레이션 코드입니다. 코드는 Python3로 작성되었습니다.

 

 

 

 

<실행 결과>

 

(위 코드는 https://hpaulkeeler.com/checking-poisson-point-process-simulations/ 사이트를 참고해서 작성했습니다.)

 

 

# Simulation window parameters 부분은 시뮬레이션 할 넓이를 정하는 부분입니다. 예시 논문에서 사용한 1km^2를 그대로 사용하기 위해 x축 길이와 y축 길이를1000(m)로 설정했습니다. areaTotal 변수는 100,000(m^2)가 할당됩니다.

 

# Point process parameters 부분이 바로 밀도 λ를 설정해주는 부분입니다. 이 부분이 매우 중요합니다. 1km^2에 매크로셀이 5개, 스몰셀이 50개, UE가 200개 존재하도록 해야 하는데, 현재 areaTotal 변수는 m^2단위로 100,000이라는 값이 저장되어 있습니다. 이 넓이 값과 밀도가 곱해져서 5, 50, 200이 되려면 밀도는 5 × 10^(-6)이 되어야 합니다. 이 부분을 주의하셔야 합니다.

 

# Simulate Poisson point process 부분은 poisson distribution을 따르는 랜덤 변수를 생성하는 부분입니다. 위에서 언급하였듯이 PPP의 점의 개수는 poisson distribution을 따르기 때문에, 이 과정이 필요합니다. 실행 결과 각 factor들의 생성 갯수를 볼 수 있는데, 랜덤 변수이므로 실행할 때마다 매번 다르게 나옵니다. 그래도 5, 50, 200과 가까운 값이 나오는 것을 확인할 수 있습니다.

 

# coordinates of Poisson points 부분은 Simulation Poisson Point Process에서 구한 poisson 랜덤 변수 크기만큼 0, 1 사이의 값을 uniform하게 샘플링하고, 이 값에 x축 길이와 y축 길이를 곱해 각각 x 좌표와 y 좌표 값으로 할당해줍니다. Point의 좌표를 uniform하게 샘플링하는 PPP를 특별히 homogeneous PPP라고 합니다. 예를 들어 UE가 206개 이므로 0, 1 사이의 값을 206개 샘플링하고, 이 값에다 1000을 곱합니다. 만약 0.21이란 값이 샘플링 되면 1000을 곱해서 210(m)가 x 또는 y 좌표가 되겠죠.

 

# figure 부분은 매크로셀, 스몰셀, UE를 scattering한 그림을 생성합니다.

 

시뮬레이션 결과를 Jeffrey Andrews 교수님의 논문에 있는 그림과 비교하면, 상당히 비슷함을 확인할 수 있습니다.

 

코드 원본은 제 github 주소 https://github.com/yhm1620/PoissonPointProcess_5GNetwork에서 다운로드 받으실 수 있습니다.

 

 

 

많은 분들께 도움이 되길 바랍니다. 감사합니다.

 

관련글 더보기

댓글 영역