정보공간_1

[4기 부산 오세빈] 휴대폰은 어떻게 채널을 할당 받을까?! part 2/2 본문

IT 놀이터/Elite Member Tech & Talk

[4기 부산 오세빈] 휴대폰은 어떻게 채널을 할당 받을까?! part 2/2

알 수 없는 사용자 2013. 12. 5. 01:25

안녕하세요!! 부산멤버십 22-1기 오세빈입니다.

이번에는 저번 포스팅에 이어서 시뮬레이션 결과까지 한번 보도록 하겠습니다.


평균 전화 수(arrival rate) “람다”(calls/hour)를 갖는 포아선 과정을 따른다. 이러한 평균 전화 수를 구현하기 위해 랜덤함수를 사용하여 모든 시간주기 time_step에서 연결되지 않은 각 사용자를 검사한다. 만약 랜덤 값이 time_step 동안 평균 전화 수를 나타내는 lambda * time_step / 3600 보다 크지 않으면 사용자는 콜을 시작한 것으로 간주되고 변수 call_num 으로 카운트되어진다. 그리고 모든 시작된 콜은 각자의 유지시간을 가지고 있으며 해당 시간 후에 종료된다. 각 콜의 유지시간은 평균 ht()를 갖는 지수분포를 갖는다. hold_time.m 을 이용해서 지수분포를 갖는 랜덤 값을 얻어낸다. hold_time 의 출력 확률밀도 함수는 그림 9와 같이 나타낼 수 있다.


[그림 9]


그리고 사용자의 수도 중요한 트래픽 인자로 작용할 수 있다. 셀 내에 존재하는 사용자의 수를 설정하여 사용자 수의 변화에 따른 효과를 조사해야하며 DCA 성능을 평가하는데에 밀접한 연관이 있다.


수신신호의 강도는 시뮬레이션에서 가장 중요한 요소 중 하나이다. 전송된 신호는 거리와 장애물과 같은 요인에 의해 발생하는 감쇄를 겪게 된다. 시뮬레이션에서 감쇄요인으로 경로손실과 섀도윙을 사용한다.

전송신호가 아래의 수식과 같이 알파의 감쇄항을 갖는 경로손실을 갖는다고 가정하면 시뮬레이션에서 이것은 변수 alpha 로 지정하고 alpha 3.5 로 설정한다. 이 경로손실의 계산은 dist.m 을 이용한다. dist(a,b,alpha) 에서 a b 는 각각 두 지점의 좌표를 나타내고 a b 간의 경로손실을 계산한다.



섀도윙은 표준편차 sigma 를 갖는 로그-정규 분포를 갖는다고 가정한다. 시뮬레이션에서 이 값은 6.5로 설정한다. shadow.m 을 이용해 함수 shadow(sigma) 으로 섀도윙 값을 얻어낸다. 출력으로 나오는 shadow(sigma)PDF 는 다음과 같다.

 

[그림 10]


시뮬레이션에서 채널 할당은 dca_main.m 에서 이루어진다. 먼저 콜을 시작한 사용자로부터 기지국으로의 전송 파워가 조사되고 이 파워는 C/N으로 주어진다. C/N을 송신기와 수신기 간의 거리가 1일 때 C/N을 나타내는 시뮬레이션 값 cn_edge(dB)를 사용한다. 그림 11은 경로손실만이 고려된 경우의 조건을 보여준다.



[그림 11]


먼저 사용자의 위치와 기지국의 좌표를 입력하고 dist(a,b,alpha) 로 경로손실 값을 계산하고 그 다음 이 값에 shadow(sigma)로 생성된 섀도윙 감쇄 값을 첨가한다. 다음으로 desired_wave 신호의 감쇄 값을 얻고 desired_wave 값을 사용해 기지국에서 수신된 신호의 C/N을 얻을 수 있다. C/Npower(10.0, cn_edge/10.0) 에 해당하고 cn 변수로 설정된다.

cn 을 계산한 후에 C/(N+I)의 간섭조건을 만족하는 사용되지 않고 있는 채널을 찾는다. channel search 는 채널번호 ch 의 루프에서 실행되고 전체의 ch_num 의 채널이 체크된다. 만약 다른 사용자가 동일한 채널에 할당되면 사용자로부터 간섭을 계산한다. for around=2:7 루프에서 변수 other_cell = wrapinfo(num_cell, around) num_cell 번째 셀의 인접한 셀과 동등한 셀을 의미한다.

시뮬레이션에서는 간섭을 일으킬 수 있는 모든 사용자로부터 간섭을 계산하고 이를 더해 총 간섭을 계산한다. C/(N+I) 를 계산해야 한다.




위의 식을 통해 C/(N+I) C/N C/I 를 통해 얻을 수 있음을 알 수 있다. C/N 값은 power(10.0, en_dege/10.0) * dwave 로 계산할 수 있고 C/I dwave / uwave 에 해당한다. 이 값을 이용하여 시뮬레이션에서 C/(N+I) cn_irdb(dB)를 구할 수 있다.

마지막으로 C/(N+I)이 간섭조건을 만족하는지 검사해서 C/(N+I)값이 초과하면 콜이 받아들여지고 사용자에게 채널이 할당된다. 이 때 함수 hole_time()이 수행되고 출력이 사용자에게 콜이 끝나는 시간을 제공하는 콜 유지시간으로 할당된다. 만약 간섭조건이 만족되지 않으면 콜은 차단되고 차단된 콜 수를 변수 block_num 으로 카운트 한다.

 

Channel Check and Reallocation

매 주기 시간동안 연결된 사용자의 간섭조건 C/(N+I) 을 검사해서 만족되지 않으면 할당된 채널을 풀어주고 앞의 채널 할당방법과 마찬가지로 다른 채널을 찾도록 한다. 여기서 채널 조건이 만족되지 않으면 차단이 아니라 강제 종료로 판단되어 콜의 강제 종료된 수 force_num 으로 카운트 된다.

 

Output

전체 메인루프가 실행된 후에, 축적된 데이터는 계산되어 출력 행렬에 저장된다. 위에서 call_num, block_num, force_num 수치를 저장하였기 때문에 위에서 정의한 차단확률과 강제된 종료 확률을 계산한다.



또한 사용자의 수에 따른 차단 확률을 확인하기 위하여 user_num을 다르게 설정하여 여러번 시뮬레이션한다.


Simulation Results of DCA Algorithm

밑의 그래프에서 차단확률과 사용자 수를 확인할 수 있다. 그림에서 cn_edge ch_num을 확인해보면 높은 수신파워 15dB -> 20dB 와 많은 채널 수 ch_num 3 -> ch_num 5 가 낮은 차단확률을 보이는 것을 확인할 수 있다.




밑의 그림은 시간 간격 당 사람의 콜 수를 보여준다. 푸른색 그래프의 콜 수는 랜덤함수로 구현되었으며 평균적으로 1~2사이에서 이루어짐을 볼 수 있다. 시간 간격 당 최고 콜 수는 6번으로 확인할 수 있다. 푸른색 그래프 밑으로 보이는 붉은색 그래프는 차단당한 콜 수를 보여주고 있다.



다음 그림은 차단 변이 확률을 보여주는데 시뮬레이션의 길이는 time_end = 5000 을 사용하여 평가하였다. 시간 루프가 돌면서 차단 확률이 변화되는걸 보여주고 있다. 셀 당 유저수가 증가함에 따라 차단 확률이 차례대로 증가하고 초기 채널 할당에는 차단율의 변동이 심하지만 채널이 시간에 지남에 따라 일정한 차단 확률로 수렴하는 것을 볼 수 있다. 밑의 그림에서 시뮬레이션에서 신호 파워는 20dB, 셀 당 채널수는 5, 임계값은 15dB로 설정했다. 할당되지 않은 채널이 존재하고 간섭 비 C/(N+1) 15dB를 넘어서면 콜이 수용되고 채널이 할당된다.


밑의 또 다른 그래프는 사용자 수, 채널 수, 임계 값, 신호 세기 등의 파라미터들을 동일하게 주면서 채널 할당부분을 FCA 알고리즘을 기반으로 고정적으로 채널이 할당된 상태에서 시뮬레이션 결과를 보인 것이다. 그래프를 보면 차단 확률이 위의 DCA 알고리즘 기반의 채널 할당으로 인한 차단 확률 보다 확연이 높은 것을 확인할 수 있으며 적은 사용자의 수보다 점차 사용자 수가 증가할 때 좀 더 많은 차단 확률을 확인할 수 있다.



밑의 두 경우를 비교해놓은 그래프를 보면 더 확연히 눈에 나타난다. 검은색이 DCA 이고 푸른색이 FCA 이다. 유저수가 늘어남에 따라 확연하게 격차가 벌어지는 것을 볼 수 있다.


우리는 무선 셀룰러 통신 네트워크에서 동적 채널 할당 알고리즘(DCA)을 이용해 사용자 수, 채널 수, 임계 값, 신호 세기 등의 파라미터들을 설정하고 시뮬레이션 하여 전체 시스템에 대한 차단 확률을 구함으로써 성능을 평가해 보았습니다.

예상한 바와 같이 트래픽의 변동에 유연하게 대처할 수 있고 사용자의 요청에 따라서 적응적으로 채널을 할당하는 DCA 알고리즘이 FCA 알고리즘보다 더 나은 성능을 발휘하는 것을 확인하였구요. 하지만 위의 결과에서 보듯이 사용자수가 적은 경우에서는 DCA 알고리즘과 FCA 알고리즘이 비슷한 성능을 보여주었습니다

, 모든 셀룰러 네트워크 시스템에 대해서 DCA 알고리즘이 더 나은 성능을 보장할 수 없지만 실제로 유동인구가 많은 마이크로셀룰러 환경에서 채널 할당에 유연한 DCA 가 훨씬 더 나은 성능을 발휘한다는 것은 분명합니다.

혹시 통신관련 과제를 하고 계시거나 텀 프로젝트로 이와 같은 프로젝트를 진행중이시면 언제든지 제가 아는 선에서 도와드리도록 하겠습니다.