JP2013150193A - 復号装置および復号方法 - Google Patents
復号装置および復号方法 Download PDFInfo
- Publication number
- JP2013150193A JP2013150193A JP2012009985A JP2012009985A JP2013150193A JP 2013150193 A JP2013150193 A JP 2013150193A JP 2012009985 A JP2012009985 A JP 2012009985A JP 2012009985 A JP2012009985 A JP 2012009985A JP 2013150193 A JP2013150193 A JP 2013150193A
- Authority
- JP
- Japan
- Prior art keywords
- value
- value ratio
- unit
- ratio
- specified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
【課題】min−sum復号における演算量を低減させる技術を提供する。
【解決手段】初期化部60は、LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定する。導出部62は、特定した最小値と同一の事前値比の絶対値が別に存在するかを確認する。導出部62は、別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、特定した列とが同一であっても、特定した事前値比の絶対値の最小値以外の値を導出せずに、特定した事前値比の絶対値の最小値の使用を決定する。更新部64は、導出した値を使用して、処理対象の行のうちのひとつの外部値比を更新する。
【選択図】図3
【解決手段】初期化部60は、LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定する。導出部62は、特定した最小値と同一の事前値比の絶対値が別に存在するかを確認する。導出部62は、別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、特定した列とが同一であっても、特定した事前値比の絶対値の最小値以外の値を導出せずに、特定した事前値比の絶対値の最小値の使用を決定する。更新部64は、導出した値を使用して、処理対象の行のうちのひとつの外部値比を更新する。
【選択図】図3
Description
本発明は、復号技術に関し、特にLDPCによる符号化がなされたデータを復号する復号装置および復号方法に関する。
近年、低S/Nの伝送路でも強力な誤り訂正能力をもつ誤り訂正符号として、LDPC(Low Density Parity Check Code)が注目され、多くの分野で適用されている。LDPCでは、送信側において、疎な検査行列をもとに生成される符号化行列によって、データが符号化される。ここで、疎な検査行列とは、要素が1または0からなる行列であって、1の数が少ない行列である。一方、受信側において、検査行列をもとにして、データの復号とパリティ検査とがなされる。特に、BP(Belief Propagation)法等による繰り返し復号によって復号性能が向上する。
この復号では、検査行列の行方向に復号するチェックノード処理と、列方向に復号する変数ノード処理とを繰り返し実行する。チェックノード処理のひとつとして、Gallager関数や双曲線関数を用いるsum−product復号が知られている。sum−product復号では、伝送路ノイズの分散値から求まる通信路値を事前値として使用する。sum−product復号を簡略化した復号方法が、min−sum復号である。min−sum復号は、複雑な関数を用いることなく、比較演算、和演算等の簡単な処理だけでチェックノード処理を行うことが可能である。さらに、min−sum復号は、通信路値を必要としないので、処理の簡略化、高速化のために広く用いられている。min−sum復号の回路規模を削減するために、検査行列の各行での事前値比の最小値と次に小さな値を使用することが提案されている(例えば、特許文献1参照)。
検査行列の各行での事前値比の最小値を導出する処理は、非常に簡単な回路によって実現される。次に小さな値を導出するためには、最小値を導出した後、再度最小値を探索したり、ふたつのメモリを備え、両方の値と入力値を比べながらメモリの入れ替え処理を行ったりする必要があり、回路が複雑になる。そのため、min−sum復号における演算量を低減させることが要求される。
本発明はこうした状況に鑑みてなされたものであり、その目的は、min−sum復号における演算量を低減させる技術を提供することにある。
上記課題を解決するために、本発明のある態様の復号装置は、LDPC符号化がなされたデータを入力する入力部と、入力部において入力したデータに対して、min−sumアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行する復号部とを備える。復号部は、LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定する初期化部と、初期化部において特定した最小値と同一の事前値比の絶対値が別に存在するかを確認する確認部と、確認部において別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、初期化部において特定した列とが同一であっても、初期化部において特定した事前値比の絶対値の最小値以外の値を導出せずに、初期化部において特定した事前値比の絶対値の最小値の使用を決定する導出部と、導出部からの値を使用して、処理対象の行のうちのひとつの外部値比を更新する更新部と、を備える。
この態様によると、外部値比の更新に未使用の事前値比が配置された列と、予め特定した列とが同一であっても、予め特定した列に配置された最小値が別に存在する場合、予め特定した最小値を使用するので、演算量を低減できる。
導出部は、確認部において別に存在することを確認しなかった場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、初期化部において特定した列とが同一であれば、初期化部において特定した事前値比の絶対値の最小値以外の値を導出し、導出部は、外部値比の更新に未使用の事前値比が配置された列と、初期化部において特定した列とが異なる場合、初期化部において特定した事前値比の絶対値の最小値を更新部に使用させてもよい。この場合、外部値比の更新に未使用の事前値比が配置された列と、予め特定した列とが同一であり、かつ予め特定した列に配置された最小値が別に存在しない場合だけ最小値以外の値を導出し、それ以外であれば、予め特定した最小値を使用するので、演算量を低減できる。
本発明の別の態様は、復号方法である。この方法は、LDPC符号化がなされたデータを入力するステップと、入力したデータに対して、min−sumアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行するステップとを備える。実行するステップは、LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定するステップと、特定した最小値と同一の事前値比の絶対値が別に存在するかを確認するステップと、別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、特定した列とが同一であっても、特定した事前値比の絶対値の最小値以外の値を導出せずに、特定した事前値比の絶対値の最小値の使用を決定するステップと、決定するステップからの値を使用して、処理対象の行のうちのひとつの外部値比を更新するステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、min−sum復号における演算量を低減できる。
本発明を具体的に説明する前に、まず概要を述べる。本発明の実施例は、LDPC符号化を実行する送信装置と、送信装置において符号化されたデータ(以下、「符号化データ」という)に対して検査行列をもとに繰り返し復号を実行する受信装置とを含む通信システムに関する。特に、受信装置は、min−sumアルゴリズムを実行する。min−sunアルゴリズムは、チェックノード処理と変数ノード処理とを含んでいるが、チェックノード処理の方が変数ノード処理よりも複雑な処理である。そのため、チェックノード処理を簡易にすることによって、min−sumアルゴリズムの処理を簡易にすることが望まれる。これに対応するために、本実施例に係る通信システムは、次の処理を実行する。
min−sumアルゴリズムにおけるチェックノード処理は、変数ノード処理から出される事前値比のうち、外部値比を更新すべきノード以外の絶対値の最小値と符号の総積とを使用することによって、外部値比が更新される。受信装置は、検査行列の各行に対してチェックノード処理を開始するまでに、処理対象となる行に含まれた事前値比の中から、事前値比の絶対値の最小値を特定するとともに、当該最小値が配置された列も特定する。
また、特定した最小値と同一の事前値比の絶対値が別に存在するかも確認する。さらに、受信装置は、事前値比の符号の総積を導出する。
また、特定した最小値と同一の事前値比の絶対値が別に存在するかも確認する。さらに、受信装置は、事前値比の符号の総積を導出する。
受信装置は、最小値、列に関する情報、符号の総積を使用して、外部値比を更新する。つまり、受信装置は、ひとつの行に含まれる複数の外部値比を更新する際に、それらに共通した処理を予めまとめて実行することによって、チェックノード処理の処理量を削減する。特に、外部値比を更新すべきノードが最小値を有しており、かつ最小値を持つノードが複数存在する場合に、当該ノード以外のノードにおける事前値比の絶対値の最小値を検出せずに、既に特定した最小値を使用することによって、外部値比が更新される。
図1は、本発明の実施例に係る通信システムの構成を示す。通信システム100は、送信装置10、受信装置12を含む。送信装置10は、情報データ生成部20、LDPC符号化部22、変調部24を含む。受信装置12は、復調部26、復号部28、情報データ出力部30を含む。
情報データ生成部20は、送信すべきデータを取得し、情報データを生成する。なお、取得したデータがそのまま情報データとされてもよい。情報データ生成部20は、情報データをLDPC符号化部22へ出力する。LDPC符号化部22は、情報データ生成部20から、情報データを入力する。LDPC符号化部22は、LDPCでの検査行列をもとにしたパリティ(以下、「LDPCパリティ」という)を情報データに付加する。LDPCパリティを付加した情報データが、前述の符号化データに相当する。LDPC符号化部22は、符号化データを変調部24に出力する。図2は、LDPC符号化部22において使用される検査行列を示す。検査行列Hmnは、m行n列の行列である。ここでは、説明を明瞭にするために、検査行列Hmnが4行8列であるとするが、これに限定されるものではない。図1に戻る。
変調部24は、LDPC符号化部22から符号化データを入力する。変調部24は、符号化データを変調する。変調方式として、PSK(Phase Shift Keying)、FSK(Frequency Shift Keying)等が使用される。変調部24は、変調した符号化データを変調信号として送信する。復調部26は、変調部24から通信路、例えば無線伝送路を介して変調信号を受信する。復調部26は、変調信号を復調する。復調には公知の技術が使用されればよいので、ここでは説明を省略する。復調部26は、復調結果(以下、「復調データ」という)を復号部28へ出力する。
復号部28は、復調部26からの復調データを入力する。復号部28は、復調データに対して、LDCPでの検査行列による復号処理を繰り返し実行する。復号処理として、例えば、min−sumアルゴリズムが実行される。min−sumアルゴリズムは、次の手順で実行される。
1.初期化:事前値比を初期化し、最大復号繰り返し回数を設定する。
2.チェックノード処理:検査行列の行方向に対して外部値比を更新する。
3.変数ノード処理:検査行列の列方向に対して事前値比を更新する。
4.一時推定語を計算する。
1.初期化:事前値比を初期化し、最大復号繰り返し回数を設定する。
2.チェックノード処理:検査行列の行方向に対して外部値比を更新する。
3.変数ノード処理:検査行列の列方向に対して事前値比を更新する。
4.一時推定語を計算する。
復号部28は、復号結果(以下、「復号データ」という)を情報データ出力部30へ出力する。情報データ出力部30は、復号部28からの復号データを入力する。情報データ出力部30は、復号データをもとに情報データを生成する。なお、復号データがそのまま情報データとされてもよい。情報データ出力部30は、外符号復号部を含み、例えばCRC等の外符号を復号してもよい。
この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図3は、復号部28の構成を示す。復号部28は、フレーム構成部40、制御部42、データ記憶部44、min−sum処理部46、復号結果演算部48を含む。また、min−sum処理部46は、チェックノード処理部56、変数ノード処理部58を含み、チェックノード処理部56は、初期化部60、導出部62、更新部64、確認部66を含む。
フレーム構成部40は、図示しない復調部26からの復調データを入力する。復調データは、通信路を介してのLDPC符号化がなされたデータといえる。フレーム構成部40は、復調データに含まれたフレーム同期信号を検出する。フレーム構成部40は、フレーム同期信号をもとに、復調データによって形成されるフレームの単位を特定する。例えば、フレームの先頭部分にフレーム同期信号が配置され、かつフレームの期間が固定長である場合、フレーム構成部40は、フレーム同期信号を検出してから固定長の期間をフレームと特定する。なお、LDPC符号化の単位がフレームであってもよい。フレーム構成部40は、フレーム単位にまとめた復調データをデータ記憶部44に記憶させる。データ記憶部44は、フレーム単位で復調信号を一時的に記憶する。
min−sum処理部46は、データ記憶部44からの復調データを入力する。min−sum処理部46は、復調データに対してmin−sumアルゴリズムを実行する。min−sumアルゴリズムでは、チェックノード処理部56と変数ノード処理部58とが交互に実行される。図4は、復号部28の動作を模式的に表したタナーグラフを示す。タナーグラフでは、b1からb8が変数ノードと呼ばれ、c1からc4がチェックノードと呼ばれる。ここでは、変数ノードの数をnとし、bnをn番目の変数ノードとする。また、チェックノードの数をmとし、cmをm番目のチェックノードとする。変数ノードb1からb8には、図3のデータ記憶部44に蓄えられたデータy1からy8が接続されている。図3に戻る。
チェックノード処理部56は、繰り返し復号の最初に事前値比βを初期化する。ここでは、データ記憶部44に記憶された復調データがそのまま使用される。次に、チェックノード処理部56は、事前値比の絶対値の最小値min|βmn’|を求める。チェックノード処理部56は、チェックノードにつながる変数ノードとの間で、cmからbmへの外部値比αmnを更新させる。αmnの計算は、検査行列Hmn=1を満たすすべての組(m、n)について、次のようになされる。
αmn=a(Πsign(βmn’))・min|βmn’|・・・(1)
ここで、n’はA(m)\n :A(m)はチェックノードmに接続する変数ノード集合で、\nはnを含まない差集合を示す。また、signはシグネチャ関数、min|βmn’|は絶対値の最小値選択を示す。ここで、aは正規化定数である。図5は、復号部28における外部値比更新動作の概要を示す。外部値比α11は、β11’から導出される。つまり、チェックノード処理部56は、事前値比をもとに外部値比を更新させる。図3に戻る。事前値比の絶対値の最小値min|βmn’|の導出は、繰り返しごとになされる。
ここで、n’はA(m)\n :A(m)はチェックノードmに接続する変数ノード集合で、\nはnを含まない差集合を示す。また、signはシグネチャ関数、min|βmn’|は絶対値の最小値選択を示す。ここで、aは正規化定数である。図5は、復号部28における外部値比更新動作の概要を示す。外部値比α11は、β11’から導出される。つまり、チェックノード処理部56は、事前値比をもとに外部値比を更新させる。図3に戻る。事前値比の絶対値の最小値min|βmn’|の導出は、繰り返しごとになされる。
変数ノード処理部58は、αmnから変数ノードにつながるチェックノードとの間で、bnからcmへの事前値比βmnを更新する。βmnの計算は、検査行列Hmn=1を満たすすべての組(m、n)について、次のようになされる。
βmn=Σαm’n+λn・・・・(2)
ここで、λnは、入力データynに等しい。入力データynは、復調部26からの復調データに相当する。また、m’はB(n)\m:B(n)は変数ノードnに接続するチェックノード集合で、\mはmを含まない差集合を示す。図6は、復号部28における事前値比更新動作の概要を示す。事前値比β11は、α1’1から導出される。つまり、変数ノード処理部58は、外部値比をもとに事前値比を更新させる。図3に戻る。
βmn=Σαm’n+λn・・・・(2)
ここで、λnは、入力データynに等しい。入力データynは、復調部26からの復調データに相当する。また、m’はB(n)\m:B(n)は変数ノードnに接続するチェックノード集合で、\mはmを含まない差集合を示す。図6は、復号部28における事前値比更新動作の概要を示す。事前値比β11は、α1’1から導出される。つまり、変数ノード処理部58は、外部値比をもとに事前値比を更新させる。図3に戻る。
復号結果演算部48は、チェックノード処理部56での処理と変数ノード処理部58での処理とが所定回数繰り返された後、一時推定語を計算する。なお、復号結果演算部48は、所定回数繰り返される前であっても、パリティ検査の結果が正しければ一時推定語を計算してもよい。復号結果演算部48は、一時推定語を復号結果として出力する。制御部42は、min−sum処理部46の動作タイミングを制御する。
チェックノード処理部56の式(1)は、検査行列の各行の1の数によって演算を繰り返し、変数ノード処理部58の式(2)は、各列の1の数によって演算を繰り返す。つまり、チェックノード処理は、式(1)に示したように、検査行列のm行目において、要素が1であるn番目(列インデックスがn)の外部値比αmnを更新し、変数ノード処理は式(2)に示したように、事前値比βmnを更新する。チェックノード処理について、演算を簡略化することは、式(1)を簡単に実行することに相当し、LDPC復号の処理速度を上げるためには式(1)の簡略化が求められる。以下では、式(1)の簡略化について説明する。
初期化部60は、チェックノード処理における初期化を実行する。初期化には2種類あり、(1)繰り返し復号前の初期化と(2)行単位の処理の初期化である。(1)繰り返し復号前の初期化として、前述のごとく、初期化部60は、図3のデータ記憶部44に蓄えられたデータy1からy8を事前値比βmnに設定する。
(2)行単位の処理の初期化は、LDPC符号化の検査行列における各行のチェックノード処理を開始するまでの処理に相当する。初期化部60は、処理対象の行に含まれた事前値比の絶対値の最小値βtmpを特定する。また、初期化部60は、特定した事前値比の絶対値の最小値βtmpが配置された列Nminを特定する。ここで、列は、前述の列インデックスに相当する。初期化部60は、事前値比の絶対値の最小値βtmpと列インデックスNminを図3のデータ記憶部44に記憶する。さらに、初期化部60は、処理対象の行に含まれた事前値比βmnの符号の総積SIGNtmpを導出する。初期化部60は、符号の総積SIGNtmpもデータ記憶部44に記憶する。
ここでは、1行目に対して初期化を実行する場合を具体的に説明する。その際、図4のごとく、チェックノードはC1である。以下では、第1例として、β11=−3、β12=4、β13=−2、β14=−5であるとする。初期化部60は、第1例に対して、事前値比の絶対値の最小値βtmpとして「2」を特定し、それに対応した列インデックスNminとして「3」を特定する。また、初期化部60は、符号の総積SIGNtmpとして「マイナス(−)」を導出する。
さらに、第2例として、β11=−3、β12=4、β13=−2、β14=2であるとする。初期化部60は、第2例に対して、事前値比の絶対値の最小値βtmpとして「2」を特定し、それに対応した列インデックスNminとして「3」を特定する。また、初期化部60は、符号の総積SIGNtmpとして「プラス(+)」を導出する。なお、符号の総積SIGNtmpは事前値比の符号の総積で導出されているが、その代わりに、符号の排他的論理和等、他の演算によって導出されてもよい。
確認部66は、初期化部60において特定した最小値βtmpと同一の事前値比の絶対値が別に存在するかを確認する。確認部66は、存在する場合にSAMEmin=1を設定し、存在しない場合にSAMEmin=0を設定する。確認部66は、SAMEminもデータ記憶部44に記憶する。確認部66は、第1例に対して、SAMEmin=0を設定する。また、確認部66は、第2例に対して、絶対値の最小値βtmp=2と同じ絶対値を持つβ14が存在するので、SAMEmin=1を設定する。
導出部62は、処理対象の行のうちのひとつの外部値比に対して、式(1)の(Πsign(βmn’))とmin|βmn’|とを導出する。導出部62は、処理対象の行のうちのひとつの外部値比αmnに対して、当該外部値比αmnの更新に未使用の事前値比βmnが配置された列と、初期化部60において特定した列インデックスNminとが同一であるか否かを確認する。ここで、当該外部値比αmnの更新に未使用の事前値比βmnとは、当該外部値比αmnと同一の列インデックス「n」を有した事前値比である。例えば、処理対象の行のうちのひとつの外部値比が「α11」である場合、更新に未使用の事前値比は「β11」である。同様に、「α12」、「α13」、「α14」に対して、更新に未使用の事前値比は「β12」、「β13」、「β14」である。
異なる場合、導出部62は、初期化部60において特定した事前値比の絶対値の最小値βtmpを特定する。第1例では、「α11」、「α12」、「α14」のときに、βtmp「2」が特定される。第2例では、「α11」、「α12」のときに、βtmp「2」が特定される。一方、同一である場合、SAMEmin=0であれば、導出部62は、初期化部60において特定した事前値比の絶対値の最小値βtmp以外の値(以下では、説明の便宜上、この値も「事前値比の絶対値の最小値βtmp」という)を導出する。第1例では、「α13」のときに、βtmpとして「3」が導出される。なお、第2例では、SAMEmin=1であるので、このような処理がなされない。さらに、同一である場合、SAMEmin=1であれば、導出部62は、初期化部60において特定した事前値比の絶対値の最小値βtmpを特定する。初期化部60において特定した事前値比の絶対値の最小値βtmp以外の値は導出されない。第2例では、「α13」、「α14」のときに、βtmp「2」が特定される。
以上の処理に加えて、導出部62は、当該外部値比αmnの更新に未使用の事前値比βmnの符号と、初期化部60において導出した符号の総積SIGNtmpとをもとに、符号を導出する。第1例では、「α11」、「α12」、「α13」、「α14」に対して、更新に未使用の事前値比βmnの符号は、「マイナス(−)」、「プラス(+)」、「マイナス(−)」、「マイナス(−)」である。また、符号の総積SIGNtmpは、「マイナス(−)」である。そのため、「α11」、「α12」、「α13」、「α14」に対して、符号は、「プラス(+)」、「マイナス(−)」、「プラス(+)」、「プラス(+)」になる。導出部62は、事前値比の絶対値の最小値βtmpと符号とを更新部64へ出力する。
更新部64は、導出部62において導出した事前値比の絶対値の最小値βtmpと符号を使用して、処理対象の行のうちのひとつの外部値比αmnを更新する。さらに、導出部62は、行内において、外部値比αmnを順次更新していく。第1例において、これまでの処理をまとめると次のようになる。「α11」の列インデックスは「1」であり、Nmin=3とは異なるので、「α11」は、符号の総積「SIGNtmp」の「−」に「β11」の符号マイナスを乗じた「プラス(+)」と、「βtmp=2」とから、「+2」と導出される。「α12」の列インデックスは「2」であり、Nmin=3とは異なるので、「α12」は、符号の総積「SIGNtmp」の「−」に「β12」の符号プラスを乗じた「マイナス(−)」と、「βtmp=2」とから、「−2」と導出される。
「α13」の列インデックスは「3」であり、Nminと等しいので、符号の総積「SIGNtmp」の「−」に「β12」の符号マイナスを乗じた「プラス(+)」と、通常の式(1)から演算された「3」とから、「3」と導出される。「α14」の列インデックスは「4」であり、Nmin=3とは異なるので、「α14」は、符号の総積「SIGNtmp」の「−」に「β14」の符号マイナスを乗じた「プラス(+)」と、「βtmp=2」とから、「+2」と導出される。その結果、α11、α12,α13、α14はそれぞれ+2、−2、+3、+2と導出される。
一方、第2例において、「α11」の列インデックスは「1」であり、Nmin=3とは異なるので、「α11」は、符号の総積「SIGNtmp」の「+」に「β11」の符号マイナスを乗じた「マイナス(−)」と、「βtmp=2」とから、「−2」と導出される。「α12」の列インデックスは「2」であり、Nmin=3とは異なるので、「α12」は、符号の総積「SIGNtmp」の「+」に「β12」の符号プラスを乗じた「プラス(+)」と、「βtmp=2」とから、「+2」と導出される。
「α13」の列インデックスは「3」であり、Nminと等しい。しかしながら、「SAMEmin=1」であるので、絶対値の最小値βtmp=2と同じ絶対値を持つ「β14」が存在する。そのため、「α13」は、符号の総積の「SIGNtmp」の「+」に「β13」の符号マイナスを乗じた「マイナス(−)」と、「βtmp=2」とから、「−2」と導出される。つまり、式(1)の演算、β13を除いた絶対値の最小値を検出する処理が不要になる。「α14」の列インデックスは「4」であり、Nmin=3とは異なるので、「α14」は、符号の総積「SIGNtmp」の「+」に「β14」の符号プラスを乗じた「プラス(+)」と、「βtmp=2」とから、「+2」と導出される。
なお、導出されたαには1より小さい常数(正規化常数)を乗じることによって、正規化min−sum復号に対応させてもよい。以上のように1行目のチェックノード処理が終了されると、2行目のチェックノード処理がなされてもよいし、1行目のチェックノード処理で更新された外部値比αを使用して変数ノード処理がなされてもよい。
以上の構成による通信システム100の動作を説明する。図7は、復号部28による復号手順を示すフローチャートである。初期化部60は、事前値比βを初期化する(S10)。行の先頭であれば(S12のY)、初期化部60は、初期化処理を実行し(S14)、ステップ12に戻る。初期化として、βmnの絶対値の最小値βtmpが検出され、βtmpの列インデックスNminが検出され、βmnの符号の総積SIGNtmpが検出され、βtmpと同じ絶対値が別に存在するかが確認される。行の先頭でない場合(S12のN)、列がNminでなければ(S16のN)、導出部62、更新部64は、βtmpを使用して外部値比αmnを更新する(S18)。
列がNminであり(S16のY)、βtmpと同一の絶対値のβが他にも存在すれば(S20のY)、導出部62、更新部64は、βtmpを使用して外部値比αmnを更新する(S22)。βtmpと同一の絶対値のβが他にも存在しなければ(S20のN)、導出部62、更新部64は、別のβを選択して外部値比αmnを更新する(S24)。1行が終了していなければ(S26のN)、ステップ12に戻る。1行が終了し(S26のY)、最後の行が終了していなければ(S28のN)、ステップ12に戻る。最後の行が終了すれば(S28のY)、変数ノード処理部58は、変数ノード処理を実行する(S30)。
図8は、復号部28による別の復号手順を示すフローチャートである。これは、変数ノード処理を行処理ごとに実行する場合に相当する。初期化部60は、事前値比βを初期化する(S50)。行の先頭であれば(S52のY)、初期化部60は、初期化処理を実行し(S54)、ステップ52に戻る。行の先頭でない場合(S52のN)、列がNminでなければ(S56のN)、導出部62、更新部64は、βtmpを使用して外部値比αmnを更新する(S58)。列がNminであり(S56のY)、βtmpと同一の絶対値のβが他にも存在すれば(S60のY)、導出部62、更新部64は、βtmpを使用して外部値比αmnを更新する(S62)。βtmpと同一の絶対値のβが他にも存在しなければ(S60のN)、導出部62、更新部64は、別のβを選択して外部値比αmnを更新する(S64)。1行が終了していなければ(S66のN)、ステップ52に戻る。1行が終了していれば(S66のY)、変数ノード処理部58は、変数ノード処理を実行する(S68)。最後の行が終了していなければ(S70のN)、ステップ52に戻る。最後の行が終了すれば(S70のY)、処理は終了される。
図9は、復号部28による初期化手順を示すフローチャートである。これは、図7のステップ14、図8のステップ54における処理に相当する。初期化部60は、βmnの符号の総積SIGNtmpを「1(+)」に初期化し(S100)、βmnの絶対値の最小値βtmpを充分大きい値「FFFFh」に初期化する(S102)。βmnがマイナスである場合(S104のY)、初期化部60は、符号の総積SIGNtmpに−1を乗算する(S106)。βmnがマイナスでない場合(S104のN)、ステップ106はスキップされる。初期化部60は、βmnの絶対値|βmn|を求める(S108)。
絶対値|βmn|がβtmpよりも小さい場合(S110のY)、初期化部60は、絶対値を最小値βtmpとして保持し(S112)、列インデックスをNminとして保持し(S114)、確認部66は、SAMEminを0にクリアする(S116)。絶対値|βmn|がβtmpよりも小さくない場合(S110のN)、絶対値が最小値βtmpと等しければ(S118のY)、確認部66は、SAMEminを1にセットする(S120)。絶対値が最小値βtmpと等しくなければ(S118のN)、ステップ120はスキップされる。列インデックスが最終列でなければ(S122のN)、ステップ104に戻る。列インデックスが最終列であれば(S122のY)、処理は終了される。
本発明の実施例によれば、各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の符号の総積を導出しておき、各外部値比の導出に総積を使用するので、各外部値比を導出する際に符号の総積の演算を省略できる。また、各外部値比を導出する際に符号の総積の演算が省略されるので、演算量を低減できる。また、予め特定した事前値比の絶対値の最小値を外部値比の更新に使用するので、事前値比の絶対値の最小値の導出を省略できる。また、事前値比の絶対値の最小値の導出が省略されるので、演算量を低減できる。
また、外部値比の更新に未使用の事前値比が配置された列と、予め特定した列とが同一であっても、予め特定した列に配置された最小値が別に存在する場合、予め特定した最小値を使用するので、演算量を低減できる。また、チェックノード処理での演算を回避できる。また、外部値比の更新に未使用の事前値比が配置された列と、予め特定した列とが同一であり、かつ予め特定した列に配置された最小値が別に存在しない場合だけ最小値以外の値を導出し、それ以外であれば、予め特定した最小値を使用するので、演算量を低減できる。また、演算量が低減されるので、min−sumアルゴリズムの簡易化を実現できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本発明の実施例において、通信システム100は無線通信システムを前提としているので、送信装置10および受信装置12は、無線通信装置に含まれる。しかしながらこれに限らず例えば、通信システム100は有線通信システムを前提としてもよい。その際、送信装置10および受信装置12は、有線通信装置に含まれる。本変形例によれば、本発明をさまざまな装置に適用できる。
10 送信装置、 12 受信装置、 20 情報データ生成部、 22 LDPC符号化部、 24 変調部、 26 復調部、 28 復号部、 30 情報データ出力部、 40 フレーム構成部、 42 制御部、 44 データ記憶部、 46 min−sum処理部、 48 復号結果演算部、 56 チェックノード処理部、 58 変数ノード処理部、 60 初期化部、 62 導出部、 64 更新部、 66 確認部、 100 通信システム。
Claims (3)
- LDPC符号化がなされたデータを入力する入力部と、
前記入力部において入力したデータに対して、min−sumアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行する復号部とを備え、
前記復号部は、
LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定する初期化部と、
前記初期化部において特定した最小値と同一の事前値比の絶対値が別に存在するかを確認する確認部と、
前記確認部において別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、前記初期化部において特定した列とが同一であっても、前記初期化部において特定した事前値比の絶対値の最小値以外の値を導出せずに、前記初期化部において特定した事前値比の絶対値の最小値の使用を決定する導出部と、
前記導出部からの値を使用して、処理対象の行のうちのひとつの外部値比を更新する更新部と、
を備えることを特徴とする復号装置。 - 前記導出部は、前記確認部において別に存在することを確認しなかった場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、前記初期化部において特定した列とが同一であれば、前記初期化部において特定した事前値比の絶対値の最小値以外の値を導出し、
前記導出部は、外部値比の更新に未使用の事前値比が配置された列と、前記初期化部において特定した列とが異なる場合、前記初期化部において特定した事前値比の絶対値の最小値を前記更新部に使用させることを特徴とする請求項1に記載の復号装置。 - LDPC符号化がなされたデータを入力するステップと、
入力したデータに対して、min−sumアルゴリズムを実行することによって、事前値比をもとに外部値比を更新させるチェックノード処理と、外部値比をもとに事前値比を更新させる変数ノード処理とを交互に実行するステップとを備え、
前記実行するステップは、
LDPC符号化の検査行列における各行のチェックノード処理を開始するまでに、処理対象の行に含まれた事前値比の絶対値の最小値を特定するとともに、特定した事前値比の絶対値の最小値が配置された列を特定するステップと、
特定した最小値と同一の事前値比の絶対値が別に存在するかを確認するステップと、
別に存在することを確認した場合、処理対象の行のうちのひとつの外部値比に対して、当該外部値比の更新に未使用の事前値比が配置された列と、特定した列とが同一であっても、特定した事前値比の絶対値の最小値以外の値を導出せずに、特定した事前値比の絶対値の最小値の使用を決定するステップと、
決定するステップからの値を使用して、処理対象の行のうちのひとつの外部値比を更新するステップと、
を備えることを特徴とする復号方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012009985A JP2013150193A (ja) | 2012-01-20 | 2012-01-20 | 復号装置および復号方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012009985A JP2013150193A (ja) | 2012-01-20 | 2012-01-20 | 復号装置および復号方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013150193A true JP2013150193A (ja) | 2013-08-01 |
Family
ID=49047287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012009985A Pending JP2013150193A (ja) | 2012-01-20 | 2012-01-20 | 復号装置および復号方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013150193A (ja) |
-
2012
- 2012-01-20 JP JP2012009985A patent/JP2013150193A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012151676A (ja) | 復号装置および復号方法 | |
KR102223968B1 (ko) | 극 부호의 병렬화된 연속 제거 디코딩 및 연속 제거 리스트 디코딩을 위한 장치 및 방법 | |
CN106685586B (zh) | 生成用于在信道中传输的低密度奇偶校验码的方法及设备 | |
US7203897B2 (en) | Method and apparatus for encoding and decoding data | |
EP1909395A1 (en) | Communication apparatus and decoding method | |
EP1790082B1 (en) | Method and apparatus for encoding and decoding data | |
JP2008514106A (ja) | Ldpcコードを用いた符号化及び復号化方法 | |
JP2012151839A (ja) | ユークリッド空間リード−マラー符号の軟判定復号を実行する方法 | |
JP5370337B2 (ja) | 復号装置および復号方法 | |
JP4832447B2 (ja) | チャネルコードを用いた復号化装置及び方法 | |
US8214717B2 (en) | Apparatus and method for decoding LDPC code based on prototype parity check matrixes | |
JP6446459B2 (ja) | 値集合の中から第1の極値および第2の極値を識別するための方法および装置 | |
KR100943602B1 (ko) | 통신 시스템에서 신호 수신 장치 및 방법 | |
US8327215B2 (en) | Apparatus and method for encoding LDPC code using message passing algorithm | |
US9026880B2 (en) | Decoding apparatus and decoding method for decoding LDPC-encoded data | |
WO2012042786A1 (ja) | 復号装置および復号方法 | |
JP2013150193A (ja) | 復号装置および復号方法 | |
KR20110114204A (ko) | 저밀도 패리티 체크 부호화 방법 및 이를 이용하는 저밀도 패리티 체크 인코더 | |
JP5772622B2 (ja) | 復号装置および復号方法 | |
WO2018084732A1 (en) | Ldpc codes for incremental redundancy harq (ir-harq) schemes | |
JP2013207396A (ja) | 復号装置、復号方法、プログラム | |
JP2013070133A (ja) | 復号装置および復号方法 | |
EP3526899A1 (en) | Decoding of low-density parity-check convolutional turbo codes | |
JP2012175564A (ja) | 復号装置、符号化装置、復号方法、符号化方法 | |
JP5434454B2 (ja) | 復号化装置 |