이하, 본 발명을 더욱 상세하게 설명하기 위해서, 본 발명을 실시하기 위한 최선의 형태에 대해, 첨부 도면에 따라서 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 LLR 계산부(2) 및 복호 코어부(복호 수단)(3)로 구성된다. 수신 LLR 계산부(2)는 LDPC(Low- Density Parity Check) 부호화 신호를 수신하고, 그 대수 우도비 LLR(Log Likelihood Ratio)(이하, 수신 LLR로 칭함)을 산출하여 복호 코어부(3)에 출력한다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)에서는, 수신 LLR 계산부(2)로부터 입력한 수신 LLR에 기초하는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 중간 결과를 보유한다. 행 처리부(5)는 행 처리를 행한다. 열 처리부(6)는 열 처리를 행한다. 제어부(7)는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 반복을 제어한다. 복호 결과 판정부(8)는 사후값의 경판정으로부터 복호 결과를 결정하고, 패리티 검사를 행하여 복호 결과의 옳고그름을 판정한다.
여기서, 본 실시예 1에 의한 행 처리부(5)에서는, 상기 식 (1)에 대하여, 상기 식 (1) 및 상기 식 (2) 대신에 하기 식 (8)의 연산을 실행한다. 즉, 상기한 Shuffled BP 알고리즘의 단계 1의 행 처리에서, Min-Sum 알고리즘에서 사용하는 갱신식으로 갱신 연산을 행한다. 또한, 하기 식 중의 각 기호는 상기한 것과 동일하다.
도 2는 도 1 중의 행 처리부의 구성을 도시하는 블럭도이다. 비교부(9)는 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)는 복수의 비교부(9)를 복수 단계로 접속하여 구성된다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 당해 비트의 LLR을 입력하고, 비교부(9)가 각각의 대소 비교와 부호 (±)와의 곱을 산출한 값을 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Min-Sum 알고리즘의 근사 갱신식인 상기 식 (8)을 이용한다. 이에 따라, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Min-Sum 알고리즘이 실현된다.
다음에 동작에 대해 설명한다.
도 3은 실시예 1에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴 다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (8)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 4는, 종래의 Min-Sum 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 1에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들을 파선으로 연결한 것이 종래의 Min-Sum 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 1에 의한 것이다.
또, 도 4에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치(column weight) 3, 행 가중치(row weight) 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다.
종래의 Min-Sum 알고리즘에서는, 상기 식 (8)에 따라 반복 복호의 임의의 1 회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 4에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Min-Sum 알고리즘과 비교하여 현격하게 빨라진 것을 알 수 있다.
이상과 같이, 이 실시예 1에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Min-Sum 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Min-Sum 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다. 또, Min-Sum 알고리즘을 행 처리의 기본 알고리즘으로 하여, 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 2)
상기 실시예 1에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Min-Sum 알고리즘을 실현한 LDPC 부호 복호 장치를 나타냈다. 이에 반해, 본 실시예 2에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리 에서 Normalized BP 알고리즘을 실행하는 것이다.
본 실시예 2에 의한 LDPC 부호 복호 장치는 도 1에 도시한 상기 실시예 1에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, Normalized BP 알고리즘의 실행을 위해 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면, 본 실시예 2에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 상기 식 (2) 및 상기 식 (3) 대신에 하기 식 (9)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, Normalized BP 알고리즘에서 사용하는 갱신식인 하기 식 (9)에 의해 갱신 연산을 행한다. 또한, 하기 식 (9) 중의 각 기호는 상기한 것과 동일하다. 또, 정수 α는 Normalization Factor이다.
본 실시예 2에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Normalized BP 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (9)를 사용한 행 처리를 행하고, 열 처리부(6)는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 5는 실시예 2에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9)와 제산부(10)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)× sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(10)에서는, 입력값 c에 대하여, 인자 α(Normalization Factor)로 제산한 c/α를 계산하여 열 처리부(6)에 출력한다. 즉, 본 실시예 2에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하면, 각각의 대소 비교와 부호 (±)와의 곱을 비교부(9)에서 행하고, 비교부(9)에 의해 얻어진 값을 제산부(10)가 인자 α에 의한 제산을 행한 후, 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 1에 의한 LDPC 부호 복호 장치(1)는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Normalized BP 알고리즘의 갱신식인 상기 식 (9)를 이용한다. 이에 따라, Min-Sum 알고리즘과 동일한 정도의 계산 비용으로 LDPC 부호의 복호를 행하면서, 복호 성능이 열화되는 것을 억제한 Normalized BP 알고리즘을 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 것을 실현하고 있다.
다음에 동작에 대해 설명한다.
본 실시예 2에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명하고, 아울러 상기 실시예 1과 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정 보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로 하여 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행에 대해서 상기 식 (9)에 따른 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 상기 식 (3) 및 상기 식 (4)에 따라 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (9)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (9)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처 리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 6은 종래의 Normalized BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 2에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Normalized BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 2에 의한 것이다.
또, 도 6에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6, 최대 반복 회수 Imax가 100회이다. 또, 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고, 변조 방식을 BPSK(Binary Phase Shift Keying)로 하고 있다. 또한, 종래의 Normalized BP 알고리즘 및 본 실시예 2에 의한 Normalized BP 알고리즘에서, 인자 α(Normalization Factor)를 각각 α=1.25로 하고 있다.
종래의 Normalized BP 알고리즘에서는, 상기 식 (9)에 따라 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모 든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 2에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 6에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Normalized BP 알고리즘과 비교하여 현격하게 빨라진 것을 알 수 있다.
이상과 같이, 이 실시예 2에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Normalized BP 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Normalized BP 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감하는 것이 가능하게 된다. 또, Normalized BP 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 3)
본 실시예 3에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Offset BP 알고리즘을 실행하는 것이다.
본 실시예 3에 의한 LDPC 부호 복호 장치는, 도 1에 도시한 상기 실시예 1에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, Offset BP 알 고리즘의 실행을 위해 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 3에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 하기 식 (10)의 연산을 실행한다.
즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, Offset BP 알고리즘에서 사용하는 근사 갱신식인 하기 식 (10)에 의해 갱신 연산을 행한다. 또한, 하기 식 (10) 중의 각 기호는 상기한 것과 동일하다. 또, 정수 β는 Offset Factor이고, MAX는 양자 중 큰 쪽을 선택하는 조작으로 한다.
본 실시예 3에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Offset BP 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (10)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 7은 실시예 3에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9)와 감산부(11)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(11)에서는, 입력값 c에 대하여, 인자 β(Offset Factor)로 감산한 c ―β를 계산하여 열 처리부(6)에 출력한다. 즉, 본 실시예 3에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하면, 각각의 대소 비교와 부호 (±)와의 곱을 비교부(9)에서 행하고, 비교부(9)에 의해 얻어진 값을 감산부(11)가 인자 β에 의한 감산을 행한 후, 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 3에 의한 LDPC 부호 복호 장치는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고 Offset BP 알고리즘의 갱신식인 상기 식 (10)을 이용한다. 이에 따라, Min-Sum 알고리즘과 동일한 정도의 계산 비용으로 LDPC 부호의 복호를 행하면서, 복호 성능이 열화되는 것을 억제한 Offset BP 알고리즘을, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 것을 실현하고 있다.
다음에 동작에 대해 설명한다.
본 실시예 3에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명하고, 더불어 상기 실시예 1과 동일한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행에 대해 상기 식 (10)에 따른 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 상기 식 (3) 및 상기 식 (4)에 따라서 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (10)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 도시하는 바와 같이 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (10)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 8은, 종래의 Offset BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 3에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Offset BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 3에 의한 것이다.
또, 도 8에서, LDPC 부호는, 레귤러 LDPC, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다. 또, 종래의 Offset BP 알고리즘 및 본 실시예 3에 의한 Offset BP 알고리즘에서, 인자 β(Offset Factor)를 각각 β=0.15로 하고 있다.
종래의 Offset BP 알고리즘에서는, 상기 식 (10)에 따라서 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다. 이에 반해, 본 실시예 3에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행한다. 이에 따라, 도 8에 도시하는 바와 같이, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값의 수렴이 종래의 Offset BP 알고리즘과 비교하여 현격하게 빨라져 있는 것을 알 수 있다.
이상과 같이, 이 실시예 3에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 Offset BP 알고리즘의 간이한 갱신식을 사용하므로, 종래의 Offset BP 알고리즘보다도 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다. 또, Offset BP 알고리즘을 기본 알고리즘으로 함으로써 종래의 Shuffled BP 알고리즘과 같이 수학 함수를 필요로 하지 않아, 계산 비용을 삭감할 수 있다.
(실시예 4)
이 실시예 4는 Min-Sum 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 구비하는 것이다.
도 9는 본 발명의 실시예 4에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 4에 의한 LDPC 부호 복호 장치(1)는 수신 LLR 계산부(2) 및 복호 코어부(3)로 구성된다. 수신 LLR 계산부(2)는 LDPC(Low-Density Parity Check) 부호화 신호를 수신하고, 그 대수 우도비 LLR을 산출하여 복호 코어부(3)에 출력한다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)는 수신 LLR 계산부(2)로부터 입력한 수신 LLR에 기초하는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 중간 결과를 보유한다. 행 처리부(5)는 상기한 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 의한 행 처리를 행한다. 열 처리부(6)는 당해 행 처리부(5)에 의한 처리 결과에 대해 열 처리를 행한다. 제어부(7)는 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리의 반복을 제어한다. 복호 결과 판정부(8)는 사후 값의 경판정으로부터 복호 결과를 결정하고, 패리티 검사를 행하여 복호 결과의 옳고그름을 판정한다.
여기서, 본 실시예 4에서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 즉, 복호하고 싶은 LDPC 부호의 검사 행렬이 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이라고 하면, m=1, 2, 3, …, M의 순으로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대하여 행 처리를 행하고, 이후에 n=1, 2, 3, …, N의 순으로 Hm ,n=1을 충족시키는 모든 세트(m, n)에 대하여 열 처리가 실행된다.
반복 1회 중에 실행되는 행 처리인 단계 1에서, 본 실시예 4에 의한 행 처리부(5)는 하기 식 (11)에 대하여 하기 식 (12)의 연산을 실행한다. 하기 식 (12) 중의 각 파라미터는 하기 식 (13)~(15)로 표시되고, 이들 식 중의 각 기호는 상기 한 것과 동일하다.
또한, 상기 식 (15)에서, Min-Sum 알고리즘에 대한 보정항이 되는 δ에 대해서는, Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산으로 얻어지는 ln(2)가 일례이지만, 예를 들면 0.9 등 적절한 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
또한, 단계 1에서, 행 처리부(5)에 의한 모든 행 처리가 종료하면, 본 실시예 4에 의한 열 처리부(6)는 하기 식 (16)에 대해 상기 식 (4) 및 상기 식 (5)의 연산을 실행한다.
계속해서, 단계 2로서, 복호 결과 판정부(8)가 사후 값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 못하면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과 판정부(8)가, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
도 10은 도 9 중의 행 처리부의 구성을 도시하는 블럭도이다. 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성된다. 또, 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대하여, Min-Sum 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 의해, 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다.
또한, 상기한 상기 식 (12) 및 도 10의 구성에서는, 모든 비교에서 보정을 행하지만, 도 10a에 도시하는 바와 같이 비교부(9)에 의한 최소 두 값의 비교시에만 보정을 행하는 등, 비교 회수보다도 보정 회수를 줄임으로써 연산량을 삭감할 수 있다.
다음에 동작에 대해 설명한다.
도 11은 실시예 4에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로 설명하면, 상기 식 (11)의 관계에 따라서 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (12)를 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료하면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 또는 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 12는, 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래의 Min-Sum 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 4에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 일점 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Min-Sum 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 4에 의한 것이다.
또, 도 12에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Min-Sum 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (8)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이에 반해, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)에서는, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 12에 도시하는 바와 같이, 본 실시예 4에 의한 LDPC 부호 복호 장치(1)는 종래의 Min-Sum 알고리즘과 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 4에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘으로부터의 복호 성능의 열화를 억제할 수 있고, 또한, 종래의 Min-Sum 알고리즘과 비교하면 현격하게 복호 성능을 향상시킬 수 있다.
또, Min-Sum 알고리즘에 대한 보정항을 수신 정보로부터 산출하므로, 종래의 보정형의 Min-Sum 알고리즘과 같이 보정항을 보유하는 테이블을 준비해 둘 필요가 없고, 종래의 Normalized BP 알고리즘이나 Offset BP 알고리즘과 같이, 부호 구성에 의존하여 최적화한 인자를 미리 준비해 둘 필요도 없다.
또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 4에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 5)
상기 실시예 4에서는, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘을 실현한 복호 장치를 나타냈다. 이에 반해, 본 실시예 5에 의한 복호 장치는 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 실행하는 것이다.
본 실시예 5에 의한 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 제산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 5에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (17)의 연산을 실행한다. 또한, 하기 식 (17) 중의 각 파라미터는 상기 식 (13)~상기 식 (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
여기서, Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
제산 정수 α는 Normalized BP 알고리즘에서의 Normalization Factor와 동일한 효과를 갖고, 상기 실시예 4에서의 보정형의 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를, Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다. 또한, 본 실시예에서의 제산식 보정형의 Min-Sum 알고리즘에서의 제산 정수 α는 Normalized BP 알고리즘과 마찬가지로 Normalization Factor라고 부르기로 한다.
본 실시예 5에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대해 제산식 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (17)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하고 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 13은 실시예 5에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 보정 연산부(12)와 제산부(13)로 구성된다. 보정 연산부(12)는, 도 10에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 보정 연산부(12)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)는 두 값 a, b의 절대값을 입력하면, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(||a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(13)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 α(Normalization Factor)로 제산한다. 즉, 제산부(13)는 입력값 c에 대하여, c/α를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 제산부(13)는 보정 연산부(12)가 산출한 값을 정수 α로 제산한 후, 열 처리부(6)로 넘긴다.
다음에 동작에 대해 설명한다.
본 실시예 5에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11을 따라 동작을 설명하고, 아울러 상기 실시예 4와 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처 리를 상기 식 (17)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대해 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 14는 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래 의 Normalized BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 5에 의한 LDPC 부호 복호 장치에서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 1점 파선으로 연결한 것이 종래의 Normalized BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 5에 의한 것이다.
또, 도 14에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)으로 하고 있다. 또, Normalized BP 알고리즘에서, 인자 α(Normalization Factor)를 α=1.25로 한 경우의 복호 성능을 나타내고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Normalized BP 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (9)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이것에 대하여, 본 실시예 5에 의한 LDPC 부호 복호 장치(1)에서는, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수 α로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대해 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 14에 도시하는 바와 같이, 본 실시예 5에서는, 종래의 Normalized BP와 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 거의 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 5에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 제산한 값을 사용하여 열 처리를 행하는 제산식 보정형의 Min-Sum 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기의 차를 종래의 Normalized BP 알고리즘과 같이 인자 α(Normalization Factor)로 조정할 뿐만 아니라, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 대해 더욱 보정을 행함으로써, 종래의 Normalized BP 알고리즘보다도 현격하게 복호 성능을 향상시킬 수 있다.
또, 본 실시예 5에 의한 Min-Sum 알고리즘에 대한 보정항은 수신 정보로부터 산출하므로, 종래의 보정형 알고리즘과 같이 보정항 테이블을 보유할 필요가 없다. 또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은, 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 5에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 6)
본 실시예 6에서는, 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘에서의 행 처리 결과로부터 정수로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘을 복호 알고리즘으로서 실행하는 것이다.
본 실시예 6에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 감산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 6에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (18)의 연산을 실행한다. 또한, 하기 식 (18) 중의 각 파라미터는 상기 식 (13)~상기 식 (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
여기서, Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산으로 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는 1비트의 비트 시프트 연산으로 가능하다.
감산 정수 β는, Offset BP 알고리즘에서의 Offset Factor와 동일한 효과를 갖고, 상기 실시예 4에 의한 보정형의 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다. 또한, 본 실시예 6에 의한 감산식 보정형의 Min-Sum 알고리즘에서의 감산 정수 β는 Offset BP 알고리즘과 마찬가지로 Offset Factor라고 부르기로 한다.
본 실시예 6에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 감산식 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 유지한다. 행 처리부(5)에서는, 상기 식 (18)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하고 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 15는 실시예 6에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 보정 연산부(12)와 감산부(14)로 구성된다. 보정 연산부(12)는, 도 10에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 보정 연산부(12)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 보정 연산부(12)는 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과를 입력한다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)는 두 값 a, b의 절대값을 입력하면, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(14)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 β(Offset Factor)로 감산한다. 즉, 감산부(14)는 입력값 c에 대하여 (c-β)를 계산하고, 계산 결과가 부(負)가 아니면 (c-β)를 출력하고, 부이면 0을 출력한다. 이와 같이, 행 처리부(5)에 있어서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 감산부(14)는 보정 연산부(12)가 산출한 값을 정수 β로 감산하고, 그 결과에 따라 (c-β) 또는 0을 열 처리부(6)로 넘긴다.
다음에 동작에 대해 설명한다.
본 실시예 6에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명하고, 아울러 상기 실시예 4와 상이한 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처 리를 상기 식 (18)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라서 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 16은, 종래의 Sum-Product 알고리즘에 따른 LDPC 부호 복호 장치와, 종래 의 Offset BP 알고리즘에 따른 LDPC 부호 복호 장치와, 실시예 6에 의한 LDPC 부호 복호 장치에 있어서의, 비트 오류율과 이 비트 오류율에서의 신호대 잡음비(Eb/No)의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Sum-Product 알고리즘에 의한 것이고, 그려진 점들 사이를 1점 파선으로 연결한 것이 종래의 Offset BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 5에 의한 것이다.
또, 도 16에서, LDPC 부호는 레귤러 LDPC 부호, 부호 길이 8000, 부호화율 1/2, 열 가중치 3, 행 가중치 6이고, 최대 반복 회수 Imax가 100회이다. 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, 변조 방식은 BPSK(Binary Phase Shift Keying)로 하고 있다. 또한 Offset BP 알고리즘에서, 인자 β(Offset Factor)를 β=0.15로 한 경우의 복호 성능을 나타내고 있다.
종래의 Sum-Product 알고리즘 및 종래의 Offset BP 알고리즘에서는, 각각 상기 식 (2) 및 상기 식 (10)에 따라, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리가 행해진다.
이에 반해, 본 실시예 6에 의한 LDPC 부호 복호 장치(1)에서는, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수 β로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘에 따라, 수신 신호에 대한 행 처리에 대하여 모든 행 처리를 끝낸 뒤, 당해 부호화 신호의 모든 비트에 대한 열 처리를 행한다. 이 보정에 의해, 도 16에 도시하는 바와 같이, 본 실시예 6에서는, 종래의 Offset BP와 비교하여 현격하게 복호 성능이 향상되었고, 또 종래의 Sum-Product 알고리즘과 거의 동일한 복호 성능을 실현할 수 있는 것을 알 수 있다.
이상과 같이, 이 실시예 6에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Min-Sum 알고리즘에서의 행 처리 결과를 정수로 감산한 값을 사용하여 열 처리를 행하는 감산식 보정형의 Min-Sum 알고리즘에 따라서 복호 처리를 실행하므로, 종래의 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기의 차를 종래의 Offset BP 알고리즘과 같이 인자 β(Offset Factor)로 조정할 뿐만 아니라, 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 대하여 더욱 보정을 행함으로써, 종래의 Offset BP 알고리즘보다도 현격하게 복호 성능을 향상시킬 수 있다.
또, 본 실시예 6에 의한 Min-Sum 알고리즘에 대한 보정항은, 수신 정보로부터 산출하므로, 종래의 보정형 알고리즘과 같이 보정항 테이블을 보유할 필요가 없다. 또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 6에 의한 LDPC 부호 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 7)
이 실시예 7에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 4에서 설명한 보정형의 Min-Sum 알고리즘을 행하는 것이다.
본 실시예 7에 의한 LDPC 부호 복호 장치는 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 보정형의 Min-Sum 알고리즘에서의 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 점이 상이하다.
구체적으로 설명하면 본 실시예 7에서의 행 처리부(5)에서는, 상기 식 (1)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (19)의 연산을 실행한다. 또한, 하기 식 (19) 중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
또한, 상기 식 (15)에서, Min-Sum 알고리즘에 대한 보정항이 되는 δ에 대해서는, Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C으로부터의 감산만으 로 산출할 수 있다.
또, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
본 실시예 7에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 보정형의 Min-Sum 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 대하여, 상기 식 (19)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (1)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 7에 의한 행 처리부(5)는, 상기한 바와 같이, 기본적인 구성은 도 10에 도시하는 상기 실시예 4와 동일하다. 즉, 보정 연산부(12)가 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 여기서, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
이와 같이, 본 실시예 7에 의한 LDPC 부호 복호 장치는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (2) 및 상기 식 (3)을 사용하지 않고, 상기 식 (19)를 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 7에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실 시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (19)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (19)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 7에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 4에서 나타낸 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하는 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 8)
이 실시예 8에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비 트씩 행함과 아울러, 그 행 처리에서 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘을 실행하는 것이다.
본 실시예 8에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 제산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 8에서의 행 처리부(5)에서는, 상기 식 (1)에 대하여 하기 식 (21)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, Shuffled BP 알고리즘의 단계 1의 행 처리에서, 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘에서 사용하는 갱신식인 하기 식 (21)에 의해 갱신 연산을 행한다. 또한, 하기 식 (21)중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
상기 식 (15) 중의 Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는 1비트의 비트 시프트 연산으로 가능하다.
제산 정수 α는 Normalized BP 알고리즘에서의 Normalization Factor와 동일한 효과를 갖고, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 제산식 보정형 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를 Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다.
본 실시예 8에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 제산식 보정형의 Min-Sum 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과 를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 따라서 상기 식 (21)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 8에 의한 행 처리부(5)는 기본적인 구성은 도 13에 도시하는 상기 실시예 5와 동일하다. 즉, 복수의 보정 연산부(12)와 제산부(13)로 구성된다. 여기서, 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 또, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(13)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 α(Normalization Factor)로 제산한다. 즉, 제산부(13)는 입력값 c에 대하여, c/α를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 제산부(13)는 보정 연산부(12)가 산출한 값을 정수 α로 제산한 후, 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 8에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (21)을 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 8에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (21)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (21)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 8에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하는 제산식 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 9)
이 실시예 9에 의한 LDPC 부호 복호 장치에서는, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘을 실행하는 것이다.
본 실시예 9에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 감산식 보정형의 Min-Sum 알고리즘의 실행 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다.
구체적으로 설명하면 본 실시예 9에서의 행 처리부(5)에서는, 상기 식 (1)에 대해 하기 식 (22)의 연산을 실행한다. 즉, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘의 단계 1의 행 처리에서, 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘에서 사용하는 갱신식인 하기 식 (22)에 의해 갱신 연산을 행한다. 또한, 하기 식 (22) 중의 각 파라미터는 하기 식 (20), 상기 식 (14), (15)에 따른 것으로 한다. 또, 다른 처리에 대해서는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다.
상기 식 (15) 중의 Min-Sum 알고리즘에 대한 보정항이 되는 δ는 Sum-Product 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 절대값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또한, 정수 C에 대해서는, Sum-Product 알고리즘의 갱신식으로부터의 근사계산에서 얻어지는 ln(2)가 일례이지만, 적절한 값을 설정함으로써 복호 성능을 향상시킬 수도 있다. 또한, 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
감산 정수 β는 Offset BP 알고리즘에서의 Offset Factor β와 동일한 효과를 갖고, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 감산식 보정형 Min-Sum 알고리즘의 행 처리에서 산출되는 LLR의 크기를, Sum-Product 알고리즘에 의해 산출되는 LLR의 크기와 동일한 정도로 조정함으로써 복호 성능을 향상시키는 효과를 갖는다.
본 실시예 9에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 감산식 보정형의 Min-Sum 알고리즘에 의한 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (1)의 관계에 따라 상기 식 (22)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
또, 본 실시예 9에 의한 행 처리부(5)는 기본적인 구성은 도 15에 도시하는 상기 실시예 6과 동일하다. 즉, 복수의 보정 연산부(12)와 감산부(14)로 구성된다. 여기서, 보정 연산부(12)는 입력된 두 값의 절대값의 대소 비교, 보정항의 산출 및 이것에 기초하는 보정을 행하고, 보정된 값과 두 값의 부호 (±)와의 곱을 산출한다. 또, 행 처리부(5)는 복수의 보정 연산부(12)를 복수단에 접속하여 구성되어 있고, 하단의 보정 연산부(12)에서의 입력된 두 값 중 하나로서 상단의 보정 연산부(12)의 산출 결과가 입력된다. 각 보정 연산부(12)에 의한 처리는 하기와 같다.
보정 연산부(12)가 두 값 a, b의 절대값을 입력한 경우, 우선, δ=0.69-(||a|-|b||)>>2를 계산한다(ln(2)~0.69). 그리고, |a|<|b| 이면, sign(a)×sign(b)×(|a|-δ)를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×(|b|-δ)를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다. 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 보정 연산부(12)가 각각의 대소 비교와 보정, 부호 (±)의 곱을 산출한 값을 열 처리부(6)로 넘기는 처리를 행한다.
감산부(14)에서는, 상기한 보정 연산부(12)에 의한 연산 결과를 정수 β(Offset Factor)로 제산한다. 즉, 감산부(14)는 입력값 c에 대하여, (c-β)를 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 보정 연산부(12)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱 및 보정항에 의한 보정을 행하고, 감산부(14)는 보정 연산 부(12)가 산출한 값을 정수 β로 감산한 후, 열 처리부(6)로 넘긴다.
이와 같이, 본 실시예 9에 의한 LDPC 부호 복호 장치는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 Shuffled BP 알고리즘을 기초로 하여, 그 각 행 처리에서 상기 식 (22)를 이용한다.
다음에 동작에 대해 설명한다.
본 실시예 9에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 1에서의 도 3의 플로우차트와 동일하다. 따라서, 도 3에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 상기 식 (1) 에서 g=1일 때, 행 처리부(5)는 1열째부터 Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 1열째부터 Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (1)에서 g=2일 때, 행 처리부(5)는 (Ng+1)열째부터 2Ng열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (Ng+1)열째부터 2Ng열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3 이후의 처리를 차례차례 실행하고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 상기 식 (1)에서 g=G일 때, 행 처리부(5)는 (N-Ng)열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (22)에 따라 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 마찬가지로 (N-Ng)열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (22)에 따름으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이 때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 9에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행함과 아울러, 그 행 처리에서 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘에 따라 처리를 행하므로, 확률 전파가 효율적으로 행해지게 되어, 복호 연산의 수렴이 빨라져 반복 회수를 삭감할 수 있다.
또, Sum-Product 알고리즘의 근사에 기초하여 수신 정보로부터 보정을 행하 는 제산식 보정형의 Min-Sum 알고리즘을 기본 알고리즘으로 함으로써, 종래의 Shuffled BP 알고리즘보다도 계산 비용을 삭감하면서, 높은 복호 성능을 얻을 수 있다.
(실시예 10)
이 실시예 10은 검사 행렬의 모든 행에 대해 일정한 인자 α(Normalization Factor)는 갖지 않고, 행마다 결정한 인자 αm(Normalization Factor)을 갖는 복호 알고리즘에 따라 복호를 행하는 것이다.
또한, 본 실시예 10은 통상의 Normalized BP 알고리즘, 상기 실시예 5에서 나타낸 제산식 보정형 Min-Sum 알고리즘, 또, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등, 인자 α(Normalization Factor)를 갖는 모든 복호 알고리즘에서 적용 가능하다.
여기서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Normalized BP 알고리즘에서 행마다의 인자 αm(Normalization Factor)을 적용한 LDPC 부호 복호 장치를 예로 들어 설명한다.
본 실시예 10에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 행마다의 인자 αm(Normalization Factor)을 사용한 Normalized BP 알고리즘을 실행하기 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면, 본 실시예 10에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (23)의 연산을 실행한다. 또한, 하기 식 (23) 중의 각 파라미터는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다. 인자 αm은 m행째의 Normalization Factor를 나타내고 있다.
도 17은 변조 방식을 4PAM Gray Mapping으로 한 경우의 수신값의 분포를 도시하는 그래프이다. 도면에서, 검게 칠하여 나타내는 각 변조 신호 점에 대응하는 2비트의 디지털 부호 00, 01, 11, 10 중, 비트값 0, 0, 1, 1을 나타내는 MSB(Most Significant Bit)의 0과 1의 경계는, 0(도면 중, 실선 부분)뿐이지만, 비트 값 0, 1, 1, 0을 나타내는 LSB(Least Significant Bit)의 0과 1의 경계는 -2와 2(도면 중, 파선 부분)의 두 부분으로, LSB쪽이 비트의 반전이 일어나기 쉬운 것을 알 수 있다.
이와 같이, MSB와 LSB에서는, 비트 오류율에 차이가 있다. 또, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 비로 표시되는 αm은 각 행에서 1을 갖는 비트의 오류율에 의존한다. 이에 따라, 변조 방식 4PAM의 경우, 인자 αm은 각 행에서 1을 갖는 비트의 MSB인 개수, LSB인 개수에 의존하게 된다.
그래서, 본 실시예에서는, αm에 대해서 각 행에 대응한 값을 미리 준비한다. 또한, 여기서는 4PAM을 예로 들었지만, 이외에 수신 신호의 각 비트에서의 비트 오류율에 차이가 생기는 다치 변조 방식에서도 동일하다.
또, 이레귤러 LDPC 부호의 경우, 행 가중치가 일정하지 않다. 이 때문에, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 비인 αm은 행 가중치에 의존한다. 이에 따라, 본 실시예에서는, αm에 대해 각 행의 행 가중치에 대응한 값을 준비한다. 또한, αm은 시뮬레이션 혹은 밀도발전법을 사용하여 사전에 산출해 둔다.
본 실시예 10에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대해 행마다의 인자 αm(Normalization Factor)을 사용한 Normalized BP 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (23)을 사용한 행 처리를 행하고, 열 처리부(6)는, 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 18은 실시예 10에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9), 제산부(10a) 및 제산 정수 선택부(15)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
제산부(10a)에서는, 상기한 비교부(9)에 의한 연산 결과를, 제산 정수 선택부(15)로부터의 정수 αm(Normalization Factor)으로 제산한다. 즉, 제산부(10a)는 입력값 c에 대하여, c/αm을 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 비교부(9)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 구하고, 제산부(10a)는 비교부(9)가 산출한 값을 정수 αm으로 제산한 후, 열 처리부(6)로 넘긴다.
제산 정수 선택부(15)에서는, 각 행의 αm값을 미리 기억하고 있고, 제어부(7)로부터 통신로 및 부호 구성의 정보를 받아, 이 정보 중의 처리 대상의 행 번호 m을 입력하여 각 행의 αm을 결정하고, 제산부(10a)로 넘긴다.
이와 같이, 본 실시예 10에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 비교부(9)에서 구하고, 제산부(10a)가 비교부(9)에 의해 얻어진 값을 제산 정수 선택부(15)가 선택한 αm으로 제산한 후, 열 처리부(6)로 넘기는 처리를 행한다.
다음에 동작에 대해 설명한다.
본 실시예 10에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화 함과 아울러, 제산 정수 선택부(15)에 대해 변조 방식이나 행 가중치에 관한 정보를 넘긴다. 이 정보에 기초하여, 제산 정수 선택부(15)는 각 행의 α를 결정하여 제산부(10a)로 넘긴다.
다음에, 단계 ST4a에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대해 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (23)을 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대해 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 충족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 10에 의하면, Normalized BP 알고리즘에서의 Normalization Factor를 변조 방식 및 부호 구성에 따라 행마다 설정하므로, 다치 변조된 경우나 부호가 이레귤러 LDPC 부호인 경우 등에 종래의 Normalized BP 알고리즘에 의해 복호를 행하는 것보다도, 전파되는 확률 정보가 Sum-Product 알고리즘에 근접하여, 복호 성능을 향상시킬 수 있다.
또한, 상기 실시예 10에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대해 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하 는, Normalized BP 알고리즘에서 행마다의 인자 αm(Normalization Factor)을 적용한 LDPC 부호 복호 장치를 예로 들었지만, 이 알고리즘 이외에, 상기 실시예 5에서 나타낸 제산식 보정형의 Min-Sum 알고리즘, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등에 있어서, 행마다의 인자 αm을 적용한 LDPC 부호 복호 장치를 구성해도 된다.
(실시예 11)
이 실시예 11은 검사 행렬의 모든 행에 대하여 일정한 인자 β(Offset Factor)는 갖지 않고, 행마다 결정한 인자 βm(Offset Factor)을 갖는 복호 알고리즘에 따라 복호를 행하는 것이다.
또한, 본 실시예 11은, 통상의 Offset BP 알고리즘, 상기 실시예 6에서 설명한 감산식 보정형의 Min-Sum 알고리즘, 또, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등, 인자 β(Offset Factor)를 갖는 모든 복호 알고리즘에서 적용 가능하다.
여기서는, 종래의 Min-Sum 알고리즘과 마찬가지로, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Offset BP 알고리즘에서 행마다의 인자 βm(Offset Factor)을 적용한 LDPC 부호 복호 장치를 예로 들어서 설명한다.
본 실시예 11에 의한 LDPC 부호 복호 장치는, 도 9에 도시한 상기 실시예 4에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 행마다의 인자 βm(Offset Factor)을 사용한 Offset BP 알고리즘을 실행하기 때문에 행 처리부(5)의 구성 및 그 처리 내용이 상이하다. 구체적으로 설명하면 본 실시예 11에서의 행 처리부(5)에서는, 상기 식 (11)에 대하여, 상기 실시예 4에서의 행 처리에서 사용한 상기 식 (12) 대신에, 하기 식 (24)의 연산을 실행한다. 또한, 하기 식 (24) 중의 각 파라미터는, 상기 실시예 4와 동일하고, 기호는 상기한 바와 같다. 인자 βm은 m행째의 Offset Factor을 나타내고 있다.
예를 들면, 변조 방식을 4PAM Gray Mapping으로 한 경우의 수신값은, 상기한 바와 같이 도 17과 같이 분포되고, MSB와 LSB에서 비트 오류율에 차이가 있다. 또, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 차로 표시되는 βm은 각 행에서 1을 갖는 비트의 오류율에 의존한다. 이에 따라, 변조 방식 4PAM의 경우, βm은 각 행에서 1을 갖는 비트의 MSB인 개수, LSB인 개수에 의존하게 된다.
그래서, 본 실시예에서는, βm에 대해 각 행에 대응하여 값을 미리 준비한 다. 또한, 여기서는 4PAM을 예로서 들었지만, 이외에 비트 오류율에 차이가 생기는 다치 변조 방식에서도 동일하다.
또, 이레귤러 LDPC 부호의 경우, 행 가중치가 일정하지 않다. 이 때문에, Sum-Product 알고리즘과 Min-Sum 알고리즘의 행 처리 결과의 평균값의 차로 표시되는 βm은 행 가중치에 의존한다. 이에 따라, 본 실시예에서는, βm에 대해 각 행의 행 가중치에 대응한 값을 준비한다. 또한, βm은 시뮬레이션 혹은 밀도발전법을 사용하여 사전에 산출해 둔다.
본 실시예 11에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 기본적인 구성은 도 9에 도시하는 상기 실시예 4와 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호에 대하여 행마다의 인자 βm(Offset Factor)을 사용한 Offset BP 알고리즘에 따른 행 처리와 열 처리에 의한 복호가 실행된다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (24)를 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (16)의 관계에 대하여, 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
도 19는 실시예 11에 의한 LDPC 부호 복호 장치의 행 처리부의 구성을 도시하는 블럭도이다. 본 실시예에 의한 행 처리부(5)는 복수의 비교부(9), 감산부(11a) 및 감산 정수 선택부(16)로 구성된다. 비교부(9)는, 도 2에서 도시한 것과 마찬가지로, 입력된 두 값의 절대값의 대소 비교를 행하고, 작은 쪽과 두 값의 부호 (±)와의 곱을 산출한다. 행 처리부(5)에서, 복수의 비교부(9)가 복수단에 접속되어 있다. 또, 도면에 도시하는 바와 같이, 하단의 비교부(9)는 입력된 두 값 중 하나로서 상단의 비교부(9)의 산출 결과를 입력한다. 각 비교부(9)에 의한 처리는 하기와 같다.
비교부(9)가 두 값 a, b의 절대값을 입력한 경우, |a|<|b| 이면, sign(a)×sign(b)×|a|를 출력한다. 또, |a|<|b| 이외이면, sign(a)×sign(b)×|b|를 출력한다. 또한, sign(a)는 a의 부호 (±)를 나타내고 있다.
감산부(11a)에서는, 상기한 비교부(9)에 의한 연산 결과를 감산 정수 선택부(16)로부터의 정수 βm(Offset Factor)으로 감산한다. 즉, 감산부(11a)는 입력값 c에 대하여 c-βm을 계산하여 출력한다. 이와 같이, 행 처리부(5)에서, 비교부(9)는 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 구하고, 감산부(11a)는 비교부(9)가 산출한 값 을 정수 βm으로 감산한 후, 열 처리부(6)로 넘긴다.
감산 정수 선택부(16)에서는, 각 행의 βm값을 미리 기억하고 있고, 제어부(7)로부터 통신로 및 부호 구성의 정보를 받고, 이 정보 중 처리 대상의 행 번호 m을 입력하여 각 행의 βm을 결정하고, 감산부(11a)로 넘긴다.
이와 같이, 본 실시예 11에 의한 행 처리부(5)에서는, 중간 결과 보유부(4)로부터 행 처리를 행하는 해당 비트의 LLR을 입력하고, 각각의 대소 비교와 부호 (±)의 곱을 비교부(9)에서 구하고, 감산부(11a)가 비교부(9)에 의해 얻어진 값을 감산 정수 선택부(16)가 선택한 βm으로 감산한 후, 열 처리부(6)로 넘기는 처리를 행한다.
다음에 동작에 대해 설명한다.
본 실시예 11에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 4에서의 도 11의 플로우차트와 동일하다. 따라서, 도 11에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는, 복호의 반복 회수 i를 i=1로 초기화함과 아울러, 감산 정수 선택부(16)에 대하여 변조 방식이나 행 가중치에 관한 정보를 넘긴다. 이 정보에 기초하여, 감산 정수 선택부(16)는 각 행의 βm을 결정하여 감산부(11a)로 넘긴다.
다음에 단계 ST4a에서, 반복 회수 i=1부터 최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 행 처리부(5)는 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm,n])에 대하여 반복 i회째의 복호 연산에서의 행 처리를 행한다. 구체적으로는, 상기 식 (11)의 관계에 따라 1열째부터 N열째까지의 열에 1을 갖는 행의 행 처리를 상기 식 (24)를 사용하여 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 1에서, 행 처리부(5)에 의한 행 처리가 종료되면, 열 처리부(6)는 복호하고 싶은 LDPC 부호의 검사 행렬 H에 대하여 반복 i회째의 복호 연산에서의 열 처리를 행한다. 구체적으로는, 상기 식 (16)의 관계에 따라 1열째부터 N열째까지의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1의 처리를 반복하도록, 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 11에 의하면, Offset BP 알고리즘에서의 Offset Factor를 변조 방식 및 부호 구성에 따라 행마다 설정하므로, 다치 변조된 경우나 부호가 이레귤러 LDPC 부호인 경우 등에 종래의 Offset BP 알고리즘에 의해 복호를 행하는 것보다도, 전파되는 확률 정보가 Sum-Product 알고리즘에 근접하여, 복호 성능을 향상시킬 수 있다.
또한, 상기 실시예 11에서는, 반복 복호의 임의의 1회에서 부호화 신호에 대하여 모든 행 처리를 끝낸 뒤 당해 부호화 신호의 모든 비트에 대한 열 처리를 행하는, Offset BP 알고리즘에서 행마다의 인자 βm(Offset Factor)을 적용한 LDPC 부호 복호 장치를 예로 들었지만, 이 알고리즘 이외에, 상기 실시예 6에서 나타낸 감산식 보정형의 Min-Sum 알고리즘, 이들 알고리즘에서 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘 등에 있어서, 행마다의 인자 βm을 적용한 LDPC 부호 복호 장치를 구성해도 된다.
(실시예 12)
도 20은 본 발명의 실시예 12에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 12에 의한 LDPC 부호 복호 장치(1)는, 도 1에 도시하는 상기 실시예 1의 구성과 마찬가지로, 수신 LLR 계산부(2) 및 복호 코어부(3)로 구성된다. 여기서, 상기 실시예 1과는 연산열 제어부(17)를 구비하는 점에서 상이하다. 연산열 제어부(17)는 그룹 분할에 기초하여 행 처리부(5) 및 열 처리부(6)에 의한 연산 대상의 열을 결정하고, 그룹 분할에 기초하는 복호 처리를 제어한다.
실시예 12에 의한 LDPC 부호 복호 장치에서는, 종래의 Group Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 것이지만, 부호 구성에 기초하여 복수 비트마다의 조합인 그룹으로 분할한다.
여기서, 본 실시예에서의 부호 구성에 기초하는 그룹 분할에 대해 설명한다.
우선, 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 행하는 복호 알고리즘에서는, 그렇지 않은 알고리즘보다도 적은 반복 회수로 복호를 끝내는 것은, 산출한 확률 정보를 바로 갱신하여 동일한 반복 회수에 있어서의 다음 복호 연산에서 이용함으로써 확률 정보의 전파가 효율적으로 행해지기 때문이다.
행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 복수 비트씩 행하는 Group Shuffled BP 알고리즘의 경우도 동일하지만, 종래의 Group Shuffled BP 알고리즘에서는, 동일한 그룹의 열끼리가 서로 동일한 행에 1을 갖고 있으면, 서로 갱신되지 않은 확률 정보를 사용하여 처리를 행하게 된다.
그래서, 본 실시예에서는, Group Shuffled BP 알고리즘과 같이 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 복수 비트씩 행하는 복호 알고리즘에 있어서, 복수 비트의 조합을 만드는 그룹 분할 시에 동일한 그룹에 포함되는 열끼리가 서로 동일한 행에 1을 갖지 않도록 그룹 분할한다. 이에 따라, 동일한 그룹의 열끼리가 서로 동일한 행에 1을 갖고 있는 경우와 비교하여 확률 정보의 전파를 효율적으로 행할 수 있게 되어, 반복 회수를 삭감할 수 있다.
도 21은, LDPC 부호화 행렬의 구성예를 도시하는 도면으로, 도면 중에서 행렬의 우측 상부의 삼각형으로 둘러싼 부분이 0이 되는 LDPC 부호화 행렬을 나타내고 있다. 또, 도 22는 실시예 12의 LDPC 부호 복호 장치에 의한 LDPC 부호 행렬의 그룹 분할 예를 도시하는 도면이다. 도 21에 도시하는 바와 같은 LDPC 행렬에서는, 부호화 행렬을 복호 행렬과 공통으로 사용할 수 있어, 실용상의 이점은 많다.
이러한 LDPC 부호로 부호화된 부호화 행렬을 그룹 분할하여, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 경우, 도 22에 도시하는 바와 같이, 패리티 비트 부분을 연속시키지 않는 그룹 분할을 행한다. 도 22의 예에서는, 패리티 비트 부분을 연속시키지 않는 그룹 분할로서 LDPC 행렬을 1열 걸러 그룹 분할하고 있다. 또한, 도면 중, 각 그룹에 붙인 부호 A, B, C, D, E, F는, 각각 제 1 번째부터 제 6 번째의 그룹을 나타내는 그룹 1, 2, 3, 4, 5, 6을 나타내는 것으로 한다.
본 실시예 12에 의한 LDPC 부호 복호 장치에서는, 부호 구성에 기초하여, 도 22에 도시하는 바와 같이 LDPC 부호화 행렬을 그룹 분할하는 Group Shuffled BP 알고리즘을 실행한다. 이하에 간단하게 설명한다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR(Log Likelihood Ratio)의 초기값 zm ,n (0)을 Fn(zm,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이고, Hm ,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 하기 식 (25)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은, 집합[1,N]의 부분집합이고, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은, 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에 있어서 1을 갖는 열 인덱스의 집합을 의미한다.
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이고, M(n)\m이 집합 M(n)으로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이고, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드로부터 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2 조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
단, 각 기호는 상기 식에 따른 것으로 한다. 또, GR(g)는 g번째의 그룹을 구성하는 열의 세트를 나타내는 것으로 한다. 도 22에 도시하는 예에서 GR(g)을 구체적으로 나타내면, 이하와 같이 된다.
그룹 1(GR(1))은 2k+1=1, 3, 5, 7, …, Ng-1이며, k는 0 이상 Ng 미만이다.
그룹 2(GR(2))는 2k+2=2, 4, 6, 8, …, Ng이며, k는 0 이상 Ng 미만이다.
그룹 3(GR(3))은 2k+1=Ng+1, Ng+3, Ng+5, …, 2Ng-1이며, k는 Ng 이상 2Ng 미만이다.
그룹 G(GR(G))는 2k+2=G·Ng-2Ng+2, …, G·Ng이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
본 실시예 12에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 1비트 걸러 그룹 분할한 Group Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (25)의 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대하여 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Group Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 그룹 분할하여 행 처리부(5) 및 열 처리부(6)에 의한 연산 대상의 열을 제어한다.
다음에 동작에 대하여 설명한다.
도 23은, 실시예 12에 의한 LDPC 부호 복호 장치의 동작을 도시하는 플로우차트이며, 이 도면에 따라 도 22에 도시하는 부호화 행렬을 사용한 복호 동작을 예로 들어서 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 1열마다의 그룹에 대하여 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리를 행하는 단계 1과, 복호 결과 판정 부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 도 22에 도시하는 바와 같이, 연산열 제어부(17)은 도면 중에서 부호 A를 붙인 그룹 1에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 1에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 1에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 도면 중에서 부호 B를 붙인 그룹 2에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 2에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 연산열 제어부(17)는 그룹 g에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 g에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 g에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
도 22의 예에서는, 연산열 제어부(17)가 도면 중에서 부호 F를 붙인 그룹 6에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 그룹 6에 포함되는 열의 열 처리를 행하고 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (25)의 관계에 대하여 상기 식 (2) 및 상기 식 (3)을 연산함으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
도 24는 실시예 12에 의한 LDPC 부호 복호 장치에 의해 상기한 바와 같이 부호 구성에 기초해서 부호화 행렬을 그룹 분할하여 복호한 경우와, 종래의 Group Shuffled BP 알고리즘에서 그룹 분할하여 복호한 경우에 있어서의, 비트 오류율과 이 비트 오류율에서의 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수의 평균값과의 관계를 그린 그래프이다. 도면에서, 그려진 점들 사이를 파선으로 연결한 것이 종래의 Group Shuffled BP 알고리즘에 의한 것이고, 실선으로 그려진 점들 사이를 연결한 것이 본 실시예 12에 의한 것이다.
또, 도 24에서, LDPC 부호는, 우측 상부의 0을 둘러싼 삼각형 구조의 이레귤러 LDPC 부호, 부호 길이 64800, 부호화율 1/2, 최대 열 가중치 7, 최대 행 가중치 8, 최대 반복 회수 Imax가 20회이다. 또, 통신로는 AWGN(Additive White Gaussian Noise; 가법성 백색 가우스 잡음) 통신로를 상정하고 있고, QPSK(Quadrature Phase Shift Keying)로 복조하고 있다.
여기서, 실시예 12에서는, 상기한 바와 같이, 부호 구성에 기초하여, 1 열마다 LDPC 행렬을 그룹 분할한 Group Shuffled BP 알고리즘에 의해 복호 처리를 실행 하고 있다. 또, 종래의 Group Shuffled BP 알고리즘에서는, 종래와 마찬가지로, LDPC 행렬에서의 선두의 제 1 비트로부터 소정의 비트마다의 그룹으로 분할하고 있다.
도 24에 도시하는 바와 같이, 본 실시예 12에 의한 복호 처리에 의해, 패리티 검사가 OK로 될 때까지 필요한 복호 반복 회수가 종래의 Group Shuffled BP 알고리즘과 비교하여 현격하게 삭감되어 있는 것을 알 수 있다. 또한, 종래의 Group Shuffled BP 알고리즘과의 비교예를 나타냈지만, 본 실시예 12는, 종래의 Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 복호 알고리즘에 대해서도 마찬가지로 반복 회수를 삭감할 수 있다.
이상과 같이, 이 실시예 12에 의하면, 이웃한 열에 1을 갖는 LDPC 부호에 대하여, Group Shuffled BP 알고리즘과 같이 그룹 분할하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서 LDPC 부호의 복호를 행하는 경우에 있어서, LDPC 부호의 구성에 기초하여 1열마다 LDPC 부호화 행렬을 그룹 분할하고, 그룹마다의 열에 대해 1을 갖는 행을 행 처리함과 아울러, 당해 그룹에 포함되는 열의 열 처리를 행하여 복호 처리하므로, 이웃한 열을 동일한 그룹으로 분할하지 않으므로, 확률 정보의 전파가 효율적으로 행해진다. 이에 따라, 도 24에 도시하는 바와 같이, 이 LDPC 부호화 행렬의 선두 비트로부터 차례로 그룹으로 나누는 종래의 Group Shuffled BP 알고리즘에 비해 반복 회수를 삭감할 수 있다.
(실시예 13)
상기 실시예 12에서는, LDPC 부호의 구성에 기초하여 1열마다 LDPC 부호화 행렬을 그룹 분할하는 LDPC 부호 복호 장치를 나타냈지만, 본 실시예 13에 의한 LDPC 부호 복호 장치는 수신 신호의 변조 방식에 기초하여 복호 처리의 대상을 그룹 분할하는 것이다.
본 실시예 13에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)에 의해 변조 방식에 기초하여 수신 신호를 그룹으로 분할하고, 행 처리부(5) 및 열 처리부(6)에 의해 수신 신호의 그룹마다 복호 처리를 실행한다.
또, 변조 방식의 가정에 의해 본 실시예 13에서의 그룹 분할도 상기 실시예 12와 마찬가지로 되어 있다. 즉, 본 실시예 13에서는, Group Shuffled BP 알고리즘과 같이 그룹 분할하여 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 행하는 복호를 실행함에 있서, 수신 신호의 변조 방식에 기초하여 상기 실시예 12에서 나타낸 도 22와 같이 부호화 행렬을 1열마다의 그룹 1~6으로 분할한다.
여기서, 상기한 도 17에 도시하는 4PAM Gray Mapping의 수신값의 분포로부터 알 수 있는 바와 같이, 변조 방식이 다치 변조인 경우, 수신 신호의 비트마다의 오류율이 상이하다. 도 17의 경우에서는, 수신 신호의 MSB는 비트 오류율이 낮고, LSB는 비트 오류율이 높다. 이 경우, MSB의 복호는 LSB의 복호에 비해 적은 반복 회수로 복호를 끝낼 수 있다.
그래서, 본 실시예 13은, 도 17에 도시하는 변조 방식 4PAM의 경우를 예로 하여, 수신 신호를 MSB만의 그룹과 LSB만의 그룹으로 분할하고, MSB만의 그룹을 먼저 연산하고, LSB만의 그룹을 나중에 연산하도록 구성한다.
또한, Group Shuffled BP 알고리즘과 같이 그룹 분할을 하는 경우를 예로 들었지만, 본 실시예와 같은 수신 신호의 변조 방식에 기초하여 처리 대상을 그룹 분할하는 처리는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 미리 정해진 복수 비트씩 행하는 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다.
또, 도 17에 도시하는 바와 같은 4PAM을 변조 방식의 예로서 들었지만, 이외에 수신 신호의 비트 오류율에 차이가 생기는 다치 변조 방식이면, 마찬가지로 비트 오류율의 차이에 따라 그룹 분할하도록 해도 된다.
본 실시예 13에 관계되는 연산 알고리즘은 상기 실시예 12와 동일하다. 이하에 구체적으로 설명한다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR의 초기값 zm ,n (0)을 Fn(zm ,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는 2원 m×n 행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이며, Hm ,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 상기 식 (25)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은 집합 [1,N]의 부분집합이며, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미한다.
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이며, M(n)\m이 집합 M(n)로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이며, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드로부터 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후 값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2 에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다.
단, 각 기호는, 상기 식에 따른 것으로 한다. 또, GR(g)은 g번째의 그룹을 구성하는 열의 세트를 나타내는 것으로 한다. GR(g)를 구체적으로 나타내면, 이하와 같이 된다.
그룹 1(GR(1))은 2k+1=1, 3, 5, 7, …, Ng-1이며, k는 0 이상 Ng 미만이다.
그룹 2(GR(2))는 2k+1=Ng+1, Ng+3, Ng+5, …, 2Ng-1이며, k는 Ng 이상 2Ng 미만이다.
그룹(G/2)(GR(G/2))는 2k-1=G·Ng-2Ng-1, …, G·Ng-1이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
그룹(G/2+1)(GR(G/2+1))은 2k+2=2, 4, 6, 8, …, Ng이며, k는 0 이상 Ng 미만이다.
그룹 G(GR(G))는 2k+2=G·Ng-2Ng+2, …, G·Ng이며, k는 (G/2-1)·Ng 이상 G·Ng 미만이다.
도 22의 예에서는, 부호 A를 붙인 그룹 1, 부호 C를 붙인 그룹 3, 부호 E를 붙인 그룹 5가 MSB만의 그룹에 대응하고, 부호 B를 붙인 그룹 2, 부호 D를 붙인 그룹 4, 부호 F를 붙인 그룹 6이 LSB만의 그룹에 대응한다.
다음에 동작에 대해 설명한다.
본 실시예 13에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 상기한 1열마다의 그룹에 대해, 행 처리부(5) 및 열 처리부(6)에 의해 MSB만의 그룹에 계속하여 LSB만의 그룹을 처리하는 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 도 22에서 부호 A를 붙인 MSB만의 그룹 1에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 1에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 1에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 연산열 제어부(17)는, 도 22 중에서 부호 C를 붙인 MSB만의 그룹 3에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 3에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 3에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 MSB만의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
도 22의 예에서는, 부호 E를 붙인 MSB만의 그룹 5에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 5에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 그룹 5에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이 다음, 연산열 제어부(17)는 도 22에서 부호 B를 붙인 LSB만의 그룹 2에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 2에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 그룹 2에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 도 22 중에서 부호 D를 붙인 LSB만의 그룹 4에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 4에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)은 그룹 4에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후의 LSB만의 그룹에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
도 22의 예에서는, 그룹 G에 상당하는 부호 F를 붙인 LSB만의 그룹 6에 포함되는 모든 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 그룹 6에 포함되는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 그룹 6에 포함되는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (25)의 관계에 대해 상기 식 (2) 및 하기 식 (3)을 연산함으로써, g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 13에 의하면, 4PAM으로 변조되어 송수신된 수신 신호에 Group Shuffled BP 알고리즘에 의해 복호를 행할 때, MSB만과 LSB만의 그룹으로 분할하고, 비트 오류율이 낮은 MSB만의 그룹을 먼저 연산하므로, 비트 오류율이 높은 LSB에서는 신뢰도가 높은 확률 정보를 MSB로부터 받아서 복호 연산을 행하게 되어, LSB의 복호 연산은 종래보다도 효율적으로 행해져 적은 반복 회수로의 복호가 가능하게 된다.
(실시예 14)
이 실시예 14는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 부호 구성에 기초하 여 복호 순서를 제어하는 것이다.
본 실시예 14에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)가 부호 구성에 기초해서 복호의 순서를 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 처리를 실행시키는 점에서 상이하다.
Shuffled BP 알고리즘을 예로 하여 부호 구성에 기초하는 순서 제어의 개요를 설명한다. Shuffled BP 알고리즘이 Sum-Product 알고리즘보다도 적은 반복 회수로 복호를 종료하는 것은, 복호 과정에서 산출하여 넘기고 있는 확률 정보의 전파가 Sum-Product 알고리즘보다도 효율적으로 행해지고 있기 때문이다. 그래서, 부호가 이레귤러 LDPC 부호이면, 열 가중치가 큰 순으로 순서를 정하여 Shuffled BP 알고리즘에 의해 복호를 행한다.
예를 들면, O(g)을 g번째로 순서가 정해진 열 번호로 하면, O(1)은 최대 열 가중치를 갖는 열, O(2)는 다음에 열 가중치가 큰 열, O(3)은 그 다음에 열 가중치가 큰 열로 순서를 정하여 열을 선택해 가고, Shuffled BP 알고리즘에 의한 복호를 행한다.
순서를 정한 Shuffled BP 알고리즘은 이하와 같다.
우선, 초기화 단계로서, 반복 회수 i를 i=1로 설정하고, 최대 반복 회수를 Imax로 설정하고, 대수 우도비 LLR(Log Likelihood Ratio)의 초기값 zm ,n (0)을 Fn(zm,n (0):=Fn)으로 설정한다. 또한, 복호하고 싶은 LDPC 부호의 검사 행렬 H는, 2원 m×n행렬 H=[Hm ,n](n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수)이고, Hm,n을 H의 m행 n열째 요소로 한다.
다음에, 단계 1로서, 하기 식 (26)의 조건에 대하여, 상기 식 (2) 및 상기 식 (3)을 연산하는 행 처리를 실행한다. 여기서, N(m), M(n)은 집합 [1,N]의 부분집합이며, N(m):={n:Hm ,n=1}, M(n):={m:Hm ,n=1}로 정의한다. 즉, N(m)은 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미하고, M(n)은 LDPC 검사 행렬 H의 m행에서 1을 갖는 열 인덱스의 집합을 의미한다.
또, 집합 A로부터 원소 a를 제거하여 얻어지는 집합을 A\a로 표기한다. 즉, N(m)\n은 집합 N(m)으로부터 n열째를 제거한 열 인덱스의 집합이고, M(n)\m이 집합 M(n)으로부터 m행째를 제거한 행 인덱스의 집합을 나타내고 있다. zm ,n' (i)는 반복 i회째에서 갱신한 LLR이고, εm,n (i)는 체크 노드로부터 비트 노드로 보내는 반복 i회째의 LLR이다.
또한, 단계 1에서, 상기 식 (25)의 조건에 대하여, 상기 식 (4) 및 상기 식 (5)를 연산하는 열 처리를 실행한다. 여기서, zm ,n (i)는 비트 노드에서 체크 노드로 보내는 반복 i회째의 LLR이다. 또한, zn (i)는 반복 i회째의 사후값이다.
다음에, 단계 2로서, 사후값 zn (i)를 경판정하고, 상기 식 (6)으로 표시되는 복호 계열을 생성한다. 이 다음, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행하고, 이들 2조건 중 어느 것도 충족시키지 않으면, 반복 회수 i를 가산하여 단계 2의 처리로 되돌아온다. 단계 3에서는, 복호 결과로서, 단계 2에서 얻은 상기 식 (6)에 따른 복호 계열을 출력한다. 단, 각 기호는 상기 식에 따른 것으로 한다. 또, O(g)는 g번째로 순서가 정해진 열을 나타내는 것으로 한다.
본 실시예 14에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 부호 구성에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대해 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대해 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 열 가중치가 큰 순으로 순서 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 연산시킨다.
다음에 동작에 대해 설명한다.
본 실시예 14에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1로부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 지정된 열 가중치 가 큰 순으로 열에 대하여, 행 처리부(5) 및 열 처리부(6)에 의해 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 열 가중치가 가장 큰 제 1 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 1 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 1 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는, 열 가중치가 다음에 큰 제 2 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 2 번째로 연산을 행하는 열에서 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 2 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후도 열 가중치가 큰 순으로 열의 번호를 행 처리부(5) 및 열 처리부(6)로 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)로 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
최후에, 연산열 제어부(17)는 제 g 번째로 연산을 행하는 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 g 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 한편, 열 처리부(6)는 제 g 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에서, 행 처리부(5)가 상기 식 (26)의 관계에 대해 상기 식 (2) 및 상기 식 (3)을 연산함으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 14에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 부호 구성에 기초하여 복호 순서를 제어하므로, 먼저 연산한 확률 정보가 빨리 전파되게 되어 반복 회수를 삭감할 수 있다. 또, 부호 구성에 기초하여 순서 제어하고 있기 때문에, 부호 정보를 수신할 때마다 순서를 정할 필요는 없다.
또한, 상기 실시예 14에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타냈지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘이면, 다른 알고리즘이어도 동일하다.
(실시예 15)
이 실시예 15는 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하는 것이다.
본 실시예 15에 의한 LDPC 부호 복호 장치는, 도 20에 도시한 상기 실시예 12에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 연산열 제어부(17)가 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 처리를 실행시키는 점에서 상이하다.
Shuffled BP 알고리즘을 예로 하여 변조 방식에 기초하는 순서 제어의 개요를 설명한다. 우선, 변조 방식이 다치 변조인 경우, 비트마다의 오류율이 상이하다. 예를 들면, 상기한 도 17에 도시하는 변조 방식 4PAM Gray Mapping에서는, 부호의 선두 비트로부터 차례로 변조 신호점을 할당하면, 비트마다의 오류율에서 MSB는 오류율이 낮고, LSB는 오류율이 높게 된다.
이러한 수신 신호를 복호하는 경우, MSB의 복호 과정에서 산출되는 확률 정보는 신뢰도가 높은 특징이 있다. 그래서, Shuffled BP 알고리즘에 의해 복호를 행하는 경우, MSB의 비트로부터 차례로 복호를 행함으로써 LSB에는 항상 신뢰도가 높은 확률 정보가 전파되게 된다.
예를 들면, O(g)를 g번째로 순서가 정해진 열 번호라고 하면, 먼저 MSB에 대응하는 모든 열을 선택하고, 계속해서 LSB에 대응하는 열을 선택하는, O(1)=1, O(2)=3, O(3)=5, O(4)=7, …, 2n+1, …, N-1, 2, 4, 6, …, 2n, …, N과 같은 차례로 열을 선택해 가고, Shuffled BP 알고리즘에 의한 복호를 행한다.
본 실시예 15에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 연산열 제어부(17)를 갖는 것 이외에, 기본적인 구성은 도 1에 도시하는 상기 실시예 1과 동일하다. 즉, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 수신 신호의 변조 방식에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 실행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7), 복호 결과 판정부(8) 및 연산열 제어부(17)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대해 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대해 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다. 연산열 제어부(17)에서는, 상기한 바와 같이 LDPC 부호화 행렬을 수신 신호의 변조 방식에 기초하여 비트 오류가 낮은 비트에 대응하는 모든 열을 선택하고 계속해서 비트 오류가 높은 비트에 대응하는 열을 선택하도록 순서 제어하여 행 처리부(5) 및 열 처리부(6)에 복호 연산시킨다.
다음에 동작에 대해 설명한다.
본 실시예 15에 의한 LDPC 부호 복호 장치의 기본적인 동작의 흐름은 상기 실시예 12에서의 도 23의 플로우차트와 동일하다. 따라서, 도 23에 따라 동작을 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력(단계 ST1)하고, 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수 신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에 단계 ST4b에서, 반복 회수 i=1부터 최종 복호회(최대 반복 회수 Imax)까지, 연산열 제어부(17)에 의해 수신 신호의 변조 방식에 기초하여 선택된 열에 대하여, 행 처리부(5) 및 열 처리부(6)에 의해 반복 복호를 행하는 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대해, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 MSB에 대응하는 선두의 열을 제 1 번째로 연산을 행하는 열로 하고 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 1 번째로 연산을 행하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 1 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 다음 MSB에 대응하는 열을 제 2 번째로 연산을 행하는 열로 하고 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 연산열 제어부(17)에 의해 지정된 제 2 번째로 연산을 행하는 열에서 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 제 2 번째로 연산을 행하는 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (25)에서의 g=3 이후도, MSB에 대응하는 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
MSB에 대응하는 열의 연산이 완료되면, 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 LSB에 대응하는 선두의 열을 MSB에 대응하는 열의 다음에 제 1 번째로 연산을 행하는 열로 하여 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 1 번째로 연산을 행하는 LSB에 대응하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 당해 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 연산열 제어부(17)는 변조 방식에 기초하여 특정한 수신 신호의 LSB에 대응하는 다음 열을 제 2 번째로 연산을 행하는 열로 하여 그 열의 번호를 행 처리부(5) 및 열 처리부(6)로 넘긴다. 이에 따라, 행 처리부(5)는 제 2 번째로 연산을 행하는 LSB에 대응하는 열에 1을 갖는 행의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 당해 열의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 연산열 제어부(17)는 상기 식 (26)에서의 g=3 이후에서도, LSB에 대응하는 열의 번호를 행 처리부(5) 및 열 처리부(6)에 차례차례 넘기고, 그때마다, 행 처리부(5)에 의한 처리 결과가 열 처리부(6)에 넘겨지고, 열 처리부(6)의 처리 결과가 중간 결과 보유부(4)에 보유된다.
상기한 처리에서, 행 처리부(5)가 상기 식 (26)의 관계에 대하여 상기 식 (2) 및 상기 식 (3)을 연산함으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
이상과 같이, 이 실시예 15에 의하면, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행할 때, 수신 신호의 변조 방식에 기초하여 복호 순서를 제어하므로, 예를 들면 4PAM으로 변조되어 송수신 된 수신 신호를 Shuffled BP 알고리즘에 의해 복호하는 경우, MSB로부터 순서를 정하여 먼저 MSB의 연산을 행함으로써 LSB에는 신뢰도가 높은 확률 정보가 전파되고, LSB의 복호가 빠르게 진행되어, 반복 회수를 삭감할 수 있다.
또한, 상기 실시예 15에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타냈지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘이면, 다른 알고리즘이어도 동일하다.
또, 상기 실시예 15에서는, 변조 방식으로서 4PAM을 예로 들었지만, 비트 오류율에 차이가 생기는 다른 다치 변조 방식에서도 마찬가지로 오류율이 낮고 신뢰도가 높은 비트부터 순서 결정을 행할 수 있다.
(실시예 16)
도 25는 본 발명의 실시예 16에 의한 통신 장치의 구성을 도시하는 블럭도이다. 도면에 도시하는 바와 같이, 본 실시예 16에 의한 통신 장치(18)는 수신 복호 장치(수신 복호부)(19)와 부호화 송신 장치(부호화 송신부)(20)로 구성된다. 수신 복호 장치(19)는, 도 1에 도시한 기본 구성 이외에, 부호화 송신 장치(20)에 의해 송신된 LDPC 부호화 신호를 수신하여 복조하는 복조부(21)를 구비하고 있다.
부호화 송신 장치(20)는 부호화부(22) 및 변조부(23)로 구성된다. 부호화부(22)에서는, 송신할 정보를 입력하고 LDPC 부호의 부호화를 행한다. 변조부(23)는 부호화부(22)로부터의 부호화 데이터를 입력하여 변조하고, 변조 신호로서 수신 복호 장치(19)에 송신한다.
실시예 16에 의한 통신 장치(18)에서는, 수신 복호 장치(19)와 부호화 송신 장치(20) 사이에서, LDPC 부호의 부호 구성에 적응시켜 검사 비트에 변조 신호점을 할당하여 부호화 신호의 송수신을 행하고, 부호 구성에 기초하는 순서 제어에 따라 Shuffled BP 알고리즘과 같은 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호를 실행한다.
도 26은, 실시예 16에 의한 통신 장치에서 사용하는 LDPC 부호의 구성을 도시하는 도면이다. 도 26에 도시하는 바와 같이, 8행 16열의 검사 행렬로서 우측 상부 삼각형의 요소가 0인 구조를 갖고, 또 검사 비트가 대각으로 동일한 값이 되는 대칭 구조를 포함하고 있다. 도 27은, 실시예 16에 의한 통신 장치에서 LDPC 부호를 4PAM으로 변조해서 송수신하는 경우에 있어서의 비트의 할당의 예를 도시하는 도면이다. 도 27에서는, M행 N열의 행렬 요소인 검사 비트에 대한 할당으로서, 1열째부터 (n1-1)열째까지 LSB 이외를 할당하고, n1열째부터 N열째까지 MSB 이외를 할당한다. 이들 도면을 사용하여 실시예 16의 개요를 설명한다.
상기한 바와 같이, Shuffled BP 알고리즘이 Sum-Product 알고리즘보다도 적은 반복 회수로 복호를 종료하는 것은, 복호 과정에서 산출하여 넘기고 있는 확률 정보의 전파가 Sum-Product 알고리즘보다도 효율적으로 행해지고 있기 때문이다.
그래서, 도 26에 도시하는 바와 같은 우측 상부의 삼각형으로 둘러싼 0의 부호화 행렬에서 검사 비트 부분이 대각 형상의 LDPC 부호가 4PAM으로 변조되어서 송수신되는 경우에는, 도 27에 도시하는 바와 같이 검사 비트에 오류율이 높은 LSB를 할당하여 송수신한다. 복호측에서는 Shuffled BP 알고리즘에 의해 복호를 행하고, 이때 검사 비트인 LSB의 복호를 먼저 행한다.
또, 도 27에 도시하는 바와 같이, 변조 신호점이 할당되어 있는 경우, 검사 비트인 LSB의 선두부터 차례로 복호를 행한다. LDPC 부호의 복호에서의 행 처리는, 상기 실시예 15에 나타내는 행 처리와 같이, 대상 열 이외의 열의 정보를 사용하여 행한다. 이 때문에, LSB의 선두인 n1열째를 연산할 때는 MSB가 갖는 신뢰성이 높은 정보만을 사용하여 연산할 수 있다.
또한, (n1+1)열째의 연산에는, MSB가 갖는 정보와 이미 1회 연산한 n1열째의 정보만을 사용하여 연산할 수 있기 때문에, 항상 신뢰성이 높은 정보만을 사용하여 연산하게 된다.
예를 들면, O(g)를 g번째로 순서가 정해진 열 번호라고 하면, 도 27의 예에서는, O(1)은 n1열째(LSB), O(2)는 (n1+1)열째(LSB), O(N-n1)은 N열째(LSB)와 같이 순서를 정하여 열을 선택하고, Shuffled BP 알고리즘에 의한 복호를 행한다. 여기 서, O(N-n1+1) 이후는, LSB 이외의 1열째부터 (n1-1)열째의 연산을 행하게 된다.
다음에 도 25를 사용하여, 부호 구성에 적응시킨 변조 신호점을 할당하여 송수신을 행하고, 상기한 처리 식을 구비하여 상기 순서 제어를 행한 LDPC 부호를 송수신하는, 실시예 16에 의한 통신 장치(18)의 구체예에 대해서 말한다. 도 25에 도시하는 바와 같이, 실시예 16에 의한 통신 장치(18)는 부호화 송신 장치(20)와 수신 복호 장치(21)로 구성되어 있다. 여기서, 부호화 송신 장치(20)는 LDPC 부호의 부호화를 행하는 부호화부(22)와 부호 구성에 적응시킨 변조 신호점의 할당을 행하는 변조부(23)로 구성된다.
실시예 16에 의한 통신 장치(18)의 수신 복호 장치(19)는 변조된 신호의 복조를 행하는 복조부(21), 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2) 및 복호 코어부(3)로 구성되고, 복호 코어부(3)에서는 부호 구성에 기초하여 순서 제어한 Shuffled BP 알고리즘에 의한 LDPC 부호의 복호를 행한다.
복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다. 중간 결과 보유부(4)는, 상기 실시예 1에서 설명한 바와 같이, 행 처리부(5) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5)에서는, 상기 식 (26)의 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 행 처리를 행하고, 열 처리부(6)는 상기 식 (25)의 조건에 대하여 상기 식 (4) 및 식 (5)를 사용한 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 상기한 Shuffled BP 알고리즘의 단계 1과 마찬가지로 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
다음에 동작에 대해 설명한다.
도 28은, 실시예 16에 의한 통신 장치의 동작을 도시하는 플로우차트이고, 이 도면에 따라 설명한다.
우선, 부호화 송신 장치(20)의 부호화부(22)는 송신할 정보를 입력하면(단계 ST1A), LDPC 부호의 검사 행렬 H를 기초로 구한 생성 행렬과 입력한 정보를 사용하여 LDPC 부호화를 실행하고, 부호화 데이터를 생성한다(단계 ST2A). 변조부(23)는 부호화부(22)로부터 부호화 데이터를 입력하면, 도 27에 도시하는 LDPC 부호의 비트 할당에 따라, 입력한 부호화 데이터를 4PAM 변조하여 수신 복호 장치(19)에 송신한다(단계 ST3A).
수신 복호 장치(19)의 복조부(21)는 부호화 송신 장치(20)로부터의 수신 신호를 복조하여(단계 ST1-1), 복조 결과의 수신 정보를 수신 LLR 계산부(2)에 출력한다. 수신 LLR 계산부(2)에서는 수신 정보를 입력하면(단계 ST1) 당해 수신 정보로부터 수신 LLR을 산출한다(단계 ST2). 다음에 초기화 단계(단계 ST3)에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST4c에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 행 처리부(5) 및 열 처리부(6)에 의한 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (26)에서 g=1일 때, 행 처리부(5)는 1행째와 2행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, n1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에 상기 식 (26)에서 g=2일 때, 행 처리부(5)는 2행째와 3행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, (n1+1)열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 상기 식 (26)에서 g=3 이후의 처리로서, 행 처리부(5)는 4행째 이후의 처리를 상기와 마찬가지로 차례차례 실행하고, 그때마다, 처리 결과를 열 처리부(6)로 넘긴다. 또, 열 처리부(6)는 (n1+2)열째 이후의 열 처리를 차례차례 실행하고, 그때마다, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이 다음, 상기 식 (26)에서 g=N-n1-1이 되면, 행 처리부(5)는 (M-1)행째와 M행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서 는 (N-1)열째의 열 처리를 행하고 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, 상기 식 (26)에서 g=(N-n1)일 때, 행 처리부(5)는 M행째의 행 처리를 행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, N열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
이것에 이어지는 상기 식 (26)의 g=(N-n1+1)~N의 처리에서는, 열 처리부(6)가 LSB 이외의 열의 연산을 행한다. 예를 들면, LSB 이외가 할당된 1열째가 연산 대상이면, 행 처리부(5)에서 1열째에 1을 갖는 행의 행 처리를 행하고, 그 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부에서는, 마찬가지로 1열째의 열 처리를 행하여 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
상기한 처리에 있어서, 행 처리부(5)가 상기 식 (2)에 따름으로써 g=1 이후의 처리에서는, 반복 i회째에서 이미 갱신된 LLR을 갖는 열에 관해서는, 수신 LLR이 아니라 갱신된 LLR을 사용하여 행 처리가 실행된다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사 의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3(단계 ST5)으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 16에 의하면, 검사 행렬의 우측 상부 삼각형으로 둘러싼 부분이 0인 구조를 갖고, 검사 비트가 대각 형상의 LDPC 부호로 다치 변조하여 부호화 데이터를 송수신할 때, 당해 부호 구성에 적응시켜 변조 신호점을 할당하여 송수신하고, 그 수신 신호를 Shuffled BP 알고리즘에 의해 복호를 행할 때, LSB로부터 순서를 정하여 먼저 LSB의 연산을 행하므로, LSB에는 신뢰도가 높은 확률 정보가 전파되고, LSB의 복호가 빠르게 진행되어 반복 회수를 삭감할 수 있다.
또한, 상기 실시예 16에서는, Shuffled BP 알고리즘의 순서 제어를 행하는 예를 나타내지만, 다른 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩, 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서도 동일하다. 또, 다치 변조 방식으로서 4PAM을 예로 하지만, 비트마다 오류율에 편차가 나타나는 다른 다치 변조 방식에서도 동일하다.
또, 상기 실시예 16에서는, 변조 방식으로서 4PAM을 예로서 들었지만, 이외에 비트 오류율에 차이가 생기는 다치 변조 방식에서도 마찬가지로 하여, 오류율이 높은 비트를 검사 비트에 할당한 경우에는, 오류율이 높은 LSB로부터 차례로 복호를 행하도록 해도 된다.
(실시예 17)
이 실시예 17은, Shuffled BP 알고리즘과 같이 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 알고리즘에 의해 복호를 행할 때, 이것들의 연산을 병렬화하여 실행하는 것이다.
도 29는 본 발명의 실시예 17에 의한 LDPC 부호 복호 장치의 구성을 도시하는 블럭도이다. 실시예 17에 의한 LDPC 부호 복호 장치(1)는 상기 실시예에서 나타낸 구성과 마찬가지로 수신 LLR 산출부(2)와 복호 코어부(3)로 구성된다. 단, 실시예 17에 의한 복호 코어부(3)는 복호 중간 결과 보유부(4), 제어부(7) 및 복호 결과 판정부(8) 이외에, 행 가중치의 크기에 따라 병렬로 행 처리를 실행하는 행 처리부(5-1~5-w) 및 이것들의 처리 결과에 따라 열 처리를 실행하는 열 처리부(6)를 갖는다.
즉, 통상, Shuffled BP 알고리즘에서는, 선택한 1열에서 1을 갖는 행의 행 처리를 행하고, 그 열의 열 처리를 행한다. 이에 반해, 실시예 17에 의한 LDPC 부호 복호 장치(1)에서는, Shuffled BP 알고리즘에 의해 복호를 행할 때, 행 처리 및 열 처리의 연산을 병렬로 실행한다.
다음에 동작에 대해 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력하면, 당해 수신 정보로부터 수신 LLR을 산출한다. 다음에 초기화 단계에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
계속해서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지, 상기 식 (1)의 조건에 대하여, 상기 식 (2), (3)에 따른 행 처리부(5-1~5-w)에 의한 행 처리 및 상기 식 (4), (5)에 따른 열 처리부(6)에 의한 열 처리로 이루어지는 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
도 30은 도 29 중의 행 처리부 및 열 처리부에 의한 복호 연산을 설명하기 위한 블럭도이다. 이 도면을 사용하여 복호 연산의 흐름을 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5-1~5-w)는 1열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
다음에, g=2일 때, 열 처리부(6)는 1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다. 한편, 행 처리부(5-1~5-w)는 2열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
계속해서, g=3일 때, 열 처리부(6)는 2열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다. 행 처리부(5-1~5-w)에서는, 3열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
마찬가지로, g=4 이후에서, 행 처리부(5-1~5-w)에 의해 4열째 이후의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 차례차례 실행하고, 각 처리 결과가 열 처리부(6)로 넘겨진다. 한편, 열 처리부(6)에서는 3열째 이후의 열 처리를 차례차례 실행하고, 각 처리 결과를 중간 결과 보유부(4)에 보유한다. 이와 같이 복호 연산을 병렬화함으로써 처리 시간을 삭감할 수 있다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (0)을 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7)의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7) 에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 같은 복호 계열을 출력한다.
또한, 상기한 바와 같이 행 처리와 열 처리를 병렬화 한 경우, 다음의 행 처리에는 1열 전의 행 처리의 결과를 반영할 수 없어, Shuffled BP 알고리즘의 특징인 효율적인 확률 전파를 지연시키는 것처럼 보인다. 그렇지만, 일반적으로 LDPC 부호의 행렬에서 1을 갖는 요소는 대단히 드물어, 이웃의 열에 1을 갖는 경우는 거의 없다. 이 때문에, 통상의 LDPC 부호의 검사 행렬이면, 확률 전파에 크게 영향을 주지 않는다.
도 31은, 도 29 중의 행 처리부 및 열 처리부에 의한 다른 복호 연산을 설명하기 위한 블럭도이다. 상기한 바와 같이, 일반적인 Shuffled BP 알고리즘이면, 이웃의 열에 1을 갖는 경우는 거의 없기 때문에, 확률 전파에 크게 영향을 주지 않지만, 상기 실시예 12에서 나타낸 도 21의 LDPC 부호의 행렬과 같이 검사 비트 부분의 1이 이웃하고 있는 경우, 도 31에 도시하는 바와 같이 병렬화한 행 처리만을 행하면 된다.
반복 i회째의 복호 연산을 예로 들어 구체적으로 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 상기 식 (1)에서 g=1일 때, 행 처리부(5-1~5-w)는 1열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리 부(6)에서는, 1열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
다음에, g=2일 때, 행 처리부(5-1~5-w)는 2열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)에서는, 2열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, g=3일 때, 행 처리부(5-1~5-w)에서는, 3열째의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 열 처리부(6)는 3열째의 열 처리를 행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
마찬가지로, g=4 이후에서, 행 처리부(5-1~5-w)에 의해 4열째 이후의 열에 1을 갖는 w행분의 행에 대한 행 처리를 병렬로 차례차례 실행하고, 각 처리 결과가 열 처리부(6)로 넘겨진다. 한편, 열 처리부(6)에서는 4열째 이후의 열 처리를 차례차례 실행하고, 각 처리 결과를 중간 결과 보유부(4)에 보유한다.
이상과 같이, 이 실시예 17에 의하면, Shuffled BP 알고리즘에서의 복호 연산을 병렬로 실행하는 행 처리부(5-1~5-w) 및 열 처리부(6)를 설치했으므로, 복호 연산에 관계되는 처리 시간을 단축할 수 있어, 복호 처리에 의한 지연 시간을 삭감하는 것이 가능하게 된다.
또한, 상기 실시예 17에서는, Shuffled BP 알고리즘의 행 처리 및 열 처리의 연산을 병렬화한 예를 나타냈지만, 수신 신호에 대한 행 처리와 열 처리에 의한 확 률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는, 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다.
(실시예 18)
이 실시예 18은, Shuffled BP 알고리즘과 같이, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 복호 알고리즘에서, 순회 구조를 갖는 LDPC 부호를 복호할 때 부호 구조에 기초하여 복호 연산을 병렬로 실행한다.
본 실시예 18에 의한 LDPC 부호 복호 장치는, 도 29에 도시한 상기 실시예 17에 의한 LDPC 부호 복호 장치와 기본적으로 동일한 구성을 갖고 있지만, 순회 구조를 갖는 LDPC 부호의 부호 구조에 기초하여 복호 연산을 병렬로 실행하기 때문에 각 행 처리부의 처리 내용이 상이하다. 이후에서는, Shuffled BP 알고리즘에서, 의사 순회 부호의 부호 구성의 특징을 이용하여 복호 연산을 병렬로 처리하는 구성을 예로 들어서 구체적으로 설명한다.
의사 순회 부호는, 도 32에 모식도로 도시하는 바와 같이, 단위 행렬인 기본 행렬 I(0)과 기본 행렬을 순회 치환한 행렬 I(1), I(2), I(3), …, I(k)의 조합으로 구성된다. 구성된 의사 순회 부호를 H=[Hm ,n]으로 한다. 여기서, n은 0 이상 N 미만의 정수, m은 0 이상 M 미만의 정수이며, Hm ,n은 H의 m행 n열째 요소로 한다. 집합 [1,N]의 부분 집합 N(m)을 N(m)={n:Hm ,n=1}, M(n)을 M(n)={m:Hm ,n=1}로 정의한 다.
즉, N(m)은 검사 행렬 H의 m행에서 1이 존재하는 열 인덱스의 집합을 의미하고, M(n)은 검사 행렬 H의 n행에서 1이 존재하는 행 인덱스의 집합을 가리킨다. 또, 단위 행렬의 크기를 (p×p)로 한다. 도 32의 예에서는, N=4p, M=3p로 되어 있고, 의사 순회 부호에는 이하의 특징이 있다.
(특징 1)
M(n)={m:Hm ,n=1}(n은 1 이상 p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
M(n)={m:Hm ,n=1}(n은 p 이상 2p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
M(n)={m:Hm ,n=1}(n은 2p 이상 3p 이하)에서, 서로 동일한 행에 1을 갖지 않는다.
(특징 2)
N(m)={n:Hm ,n=1}(m은 1 이상 p 이하)에서, 서로 동일한 열에 1을 갖지 않는다.
N(m)={n:Hm ,n=1}(m은 p 이상 2p 이하)에서, 서로 동일한 열에 1을 갖지 않는다.
N(m)={n:Hm ,n=1}(m은 2p 이상 3p 이하)에서, 서로 동일한 열에 1을 갖지 않는 다.
이러한 의사 순회 부호에서는, Shuffled BP 알고리즘에 의해 복호를 행할 때, 특징 1로부터 n이 1 이상 p 이하일 때에는 열 처리를 병렬하여 행할 수 있고, 특징 2로부터 m이 1 이상 p 이하일 때 행 처리를 병렬하여 행할 때에 동일한 열을 호출하지 않고, 하드웨어로 구성하는 경우에는 동일한 메모리에 액세스하지 않는다는 이점이 있다.
본 실시예 18에 의한 LDPC 부호 복호 장치는, 상기한 바와 같이, 수신 정보로부터 수신 LLR을 산출하는 수신 LLR 산출부(2)와 복호 코어부(3)로 구성되고, 복호 코어부(3)에 의해 의사 순회 부호의 부호 구성의 특징을 이용하여 복호 연산이 병렬로 처리된다. 복호 코어부(3)는 중간 결과 보유부(4), 행 처리부(5-1~5-p), 열 처리부(6), 제어부(7) 및 복호 결과 판정부(8)로 구성된다.
중간 결과 보유부(4)는, 상기 실시예 17에서 설명한 바와 같이, 행 처리부(5-1~5-p) 및 열 처리부(6)에 의한 복호의 중간 결과를 보유한다. 행 처리부(5-1~5-p)는 도 32에 도시하는 의사 순회 부호의 단위 행렬의 모든 행에 대응하는 p행분 설치되고, 순회 구조의 기본 행렬의 크기로 병렬화되어 있다. 열 처리부(6)는 열 처리를 행한다.
제어부(7)는 최대 반복 회수의 설정 등의 복호 반복의 제어를 행한다. 복호 결과 판정부(8)에서는, 열 처리부(6)가 구한 사후값의 경판정으로부터 상기 식 (6)에 의해 복호 결과의 복호 계열을 산출하고, 패리티 검사를 행하여 상기 식 (7)의 조건으로부터 복호 결과의 옳고그름을 판정한다.
다음에 동작에 대하여 설명한다.
우선, 수신 LLR 계산부(2)는 수신 정보를 입력하면, 당해 수신 정보로부터 수신 LLR을 산출한다. 다음에 초기화 단계에서, 수신 LLR 계산부(2)는 산출한 수신 LLR을 초기값 zm ,n (0)(:=Fn)으로서 중간 결과 보유부(4)에 설정한다. 이때, 제어부(7)는 복호의 반복 회수 i를 i=1로 초기화한다.
계속해서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지, 행 처리부(5-1~5-p)에 의한 행 처리 및 열 처리부(6)에 의한 열 처리로 이루어지는 반복 복호 처리인 단계 1과, 복호 결과 판정부(8)에 의한 상기 식 (7)에 따른 단계 2의 판정 처리를 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
도 33은 실시예 18에 의한 행 처리부 및 열 처리부의 복호 연산을 설명하기 위한 블럭도이다. 이 도면을 사용하여 복호 연산의 흐름을 설명한다.
우선, 복호하고 싶은 LDPC 부호의 검사 행렬 H(=[Hm ,n])에 대하여, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 1열부터 p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 1열부터 p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 1열부터 p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다.
여기서, 1열부터 p열까지 관련된 행 처리에서는, 하기 식 (27)의 조건에 대하여, 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 1열째부터 p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 p열부터 2p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 p열부터 2p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 p열부터 2p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 또한, p열부터 2p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 p부터 2p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, p열째부터 2p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 2p열부터 3p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 2p열부터 3p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 2p열부터 3p열까지 관련된 행 처리를 실행하고, 처리 결과를 열 처리부(6)로 넘긴다. 또한, 2p열부터 3p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 2로부터 3p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 2p열째부터 3p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
계속해서, 행 처리부(5-1~5-p)는 1행째부터 p행째까지 3p열부터 4p열까지 관련된 행 처리를 병렬로 실행하고, p행째부터 2p행째까지의 3p열부터 4p열까지 관련된 행 처리를 병렬로 실행하고, 2p행째부터 3p행째까지의 3p열부터 4p열까지 관련된 행 처리를 실행하여, 처리 결과를 열 처리부(6)로 넘긴다. 또한, 3p열부터 4p열까지 관련된 행 처리에서는, 상기 식 (27)에서의 n을 3p부터 4p까지로 하고, 이 조건에 대하여 상기 식 (2) 및 식 (3)을 사용한 연산을 실행한다.
다음에, 열 처리부(6)는, 예를 들면 상기 식 (4) 및 상기 식 (5)를 사용하여, 3p열째부터 4p열째까지의 열 처리를 병렬로 실행하고, 처리 결과를 중간 결과 보유부(4)에 보유시킨다.
또한, 상기한 처리 예에서는, 의사 순회 부호의 특징 2를 이용하여 행 처리를 1~p, p~2p, 2p~3p로 나누어서 행 처리 하는 예를 나타냈지만, 1~3p 모두를 병렬로 실행시키는 것도 가능하다.
단계 2에서는, 복호 결과 판정부(8)가 열 처리부(6)에 의해 반복 i회째에서 산출된 사후값 zn (i)를 경판정하여 복호 결과를 정하고, 패리티 검사를 행한다. 이때, 제어부(7)가 패리티 검사의 결과가 NG이면 반복 회수 i를 1 늘리고, 계속해서 단계 1의 처리를 행 처리부(5) 및 열 처리부(6)에 실행시킨다. 한편, 상기 식 (7) 의 조건을 만족시키면, 후술하는 단계 3의 처리로 이행시킨다.
이렇게 하여, 제어부(7)는, 상기 식 (7)에 나타내는 바와 같이, 패리티 검사의 결과가 OK로 되거나, 혹은 반복 회수가 설정한 최대값 Imax로 될 때까지, 상기 식 (8)에 기초하는, 단계 1 및 단계 2의 처리를 반복하도록 행 처리부(5) 및 열 처리부(6)를 제어한다.
복호 결과 판정부(8)에 의한 패리티 검사의 결과가 OK로 되거나, 제어부(7)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 3으로서, 제어부(7)가 행 처리부(5) 및 열 처리부(6)에 의한 복호 처리를 종료시키고, 복호 결과 판정부(8)가 복호 결과로서 상기 식 (6)과 동일한 복호 계열을 출력한다.
이상과 같이, 이 실시예 18에 의하면, 의사 순회 부호와 같이 순회 구조를 가진 LDPC 부호를 Shuffled BP 알고리즘에 의해 복호하는 경우에, 순회 구조의 특징을 이용하므로, 행 처리 및 열 처리의 병렬화가 가능하게 되어, 복호 연산에 관계되는 처리 시간을 단축할 수 있으므로 복호 처리에 요하는 지연 시간을 삭감할 수 있다.
또한, 상기 실시예 18에서는, Shuffled BP 알고리즘을 예로 들어서 설명했지만, 수신 신호에 대한 행 처리와 열 처리에 의한 확률 정보의 산출 및 갱신을 1비트씩 혹은 미리 정해진 복수 비트씩 행하는 다른 복호 알고리즘에서도 마찬가지로 적용할 수 있다. 또, 순회 구조를 갖는 LDPC 부호로서 의사 순회 부호를 예로 들었지만, 다른 순회 구조를 갖는 LDPC 부호이어도 동일하다.
(실시예 19)
이 실시예 19는 Max-Log-MAP 알고리즘에 수신 정보로부터 감산과 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘을 복호 알고리즘으로서 구비하는 것이다.
도 34는 본 발명의 실시예 19에 의한 Turbo 부호 복호 장치의 구성을 도시하는 블럭도이다. 본 실시예 19에 의한 Turbo 부호 복호 장치(24)는 수신값 보유부(25) 및 Turbo 복호 처리부(26)로 구성된다. Turbo 부호에서는, 정보 비트 계열 di와 그 패리티 비트 계열 p1 i, 인터리브 한 정보 비트 계열의 패리티 비트 계열 p2 i를 부호화 정보로서 송신한다. 수신값 보유부(25)는 그것들의 수신값 Ri, P1 i, P2 i를 나누어서 각각의 수신값을 보유하고, Turbo 복호 처리부(26)에 출력한다. Turbo 복호 처리부(26)는 중간 결과 보유부(27), 메트릭 계산부(28), 인터리브 처리부(29) 및 반복 제어부(30)로 구성된다.
중간 결과 보유부(27)는 수신값 보유부(25)로부터 입력한 수신값에 기초하는 메트릭 계산부(28)에 의한 복호 처리의 중간 결과를 보유한다. 메트릭 계산부(28)는 상기한 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘에 의한 메트릭 계산을 행하고, 복호 결과를 출력한다. 인터리브 처리부(29)는 Turbo 부호화에 따른 인터리브 처리를 행한다. 반복 제어부(30)는 메트릭 계산부(28)와 인터리브 처리부(29)에 의한 복호 처리의 반복을 제어한다.
메트릭 계산부(28)에서는, Max-Log-MAP 알고리즘에서의 처리가
인 것에 대하여,
으로 최대값을 보정하면서 메트릭 값의 산출과 갱신을 행한다.
또한, 상기 식 (29)에서, Max-Log-MAP 알고리즘에 대한 보정항이 되는 δ에 대해서는, Log-MAP 알고리즘의 갱신식으로부터 급수전개하여 얻을 수 있는 근사항으로, 입력하는 두 값의 차와 2에 의한 제산, 정수 C로부터의 감산만으로 산출할 수 있다.
또, 정수 C에 대해서는, Log-MAP 알고리즘의 갱신식으로부터의 근사 계산에서 얻어지는 ln(2)가 일례이지만, 적절하게 값을 설정함으로써 복호 성능을 향상시키는 것도 가능하다. 또한 2에 의한 제산에 대해서는, 하드웨어 등 2진수로 표현된 계에서는, 1비트의 비트 시프트 연산으로 가능하다.
인터리브 처리부(29)에서는, 복호하고 싶은 Turbo 부호의 인터리브 처리를 행하기 위한 정보를 메트릭 계산부(28)에 주고, 반복 제어부(30)에서는 반복 회수와 인터리브을 행하는 경우와 행하지 않는 경우의 제어를 행한다.
다음에 동작에 대하여 설명한다.
도 35는 실시예 19에 의한 Turbo 부호 복호 장치의 동작을 도시하는 플로우 차트이고, 이 도면에 따라 동작을 설명한다.
우선, 수신값 보유부(25)는 수신 정보로서 수신값 Ri, P1 i, P2 i를 나누어서 보유해 둔다(단계 ST1). 다음에 초기화 단계(단계 ST2)에서, 반복 제어부(30)는 복호의 반복 회수 i를 i=1로 초기화한다.
다음에, 단계 ST3에서, 반복 회수 i=1부터 i=최종 복호회(최대 반복 회수 Imax)까지 메트릭 계산부와 인터리브 처리부에 의한 반복 복호 처리인 단계 1을 반복하여 실행한다.
반복 i회째의 복호 연산을 예로 들어 설명한다.
우선, 단계 1에서, 메트릭 계산부(5)는 복호하고 싶은 Turbo 부호에 대하여 반복 i회째의 복호 연산에서의 인터리브이 없는 수신값에 대한 메트릭 계산을 행한다. 구체적으로 설명하면, 수신값 Ri, P1 i에 대하여, 상기 식 (29)에서 보정을 행하는 Max-Log-MAP 알고리즘에 따라서 메트릭 계산을 행하고, 처리 결과를 중간 결과 보유부(27)에 보유시킨다. 인터리브이 없는 메트릭 계산을 행하기 위해서는, 수신값 Ri, P1 i를 수신값 보유부로부터 호출할 때에 i를 선두부터 차례로 인크리먼트 하여 행한다.
단계 2에서는, 메트릭 계산부(28)가 복호하고 싶은 Turbo 부호에 대하여 반복 i회째의 복호 연산에서의 인터리브이 있는 메트릭 계산을 행한다. 구체적으로 설명하면, 수신값 P2 i와 인터리브 한 수신값 Ri에 대하여, 상기 식 (29)에서 보정을 행하는 Max-Log-MAP 알고리즘에 따라 메트릭 계산을 행하고, 메트릭 값을 중간 결과 보유부(27)에 보유시킨다. 수신값 Ri를 인터리브 하기 위해서는, 수신값 보유부(25)로부터 수신값을 호출할 때에, 인터리브 처리부로부터 호출할 번호 i의 정보를 받아서 호출함으로써 행한다.
이렇게 하여, 반복 제어부(30)는 반복 회수가 설정한 최대값 Imax로 될 때까지, 단계 1, 2를 반복하도록 메트릭 계산부와 인터리브 처리부를 제어한다.
반복 제어부(30)에 의해 설정된 반복 회수 i가 최대값 Imax로 되면, 단계 T4로서, 반복 제어부(30)가 메트릭 계산부(28) 및 인터리브 처리부(29)에 의한 복호 처리를 종료시키고, 메트릭 계산부로부터 복호 결과를 출력한다.
이상과 같이, 이 실시예 19에 의하면, 수신 정보의 감산 및 비트 시프트 연산만으로 산출할 수 있는 보정항에 의한 보정을 행하는 보정형의 Max-Log-MAP 알고리즘에 따라 복호 처리를 실행하므로, 종래의 Log-MAP 알고리즘으로부터의 복호 성능의 열화를 억제할 수 있고, 또한, 종래의 Max-Log-MAP 알고리즘과 비교하면 현격하게 복호 성능을 향상시킬 수 있다.
또한, 수신 정보에 기초하는 보정항을 산출하기 위한 계산은 감산과 1비트 시프트 연산만으로 실행하는 것이 가능하여, 실시예 19에 의한 Turbo 복호 장치(1)를 간이한 하드웨어 구성으로 실현할 수 있다.
(실시예 20)
본 실시예 20에서는, 전술한 실시예 1부터 실시예 19까지의 복호 처리를 적용하는 시스템에 대하여 설명한다. 예를 들면, 본 발명에 따른 LDPC 복호 처리는 이동통신(단말, 기지국), 무선 LAN, 광통신, 위성 통신, 양자암호 장치 등, 통신기기 전반에 적용할 수 있다. 구체적으로는, 도 36에 도시하는 바와 같이, LDPC 부호화기(31), 변조기(32), 통신로(33), 복조기(34), 및 LDPC 복호기(35)를 포함하여 이루어지는 시스템을 구성하고, 이 시스템에서의 LDPC 복호기(35)로서, 상기 실시예 1~19에 나타내는 복호기를 탑재하여, 오류 정정을 행한다.
도 37은 본 발명에 따른 복호 처리를 이동체 단말(36) 및 이 이동체 단말(36)과 통신을 행하는 기지국(37)을 갖춘 이동통신 시스템에 적용한 경우의 구성예를 도시하는 도면이다. 도면에서, 이동체 단말(36)은 LDPC 부호화기(31), 변조기(32), 복조기(34), LDPC 복호기(35) 및 안테나(42)를 구비한다. 또, 기지국(37)은 LDPC 복호기(43), 복조기(44), 변조기(45), LDPC 부호화기(46) 및 안테나(47)를 구비하고 있다.
이동체 단말(36) 및 기지국(37)의 LDPC 복호기(35, 43)로서는, 전술한 실시예 1~19에서 설명한 구성의 LPDC 복호기를 적용한다.
상기한 바와 같이 구성되는 이동통신 시스템에서, 이동체 단말(36)로부터 데이터를 송신하는 경우에는, 데이터를 LDPC 부호화기(37)가 부호화 하고, 변조기(38)와 안테나(41)를 통하여 무선 통신로에 송출한다.
한편, 기지국(37)에서는, 무선 통신로 중에서 발생한 오류를 포함하는 수신 신호를 안테나(47)와 복조기(44)를 통하여 받아들이고, 복조 후의 수신 데이터를 LDPC 복호기(43)에서 정정한다. 또한, 네트워크로부터 이동체 단말(36)이 각종 데이터를 수신하는 경우에 대해서도, 상기와 동일한 처리로, 기지국(37)이 이동체 단말(36)에 부호화 데이터를 송신하고, 이동체 단말(36)이 각종 데이터를 수신하여 복호 한다.
기지국(37)이 이동체 단말(36)에 부호화 데이터를 송신하는 경우에는, 데이터를 LDPC 부호화기(46)에 의해 부호화 하고, 부호화 데이터를 변조기(45)와 안테나(47)를 통하여 무선 통신로에 송출한다. 한편, 이동체 단말(36)에서는, 무선 통신로 중에서 발생한 오류를 포함하는 수신 신호를 안테나(42)와 복조기(34)를 통하여 수취하고, 복조 후의 수신 데이터를 LDPC 복호기(35)에서 정정한다.
이상과 같이, 이 실시예 20에 의하면, 상기 실시예 1부터 상기 실시예 19까지 나타낸 복호 처리를 이동통신 시스템에 적용했으므로, 이동체 단말(36) 및 기지국(37)에 의한 복호 처리에 있어서, 상기 실시예 1부터 상기 실시예 19까지 나타낸 효과를 각각 얻을 수 있다.