(57)【特許請求の範囲】
【請求項１】
無線通信規格に応じて、符号化率、拘束長および生成多項式の３種のパラメータを自由に設定可能な設定レジスタと、
入力信号に対してブランチメトリックを計算し、前記設定レジスタから与えられた符号化率に応じた数のブランチメトリック情報を生成するブランチメトリック演算部と、
０＿００００＿００００（ｂｉｎａｒｙ）〜１＿１１１１＿１１１１（ｂｉｎａｒｙ）までの擬似データに基づき送信側の符号化器の仕様を再現するように、前記設定レジスタから与えられた生成多項式に基づいて、前記ブランチメトリック情報の選択に係わる設定情報を生成するレプリカ生成部と、
前記レプリカ生成部から与えられた設定情報に基づいて、前記ブランチメトリック演算部で生成された複数のブランチメトリック情報の中から、上方ブランチメトリックおよび下方ブランチメトリックを選択するブランチメトリック選択部と、
前記ブランチメトリック選択部で選択された上方ブランチメトリックおよび下方ブランチメトリックに基づいて、トレリス線図のステップごとにパスメトリックを求め、勝ち残りブランチとパスメトリック値を求めるＡＣＳ部と、
前記ＡＣＳ部から出力された勝ち残りブランチとパスメトリック値を保持するパスメモリ部と、
前記パスメモリ部に保持された勝ち残りブランチを読み出し、トレリス経路を遡って最短のパスメトリックを求めるトレースバック部と、
を備えることを特徴とするビタビ復号回路。
【請求項２】
前記レプリカ生成部から与えられた設定情報を保持するテーブルを有することを特徴とする請求項１に記載のビタビ復号回路。
【請求項３】
前記ブランチメトリック演算部は、前記設定レジスタから与えられた符号化率が１／３であるときに、入力信号Ａ、入力信号Ｂおよび入力信号Ｃに対して８個のブランチメトリック情報を生成することを特徴とする請求項１または２に記載のビタビ復号回路。
【請求項４】
前記ブランチメトリック演算部は、前記設定レジスタから与えられた符号化率が１／２であるときに、入力信号Ｃを所定の値に固定し、入力信号Ａおよび入力信号Ｂに対して４個のブランチメトリック情報を生成することを特徴とする請求項１または２に記載のビタビ復号回路。
【請求項５】
前記レプリカ生成部は、
前記０＿００００＿００００（ｂｉｎａｒｙ）〜１＿１１１１＿１１１１（ｂｉｎａｒｙ）までの擬似データを順に生成する擬似入力データ系列生成器と、
前記擬似入力データ系列生成器で生成された擬似データが設定される９個のフリップフロップからなるシフトレジスタを有し、送信側の符号化器の内部状態を表す状態番号と、上方ブランチメトリックと下方ブランチメトリックのいずれであるかを示す上方／下方ブランチメトリック情報を前記設定情報の一つとして出力する擬似入力データ系列設定部と、
前記シフトレジスタの入力および同シフトレジスタの各フリップフロップの出力をそれぞれ一方の入力とし、かつ前記レプリカ生成部から与えられた第１の生成多項式の各ビットの値をもう一方の入力とする９個のアンドゲートからなる第１のアンドゲート群と、
前記シフトレジスタの入力および同シフトレジスタの各フリップフロップの出力をそれぞれ一方の入力とし、かつ前記レプリカ生成部から与えられた第２の生成多項式の各ビットの値をもう一方の入力とする９個のアンドゲートからなる第２のアンドゲート群と、
前記シフトレジスタの入力および同シフトレジスタの各フリップフロップの出力をそれぞれ一方の入力とし、かつ前記レプリカ生成部から与えられた第３の生成多項式の各ビットの値をもう一方の入力とする９個のアンドゲートからなる第３のアンドゲート群と、
前記第１のアンドゲート群の各アンドゲートの出力の排他的論理和演算を行い、その演算結果を前記設定法情報の一つである入力信号Ａの候補として出力する第１の排他的論理和演算器と、
前記第２のアンドゲート群の各アンドゲートの出力の排他的論理和演算を行い、その演算結果を前記設定法情報の一つである入力信号Ｂの候補として出力する第２の排他的論理和演算器と、
前記第３のアンドゲート群の各アンドゲートの出力の排他的論理和演算を行い、その演算結果を前記設定法情報の一つである入力信号Ｃの候補として出力する第３の排他的論理和演算器と、
を備えることを特徴とする請求項３または４に記載のビタビ復号回路。
【請求項６】
前記ブランチメトリック選択部は、前記レプリカ生成部から与えられた入力信号Ａの候補、入力信号Ｂの候補および入力信号Ｃの候補の組み合わせに応じて、前記ブランチメトリック演算部から与えられた複数のブランチメトリック情報の中から、上方ブランチメトリックと下方ブランチメトリックを選択することを、送信側の符号化器の全状態数分、行うことを特徴とする請求項５に記載のビタビ復号回路。
【請求項７】
前記ＡＣＳ部は、送信側の符号化器の全状態数と同じかそれ以上の数のＡＣＳ演算器を有し、前記ブランチメトリック選択部から与えられた、送信側の符号化器の全状態数分の上方ブランチメトリックと下方ブランチメトリックに対して、送信側の符号化器の全状態数と同じ数のＡＣＳ演算器を用いて、１回の処理で送信側の符号化器の全状態数に対応するＡＣＳ演算を行うことを特徴とする請求項６に記載のビタビ復号回路。
【請求項８】
前記ＡＣＳ部は、複数のＡＣＳ演算器を有し、前記ブランチメトリック選択部から与えられた、送信側の符号化器の全状態数分の上方ブランチメトリックと下方ブランチメトリックに対して、送信側の符号化器の全状態数よりも少ない数のＡＣＳ演算器を用いて、時分割処理で送信側の符号化器の全状態数に対応するＡＣＳ演算を行うことを特徴とする請求項６に記載のビタビ復号回路。
【請求項９】
上記請求項１〜８のいずれか一つに記載のビタビ復号回路を備えることを特徴とする無線機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビタビ復号回路および無線機に関するものである。
【背景技術】
【０００２】
無線通信では、伝送途中で受ける外乱により送信データが障害を受け、データに誤りが発生することがある。そのため、送信側で誤り訂正符号化を施してデータを送信し、受信側で受信したデータの誤りを訂正できるようにしている。ビタビ復号回路は、受信側でこの誤り訂正を行う回路である。また、ソフトウェア無線機は、従来ハードウェアで実現していた無線処理を、１台のハードウェアのソフトウェアを書き換えることで対応させるようにした無線機であり、その主要な構成回路の一つに上記ビタビ復号回路がある。
【０００３】
従来のビタビ復号回路について説明する前に、理解を容易にするため、送信側で誤り訂正符号化を行う符号化器について簡単に説明する。広く用いられている誤り符号化器の一つに、たたみ込み符号化器がある。たたみ込み符号化器は、（１）符号化率、（２）拘束長および（３）生成多項式の３種のパラメータにより一意に表される。これら３種のパラメータは、例えば無線ＬＡＮや第三世代携帯電話などの無線通信規格ごとに定められている。
【０００４】
図１６は、たたみ込み符号化器の一例を示す図である。ここでは、説明が煩雑になるのを避けるため、符号化率が１／２であり、拘束長が３であり、生成多項式のＧ０およびＧ１がそれぞれ１１１（ｂｉｎａｒｙ）および１０１（ｂｉｎａｒｙ）であるとする。なお、拘束長が３であるたたみ込み符号化器は、実際には用いられていない。
【０００５】
上記パラメータにおいて、符号化率１／２とは、図１６に示すように、１入力２出力を意味する。入力情報１に対して出力情報が出力Ａと出力Ｂの２つであるから、入力情報が２倍に冗長化（頑健化）されたことになる。拘束長３は、１つの入力と２つのフリップフロップ（ＦＦ）１，２を合わせて、合計３つのノードＮ１，Ｎ２，Ｎ３が存在することを意味する。２つのフリップフロップ１，２が保持し得るデータの組み合わせが、０と０、０と１、１と０、および１と１の４パターンあることから、拘束長３は、状態数４ともいわれる。
【０００６】
生成多項式Ｇ０およびＧ１は、各ノードの排他的論理和（ＥＯＲ）の組み合わせを意味する。Ｇ０は、出力Ａの生成多項式であり、Ｇ１は、出力Ｂの生成多項式である。出力Ａは、ＥＯＲゲート３により後段のフリップフロップ２と前段のフリップフロップ１と入力の３つの値の排他的論理和を取るので、出力Ａの生成多項式Ｇ０は、１１１（ｂｉｎａｒｙ）となる。また、出力Ｂは、ＥＯＲゲート４により前段のフリップフロップ１と入力の２つの値の排他的論理和を取るので、出力Ｂの生成多項式Ｇ１は、１０１（ｂｉｎａｒｙ）となる。
【０００７】
従って、図１６に示すたたみ込み符号化器では、その出力は、現在の入力データとその直前の２サイクル分の入力データによって決まる。たたみ込み符号化器への入力のデータ系列が変わることにより、フリップフロップ１，２が保持する値、すなわちフリップフロップ１，２の内部の状態が変わり、出力Ａと出力Ｂのデータ系列が決まることになる。
【０００８】
次に、ビタビ復号回路について説明する。ビタビ復号回路は、符号化器の状態と出力データ系列に基づいて、符号化器への最も確からしい入力データを推定する。送信側の無線端末のリセット後、データの送信前（時刻０とする）の状態では、図１６に示すたたみ込み符号化器の２つのフリップフロップ１，２には、ともに０がセットされる。このときの状態を状態０と定義すると、符号化器への入力データが０であるか１であるかによって、１サイクル後の符号化器の状態が決まる。
【０００９】
入力データが０である場合には、状態０から状態０への遷移が起こる。このとき、出力Ａの値ａと出力Ｂの値ｂの組み合わせを｛ａ，ｂ｝と表すと、｛出力Ａ，出力Ｂ｝＝｛０，０｝である。入力データが１である場合には、状態０から状態１への遷移が起こる。このときは、｛出力Ａ，出力Ｂ｝＝｛１，１｝である。
【００１０】
図１６に示すたたみ込み符号化器の状態遷移と出力の関係を一般化すると、図１７に示す状態遷移図のようになる。図１７に示すように、図１６に示すたたみ込み符号化器は、データが入力される度に、出力Ａと出力Ｂを出力しながら、２つのフリップフロップ１，２の状態を遷移させる。この状態遷移を時系列に展開すると、図１８に示すトレリス線図のようになる。図１８では、時刻０と時刻１の間の状態遷移のみを示したが、時刻１以降の状態遷移も同じトポロジーになる。
【００１１】
図１８に示すように、時刻１のときに状態０になるのは、時刻０の状態０からの遷移（上方ブランチ）か、時刻０の状態１からの遷移（下方ブランチ）のいずれかが起こる場合だけである。従って、受信側のビタビ復号回路においては、時刻１のときの状態が状態０であれば、時刻０のときに状態０であり、かつ受信信号すなわち送信側の無線端末の出力信号が｛０，０｝であるか、時刻０のときに状態１であり、かつ送信側の出力信号が｛１，１｝である、ということが期待される。
【００１２】
ビタビ復号回路は、この２つの期待値候補（以下、ＤａｔａＡ候補とＤａｔａＢ候補とする）と実際の受信信号（以下、ＤａｔａＡとＤａｔａＢとする）との距離、すなわちブランチメトリックを次の（１）式に従って計算する。
ブランチメトリック＝｜ＤａｔａＡ−ＤａｔａＡ候補｜＋｜ＤａｔａＢ−ＤａｔａＢ候補｜  ・・・（１）
【００１３】
ビタビ復号回路は、上方ブランチから得られた上方ブランチメトリックと下方ブランチから得られた下方ブランチメトリックのうち、小さい方を勝ち残りブランチとしてパスメトリックに代入する。時刻２以降においても同様にして勝ち残りブランチを得、この勝ち残りブランチをパスメトリックに累算する。最終的に、［受信データ数×４状態］本の勝ち残りブランチと、４個のパスメトリックが得られる。
【００１４】
パスメトリックは、トレリス経路に掛かる総距離（評価係数）に相当する。パスメトリックに基づいて、受信した順番とは逆にトレリス経路を遡って行けば、最も誤りの少ない、確からしい送信データ系列を推定することができる。この最尤推定を行う従来のビタビ復号回路のブロック構成を図１９に示す。上述したブランチメトリックは、ブランチメトリック演算部５において計算される。また、パスメトリックは、ＡＣＳ部６において求められる。パスメモリ部７は、勝ち残りブランチを保持する。トレースバック部８は、パスメモリ部７に保持されている勝ち残りブランチを読み出しながら、トレリス経路を遡り、送信データ系列を復号する。
【００１５】
ところで、本発明者は、先に、複数種類のスクランブラまたはデスクランブラの動作が可能である準固定回路について出願している（例えば、特許文献１参照。）。この準固定回路は、直列接続可能な複数のフリップフロップと、少なくとも入力信号と第１のフィードバック信号との排他的論理和信号、フィードバック信号及び入力信号のうちのいずれか１つの信号を選択して前記複数のフリップフロップのうちの一の第１のフリップフロップに出力可能な第１のセレクタと、少なくとも前記複数のフリップフロップのうちの一の第２のフリップフロップの出力信号と第２のフィードバック信号との排他的論理和信号、該第２のフリップフロップの出力信号、及び第２のフィードバック信号のうちのいずれか１つの信号を選択して前記第１のセレクタに前記第１のフィードバック信号として出力可能な第２のセレクタとを有する。
【００１６】
【特許文献１】特開２００５−１０１７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、従来のビタビ復号回路は、上記（１）〜（３）のパラメータに対して固定された構成となっている。そのため、例えば無線ＬＡＮと第三世代携帯電話では無線通信規格が異なり、従って、上記（１）〜（３）のパラメータも異なるため、無線ＬＡＮ用に構成されたビタビ復号回路を第三世代携帯電話用として用いることはできない。一台の無線機で複数種類の無線通信規格に対応させるためには、その無線機に無線通信規格ごとにビタビ復号回路を設ける必要がある。
【００１８】
つまり、一台の無線機で、例えばＩＥＥＥ８０２．１１ａ規格の無線ＬＡＮ、ＩＥＥＥ８０２．１１ｂ規格の無線ＬＡＮ、Ｗ−ＣＤＭＡ規格の第三世代携帯電話、ＩＳＤＢ−Ｔ規格のデジタル放送（ＩＥＥＥ８０２．１１ａ規格の無線ＬＡＮと同じ）およびＩＥＥＥ８０２．１５規格の近距離無線に対応するには、少なくとも５種類（Ｗ−ＣＤＭＡ規格に２種類あるため）のビタビ復号回路が必要となる。そのため、ビタビ復号を行う回路の規模が大きくなるという問題点がある。また、無線通信規格を追加する度に、ビタビ復号を行う回路の規模が増大するという問題点がある。
【００１９】
そこで、フィールドにおいて論理の変更が可能なデバイスの一つであるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を用いてビタビ復号回路を構成し、ＦＰＧＡの設定情報を変更することによって複数の無線通信規格に対応させることが考えられる。その場合には、次のような問題点がある。ＦＰＧＡの設定情報を変更するのには、数百ミリ秒の時間がかかる。しかし、音声通信の途中で無線方式を切り替えるアプリケーションを想定した場合には、数十ミリ秒程度で無線方式の切り替えを完了する必要があるため、このようなアプリケーションにＦＰＧＡを用いるのは適当でない。
【００２０】
また、ＦＰＧＡの設定情報が多いため、必要なメモリの容量が増え、回路面積が増大するという問題点がある。さらに、ビタビ復号技術に精通した技術者でなければ、所望の無線通信規格に合わせてＦＰＧＡの設定情報を設定するのは困難であるという問題点もある。さらにまた、無線通信規格ごとにＦＰＧＡの設定情報が異なるため、煩雑であるという問題点もある。また、上記特許文献１には、準固定回路を用いてビタビ復号回路を構成する場合の概念が示されているが、具体的な構成については詳細には触れられていない。
【００２１】
本発明は、上記に鑑みてなされたものであって、複数種類の無線通信規格に合わせて容易に再構成可能なビタビ復号回路を提供することを目的とする。また、本発明は、そのようなビタビ復号回路を備えた無線機を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上述した課題を解決し、目的を達成するために、本発明にかかるビタビ復号回路は、設定レジスタ、ブランチメトリック演算部、レプリカ生成部、ブランチメトリック選択部、ＡＣＳ部、パスメモリ部およびトレースバック部を備える。設定レジスタは、無線通信規格に応じて、符号化率、拘束長および生成多項式の３種のパラメータを自由に設定可能なメモリで構成される。ブランチメトリック演算部は、入力信号に対してブランチメトリックを計算し、設定レジスタから与えられた符号化率に応じた数のブランチメトリック情報を生成する。レプリカ生成部は、設定レジスタから与えられた生成多項式に基づいて、送信側の符号化器の仕様を再現し、ブランチメトリック情報の選択に係わる設定情報を生成する。
【００２３】
ブランチメトリック選択部は、レプリカ生成部から与えられた設定情報に基づいて、ブランチメトリック演算部で生成された複数のブランチメトリック情報の中から、上方ブランチメトリックおよび下方ブランチメトリックを選択する。ＡＣＳ部は、ブランチメトリック選択部で選択された上方ブランチメトリックおよび下方ブランチメトリックに基づいて、トレリス線図のステップごとにパスメトリックを求め、勝ち残りブランチとパスメトリック値を求める。パスメモリ部は、ＡＣＳ部から出力された勝ち残りブランチとパスメトリック値を保持する。トレースバック部は、パスメモリ部に保持された勝ち残りブランチを読み出し、トレリス経路を遡って最短のパスメトリックを求める。
【００２４】
この発明によれば、設定レジスタに設定された３種のパラメータに基づいて、レプリカ生成部で送信側の符号化器の仕様が再現され、その再現された符号化器の仕様に基づいて、演算器間のトポロジー（配線情報）が再構成されるので、一つのビタビ復号回路でもって複数の無線通信規格に対応することができる。また、無線通信規格ごとに異なる配線情報を書き換えるには、設定レジスタに設定された３種のパラメータを変更するだけでよいので、数ミリ秒程度と短い時間で配線情報を書き換えることができる。無線機の操作が簡単になる。
【発明の効果】
【００２５】
本発明にかかるビタビ復号回路は、複数種類の無線通信規格に合わせて容易に再構成可能であるという効果を奏する。また、本発明にかかる無線機は、複数種類の無線通信規格に合わせて容易に再構成可能なビタビ復号回路を有するという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に、本発明にかかるビタビ復号回路および無線機の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００２７】
図１は、本発明にかかる実施例のビタビ復号回路を示す図である。図１に示すように、このビタビ復号回路は、設定レジスタ１０、ブランチメトリック演算部２０、レプリカ生成部３０、テーブル（メモリ）４０１を備えたブランチメトリック選択部４０、ＡＣＳ部５０、パスメモリ部６０およびトレースバック部７０を備えている。設定レジスタ１０は、無線通信規格に応じて、（１）符号化率、（２）拘束長（状態数）および（３）生成多項式の３種のパラメータを自由に設定可能なメモリにより構成されている。設定レジスタ１０に設定されたパラメータは、ブランチメトリック演算部２０、レプリカ生成部３０およびＡＣＳ部５０に与えられる。
【００２８】
ブランチメトリック演算部２０は、設定レジスタ１０から与えられた符号化率および拘束長（状態数）に基づいて、上記（１）式に従って、ブランチメトリックを計算する。ＤａｔａＡ候補の値ｃとＤａｔａＢ候補の値ｄの組み合わせを〔ｃ，ｄ〕と表すと、符号化率が１／２である場合には、ブランチメトリック演算部２０は、実際の受信信号ＤａｔａＡおよびＤａｔａＢの２入力に対して、〔０，０〕、〔０，１〕、〔１，０〕および〔１，１〕の４つに対するブランチメトリックを計算し、その結果を出力する。
【００２９】
また、ＤａｔａＡ候補の値ｃとＤａｔａＢ候補の値ｄとＤａｔａＣ候補の値ｅの組み合わせを〔ｃ，ｄ，ｅ〕と表すと、符号化率が１／３である場合には、ブランチメトリック演算部２０は、実際の受信信号ＤａｔａＡ、ＤａｔａＢおよびＤａｔａＣの３入力に対して、〔０，０，０〕、〔０，０，１〕、〔０，１，０〕、〔０，１，１〕、〔１，０，０〕、〔１，０，１〕、〔１，１，０〕および〔１，１，１〕の８つに対するブランチメトリックを次の（２）式に従って計算し、その結果を出力する。
ブランチメトリック＝｜ＤａｔａＡ−ＤａｔａＡ候補｜＋｜ＤａｔａＢ−ＤａｔａＢ候補｜＋｜ＤａｔａＣ−ＤａｔａＣ候補｜  ・・・（２）
【００３０】
レプリカ生成部３０は、設定レジスタ１０から与えられた生成多項式に基づいて、送信側の符号化器の仕様を再現し、ブランチメトリック選択部４０内のブランチメトリック選択回路（図示省略）に係わる設定情報を生成する。ブランチメトリック選択部４０は、レプリカ生成部３０から出力された設定情報をテーブル４０１に保持し、その保持情報に基づいて、ブランチメトリック演算部２０の出力の中から適切なブランチメトリックを選択してＡＣＳ部５０へ出力する。
【００３１】
ＡＣＳ部５０は、ブランチメトリック選択部４０から渡されたブランチメトリックに基づいて、トレリス線図のステップごとにパスメトリックを求め、勝ち残りブランチとそのパスメトリック値をパスメモリ部６０へ出力する。その際、パスメモリ部６０は、設定レジスタ１０から与えられた拘束長（状態数）に応じて演算回数を変更する。
【００３２】
パスメモリ部６０は、ＡＣＳ部５０から渡された勝ち残りブランチとそのパスメトリック値を保持する。トレースバック部７０は、パスメモリ部６０に保持されている勝ち残りブランチを読み出しながら、トレリス経路を遡り、最短のパスメトリックを求めることによって、送信データ系列を復号する。これらパスメモリ部６０およびトレースバック部７０については、従来同様であるので、詳細な説明を省略する。ブランチメトリック演算部２０、レプリカ生成部３０、ブランチメトリック選択部４０およびＡＣＳ部５０の詳細な構成については、後述する。
【００３３】
図２は、現在、一般的に使用されている無線通信規格とそれに対応するビタビの上記３種のパラメータを示す図である。図２に示すように、ＩＥＥＥ８０２．１１ａ規格の無線ＬＡＮとＩＳＤＢ−Ｔ規格のデジタル放送では、符号化率が１／２であり、生成多項式Ｇ０およびＧ１がそれぞれ１０１１０１１（ｂｉｎａｒｙ）および１１１１００１（ｂｉｎａｒｙ）であり、拘束長が７（６４）である。拘束長において、括弧内の数値は、状態数である。ＩＥＥＥ８０２．１１ｂ規格の無線ＬＡＮでは、符号化率が１／２であり、生成多項式Ｇ０およびＧ１がそれぞれ１０１１０１１（ｂｉｎａｒｙ）および１１１１１０１（ｂｉｎａｒｙ）であり、拘束長が７（６４）である。
【００３４】
Ｗ−ＣＤＭＡ規格の第三世代携帯電話には、符号化率が１／２であり、生成多項式Ｇ０およびＧ１がそれぞれ１０１１１０００１（ｂｉｎａｒｙ）および１１１１０１０１１（ｂｉｎａｒｙ）であり、拘束長が９（２５６）である第１の規格と、符号化率が１／３であり、生成多項式Ｇ０、Ｇ１およびＧ２がそれぞれ１０１１０１１１１（ｂｉｎａｒｙ）、１１０１１００００（ｂｉｎａｒｙ）および１１１００１００１（ｂｉｎａｒｙ）であり、拘束長が９（２５６）である第２の規格がある。生成多項式Ｇ２は、送信側の符号化器において各ノードの排他的論理和（ＥＯＲ）の組み合わせが３通り設定されている場合に、設定される。ＩＥＥＥ８０２．１５規格の近距離無線では、符号化率が１／３であり、生成多項式Ｇ０、Ｇ１およびＧ２がそれぞれ１０１１０１１（ｂｉｎａｒｙ）、１１１０１０１（ｂｉｎａｒｙ）および１１１１００１（ｂｉｎａｒｙ）であり、拘束長が７（６４）である。
【００３５】
以下、符号化率が１／３である場合を中心にして説明する。図３は、ブランチメトリック演算部を示す図である。図３において、加算器の入力に付された○記号は、その入力信号の正負を反転させることによる減算を意味する。図３に示すように、ブランチメトリック演算部２０は、例えば１２個の加算器２０１〜２１２と１３個のフリップフロップ２２１〜２３３を備えている。
【００３６】
加算器２０１は、ＤａｔａＡとＤａｔａＢを加算する。フリップフロップ２２１は、加算器２０１の出力をラッチし、クロックに同期して出力する。フリップフロップ２２２は、ＤａｔａＣをラッチし、クロックに同期して出力する。加算器２０５は、フリップフロップ２２１の出力とフリップフロップ２２２の出力を加算する。フリップフロップ２２６は、加算器２０５の出力をラッチし、クロックに同期して出力する。
【００３７】
フリップフロップ２２６の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ０、０および０であるときのＤａｔａＡ、ＤａｔａＢおよびＤａｔａＣとＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補とのブランチメトリック値であり、これをブランチメトリック情報ＢＭ０００とする。
【００３８】
加算器２０６は、フリップフロップ２２１の出力とフリップフロップ２２２の出力の反転値を加算する。フリップフロップ２２７は、加算器２０６の出力をラッチし、クロックに同期して出力する。フリップフロップ２２７の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ０、０および１であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ００１とする。
【００３９】
加算器２０２は、ＤａｔａＡとＤａｔａＢの反転値を加算する。フリップフロップ２２３は、加算器２０２の出力をラッチし、クロックに同期して出力する。加算器２０７は、フリップフロップ２２３の出力とフリップフロップ２２２の出力を加算する。フリップフロップ２２８は、加算器２０７の出力をラッチし、クロックに同期して出力する。フリップフロップ２２８の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ０、１および０であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ０１０とする。
【００４０】
加算器２０８は、フリップフロップ２２３の出力とフリップフロップ２２２の出力の反転値を加算する。フリップフロップ２２９は、加算器２０８の出力をラッチし、クロックに同期して出力する。フリップフロップ２２９の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ０、１および１であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ０１１とする。
【００４１】
加算器２０３は、ＤａｔａＡの反転値とＤａｔａＢを加算する。フリップフロップ２２４は、加算器２０３の出力をラッチし、クロックに同期して出力する。加算器２０９は、フリップフロップ２２４の出力とフリップフロップ２２２の出力を加算する。フリップフロップ２３０は、加算器２０９の出力をラッチし、クロックに同期して出力する。フリップフロップ２３０の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ１、０および０であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ１００とする。
【００４２】
加算器２１０は、フリップフロップ２２４の出力とフリップフロップ２２２の出力の反転値を加算する。フリップフロップ２３１は、加算器２１０の出力をラッチし、クロックに同期して出力する。フリップフロップ２３１の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ１、０および１であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ１０１とする。
【００４３】
加算器２０４は、ＤａｔａＡの反転値とＤａｔａＢの反転値を加算する。フリップフロップ２２５は、加算器２０４の出力をラッチし、クロックに同期して出力する。加算器２１１は、フリップフロップ２２５の出力とフリップフロップ２２２の出力を加算する。フリップフロップ２３２は、加算器２１１の出力をラッチし、クロックに同期して出力する。フリップフロップ２３２の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ１、１および０であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ１１０とする。
【００４４】
加算器２１２は、フリップフロップ２２５の出力とフリップフロップ２２２の出力の反転値を加算する。フリップフロップ２３３は、加算器２１２の出力をラッチし、クロックに同期して出力する。フリップフロップ２３３の出力は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補がそれぞれ１、１および１であるときのブランチメトリック値であり、これをブランチメトリック情報ＢＭ１１１とする。
【００４５】
上述した説明は、符号化率が１／３である場合の説明であるが、符号化率が１／２である場合には、ブランチメトリック演算部２０の内部においてＤａｔａＣの値が０に固定される。ブランチメトリック演算部２０に外部から受信信号としてＤａｔａＣを入力させるか、ブランチメトリック演算部２０の内部でＤａｔａＣの値を０に固定するかは、符号化率の値に基づいて、図示省略したセレクタ等により選択される。ＤａｔａＣの値を０に固定する場合には、上記ブランチメトリック情報ＢＭ０００が、ＤａｔａＡ候補およびＤａｔａＢ候補がそれぞれ０および０であるときのＤａｔａＡおよびＤａｔａＢとＤａｔａＡ候補およびＤａｔａＢ候補とのブランチメトリック値に相当し、これをブランチメトリック情報ＢＭ００とする。
【００４６】
同様に、上記ブランチメトリック情報ＢＭ０１０は、ＤａｔａＡ候補およびＤａｔａＢ候補がそれぞれ０および１であるときのブランチメトリック値に相当し、これをブランチメトリック情報ＢＭ０１とする。また、上記ブランチメトリック情報ＢＭ１００は、ＤａｔａＡ候補およびＤａｔａＢ候補がそれぞれ１および０であるときのブランチメトリック値に相当し、これをブランチメトリック情報ＢＭ１０とする。また、上記ブランチメトリック情報ＢＭ１１０は、ＤａｔａＡ候補およびＤａｔａＢ候補がそれぞれ１および１であるときのブランチメトリック値に相当し、これをブランチメトリック情報ＢＭ１１とする。
【００４７】
図４は、レプリカ生成部を示す図である。図４に示すように、レプリカ生成部３０は、擬似入力データ系列生成器３０１、擬似入力データ系列設定部３０２、例えば３行×９列のアンドゲート群３０３および３個の排他的論理和演算器３０４〜３０６を備えている。擬似入力データ系列生成器３０１は、０＿００００＿００００（ｂｉｎａｒｙ）を初期状態とし、０＿００００＿００００（ｂｉｎａｒｙ）〜１＿１１１１＿１１１１（ｂｉｎａｒｙ）までの擬似データを順に生成する。擬似入力データ系列設定部３０２は、例えば８個のフリップフロップ３１１〜３１８からなるシフトレジスタで構成されている。
【００４８】
ここで、シフトレジスタを構成する８個のフリップフロップ３１１〜３１８は、その符号の若い順に擬似入力データ系列生成器３０１側から並んでいるとする。また、アンドゲート群３０３において、１行目の９個のアンドゲート３２１〜３２９、２行目の９個のアンドゲート３３１〜３３９および３行目の９個のアンドゲート３４１〜３４９についても、同様である。
【００４９】
擬似入力データ系列設定部３０２のシフトレジスタには、擬似入力データ系列生成器３０１で生成された擬似データが設定される。そして、１列目のフリップフロップ３１１の出力は、次列のフリップフロップ３１２に入力されるとともに、１行目の１列目のアンドゲート３２１、２行目の１列目のアンドゲート３３１および３行目の１列目のアンドゲート３３１の一方の入力となる。２列目以降も同様である。
【００５０】
１行目のアンドゲート３２１〜３２９のもう一方の入力は、１列目のアンドゲート３２１をＬＳＢとする生成多項式Ｇ０の各ビットの値である。２行目のアンドゲート３３１〜３３９のもう一方の入力は、１列目のアンドゲート３３１をＬＳＢとする生成多項式Ｇ１の各ビットの値である。３行目のアンドゲート３４１〜３４９のもう一方の入力は、１列目のアンドゲート３４１をＬＳＢとする生成多項式Ｇ２の各ビットの値である。ただし、符号化率が１／２である場合には、生成多項式Ｇ２がないので、３行目のアンドゲート３４１〜３４９は用いられない。例えば、ＩＥＥＥ８０２．１５規格の近距離無線の場合を説明すると、次のようになる。
【００５１】
生成多項式Ｇ０は、１０１１０１１（ｂｉｎａｒｙ）である（図２参照）。従って、１行目については、１列目のアンドゲート３２１、２列目のアンドゲート３２２、３列目のアンドゲート３２３、４列目のアンドゲート３２４、５列目のアンドゲート３２５、６列目のアンドゲート３２６および７列目のアンドゲート３２７にそれぞれ１、１、０、１、１、０および１が入力される。また、８列目のアンドゲート３２８と９列目のアンドゲート３２９には、それぞれ０が入力される。
【００５２】
また、生成多項式Ｇ１は、１１１０１０１（ｂｉｎａｒｙ）である（図２参照）。従って、２行目については、１列目のアンドゲート３３１、２列目のアンドゲート３３２、３列目のアンドゲート３３３、４列目のアンドゲート３３４、５列目のアンドゲート３３５、６列目のアンドゲート３３６および７列目のアンドゲート３３７にそれぞれ１、０、１、０、１、１および１が入力される。また、８列目のアンドゲート３３８と９列目のアンドゲート３３９には、それぞれ０が入力される。
【００５３】
また、生成多項式Ｇ２は、１１１１００１（ｂｉｎａｒｙ）である（図２参照）。従って、３行目については、１列目のアンドゲート３４１、２列目のアンドゲート３４２、３列目のアンドゲート３４３、４列目のアンドゲート３４４、５列目のアンドゲート３４５、６列目のアンドゲート３４６および７列目のアンドゲート３４７にそれぞれ１、０、０、１、１、１および１が入力される。また、８列目のアンドゲート３４８と９列目のアンドゲート３４９には、それぞれ０が入力される。
【００５４】
排他的論理和演算器３０４は、１行目のアンドゲート３２１〜３２９の各出力の排他的論理和演算を行い、その演算結果をＤａｔａＡ候補として出力する。排他的論理和演算器３０５は、２行目のアンドゲート３３１〜３３９の各出力の排他的論理和演算を行い、その演算結果をＤａｔａＢ候補として出力する。排他的論理和演算器３０６は、３行目のアンドゲート３４１〜３４９の各出力の排他的論理和演算を行い、その演算結果をＤａｔａＣ候補として出力する。ただし、符号化率が１／２である場合には、ＤａｔａＣ候補は無効である。
【００５５】
擬似入力データ系列設定部３０２からは、送信側の符号化器の内部状態を表す状態番号＃ｘ（ｘは、例えば０〜６３の整数）と、上方ブランチメトリックと下方ブランチメトリックのいずれであるかを示す情報である上方／下方ブランチメトリック情報が出力される。［状態番号＃ｘ＜状態数／２］であれば、上方ブランチメトリックであり、それ以外であれば、下方ブランチメトリックである。
【００５６】
このように、レプリカ生成部３０において、Ｇ０〜Ｇ２（符号化率１／２のときはＧ０とＧ１）が設定され、擬似入力データ系列生成器３０１で０＿００００＿００００（ｂｉｎａｒｙ）の初期状態から１＿１１１１＿１１１１（ｂｉｎａｒｙ）までの擬似データを順に生成することによって、送信側の符号化器の仕様が再現される。そして、その符号化器の内部状態（状態番号＃ｘ）と、上方ブランチメトリックと下方ブランチメトリックのいずれであるかということ（上方／下方ブランチメトリック情報）と、符号化器の出力符号（ＤａｔａＡ候補、ＤａｔａＢ候補、ＤａｔａＣ候補）が得られる。レプリカ生成部３０が以上のような機能を有することにより、例えば図１８に示すようなトポロジー情報をビタビ復号回路の配線情報にマッピングすることができる。
【００５７】
図５は、ブランチメトリック選択部を示す図である。図５に示すように、ブランチメトリック選択部４０は、テーブル４０１、アドレス生成部４０２、ブランチメトリック選択用信号設定部４０３、および特にその数を限定しないが、例えば６４個（図には、６個のみ示す）のブランチメトリック選択回路４１０〜４１４，４７３を備えている。
【００５８】
テーブル４０１は、メモリ（レプリカメモリ）で構成されている。このテーブル４０１には、レプリカ生成部３０によって得られた送信側の符号化器の仕様、すなわち状態番号＃ｘ、上方／下方ブランチメトリック情報、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補が一旦、取り込まれる。符号化率が１／２である場合には、ＤａｔａＣ候補は、テーブル４０１に取り込まれない。拘束長７（６４状態）の場合には、テーブル４０１に、６４状態の２倍、すなわち１２８ブランチ分が格納される。また、拘束長９（２５６状態）の場合には、５１２ブランチ分（２５６状態の２倍）が格納される。従って、テーブル４０１が５１２ブランチ分の容量を有することによって、図２に示すすべての無線通信規格のビタビ復号に対応できる。
【００５９】
アドレス生成部４０２は、ブランチメトリック選択回路４１０〜４１４，４７３を特定するアドレスを順に生成する。生成されたアドレスは、テーブル４０１を介してブランチメトリック選択用信号設定部４０３に渡される。ブランチメトリック選択用信号設定部４０３は、テーブル４０１から送信側の符号化器の仕様とアドレスを読み出し、そのアドレスで特定されたブランチメトリック選択回路４１０〜４１４，４７３へ上方ブランチメトリック選択用信号と下方ブランチメトリック選択用信号を出力する。
【００６０】
また、各ブランチメトリック選択回路４１０〜４１４，４７３には、ブランチメトリック演算部２０から８個のブランチメトリック情報ＢＭ０００〜ＢＭ１１１（符号化率１／２の場合には、４個のブランチメトリック情報ＢＭ００〜ＢＭ１１）が入力される。各ブランチメトリック選択回路４１０〜４１４，４７３は、上方ブランチメトリック選択用信号および下方ブランチメトリック選択用信号に基づいてブランチメトリック情報ＢＭ０００〜ＢＭ１１１（符号化率１／２の場合には、ブランチメトリック情報ＢＭ００〜ＢＭ１１）の中からそれぞれ１つを選択して上方ブランチメトリック（ＡＣＳ＃ｘ＿上方ＢＭ）および下方ブランチメトリック（ＡＣＳ＃ｘ＿下方ＢＭ）として出力する。
【００６１】
図６は、ブランチメトリック選択回路を示す図である。すべてのブランチメトリック選択回路４１０〜４１４，４７３の構成は同じである。図６に示すように、ブランチメトリック選択回路４１０〜４１４，４７３は、上方ブランチメトリック選択部４８１と下方ブランチメトリック選択部４８２を備えている。上方ブランチメトリック選択部４８１には、８入力１出力のセレクタ４８３とフリップフロップ４８４が設けられている。下方ブランチメトリック選択部４８２には、８入力１出力のセレクタ４８５とフリップフロップ４８６が設けられている。
【００６２】
符号化率１／３の場合、セレクタ４８３は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補が〔０，０，０〕、〔０，０，１〕、〔０，１，０〕、〔０，１，１〕、〔１，０，０〕、〔１，０，１〕、〔１，１，０〕および〔１，１，１〕であるときに、８個のブランチメトリック情報ＢＭ０００〜ＢＭ１１１の中からそれぞれブランチメトリック情報ＢＭ０００、ＢＭ００１、ＢＭ０１０、ＢＭ０１１、ＢＭ１００、ＢＭ１０１、ＢＭ１１０およびＢＭ１１１を選択する。フリップフロップ４８４は、セレクタ４８３の出力をラッチして、クロックに同期した上方ブランチメトリック（ＡＣＳ＃ｘ＿上方ＢＭ）として出力する。
【００６３】
また、セレクタ４８５は、ＤａｔａＡ候補、ＤａｔａＢ候補およびＤａｔａＣ候補が〔０，０，０〕、〔０，０，１〕、〔０，１，０〕、〔０，１，１〕、〔１，０，０〕、〔１，０，１〕、〔１，１，０〕および〔１，１，１〕であるときに、８個のブランチメトリック情報ＢＭ０００〜ＢＭ１１１の中から、それぞれブランチメトリック情報ＢＭ０００、ＢＭ００１、ＢＭ０１０、ＢＭ０１１、ＢＭ１００、ＢＭ１０１、ＢＭ１１０およびＢＭ１１１を選択する。フリップフロップ４８６は、セレクタ４８５の出力をラッチして、クロックに同期した下方ブランチメトリック（ＡＣＳ＃ｘ＿下方ＢＭ）として出力する。
【００６４】
符号化率が１／２である場合には、次のようになる。セレクタ４８３は、ＤａｔａＡ候補およびＤａｔａＢ候補が〔０，０〕、〔０，１〕、〔１，０〕および〔１，１〕であるときに、４個のブランチメトリック情報ＢＭ００〜ＢＭ１１の中からそれぞれブランチメトリック情報ＢＭ００、ＢＭ０１、ＢＭ１０およびＢＭ１１を選択する。また、セレクタ４８５も同様である。
【００６５】
特に限定しないが、状態数が６４である場合には、例えば状態番号＃０に対応するブランチメトリック選択回路（＃０）４１０から状態番号＃６３に対応するブランチメトリック選択回路（＃６３）４７３までの６４個を用いて、６４対の上方ブランチメトリックと下方ブランチメトリックがブランチメトリック選択部４０から出力される。一方、状態数が２５６である場合には、例えば状態番号＃０に対応するブランチメトリック選択回路（＃０）４１０から状態番号＃３に対応するブランチメトリック選択回路（＃３）４１３までの４個が用いられる。そして、これら４個のブランチメトリック選択回路４１０〜４１３の設定を、ブランチメトリック選択用信号設定部４０３によりダイナミックに６４回変化させることにより、２５６対の上方ブランチメトリックと下方ブランチメトリックがブランチメトリック選択部４０から出力される。
【００６６】
図７は、ＡＣＳ部を示す図である。図７に示すように、ＡＣＳ部５０は、特にその数を限定しないが、例えば６４個（図には、６個のみ示す）のＡＣＳ演算器５０１〜５０５，５６４、例えば４個のパスメトリック選択部５７１〜５７４、パスメトリックメモリ５９０、パスメトリックメモリ５９０への書き込みと読み出しを制御するメモリ５８１、および例えば８個の書き込みイネーブル付加回路５８２〜５８９を備えている。パスメトリックメモリ５９０は、状態番号＃０に対応するＡＣＳ演算器（＃０）５０１、状態番号＃１に対応するＡＣＳ演算器（＃１）５０２、状態番号＃２に対応するＡＣＳ演算器（＃２）５０３および状態番号＃３に対応するＡＣＳ演算器（＃３）５０４からそれぞれ出力されるパスメトリック値を一時的に保持する。
【００６７】
メモリ５８１は、設定レジスタ１０（図１参照）から与えられた状態数を記憶し、その状態数に基づいて、パスメトリックメモリ５９０へのパスメトリック値の書き込みを許可する書き込みイネーブル信号と、パスメトリックメモリ５９０におけるパスメトリック値の書き込み先を特定するアドレスと、パスメトリックメモリ５９０からパスメトリック値を読み出す際の読み出しアドレスを生成する。書き込みイネーブル付加回路５８２〜５８９は、書き込みイネーブル信号がアサートされたときに、パスメトリック値のパスメトリックメモリ５９０への書き込みを許可する。このＡＣＳ部５０は、状態数が６４である場合と２５６である場合の両方に対応するように再構成可能な構成となっている。
【００６８】
状態数が６４である場合について説明する。図８は、状態数６４のときのＡＣＳ演算器のフィードバック出力先と出力元の関係を示す図である。図８に示すように、状態番号＃０に対応するＡＣＳ演算器（＃０）の入力と状態番号＃１に対応するＡＣＳ演算器（＃１）の入力には、状態番号＃０に対応するＡＣＳ演算器（＃０）の出力と状態番号＃３２に対応するＡＣＳ演算器（＃３２）の出力が与えられる。
【００６９】
また、状態番号＃２に対応するＡＣＳ演算器（＃２）の入力と状態番号＃３に対応するＡＣＳ演算器（＃３）の入力には、状態番号＃１に対応するＡＣＳ演算器（＃１）の出力と状態番号＃３３に対応するＡＣＳ演算器（＃３３）の出力が与えられる。これを一般化すると、状態番号＃ｘに対応するＡＣＳ演算器（＃ｘ）の入力には、状態番号＃（ｘ／２の整数部）に対応するＡＣＳ演算器（＃（ｘ／２の整数部））の出力と状態番号＃（ｘ／２の整数部＋状態数／２）に対応するＡＣＳ演算器（＃（ｘ／２の整数部＋状態数／２））の出力が与えられることになる。
【００７０】
図９は、図８に示す関係に基づいて再構成されたＡＣＳ部を示す図である。図９に示すように、６４個のＡＣＳ演算器５０１〜５０５，５６４をすべて用い、それらの出力をフィードバックさせて各ＡＣＳ演算器５０１〜５０５，５６４においてＡＣＳ演算を行う。なお、６４個のＡＣＳ演算器５０１〜５０５，５６４のうち、例えば半分の３２個、１／４の１６個、１／８の８個または１／１６の４個を用いて、後述する２５６状態の場合のように、時分割でＡＣＳ演算を行うことによって、６４状態を実現してもよい。
【００７１】
状態数が２５６である場合について説明する。図１０は、状態数２５６のときのＡＣＳ演算器のフィードバック出力先と出力元の関係の一部を示す図である。図１０に示すように、状態数６４の場合と同様に、状態番号＃ｘに対応するＡＣＳ演算器（＃ｘ）の入力には、状態番号＃（ｘ／２の整数部）に対応するＡＣＳ演算器（＃（ｘ／２の整数部））の出力と状態番号＃（ｘ／２の整数部＋状態数／２）に対応するＡＣＳ演算器（＃（ｘ／２の整数部＋状態数／２））の出力が与えられることになる。図１０には、状態番号＃１から状態番号＃６３までの関係が示されているが、実際には、同様の関係が状態番号＃２５６まで展開されている。
【００７２】
図１１は、図１０に示す関係に基づいて再構成されたＡＣＳ部を示す図である。図１１に示すように、状態番号＃０に対応するＡＣＳ演算器（＃０）５０１、状態番号＃１に対応するＡＣＳ演算器（＃１）５０２、状態番号＃２に対応するＡＣＳ演算器（＃２）５０３、および状態番号＃３に対応するＡＣＳ演算器（＃３）５０４が用いられる。上述したように、状態番号＃２５６まで展開されているＡＣＳ演算器のフィードバック出力先と出力元の関係は、４分割されて、上記４個のＡＣＳ演算器５０１〜５０４に割り当てられる。
【００７３】
そして、各ＡＣＳ演算器５０１〜５０４は、時分割でＡＣＳ演算を６４回、行うことによって、２５６状態分のＡＣＳ演算を実現する。各ＡＣＳ演算器５０１〜５０４から出力される２５６状態分のパスメトリック値（ＤＴ＿ＡＣＳ＿ＰＭ０〜ＤＴ＿ＡＣＳ＿ＰＭ２５６）は、一旦、パスメトリックメモリ５９０に保持される。
【００７４】
なお、６４個のＡＣＳ演算器５０１〜５０５，５６４をすべて用いて、４回の時分割処理によって２５６状態分のＡＣＳ演算を行うようにしてもよい。また、ＡＣＳ部５０に２５６個のＡＣＳ演算器を用意し、２５６個のＡＣＳ演算器をすべて用いて１回の処理で２５６状態分のＡＣＳ演算を行うようにしてもよい。
【００７５】
次に、上述したビタビ復号回路を有する無線機の使用例について説明する。図１２は、その無線機を含む無線通信システムを示す図である。図１２に示すように、受信側の無線端末（無線機）８０は、図１のビタビ復号回路を含む誤り訂正復号化器８１を備えている。誤り訂正復号化器８１のビタビ復号回路は、再構成プログラムにより再構成される。再構成プログラム保存元１００は、例えばパーソナルコンピュータやメモリカードなどで構成されており、ビタビ復号回路を再構成するための再構成プログラムを保存している。
【００７６】
送信側の無線端末９０は、再構成可能な誤り訂正符号化器９１を備えている。この誤り訂正符号化器９１は、再構成プログラムにより再構成される。再構成プログラム保存元１１０は、例えばパーソナルコンピュータやメモリカードなどで構成されており、誤り訂正符号化器９１を再構成するための再構成プログラムを保存している。
【００７７】
図１３は、図１２の無線通信システムの処理手順を示す図である。図１３に示すように、まず、再構成プログラム保存元１１０から例えば有線により、誤り訂正符号化器９１を再構成するための再構成プログラムをダウンロードする。また、再構成プログラム保存元１００から例えば有線により、ビタビ復号回路を再構成するための再構成プログラムをダウンロードする（ステップＳ１）。次いで、送信側の無線端末９０において、再構成プログラムにより誤り訂正符号化器９１の再構成を行う。また、受信側の無線端末８０において、再構成プログラムによりビタビ復号回路の再構成を行う（ステップＳ２）。
【００７８】
両無線端末８０，９０の再構成が終了した後、両端末間の無線通信を開始する（ステップＳ３）。そして、無線通信を終了し（ステップＳ４）、再び両端末の再構成を行うか否かを判断する（ステップＳ５）。再構成を行う場合には（ステップＳ５：Ｙｅｓ）、ステップＳ１に戻る。再構成を行わない場合には（ステップＳ５：Ｎｏ）、両端末間での無線通信を継続する。
【００７９】
図１４は、上述したビタビ復号回路を有する無線機を含む無線通信システムの他の例を示す図である。図１４に示す無線通信システムにおいては、ビタビ復号回路を再構成するための再構成プログラムは、誤り訂正符号化器９１を再構成するための再構成プログラムとともに、再構成プログラム保存元１１０に保存されている。従って、図１４に示すシステムでは、図１２の再構成プログラム保存元１００が設けられていない。その他の構成は、図１２に示す構成と同じであるので、同一の符号を付して説明を省略する。
【００８０】
図１５は、図１４の無線通信システムの処理手順を示す図である。図１５に示すように、送信側の無線端末９０および受信側の無線端末８０は、ともにデフォルトの通信方式に設定されている。この状態から両端末間で無線通信を開始するには、まず、再構成プログラム保存元１１０から例えば有線により、誤り訂正符号化器９１を再構成するための再構成プログラムと、ビタビ復号回路を再構成するための再構成プログラムをダウンロードする（ステップＳ１１）。次いで、送信側の無線端末９０が受信側の無線端末８０へ、ビタビ復号回路を再構成するための再構成プログラムを送信する（ステップＳ１２）。
【００８１】
送信側の無線端末９０において、再構成プログラムにより誤り訂正符号化器９１の再構成を行う。また、受信側の無線端末８０において、再構成プログラムによりビタビ復号回路の再構成を行う。両無線端末８０，９０の再構成が終了した後、両端末間の無線通信を実行する（ステップＳ１３）。そして、送信側の無線端末９０から受信側の無線端末８０に、ビタビ復号回路の再構成を行う命令が送られてきたか否か、すなわち受信側の無線端末８０においてビタビ復号回路の再構成を行うか否かを判断する（ステップＳ１４）。ビタビ復号回路の再構成を行う場合には（ステップＳ１４：Ｙｅｓ）、ビタビ復号回路の再構成を行い（ステップＳ１５）、ステップＳ１３に戻る。再構成を行わない場合には（ステップＳ１４：Ｎｏ）、ステップＳ１３に戻り、両端末間での無線通信を継続する。
【００８２】
上述した実施例によれば、設定レジスタ１０に設定された３種のパラメータに基づいて、レプリカ生成部３０で送信側の符号化器の仕様が再現され、その再現された符号化器の仕様に基づいて、演算器間のトポロジー（配線情報）が再構成されるので、一つのビタビ復号回路でもって複数の無線通信規格に対応することができる。また、無線通信規格ごとに異なる配線情報部分のみを再構成することによって、無線通信規格ごとに異なる配線情報部分をテーブル化するのに必要な容量を小さくできるので、従来の単一の無線通信規格用ビタビ復号回路の１．１倍程度の回路規模で、複数の無線通信規格に対応可能なビタビ復号回路を実現できる。
【００８３】
さらに、設定レジスタ１０に設定された３種のパラメータに基づいて、無線通信規格ごとに異なる配線情報部分がテーブルに展開されるので、パラメータの組み合わせごとにメモリを用意する必要がなくなり、回路面積を削減できる。また、無線通信規格ごとに異なる配線情報部分をテーブル化した情報を書き換える際には、設定レジスタ１０に設定された３種のパラメータを変更するだけでよいので、数ミリ秒程度と短い時間で、無線通信規格ごとに異なる配線情報部分をテーブル化した情報を書き換えることができる。さらに、無線通信規格を変更する際には、３種のパラメータを変更するだけなので、無線機の操作が簡単になる。
【産業上の利用可能性】
【００８４】
以上のように、本発明にかかるビタビ復号回路および無線機は、ソフトウェア無線機に有用であり、特に、無線ＬＡＮのＩＥＥＥ８０２．１１ａやＩＥＥＥ８０２．１１ｂ、第三世代携帯電話のＷ−ＣＤＭＡ、デジタル放送のＩＳＤＢ−Ｔ、または近距離無線のＩＥＥＥ８０２．１５などの複数の無線通信規格に対応可能なソフトウェア無線機に適している。
【図面の簡単な説明】
【００８５】
【図１】本発明にかかる実施例のビタビ復号回路を示す図である。
【図２】無線通信規格とビタビのパラメータを示す図である。
【図３】ブランチメトリック演算部を示す図である。
【図４】レプリカ生成部を示す図である。
【図５】ブランチメトリック選択部を示す図である。
【図６】ブランチメトリック選択回路を示す図である。
【図７】ＡＣＳ部を示す図である。
【図８】状態数６４のときのＡＣＳ演算器のフィードバック出力先と出力元の関係を示す図である。
【図９】図８の関係に基づいて再構成されたＡＣＳ部を示す図である。
【図１０】状態数２５６のときのＡＣＳ演算器のフィードバック出力先と出力元の関係を示す図である。
【図１１】図１０の関係に基づいて再構成されたＡＣＳ部を示す図である。
【図１２】図１のビタビ復号回路を有する無線機を含む無線通信システムを示す図である。
【図１３】図１２の無線通信システムの処理手順を示す図である。
【図１４】図１のビタビ復号回路を有する無線機を含む無線通信システムを示す図である。
【図１５】図１４の無線通信システムの処理手順を示す図である。
【図１６】たたみ込み符号化器の一例を示す図である。
【図１７】図１６のたたみ込み符号化器の状態遷移と出力の関係を示す図である。
【図１８】図１７の状態遷移図を時系列に展開したトレリス線図を示す図である。
【図１９】従来のビタビ復号回路を示す図である。
【符号の説明】
【００８６】
１０  設定レジスタ
２０  ブランチメトリック演算部
３０  レプリカ生成部
４０  ブランチメトリック選択部
５０  ＡＣＳ部
６０  パスメモリ部
７０  トレースバック部
８０  無線機
３０１  擬似入力データ系列生成器
３０２  擬似入力データ系列設定部
３０４〜３０６  排他的論理和演算器
３１１〜３１８  フリップフロップ
４０１  テーブル
５０１〜５０５，５６４  ＡＣＳ演算器
【図１】
0004815228.tif 000002
【図２】
0004815228.tif 000003
【図３】
0004815228.tif 000004
【図４】
0004815228.tif 000005
【図５】
0004815228.tif 000006
【図６】
0004815228.tif 000007
【図７】
0004815228.tif 000008
【図８】
0004815228.tif 000009
【図９】
0004815228.tif 000010
【図１０】
0004815228.tif 000011
【図１１】
0004815228.tif 000012
【図１２】
0004815228.tif 000013
【図１３】
0004815228.tif 000014
【図１４】
0004815228.tif 000015
【図１５】
0004815228.tif 000016
【図１６】
0004815228.tif 000017
【図１７】
0004815228.tif 000018
【図１８】
0004815228.tif 000019
【図１９】
0004815228.tif 000020