【国等の委託研究の成果に係る記載事項】(出願人による申告)平成27年度、総務省、「非直交アクセス方式に基づく大容量データ通信および高信頼・低遅延制御通信の創出」委託事業、産業技術力強化法第19条の適用を受ける特許出願
【文献】
P. Mitran(他1名),Parallel Concatenated Convolutional Lattice Codes With Constrained States,IEEE Transactions on Communications,米国,IEEE,2015年 3月,Vol.63, No.4,pp.1081-1090
【文献】
O. Shalvi(他2名),Signal Codes: Convolutional Lattice Codes,IEEE Transactions on Information Theory,米国,IEEE,2011年 7月,Vol.57, No.8,pp.5203-5226
【文献】
S. Benedetto(他3名),On the design of binary serially concatenated convolutional codes,IEEE Communications Theory Mini-Conference,米国,IEEE,1999年 6月,pp.32-36
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0017】
図1は、本発明の実施形態に係る通信システムの装置構成を示す概略構成図である。
図1に示すように、通信システム1は、第一端末装置11と、第一通信装置12と、第二通信装置14と、第二端末装置16とを備える。第一通信装置12は、送信ユニット13と、符号化装置100とを備える。第二通信装置14は、受信ユニット15と、復号装置200とを備える。
【0018】
かかる構成により通信システム1では、第一通信装置12および第二通信装置14が、第一端末装置11と第二端末装置16との通信を仲介する。
具体的には、第一端末装置11は、送信対象データをバイナリデータ(Binary Data)にて第一通信装置12へ出力する。第一通信装置12では、符号化装置100が、第一通信装置12からのバイナリデータをQAM(Quadrature Amplitude Modulation、直交振幅変調)のシンボル系列に変換する符号化を行い、得られたシンボル系列を送信ユニット13へ出力する。
【0019】
ここでいうQAMのシンボルは、QAMのコンステレーション(Constellation)に1対1に対応付けられる符号アルファベットに含まれるシンボルである。ここでいう符号化アルファベットは、符号化によって得られる符号を構成するシンボルの集合である。QAMのシンボル系列は、QAMのシンボルの系列(要素の順番が定められている並び)である。
【0020】
送信ユニット13は、符号化装置100からのシンボル系列に対してデジタル−アナログ変換等の処理を行い、送信対象データをQAMで無線送信する。
第二通信装置14では、受信ユニット15が送信ユニット13からの無線信号を受信してアナログ−デジタル変換等の処理を行い、受信データをQAMのシンボル系列にて復号装置200へ出力する。復号装置200は、受信ユニット15からのQAMのシンボル系列をバイナリデータに復号し、得られたバイナリの復号データを第二端末装置16へ出力する。
【0021】
第一端末装置11及び第二端末装置16は、通信システム1に含まれていてもよいし、通信システム1の外部の装置として構成されていてもよい。
また、通信システム1への情報シンボルの出力元の第一端末装置11は、
図1に示す1つに限らず複数であってもよい。また、通信システム1からの情報シンボルの出力先の第二端末装置16は、
図1に示す1つに限らず複数であってもよい。例えば、第一端末装置11と第二端末装置16との間に複数の呼が発生する場合に、通信システム1が、時分割多重、周波数分割多重又は符号分割多重など何らかの多重方式でこれら複数の呼の通信経路を確立するようにしてもよい。
【0022】
また、
図1では、符号化装置100と送信ユニット13との組み合わせが1つの装置(第一通信装置12)に含まれ、第一端末装置11が別の装置として構成されている場合の例を示しているが、第一端末装置11、符号化装置100及び送信ユニット13の構成はこれに限らない。符号化装置100と送信ユニット13とが別個の装置として構成されていてもよい。また、第一端末装置11と符号化装置100との組み合わせが1つの装置に含まれて構成されていてもよい。例えば、第一端末装置11、符号化装置100、送信ユニット13がそれぞれ別個の装置として構成されていてもよいし、第一端末装置11、符号化装置100及び送信ユニット13の組み合わせが1つの装置に含まれて構成されていてもよい。
【0023】
また、
図1では、復号装置200と受信ユニット15との組み合わせが1つの装置(第二通信装置14)に含まれ、第二端末装置16が別の装置として構成されている場合の例を示しているが、第二端末装置16、復号装置200及び受信ユニット15の構成はこれに限らない。復号装置200と受信ユニット15とが別個の装置として構成されていてもよい。また、第二端末装置16と復号装置200との組み合わせが1つの装置に含まれて構成されていてもよい。例えば、第二端末装置16、復号装置200、受信ユニット15がそれぞれ別個の装置として構成されていてもよいし、第二端末装置16、復号装置200及び受信ユニット15の組み合わせが1つの装置に含まれて構成されていてもよい。
【0024】
第一端末装置11、符号化装置100がそれぞれ別個の装置として構成されている場合、第一端末装置11と符号化装置100とが有線にて通信を行うようにしてもよいし無線通信を行うようにしてもよい。また、第二端末装置16、復号装置200がそれぞれ別個の装置として構成されている場合、第二端末装置16と復号装置200とが有線にて通信を行うようにしてもよいし無線通信を行うようにしてもよい。
【0025】
また、第一端末装置11と第二端末装置16との通信は、一方向の通信であってもよいし、双方向の通信であってもよい。特に、第一通信装置12が第二通信装置14へ一方的にデータを送信するようにしてもよいし、第二通信装置14から第一通信装置12へもデータを送信するようにしてもよい。
第二通信装置14から第一通信装置12へデータを送信する場合、その通信方式は、第一通信装置12から第二通信装置14へのデータ送信の通信方式と同じであってもよいし異なっていてもよい。
【0026】
図2は、符号化装置100の機能構成を示す概略構成図である。
図2に示すように、符号化装置100は、第一符号化部110と、オフセット処理部120と、変換部130と、インタリーバ140と、第二符号化部150とを備える。
第一符号化部110は、2元シンボルを入力としてL元(Lは、L≧2の整数)のシンボルを出力する畳込み演算を用いた符号化を行う。第一符号化部110は、外符号に該当する。
以下では、2元シンボルを入力としてL元のシンボルを出力する符号化をBILO(Binary-Input L-ary-Output)と称する。また、2元シンボルを入力として2元以上であるL元のシンボルを出力する畳込み演算を用いた符号化をBILO畳込み符号化、または、BILOCC(Binary-Input L-ary-Output Convolution Code(s))と称する。一般的な畳込み符号化が2元シンボルの入出力にて行われるのに対し、BILO畳込み符号化は、畳込み符号化を2元シンボル入力かつL元シンボル出力に拡張した符号化である。
【0027】
ここでは、第一符号化部110が、非再帰型BILO畳込み符号化を行う場合を例に説明する。非再帰型BILO畳込み符号化(非再帰型BILOCCとも称する)は、畳込み演算の出力を畳込み演算に入力するフィードバックが無いBILO畳込み符号化である。
一方、畳込み演算の出力を畳込み演算に入力するフィードバックが有るBILO畳込み符号化を、再帰型BILO畳込み符号化、または、再帰型BILOCCと称する。第一符号化部110が再帰型BILO畳込み符号化を行う場合については後述する。
【0028】
図3は、BILO畳込み符号化における入出力を示す説明図である。従って、
図3は、第一符号化部110への入出力を示す。
図3は、非再帰型BILO畳込み符号化と、再帰型BILO畳込み符号化とに共通である。
図3で、u
0、u
1、・・・、u
m−1の各々は、2元シンボルを示す。mは、m≧1の整数である。このように、BILO畳込み符号化における入力シンボル数mは、1であってもよいし2以上であってもよい。2元シンボルの符号アルファベットを{0,1}と表記すると、BILO畳込み符号化における入力符号アルファベットは、{0,1}
mと表される。
【0029】
また、c
0、c
1、・・・、c
l−1の各々は、L元シンボルを示す。lは、l≧1の整数である。また、上述したように、Lは、L≧2の整数である。このように、BILO畳込み符号化における出力シンボル数lは、1であってもよいし2以上であってもよい。L元シンボルの符号アルファベットを{0,1,・・・,L−1}と表記すると、BILO畳込み符号化における出力符号アルファベットは、{0,1・・・,L−1}
lと表される。
m、L及びlの値は、L×l>mとなるように設定される(ここでは、「×」はスカラ積を示す)。これにより、BILO畳込み符号化に冗長性が生じ、復号の際の誤り訂正能力を得られる。
【0030】
図4は、入力シンボル数、出力シンボル数がいずれも1の場合の第一符号化部110の構成例を示す説明図である。従って、
図4は、入力シンボル数、出力シンボル数がいずれも1の場合の非再帰型BILO畳込み符号化装置の構成例を示している。
図4の例で、第一符号化部110は、シフトレジスタ111と、畳込み演算部112とを備える。また、
図3を参照して説明したように、入力シンボルu
0は2元シンボルであり、出力シンボルc
0はL元シンボルである。
【0031】
シフトレジスタ111は、P段(Pは、P≧1の整数)のメモリR1
1〜R1
Pを備えている。これらメモリR1
1〜R1
Pは、それぞれ1つの二元シンボルを記憶する。
入力シンボルu
0が第一符号化部110に入力される毎に、畳込み演算部112が出力シンボルc
0を算出する。そして、畳込み演算部112が出力シンボルc
0を算出する毎に、シフトレジスタ111は、メモリR1
1、R1
2、・・・、R1
P−1に記憶しているシンボルをそれぞれメモリR1
2、R1
3、・・・、R1
Pへシフトさせ、メモリR1
1には入力シンボルu
0を記憶する。
【0032】
従って、新たな入力シンボルu
0が第一符号化部110に入力されたタイミングでは、メモリR1
1、R1
2、・・・、R1
Pは、それぞれ1つ前の入力シンボルu
0、2つ前の入力シンボルu
0、・・・、P個前の入力シンボルu
0を記憶している。畳込み演算部112は、新たに入力された入力シンボルu
0、及び、シフトレジスタ111が記憶している1つ前の入力シンボルu
0〜P個前の入力シンボルu
0を用いて出力シンボルc
0を算出する。
【0033】
以下では、第一符号化部110へのi番目の入力をx
iと表記する。ここでは、iは、i≧0の整数である。ここでいう入力は、1つの入力シンボル、または、後述するように入力シンボルのベクトルである。従って、ここでいう入力は、1つ以上の入力シンボルからなるベクトルで表される。
以下では、最新の入力シンボルu
0がt番目(tは、t≧0の整数)の入力x
tであるとする。シフトレジスタ111がメモリR1
1、R1
2、・・・、R1
Pに記憶している1つ前の入力シンボルu
0、2つ前の入力シンボルu
0、・・・、P個前の入力シンボルu
0は、それぞれ入力x
t−1、x
t−2、・・・、x
t−Pで表される。
なお、x
−1、x
−2、・・・、x
−Pは、それぞれメモリR1
1、R1
2、・・・、R1
Pの初期値を示す。
【0034】
図4の例で、畳込み演算部112は、P+1個の乗算器M1
0〜M1
Pと、1つの加算器A1とを備える。これら乗算器M1
0〜M1
Pの各々が行う乗算、及び、加算器A1が行う加算は、いずれもL元の有限体(ガウス体)GF(L)で定義される。従って、畳込み演算部112が行う演算は、いずれもGF(L)で閉じており、加算器A1が算出する和である出力シンボルc
0は、L元シンボルである。
【0035】
乗算器M1
pは、t−p番目の入力x
t−pに係数f
pを乗算する。ここで、pは、0≦p≦Pの整数である。また、係数f
0、f
1、・・・f
Pは、いずれもL元シンボルの定数である。
以下では、2元の入力符号アルファベットの0元「0」、単位元「1」が、それぞれL元の出力符号アルファベットの0元「0」、単位元「1」に対応付けられる場合を例に説明する。但し、入力符号アルファベットと出力符号アルファベットとの対応付けはこれに限らない。入力符号アルファベットの2つのシンボルが、出力符号アルファベットの異なる2つのシンボルに対応付けられて、第一符号化部110がいずれの出力符号アルファベットも出力可能であればよい。
加算器A1は、乗算器M1
0、M1
1、・・・、M1
Pが算出した積の和を算出する。
畳込み演算部112が行う演算は、式(1)のように表される。
【0037】
式(1)に示されるように、畳込み演算部112は、最新の入力x
0及びシフトレジスタ111が記憶している直近の過去P回分の入力x
1〜x
Pに対して畳込み演算を行う。上述したように、畳込み演算部112は、L元で閉じた畳込み演算を行って、L元シンボルを出力する。第一符号化部110が、畳込み演算を用いた符号化を行うことが、式(1)によって示されている。
【0038】
図5は、入力シンボル数、出力シンボル数がいずれも1であり、Lが3である場合の、第一符号化部110の構成例を示す説明図である。
図5の例では、出力符号アルファベットは、{0,1,2}と表される。また、
図5の例では、シフトレジスタ111の段数P=2である。
図6は、Lが3の場合に畳込み演算部112が行う乗算の例を示す説明図である。
図6に示す乗算は、出力符号アルファベット{0,1,2}で閉じている。
図7は、Lが3の場合に畳込み演算部112が行う加算の例を示す説明図である。
図7に示す加算は、出力符号アルファベット{0,1,2}で閉じている。
【0039】
図8は、
図5の構成による符号化のトレリス線図である。
図8に示されるように、この符号化における出力シンボルの出現確率は、出力シンボル「0」、「1」、「2」それぞれ4分の1、4分の1、2分の1である。
このように、Lが2の整数乗以外である場合(
図8の例ではL=3)、出力シンボルの出現確率に偏りが生じる。そこで、後述するようにオフセット処理部120が第一符号化部110の出力シンボルにオフセットを加える。これにより、内符号における入出力間の相互情報量の低下を低減させ、変換部130が第一符号化部110の出力シンボルをQAMシンボルにマッピングする際のQAMシンボルの出現確率の偏りを低減させることができる。
【0040】
図9は、入力シンボル数、出力シンボル数がいずれも1であり、Lが5である場合の、第一符号化部110の構成例を示す説明図である。
図9の例では、出力符号アルファベットは、{0,1,2,3,4}と表される。また、
図9の例では、シフトレジスタ111の段数P=2である。
図10は、Lが5の場合に畳込み演算部112が行う乗算の例を示す説明図である。
図10に示す乗算は、出力符号アルファベット{0,1,2,3,4}で閉じている。
図11は、Lが5の場合に畳込み演算部112が行う加算の例を示す説明図である。
図10に示す加算は、出力符号アルファベット{0,1,2,3,4}で閉じている。
【0041】
図12は、
図9の構成による符号化のトレリス線図である。
図12に示されるように、この符号化における出力シンボルの出現確率は、出力シンボル「0」、「1」、「2」、「3」、「4」それぞれ4分の1、8分の1、4分の1、8分の1、4分の1である。
図8の場合と同様、
図12の場合も、出力シンボルの出現確率に偏りが生じている。
【0042】
図13は、入力シンボル数、出力シンボル数がいずれも1であり、Lが4である場合の、第一符号化部110の構成例を示す説明図である。
図13の例では、出力符号アルファベットは、{0,1,2,3}と表される。また、
図13の例では、シフトレジスタ111の段数P=2である。
図14は、Lが4の場合に畳込み演算部112が行う乗算の例を示す説明図である。
図10に示す乗算は、出力符号アルファベット{0,1,2,3}で閉じている。
図15は、Lが4の場合に畳込み演算部112が行う加算の例を示す説明図である。
図10に示す加算は、出力符号アルファベット{0,1,2,3}で閉じている。
【0043】
図16は、
図13の構成による符号化のトレリス線図である。
図16に示されるように、この符号化における出力シンボルの出現確率は、出力シンボル「0」、「1」、「2」、「3」いずれも4分の1である。
このように、Lが2の整数乗である場合(
図8の例ではL=2
2=4)、出力シンボルの出現確率に偏りが生じないように畳込み演算部112を構成し得る。出力シンボルの出現確率に偏りが生じていない場合、オフセット処理部120が、後述するオフセットの加算を行わないようにしてもよい。
【0044】
図3を参照して説明したように、BILO畳込み符号化における入力シンボル数は1に限らない。
図17は、入力シンボル数がm(上述したように、mは、m≧1の整数)、かつ、出力シンボル数が1の場合の第一符号化部110の構成例を示す説明図である。従って、
図17は、入力シンボル数が1以上、かつ、出力シンボル数が1の場合の非再帰型BILO畳込み符号化装置の構成例を示している。
図17の例で、第一符号化部110は、シフトレジスタ111と、畳込み演算部112とを備える。また、
図3を参照して説明したように、入力シンボルu
0〜u
m−1はいずれも2元シンボルであり、出力シンボルc
0はL元シンボルである。
【0045】
シフトレジスタ111は、m個のP段(Pは、P≧1の整数)のメモリR2
0,1〜R2
m−1,Pを備えている。これらメモリR2
1,1〜R2
m−1,Pは、それぞれ1つの二元シンボルを記憶する。
入力シンボルu
0が第一符号化部110に入力される毎に、畳込み演算部112が出力シンボルc
0を算出する。そして、畳込み演算部112が出力シンボルc
0を算出する毎に、シフトレジスタ111は、メモリR2
i,1、R2
i,2、・・・、R2
i,P−1に記憶しているシンボルをそれぞれメモリR2
i,2、R2
i,3、・・・、R2
i,Pへシフトさせ、メモリR2
i,1には入力シンボルu
iを記憶する。ここでは、iは、0≦i≦m−1の整数である。
【0046】
従って、新たな入力シンボルu
0〜u
m−1が第一符号化部110に入力されたタイミングでは、メモリR2
i,1、R2
i,2、・・・、R2
i,Pは、それぞれ1つ前の入力シンボルu
i、2つ前の入力シンボルu
i、・・・、P個前の入力シンボルu
iを記憶している。畳込み演算部112は、新たに入力された入力シンボルu
0〜u
m−1と、シフトレジスタ111が記憶している1つ前の入力シンボルu
0〜u
m−1、2つ前の入力シンボルu
0〜u
m−1、・・・P個前の入力シンボルu
0〜u
m−1とを用いて出力シンボルc
0を算出する。
【0047】
以下では、第一符号化部110へのi番目の入力をx
iと表記する。ここでは、iは、i≧0の整数である。ここでは、入力は、入力シンボルのベクトル(u
0,u
1,・・・,u
m−1)である。
図4の場合と同様、以下では、最新の入力シンボルu
0がt番目(tは、t≧0の整数)の入力x
tであるとする。シフトレジスタ111がメモリR2
0,1、R2
1,1、・・・、R2
m−1,1に記憶している1つ前の入力シンボルのベクトル(u
0,u
1,・・・,u
m−1)は、入力x
t−1で表される。シフトレジスタ111がメモリR2
0,2、R2
1,2、・・・、R2
m−1,2に記憶している2つ前の入力シンボルのベクトル(u
0,u
1,・・・,u
m−1)は、入力x
t−2で表される。・・・シフトレジスタ111がメモリR2
0,P、R2
1,P、・・・、R2
m−1,Pに記憶しているP個前の入力シンボルのベクトル(u
0,u
1,・・・,u
m−1)は、入力x
t−Pで表される。
なお、x
−1は、メモリR2
0,1、R2
1,1、・・・、R2
m−1,1の初期値を示す。x
−2は、メモリR2
0,2、R2
1,2、・・・、R2
m−1,2の初期値を示す。・・・x
−Pは、メモリR2
0,P、R2
1,P、・・・、R2
m−1,Pの初期値を示す。
【0048】
図17の例で、畳込み演算部112は、m×(P+1)個(「×」は、スカラ積)の乗算器M2
0,o〜M2
m−1,pと、1つの加算器A2とを備える。これら乗算器M1
0〜M1
Pの各々が行う乗算、及び、加算器A2が行う加算は、いずれもL元の有限体(ガウス体)GF(L)で定義される。従って、畳込み演算部112が行う演算は、いずれもGF(L)で閉じており、加算器A2が算出する和である出力シンボルc
0は、L元シンボルである。
【0049】
乗算器M2
0,p〜M2
m−1,pの組み合わせは、t−p番目の入力x
t−pの要素u
0、u
1、・・・、u
m−1に、それぞれ係数f
0,p、f
1,p、・・・、f
m−1,pを乗算する。上述したように、pは、0≦p≦Pの整数である。また、係数f
0,0、f
1,0、・・・f
m−1,0、f
0,1、f
1,1、・・・f
m−1,1、・・・、f
0,P、f
1,P、・・・f
m−1,Pは、いずれもL元シンボルの定数である。
【0050】
加算器A1は、乗算器M2
0,0、M2
1,0、・・・、M2
m−1,0、M2
0,1、M2
1,1、・・・、M2
m−1,1、・・・、M2
0,P、M2
1,P、・・・、M2
m−1,Pが算出した積の和を算出する。
係数のベクトル(f
0,p,f
1,p,・・・,f
m−1,p)をf
pと記載すると、演算部112が行う演算は、式(2)のように表される。
【0052】
ここで、「T」は転置行列を示し、x
t−pTは、ベクトルx
t−pを転置した列ベクトルを示す。
式(2)に示されるように、畳込み演算部112は、最新の入力x
0及びシフトレジスタ111が記憶している直近の過去P回分の入力x
1〜x
Pに対して畳込み演算を行う。上述したように、畳込み演算部112は、L元で閉じた畳込み演算を行って、L元シンボルを出力する。第一符号化部110が、畳込み演算を用いた符号化を行うことが、式(2)によって示されている。
【0053】
また、
図3を参照して説明したように、BILO畳込み符号化における出力シンボル数は1に限らない。畳込み演算部112が、
図17の畳込み演算部112に示す構成をl個備え、それぞれの構成で畳込み演算を行うことで、l個の出力シンボルc
0〜c
l−1を得られる。
【0054】
図18は、入力シンボル数、出力シンボル数がいずれも2であり、シフトレジスタ111のメモリの段数Pが1である場合の、第一符号化部110の構成例を示す説明図である。
図18の例で、第一符号化部110は、シフトレジスタ111と、畳込み演算部112とを備える。また、
図3を参照して説明したように、入力シンボルu
0、u
1はいずれも2元シンボルであり、出力シンボルc
0、c
1はいずれもL元シンボルである。
シフトレジスタ111は、2個かつ1段のメモリR2
0,1、R2
1,1を備えている。これらのメモリは、
図17のメモリR2
0,1、R2
1,1と同様であり、同一の符号を付している。
【0055】
また、
図18の例で、畳込み演算部112は、8つの乗算器M
0(00)、M
1(00)、M
0(01)、M
1(01)、M
0(10)、M
1(10)、M
0(11)、及び、M
1(11)と、2つの加算器A
0及びA
1とを備えている。
図18の乗算器M
0(00)、M
1(00)、M
0(10)、M
1(10)は、それぞれ
図17の乗算器M2
0,0、M2
0,1、M2
1,0、M2
1,1に対応する。
図18の係数f
0(00)、f
1(00)、f
0(10)、f
1(10)は、それぞれ
図17の係数f
0,0、f
0,1、f
1,0、f
1,1に対応する。
図18の加算器A
0は、
図17の加算器A2に対応する。
【0056】
図18の構成で、畳込み演算部112は、これら乗算器M
0(00)、M
1(00)、M
0(10)及びM
1(10)と、係数f
0(00)、f
1(00)、f
0(10)及びf
1(10)と、加算器加算器A
0との組み合わせにて畳込み演算を行って、出力シンボルc
0を算出する。
同様に、畳込み演算部112は、乗算器M
0(01)、M
1(01)、M
0(11)及びM
1(11)と、係数f
0(01)、f
1(01)、f
0(11)及びf
1(11)と、加算器加算器A
1との組み合わせにて畳込み演算を行って、出力シンボルc
1を算出する。
【0057】
図19は、入力シンボル数、出力シンボル数がいずれも2であり、シフトレジスタ111のメモリの段数Pが2である場合の、第一符号化部110の構成例を示す説明図である。
図19の例で、第一符号化部110は、シフトレジスタ111と、畳込み演算部112とを備える。また、
図3を参照して説明したように、入力シンボルu
0、u
1はいずれも2元シンボルであり、出力シンボルc
0、c
1はいずれもL元シンボルである。
シフトレジスタ111は、2個ずつ2段のメモリR2
0,1、R2
1,1、R2
0,2、R2
1,2を備えている。これらのメモリは、
図17のメモリR2
1,1、R2
0,2、R2
1,2と同様であり、同一の符号を付している。
【0058】
また、
図19の例で、畳込み演算部112は、12つの乗算器M
0(00)、M
1(00)、M
2(00)、M
0(01)、M
1(01)、M
2(01)、M
0(10)、M
1(10)、M
2(10)、M
0(11)、M
1(11)、及び、M
2(11)と、2つの加算器A
0及びA
1とを備えている。
また、
図19では、係数をベクトルで表している。具体的には、f
(00)=(f
0(00),f
1(00),f
2(00))であり、係数f
0(00)、f
1(00)、f
2(00)は、それぞれ乗算器M
0(00)、M
1(00)、M
2(00)で用いられる。また、f
(01)=(f
0(01),f
1(01),f
2(01))であり、係数f
0(01)、f
1(01)、f
2(01)は、それぞれ乗算器M
0(01)、M
1(01)、M
2(01)で用いられる。f
(10)=(f
0(10),f
1(10),f
2(10))であり、係数f
0(10)、f
1(10)、f
2(10)は、それぞれ乗算器M
0(10)、M
1(10)、M
2(10)で用いられる。f
(11)=(f
0(11),f
1(11),f
2(11))であり、係数f
0(11)、f
1(11)、f
2(11)は、それぞれ乗算器M
0(11)、M
1(11)、M
2(11)で用いられる。
【0059】
図19の乗算器M
0(00)、M
1(00)、M
2(00)、M
0(10)、M
1(10)、M
2(10)は、それぞれ
図17の乗算器M2
0,0、M2
0,1、M2
0,2、M2
1,0、M2
1,1、M2
1,2に対応する。
また、
図19の係数f
0(00)、f
1(00)、f
2(00)、f
0(10)、f
1(10)、f
2(10)は、それぞれ
図17の係数f
0,0、f
0,1、f
0,2f
1,0、f
1,1、f
1,2に対応する。
図19の加算器A
0は、
図17の加算器A2に対応する。
【0060】
図19の構成で、畳込み演算部112は、これら乗算器M
0(00)、M
1(00)、M
2(00)、M
0(10)、M
1(10)、及び、M
2(10)と、係数f
0(00)、f
1(00)、f
2(00)、f
0(10)、f
1(10)、及び、f
2(10)と、加算器加算器A
0との組み合わせにて畳込み演算を行って、出力シンボルc
0を算出する。
同様に、畳込み演算部112は、乗算器M
0(01)、M
1(01)、M
2(01)、M
0(11)、M
1(11)、及び、M
2(11)と、係数f
0(01)、f
1(01)、f
2(01)、f
0(11)、f
1(11)、及び、f
2(11)と、加算器加算器A
0との組み合わせにて畳込み演算を行って、出力シンボルc
1を算出する。
【0061】
図20は、入力シンボル数、出力シンボル数がいずれも2であり、Lが3である場合の、第一符号化部110の構成例を示す説明図である。
図20の例では、出力符号アルファベットは、{0,1,2}と表される。また、
図20の例では、シフトレジスタ111の段数P=1である。
図20の畳込み演算部112の乗算器は、例えば、
図6に示す演算を行う。
図20の畳込み演算部112の加算器は、例えば、
図7に示す演算を行う。
【0062】
図21は、入力シンボル数が1、出力シンボル数が2であり、Lが2である場合の、第一符号化部110の構成例を示す説明図である。
図21の例では、出力符号アルファベットは、{0,1}と表される。また、
図21の例では、シフトレジスタ111の段数P=2である。
図21の畳込み演算部112の加算器は、ビットの排他的論理を算出する。
このように、L=2の場合、畳込み演算部112は、ビット演算による畳込み演算を行う。
【0063】
図22は、
図21の構成による符号化のトレリス線図である。
図22に示されるように、この符号化における出力シンボルの出現確率は、出力シンボル「00」、「01」、「10」、「11」いずれも4分の1である。このように、Lが2の整数乗である場合(
図22の例ではL=2
1=2)、出力シンボルの出現確率に偏りが生じないように畳込み演算部112を構成し得る。
【0064】
オフセット処理部120は、第一符号化部110によって得られた出力シンボルの系列の要素に対して時系列で値が変化するオフセットを加える。
図23は、オフセット処理部120の機能構成を示す概略ブロック図である。
図23に示すように、オフセット処理部120は、振分け部121と、加算器122及び123とを備える。
振分け部121は、第一符号化部110からの出力シンボルをQAMのコンステレーションを示すIQ平面における実部の値と虚部の値とに振り分ける。
図23の経路W122は、実部の値を変換部130へ出力する経路である。経路W123は、虚部の値を変換部130へ出力する経路である。
【0065】
第一符号化部110の出力シンボル数が1の場合、オフセット処理部120は、第一符号化部110からの出力シンボルを実部の値、虚部の値に交互に振り分ける。すなわち、オフセット処理部120は、第一符号化部110からの出力シンボルを実部の値に振り分けた場合、次に第一符号化部110から受け取るシンボルを虚部の値に振り分ける。また、オフセット処理部120は、第一符号化部110からの出力シンボルを虚部の値に振り分けた場合、次に第一符号化部110から受け取るシンボルを実部の値に振り分ける。
【0066】
第一符号化部110の出力シンボル数が2の場合、オフセット処理部120は、第一符号化部110からの出力シンボルを実部の値、虚部の値に1つずつ振り分ける。具体的には、第一符号化部110からの2つの出力シンボルをc
0及びc
1とすると、オフセット処理部120は、出力シンボルc
0を実部の値に振分け、出力シンボルc
1を虚部の値に振分ける。
【0067】
第一符号化部110の出力シンボル数が3以上の場合、オフセット処理部120は、第一符号化部110からの出力シンボルを、一旦、1次元の系列に並び替え、出力シンボル数が1の場合と同様に実部の値、虚部の値に交互に振り分ける。例えば、第一符号化部110の出力シンボル数が3であり、第一符号化部110から出力シンボルc
0(t)、c
1(t)及びc
2(t)を受け取った場合、オフセット処理部120は、c
0(t)を実部に振分け、c
1(t)を虚部に振分け、c
2(t)を一旦バッファに蓄えておく。次に、第一符号化部110から出力シンボルc
0(t+1)、c
1(t+1)及びc
2(t+1)を受け取ると、オフセット処理部120は、c
2(t)を実部に振分け、c
0(t+1)を虚部に振り分ける。その後更に、オフセット処理部120は、c
1(t+1)を実部に振分け、c
2(t+1)を虚部に振分ける。
【0068】
加算器122は、第一符号化部110が実部の値に振り分けたシンボルにオフセットk
Iを加える。加算器123は、第一符号化部110が虚部の値に振り分けたシンボルにオフセットk
Qを加える。加算器122、123のいずれも、L元で閉じた加算(すなわち、第一符号化部110の出力アルファベットで閉じた加算)を行う。
オフセットk
I、k
Qの値は、いずれもL元の符号アルファベットを巡回する。一方、オフセットk
Iとオフセットk
Qとでは、値が巡回する周期が異なる。
【0069】
図24は、オフセット処理部120が、第一符号化部110からの出力シンボルに加えるオフセットの値の例を示す説明図である。
図24の横軸は時刻を示す。
図24では、L=3の場合の例に説明しており、オフセットk
I、k
Qのいずれの値も、符号アルファベット{0、1、2}を巡回している。
オフセットk
Qの値が「0」、「1」、「2」と順に変化し「0」に戻る毎に、オフセットk
Iの値が変化する。オフセットk
Iの値も、「0」、「1」、「2」と順に変化して「0」に戻る。
このように、オフセット処理部120が、第一符号化部110の出力シンボルにオフセットを加えることで、
図5〜
図8を参照して説明したように第一符号化部110の出力シンボルの出現確率に偏りがある場合に、出現確率を均一に近付けることができる。
【0070】
上述したL=3の場合に限らず、一般にLがL≧2の自然数の場合に、オフセットk
I及びk
Qの各々の値について、L=3の場合と同様に符号アルファベット{0,1,・・・,L−1}を巡回するようにすればよい。この場合も、k
Qの値が一巡する毎にk
Iの値を変化させればよい。
例えば、L=5の場合、オフセットk
I、k
Q共に{0,1,2,3,4}を巡回する。具体的には、オフセットk
Qの値が「0」、「1」、「2」、「3」、「4」と順に変化し「0」に戻る毎に、オフセットk
Iの値が変化する。オフセットk
Iの値も、「0」、「1」、「2」、「3」、「4」と順に変化して「0」に戻る。
但し、Lが2の整数乗である場合、第一符号化部110の出力シンボルの出現確率に偏りが生じない構成とすることができる。この場合は、オフセット処理部120が第一符号化部110からの出力シンボルにオフセットを加える処理を行わないようにしてもよい。
【0071】
変換部130は、第一符号化部110が出力したL元のシンボルの系列をL次の正方行列の要素の系列に変換する。特に、変換部130は、オフセット処理部120がオフセットを加えた系列をL次の正方行列の要素の系列に変換する。
具体的には、変換部130は、オフセット処理部120がIQ平面の実部の値、虚部の値に1つずつ振り分けた1組のシンボルを取得する毎に、取得したシンボルの組をL
2−QAMのシンボルにマッピングする。
変換部130がマッピングを行うQAMシンボルは複素数で表される。
【0072】
インタリーバ140は、変換部130の変換によって得られたL次の正方行列の要素の系列をインタリーブする。インタリーバ140が行うインタリーブは、ターボ符号におけるインタリーブと同様、反復復号を可能にするためのものである。インタリーバ140が行うインタリーブの方法として、例えばS−ランダムインタリーブなど公知の方法を用いることができる。
【0073】
第二符号化部150は、インタリーバ140によってインタリーブされたL次の正方行列の要素(L
2−QAMシンボル)を入力としてL次の正方行列の要素(L
2−QAMシンボル)を出力する畳込み演算を行い、当該畳込み演算の出力を当該畳込み演算の入力側へフィードバックする符号化を行う。第二符号化部150は、内符号に該当する。
以下では、第二符号化部150が行う符号化を再帰型畳込み格子符号と称する。第二符号化部150として、上記の非特許文献1に記載されている再帰型畳込み格子符号を用いることができる。
【0074】
図25は、第二符号化部150の構成例を示す説明図である。
図25の例で、第二符号化部150は、シフトレジスタ151と、再帰的畳込み演算部152aと、非再帰的畳込み演算部152bと、DC(Direct Current)シフト部153とを備える。再帰的畳込み演算部152aと、非再帰的畳込み演算部152bとの組み合わせを、畳込み演算部152と称する。
【0075】
シフトレジスタ151は、P段(Pは、P≧1の整数)のメモリを備えている。第一符号化部110のシフトレジスタ111の段数Pと、第二符号化部150のシフトレジスタ111の段数Pとは、同じであってもよいし異なっていてもよい。
シフトレジスタ151が備えるP段のメモリの各々は、第二符号化部150への入力であるL
2−QAMシンボルの複素数表現に、再帰的畳込み演算部152aによる畳込み演算結果のフードバックを加えた値を1つずつ記憶する。
図4のシフトレジスタ111の場合と同様、シフトレジスタ151は、第二符号化部150への入力がある毎に1段ずつシフトを行い、直近の過去P回分の値を記憶する。
【0076】
再帰的畳込み演算部152aは、シフトレジスタ151が記憶している値を用いて畳込み演算を行い、演算結果をシフトレジスタ151への入力にフィードバックする。具体的には、第二符号化部150への入力と再帰的畳込み演算部152aによる畳込み演算の結果とが加算されてシフトレジスタ151に入力される。
非再帰的畳込み演算部152bは、上記のシフトレジスタ151への入力とシフトレジスタ151が記憶している値とを用いて畳込み演算を行う。
【0077】
畳込み演算部152が行う加算及び乗算は、全てL
2−QAMシンボル内で閉じている。すなわち、畳込み演算部152が行う加算及び乗算のいずれでも、L
2−QAMシンボルが算出される。
ここで、畳込み演算部152が用いる係数の制約条件について説明する。
まず、実数部、虚数部がそれぞれ整数値の複素数であるガウス整数を、式(3)のZ[j]のように表記する。
【0079】
ここで、Zは整数の集合を示す。
また、実数部、虚数部がそれぞれ0以上かつL未満の整数値の複素数であるガウス整数を、式(4)のZ
L[j]のように定義する。
【0081】
ここで、Z
Lは、0以上かつL未満の整数の集合を示す。
Z
L[j]は、L
2−QAMの信号点と等価であり、第二符号化部150への入力信号は、Z
L[j]から選ばれる。すなわち、第二符号化部150への入力信号a
iは、a
i∈Z
L[j]と表される。
ここで、式(5)で示される形式的べき級数(Formal Power Series)Z[ω]を考える。
【0083】
ここで、ωは式(6)のように示される。
【0085】
また、N
bvは、ユークリッド空間上の基底ベクトル数を表す。N
bv≧1である。
さらに、式(7)のように示される商環(Quotient Ring)C(L,N
bv)を考える。
【0087】
この商環C(L,N
bv)は、式(8)を満たす。
【0089】
また、一般に、N
bv>1に対して式(9)が成り立つ。
【0091】
ここで、
図25の構成で畳込み演算部152が、非再帰的畳込み演算部152bを含まない場合を考える。具体的には、フィードフォワード係数f
0の値が1であり、フィードフォワード係数f
1〜f
Pの値がいずれも0である場合を考える。この場合、畳込み演算部152からの出力信号u
iは、式(10)のように示される。
【0093】
ここで、フィードバック係数h
p∈C(L,N
bv)と仮定すると、シェイピング係数biは、出力u
iが、u
i∈C(L,N
bv)を満たすようにZ[ω]から一意に決定される。
また、DCシフト部153は、畳込み演算部152からの出力u
iに対して、信号電力が最小になるように電圧のオフセットを加える。すなわち、DCシフト部153は、信号電力が最小となるように出力u
iをDCシフトさせる。DCシフト後の信号をu
i’と表記し、信号u
i’の平均電力をE{u
i’}で表すと、信号電力が最小となる条件は式(11)のように表される。
【0095】
また、DCシフト後の信号U
i’は、式(12)のように示される。
【0097】
ここで、E{u
i}は信号u
iの平均電力を示す。
また、
図25で、非再帰的畳込み演算部152bを含めた構成の第二符号化部150の出力u
iは、式(13)のように示される。
【0099】
式(13)のシェイピング係数b
iは、式(10)の場合と同様に、u
i∈C(L,N
bv)を満たすようにZ[ω]から一意に決定される。そのため、メモリへ入力される信号x
i−pは必ずしもx
i−p∈C(L,N
bv)を満たさない。ただし、x
i−pをx
i−pC∈C(L,N
bv)と、x
i−pL∈LZ[ω]とに分解して考えると、x
i−pLの成分は出力u
iに影響を及ぼさない。そこで、x
i−pCの成分のみをメモリに記憶させることで、効率的に状態数を低減させることができる。
【0100】
また、フィードフォワード係数f
0、f
1、・・・、f
Pは、フィードバック係数h
1〜h
Pの場合と同様にC(L,N
bv)から選ばれる。但し、出力u
iを拘束するために、フィードフォワード係数f
0のみ選択肢が2N
bvパタンに限定される。
【0101】
図26は、復号装置200の機能構成を示す概略ブロック図である。
図26に示すように、復号装置200は、第二復号部210と、デインタリーバ220と、第一復号部230と、インタリーバ240とを備える。
第二復号部210は、第二符号化部150が行った符号化に対する復号を行う。
デインタリーバ220は、インタリーバ140が行ったインタリーブと逆の変換を行う。
第一復号部230は、第一符号化部110が行った符号化に対する復号を行う。
インタリーバ240は、
図2のインタリーバ140と同様である。
【0102】
また、
図26のλは、シンボルの形態を示している。「c」は符号シンボルを示し、「u」は情報シンボルを示す。ここでいう符号シンボルは、通信に用いられた形式のシンボルであり、ここではQAMシンボルである。情報シンボルは、通信対象データに用いられている形式のシンボルであり、ここではバイナリデータ(2元シンボル)である。
また、「i」は内符号を示し、「o」は外符号を示す。また「I」は復号部(復号器)への入力を示し、「O」は復号部からの出力を示す。
以下、λが示すシンボルをシンボルλと表記する。
【0103】
図26に示す構成により、復号装置200は、ソフトインプット、ソフトアウトプット(Soft-Input Soft-Output;SISO)による反復復号を行う。シンボルλ(・;I)、λ(・;O)は、いずれもSISO復号器における対数尤度比(LLR)を示す。ここでの「・」はワイルドカードを示す。
対数尤度比LLRは、式(14)のλ(x,・)のように定義される。
【0105】
ここで、xはM元の符号アルファベットであり、x
refは、xから任意に選ばれたシンボルである。一般に、xが2元シンボル「0」、「1」である場合、x
refは「1」と仮定される。内符号がL=3の再帰型畳込み格子符号である場合、対応するSISO復号器は、サイズL
2のアルファベットに属する情報シンボルu
iと、式(15)に示されるサイズのアルファベットに属する符号語シンボルc
iに対して復号の操作を行う。
【0107】
一方、L=3の場合のBILO畳込み符号化に対応するSISO復号器では、再帰型畳込み格子符号に対応する復号器から出力される外部LLRをそのまま復号に用いる。つまり、
図2の第一符号化部110が行う符号化と、変換部130が行うQAMシンボルへのマッピングとが同時に復号される。
このとき、サイズ2
2のアルファベットに属する2元情報系列u
Oと、L
2−QAMに対応するサイズL
2のアルファベットに属する符号語シンボルc
Oとに対して復号を行うため、2ステージずつ統合したトレリス線図を用いて復号が行われる。
【0108】
図27は、2ステージずつ統合したトレリス線図の例を示す説明図である。
図27に示す
図F11は、統合前のトレリス線図である。
図F12は、
図F11のトレリス線図の2ステージ分を統合したトレリス線図である。統合により、1つのノードから4本の枝がでており、1つの枝に2回分の入力が示されている。また、出力も、2回分の出力を纏めた出力となっている。
【0109】
なお、
図26でλ(u
o;I)として入力されるuniform distribution(一様分布)信号は、バイナリデータの対数尤度比を示す信号であって、値が一様に分布しているものである。「λ(u
o;I)」が情報シンボルによる外符号の入力の対数尤度比を示しているのに対し、復号装置200が行う反復復号では、この値の更新を行わない。そこで、復号装置200は、λ(u
o;I)の分布が常に一様であるとして復号を行う。
例えば、λ(u
o;I)の値として「0」の系列を入力して復号を行うようにしてもよい。対数尤度比λ(u
o;I)の値0は、通信対象のバイナリデータに関する情報が何もないことを示している。
【0110】
ここで、SISO復号器の内部で行われる処理について説明する。
図28は、トレリスの状態遷移の例を示す説明図である。
図28に示す状態遷移eの始まりの状態をs
S(e)とし、状態遷移eでたどり着く状態をs
E(e)と表記する。また、状態遷移eに対応する入力シンボル、出力シンボルを、それぞれu(e)、c(e)と表記する。また、N状態の集合をS={s
1,・・・,s
N}とし、時間kにおけるトレリスの状態をS
k=sと表記する。ここで、s∈Sである。また、入力アルファベットのサイズをN
lとし、入力アルファベットの集合を式(16)のように表記する。
【0112】
すると、全ての状態遷移Εは式(17)のように表される。
【0114】
時間k=1,2,・・・,Kに対する符号語シンボルの外部LLR、λ
k(c;O)は、式(18)で計算される。
【0116】
また、時間kに対する情報シンボルの外部LLR、λ
k(u;O)は、式(19)で計算される。
【0118】
ここで、α
k(s)の初期値α
0(s)を式(20)のように定める。
【0120】
また、β
k(s)の初期値β
0(s)を式(21)のように定める。
【0122】
前向きの計算の式は、式(22)のように示される。
【0124】
後ろ向きの計算の式は、式(23)のように示される。
【0126】
α
k(s)及びβ
k(s)は、式(20)〜(23)を用いた再帰計算によって求められる。
また、演算max
*は、式(24)のように示される。
【0128】
ここで、δ(a
1,a
2,・・・,a
j)は、再帰計算によって求められる補正項である。δは、予め与えられる関数である。
次に、符号化装置100及び復号装置200を用いた符号化及び復号におけるビット誤り率(BER)特性及びフレーム誤り率(FER)特性のシミュレーション結果について説明する。
シミュレーションでは、外符号に拘束長K=4、L=3のBIRO畳込み符号化を用いた。内符号には、メモリ数1、L=3の再帰型畳込み格子符号を用いた。情報長163844096ビットに対し、ブロック長(フレーム長)8192、2048のそれぞれでシミュレーションを行った。全体の情報レートは2[ビット/シンボル]となっている。また、ブロック長8192、2048でのシミュレーションに対し、それぞれスプレッド値45、22のS−ランダムインタリーバを用いた。
符号の最適化は全探索によって行い、本シミュレーションでは最適な符号として、外符号は生成多項式[2+2D
2]を用いた。内符号には、
図25でメモリ数1の構成を用いた。係数h
1として、式(25)に示す係数を用いた。
【0130】
係数f
0として、式(26)に示す係数を用いた。
【0132】
係数f
1として、式(27)に示す係数を用いた。
【0134】
再帰型畳込み格子符号の終端処理に関しては、最終状態を4回繰り返し送信することで行う。また、外符号であるBIRO畳込み符号には、再帰構造が無いものを使用しており、上記のように拘束長K=4であるので、0を3ビット入力することで行う。但し、終端ビットを9−QAMへマッピングする際、不足する1ビット分を0で埋め、2シンボルを追加で送信する。以上より、外符号と内符号との合計で6シンボルを追加で送信することによって終端処理を行う。終端処理によって、ブロック長は、上記の8192、2048から、それぞれ8198、2054となる。
【0135】
図29は、シミュレーション結果を示すグラフである。
図29の横軸は信号対雑音比(Signal-To-Noise Ratio;SNR)[単位:dB]を示す。横軸は、フレーム誤り率(FER)及びビット誤り率(BER)を示す。
線L11は、情報レート2[ビット/シンボル]におけるシャノン限界を示す。線L21は、ブロック長2048でのフレーム誤り率を示す。線L22は、ブロック長2048でのビット誤り率を示す。線L31は、ブロック長8192でのフレーム誤り率を示す。線L32は、ブロック長8192でのビット誤り率を示す。
【0136】
線L22に示されるように、ブロック長8198におくて、線L11のシャノン限界から1デシベル離れた信号対雑音比で、ビット誤り率10
−3を達成しており、エラーフロアは、ビット誤り率10
−6以下まで観測されない。また、フレーム誤り率では、10
−2以下でエラーフロアが発生するが、フロック長8198において、FER10
−2を、シャノン限界から1.06デシベル離れた信号対雑音比で達ししている。
また、ブロック長2054の場合も優れた誤り率特性を示しており、符号が比較的短い場合でも、優れた誤り訂正能力を有していることが示されている。
【0137】
以上のように、第一符号化部110は、2元シンボルを入力として2元以上であるL元のシンボルを出力する畳込み演算を用いた符号化を行う。変換部130は、第一符号化部110が出力したL元のシンボルの系列をL次の正方行列の要素の系列に変換する。インタリーバ140は、変換部130の変換によって得られたL次の正方行列の要素の系列をインタリーブする。第二符号化部150は、インタリーバによってインタリーブされたL次の正方行列の要素を入力としてL次の正方行列の要素を出力する畳込み演算を行い、当該畳込み演算の出力を当該畳込み演算の入力側へフィードバックする符号化を行う。
【0138】
変換部130の変換によって得られるシンボルは、L
2−QAMシンボルと等価である。符号化装置100によれば、この点で、比較的容易に直交振幅変調を用いて通信を行うことができる。
また、復号側(復号装置200)では、ソフトインプット、ソフトアウトプットの反復復号を行うことができ、この点で復号を高精度に行うことができる。
また、第一符号化部110からの出力が第一符号化部110に入力される、いわば縦続接続(タンデム接続)の構成により、第一符号化部110からの出力と第二符号化部150からの出力とを別個に送信する必要無しに、復号側でソフトインプット、ソフトアウトプットの反復復号を行うことができる。符号化装置100によれば、この点で、高い伝送レートを得られる。
【0139】
また、オフセット処理部120は、第一符号化部110によって得られた系列の要素に対して時系列で値が変化するオフセットを加える。
これにより、Lが2の自然数乗以外、かつ3以上の自然数である場合でも、第一符号化部110が再帰的な符号化を行う必要無しに、QAMシンボルの出現確率の偏りを低減させることができる。
また、第一符号化部110が再帰的な符号化を行う必要が無い点で、復号の負荷を抑えることができる。
【0140】
一方、第一符号化部110が、再帰的な符号化(再帰型BILO畳込み符号化)を行うようにしてもよい。
図30は、再帰的な符号化を行う第一符号化部110の構成の例を示す説明図である。
図30の例では、第一符号化部110は、
図4等の場合と同様、シフトレジスタ111と、畳込み演算部112とを備える。さらに、
図30の例では、第一符号化部110は、フィードバック部113を備える。
フィードバック部113は、シフトレジスタ111が出力したシンボルをシフトレジスタ111への入力にフィードバックする。
このように、第一符号化部110が再帰型の符号化を行うことで、第一符号化部110が非再帰型の符号化を行う場合と比較して、Lが2の自然数乗以外、かつ3以上の自然数である場合でも、第一符号化部110が出力するL元シンボルの出現確率の偏りを低減させることができる。
従って、オフセット処理部120が、第一符号化部110によって得られた系列の要素に対してオフセットを加える処理が不要となり、この点で符号化装置100の負荷を低減させることができる。
【0141】
なお、符号化装置100が行う演算及び制御の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0142】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。