이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 의한 스피어 디코더가 적용된 무선 수신 장치의 구성도이다.
도시한 것과 같이, 본 발명에 의한 무선 수신 장치(200)는 채널 및 SNR 추정부(210), 송신신호 선추정부(220) 및 스피어 디코더(230)를 포함한다.
채널 및 SNR 추정부(210)는 송신측으로부터 동시에 전송되는 복수의 입력 신호로부터 채널 행렬(H)을 획득한다. 여기에서, 채널 행렬은 송신 안테나의 수(M)*수신 안테나의 수(N) 크기의 행렬이며, 평균이 0이고 분산이 1인 복소 가우시안 분포를 갖는다.
아울러, 채널 및 SNR 추정부(210)는 수신신호의 SNR을 추정하여 스피어 디코더(230)로 제공하는데, SNR 추정시에는 파일럿 신호를 이용하거나, 블라인드(Blind)로 추정하는 방법 등 다양한 방법이 이용될 수 있다.
송신신호 선추정부(220)는 송신측으로부터 동시에 전송되는 복수의 입력 신호, 채널 및 SNR 추정부(210)에서 획득한 채널 행렬 및 잡음 성분을 고려하여 송신신호를 선추정한다.
이를 위하여, 채널 행렬을 QR 분해(Decomposition)하며, 여기에서 Q는 M*N 크기의 정규직교행렬이고, R은 M*N 크기의 상위삼각행렬을 의미한다. 그리고, 잡음 성분을 고려하기 위하여 송신신호 행렬과 채널행렬을 곱한 결과에 백색 가우시안 잡음에 해당하는 행렬을 더해 준다.
송신신호의 선추정은 복잡도가 낮은 디코더, 예를 들어 ZF(Zero Forcing) 디코더, MMSE(Minimum Mean Square Error) 디코더, V-BLAST(Vertical Bell Labs Layered Space Time) 디코더 중 어느 하나를 이용할 수 있으며, 이러한 디코더에서의 신호 복원은 본 발명이 속하는 기술분야에서 통상적으로 적용되는 사항이므로 구체적인 설명은 생략하기로 한다.
한편, 송신신호 선추정부(220)는 선추정된 송신신호를 양자화시킨 벡터(
)를 스피어 디코더(230)로 제공한다.
스피어 디코더(230)에는 SNR별 격자점 수가 미리 설정되어 있으며, 송신신호 선추정부(220)로부터 수신한 송신신호의 양자화 벡터(
)를 이용하여 초기 반지름(C)을 설정하는 한편, 채널 및 SNR 추정부(210)로부터 수신한 SNR 정보에 따라 격자점 수를 추출한다.
그리고, 초기 반지름 내에서 트리 탐색을 수행하여, 수신 신호 벡터와 최소 유클리드 거리를 갖는 격자 벡터를 검출하고, 이에 따라 반지름(C)을 업데이트한다. 반지름 내에서의 트리 탐색 과정은 추출된 격자점의 수만큼 수행됨은 물론이다. 아울러, 설정된 반지름 내의 모든 격자점을 검출한 후에는 수신 신호 벡터와 가장 가까운 유클리드 거리를 갖는 격자 벡터를 검출 신호 벡터로서 출력한다.
도 3은 도 2에 도시한 스피어 디코더의 상세 구성도이다.
도시한 것과 같이, 본 발명의 일 실시예에 의한 스피어 디코더(230)는 초기 반지름 설정 유닛(231), SNR별 격자점 수 설정 유닛(233), 격자점 수 추출 유닛(235), 트리 탐색 유닛(237) 및 반지름 업데이트 유닛(239)을 포함한다.
초기 반지름 설정 유닛(231)은 송신신호 선추정부(220)로부터 송신 신호를 선처리하여 양자화시킨 벡터(
)를 수신하고, 초기 반지름(C)을 다음의 수학식 1 과 같이 설정한다. 하기 수학식에서 y는 수신 신호 벡터를 의미하고, H는 채널 행렬을 의미한다.
[수학식 1]
SNR별 격자점 수 설정 유닛(233)은 SNR별로 탐색할 격자점 수(l)가 미리 설정되는데, 이때에는 디코딩 속도와 비트 에러율(Bit Error Rate; BER)의 상충관계를 고려하여 설정하여야 한다. 즉, BER보다는 디코딩 속도가 보장되어야 하는 상황에는 격자점 수를 낮게 설정할 수 있고, 디코딩 속도보다는 BER이 중요한 시스템의 경우에는 격자점 수를 높게 설정할 수 있다.
어떤 경우이든 격자점 수는 변조 차수 이하로 설정되어야 함은 물론이며, 특히 SNR이 낮을수록 평균 방문 노드 수가 급격히 증가한다는 점을 고려하여, SNR이 낮을수록 격자점 수를 작게 하여 디코딩 성능을 유지하면서도 디코딩 속도를 향상시킬 수 있다.
다음은 송신측에서 변조 차수가 64인 QAM(Quadrature Amplitude Modulation) 변조 방식(64-QAM)으로 신호를 변조한 경우, SNR별 격자점 수의 설정 예이다.
[표 1]
SNR |
0 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
격자점 수 |
9 |
9 |
13 |
21 |
37 |
64 |
64 |
64 |
SNR이 낮은 경우, 즉 수신 신호에 포함된 잡음 비율이 낮은 경우에는 수신 신호로부터 송신 신호를 보다 정확하게 복원할 수 있으므로, 적은 수의 격자점을 탐색하여도 디코딩 정확도를 보장할 수 있다.
반면, 잡음 비율이 높은 경우에는 가능한 많은 격자점을 탐색하는 것이 바람직하므로 탐색할 격자점 수를 높게 설정한다.
격자점 수 추출 유닛(235)은 채널 및 SNR 추정부(210)로부터 수신한 SNR 정보에 따라, SNR별 격자점 수 설정 유닛(233)을 참조하여 탐색할 격자점 수를 추출한다.
아울러, 트리 탐색 유닛(237)은 초기 반지름 설정 유닛(232)으로부터 수신한 초기 반지름(C) 내에서, 격자점 수 추출 유닛(235)에서 추출한 격자점 수만큼 트리 탐색을 수행하여 각 격자 벡터에 대한 유클리드 거리를 계산한다.
보다 구체적으로, 스피어 디코더(230)는 송신 신호 복구를 위해 트리 구조를 탐색한다.
도 4는 본 발명에 의한 트리 탐색 개념을 설명하기 위한 도면이다.
트리의 각 노드(k1, k2, k3, k4)는 송신 심벌에 해당하며, 변조지수가 2인 경우 각 노드로부터 4개의 가지가 파생되어 자식 노드들과 연결된다. 그리고, 가지를 파생시킨 노드는 상대적으로 어미 노드가 된다. 아울러, 송신 안테나의 수(M)가 4인 경우 트리는 4레벨의 계층 구조를 갖게 된다.
이러한 트리 구조에서, 4개의 서로 다른 레벨에 속한 가지(d1, d2, d3)들의 연결이 단일 경로를 생성하게 되고, 4개의 부분 유클리드 거리들이 합산되어 총 유클리드 거리값으로 계산된다.
즉, 트리 탐색 유닛(237)은 수신 벡터로부터 초기 반지름(C) 내에 포함되어 있는 격자점 중 l개의 격자점 각각에 대하여, 순차적으로 부분 유클리드 거리를 계산하며, 부분 유클리드 거리는 각 레벨마다 계산된 후 합산된다.
그리고, 특정 레벨에서의 부분 유클리드 거리의 합이 초기 반지름(C)을 초과하는 경우, 이전 레벨로 이동하여 다른 경로의 노드를 선택하여 다시 부분 유클리드 거리를 계산한다.
이 과정에서, 수신 신호로부터 제 1 레벨 노드와의 거리가 초기 반지름(C)을 초과하는 격자는 탐색에서 제외되게 된다.
또한, 각 레벨에서의 부분 유클리드 거리의 합이 초기 반지름(C)보다 작은 경우에는 다음 레벨에 대한 부분 유클리드 거리를 계산하고, 다음 레벨에서의 부분 유클리드 거리의 합과 초기 반지름(C)을 비교한다.
어느 하나의 격자점에 대한 트리 탐색을 통해 최소 유클리드 거리를 갖는 경로를 탐색한 경우에는 이에 대한 정보를 저장한다.
한편, 반지름 업데이트 유닛(239)은 트리 탐색 유닛(237)에서 최소 유클리드 거리를 갖는 경로를 탐색한 경우, 초기 반지름을 최소 유클리드 거리로 치환한다.
트리 탐색 유닛(237)과 반지름 업데이트 유닛(239)은 이러한 기능은 SNR별로 추출한 격자점의 수(l)만큼 반복되며, 이 결과 최소 유클리드 거리를 갖는 경로를 검출 신호로서 출력하게 된다.
도 5는 본 발명의 일 실시예에 의한 디코딩 방법을 설명하기 위한 흐름도이다.
먼저, 스피어 디코더(230)의 SNR별 격자점 수 설정 유닛(233)은 BER과 디코 딩 속도의 상충 관계, 시스템의 특성 등을 고려하여 SNR별로 탐색할 격자점 수(l)를 설정한다(S10). 본 발명의 일 실시예에서, 64-QAM 변조된 신호를 복조하는 경우 상술한 [표 1]과 같이 SNR별로 격자점 수를 설정할 수 있다.
다음, 채널 및 SNR 추정부(210)에 의해 채널 행렬(H) 및 SNR 정보가 추정되면(S20), 송신신호 선추정부(220)는 채널 행렬, 수신 신호, 잡음 성분을 고려하여 송신 신호를 선추정하고 양자화하여 송신 신호의 양자화된 벡터(
)를 출력한다(S30).
송신 신호 선추정시에는 복잡도가 낮은 디코딩 방식, 예를 들어 ZF(Zero Forcing) 디코딩, MMSE(Minimum Mean Square Error) 디코딩, V-BLAST(Vertical Bell Labs Layered Space Time) 디코딩 방식 중 어느 하나를 이용할 수 있다.
이에 따라, 초기 반지름 설정 유닛(231)은 송신 신호 양자화 벡터를 이용하여 상기 수학식 1과 같이 초기 반지름(C)을 설정하며(S40), 격자점 추출 유닛(235)은 채널 및 SNR 추정부(210)로부터 수신한 SNR 정보와 SNR별 격자점 수 설정 관계를 참조하여 탐색할 격자점 수를 추출한다(S50).
이제, 트리 탐색 유닛(237)은 초기 반지름(C) 내에서, 각 격자점에 대해 트리 탐색을 수행하여, 최소 유클리드 거리를 갖는 격자 벡터를 추출한다(S60).
아울러, 트리 탐색 과정(S60)에서 추출된 최소 유클리드 거리에 따라 반지름을 업데이트하고(S70), l개의 모든 격자에 대한 탐색이 완료되었는지 확인한다(S80).
모든 격자에 대한 탐색이 완료된 경우 최소 유클리드 거리를 갖는 격자 벡터를 검출 신호로서 출력한다(S90).
한편, 모든 격자에 대한 탐색이 이루어지지 않은 경우 단계 S60으로 진행하여 다른 격자에 대한 트리 탐색을 수행한다.
도 6은 도 5에 도시한 트리 탐색 과정을 설명하기 위한 상세 흐름도이다.
먼저, 트리 탐색 유닛(237)은 최상위 레벨로부터 하위 레벨로의 트리 탐색을 위해 탐색할 트리의 레벨(k)을 1로 설정한다(S601).
그리고, 현재 레벨의 노드에서 탐색할 하위 레벨의 노드를 결정한 후(S603), 현재 레벨의 노드에서 하위 레벨까지의 부분 유클리드 거리(
)를 계산한다(S605).
이어서, 부분 유클리드 거리의 합
이 초기 반지름(C)을 초과하는지 확인하여(S607), 초기 반지름(C)을 초과하는 경우 현재 레벨이 1을 초과하는지, 즉 두번째 레벨까지에 대한 부분 유클리드 거리의 합이 C를 초과하는지 확인한다(S609).
단계 S609의 확인 결과, k가 1을 초과하지 않는 경우 즉, 첫번째 레벨에서 계산한 부분 유클리드 거리가 C를 초과하는 경우에는 다른 노드를 탐색하기 위해 단계 S603으로 진행한다.
한편, 단계 S609의 확인 결과 k가 1을 초과하는 경우 즉, 둘 이상의 레벨까 지의 부분 유클리드 거리의 합이 C를 초과하는 경우에는 이전 레벨에서 다른 경로를 선택하기 위해 k를 k-1로 치환하고 단계 S603으로 진행한다(S611).
만약, 단계 S607의 확인 결과 부분 유클리드 거리의 합이 C를 초과하지 않는 경우에는 최하위 레벨까지 탐색하였는지 확인하기 위해, k가 송신 안테나의 수(M)보다 작은지 확인한다(S613).
단계 S613의 확인 결과 최하위 레벨까지 탐색하지 않은 경우에는 다음 하위 레벨에 대한 부분 유클리드 거리 계산을 위해 k를 k+1로 치환하고 단계 S603으로 진행한다(S615).
한편, S613의 확인 결과, 모든 레벨에 대한 탐색이 완료된 경우 최소 부분 유클리드 거리의 합(
)을 추출하고(S617), 이를 검출 신호로서 저장한다(S619).
본 발명의 스피어 디코더(230)에서 트리 탐색 방법은 상술한 방법에 한정되지 않으며, SNR에 따라 기 설정된 격자점 수에 따라 트리 탐색을 수행할 수 있는 방법이라면 어느 것이든 적용할 수 있음은 물론이다.
도 7은 MIMO 시스템의 수신 장치에서 디코딩 방식에 따른 SNR별 BER 특성을 설명하기 위한 그래프이다.
MMSE 디코딩 방식에 의한 검출신호의 SNR별 BER(A), MMSE와 V-BLAST 방식을 결합한 디코딩 방식에 의한 검출신호의 SNR별 BER(B)과 비교할 때, 본 발명에 의한 스피어 디코딩 결과(E)는 SNR이 15 이상이 됨에 따라 BER이 급격히 낮아짐을 알 수 있다.
또한, 초기 반지름만을 제한하여 수행한 기존의 스피어 디코딩 방식(C) 및 Schnorr와 Euchner가 제안한 스피어 디코딩 방식(D)과 비교할 때, 거의 동일한 성능을 갖는 것을 알 수 있다. 이 경우, 본 발명에 의한 스피어 디코딩 방식(E)은 SNR별로 격자점 수가 제한되어 있기 때문에 디코딩 속도가 기존의 스피어 디코딩 방식(C, D)에 비해 대폭 개선됨은 물론이다.
도 8은 디코딩 방식에 따른 SNR별 평균 방문 노드 수를 설명하기 위한 그래프이다.
초기 반지름만을 제한하여 수행한 기존의 스피어 디코딩 방식(C) 및 Schnorr와 Euchner가 제안한 스피어 디코딩 방식(D)은 SNR이 낮을수록 평균 방문 노드 수가 급격히 증가한다.
반면, 본 발명에 의한 스피어 디코딩 방식(E)의 경우 모든 SNR에 대해 평균 방문 노드 수가 고르게 분포함을 알 수 있다.
이에 따라, 디코딩 속도가 개선되어 무선 무신 장치의 복원 효율을 극대화할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구 범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.