JPH11346160A - ビタビ復号器 - Google Patents
ビタビ復号器Info
- Publication number
- JPH11346160A JPH11346160A JP15288998A JP15288998A JPH11346160A JP H11346160 A JPH11346160 A JP H11346160A JP 15288998 A JP15288998 A JP 15288998A JP 15288998 A JP15288998 A JP 15288998A JP H11346160 A JPH11346160 A JP H11346160A
- Authority
- JP
- Japan
- Prior art keywords
- path
- data
- address
- state
- memory
- 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.)
- Granted
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
(57)【要約】
【課題】 パスメモリやパスメトリックメモリの削減し
て装置の小型化を図ることが可能なビタビ復号器を提供
する。 【解決手段】 状態[2n]及び[2n+1]が状態[n]又は[n+1
6](n=1,2…15)に遷移するよう設定された32個の内
部状態を有し、4つのACS回路が並列処理するビタビ
復号器2において、パスメトリック(PM)を格納する
PMメモリは4つのメモリブロック8a〜8dからな
り、各メモリブロックには、同一状態に遷移する一対の
状態についてのデータ{n}{n+1}が同一番地に格納される
と共に、初期状態の時、図6中の更新回数0の欄に示す
ように各データが格納されている。データ{0}〜{7},又
は{8}〜{15},{16}〜{23},{24}〜{31} 毎に各メモリブ
ロックからデータを読み出して各ACS回路で並列処理
し、処理結果を、各状態毎に決められたメモリブロック
に分配し、先にデータが読み出された番地に格納する。
て装置の小型化を図ることが可能なビタビ復号器を提供
する。 【解決手段】 状態[2n]及び[2n+1]が状態[n]又は[n+1
6](n=1,2…15)に遷移するよう設定された32個の内
部状態を有し、4つのACS回路が並列処理するビタビ
復号器2において、パスメトリック(PM)を格納する
PMメモリは4つのメモリブロック8a〜8dからな
り、各メモリブロックには、同一状態に遷移する一対の
状態についてのデータ{n}{n+1}が同一番地に格納される
と共に、初期状態の時、図6中の更新回数0の欄に示す
ように各データが格納されている。データ{0}〜{7},又
は{8}〜{15},{16}〜{23},{24}〜{31} 毎に各メモリブ
ロックからデータを読み出して各ACS回路で並列処理
し、処理結果を、各状態毎に決められたメモリブロック
に分配し、先にデータが読み出された番地に格納する。
Description
【0001】
【発明の属する技術分野】本発明は、畳み込み符号を復
号するビタビ復号器に関し、特にACS(Adder-Compar
ator-Selector) 計算を並列に実行するビタビ復号器に
関する。
号するビタビ復号器に関し、特にACS(Adder-Compar
ator-Selector) 計算を並列に実行するビタビ復号器に
関する。
【0002】
【従来の技術】ビタビ復号器は、畳み込み符号の最尤復
号法に使用されるものであり、既知の符号系列の中から
受信符号系列に最も近い符号距離を有するものを選択
し、この選択された既知の符号系列から復号データを得
るものであり、訂正能力が高いことから衛星通信方式な
どにおける復号器として使用されている。
号法に使用されるものであり、既知の符号系列の中から
受信符号系列に最も近い符号距離を有するものを選択
し、この選択された既知の符号系列から復号データを得
るものであり、訂正能力が高いことから衛星通信方式な
どにおける復号器として使用されている。
【0003】ここで、畳み込み符号とは、符号器に入力
されるビット毎に、先行するいくつかのビットとのmo
d2での加算結果を出力ビットとした符号であり、同時
にkビットが入力されnビットが出力される場合、k/
nを符号化率R、また出力ビットに影響を与えるビット
数Kを拘束長と言う。
されるビット毎に、先行するいくつかのビットとのmo
d2での加算結果を出力ビットとした符号であり、同時
にkビットが入力されnビットが出力される場合、k/
nを符号化率R、また出力ビットに影響を与えるビット
数Kを拘束長と言う。
【0004】例えば、図8は、拘束長K=3,符号化率
R=1/2の畳み込み符号器130であり、3ビットの
シフトレジスタ132と、2つの排他的論理和回路13
4,136からなる。なお、排他的論理和回路134,
136の入力は、図示したものに限らず任意に設定可能
である。
R=1/2の畳み込み符号器130であり、3ビットの
シフトレジスタ132と、2つの排他的論理和回路13
4,136からなる。なお、排他的論理和回路134,
136の入力は、図示したものに限らず任意に設定可能
である。
【0005】この符号器130において、次の時刻に出
力される符号は、過去K−1ビット(図8では2ビッ
ト)の入力により表される2K-1 個の内部状態と、入力
ビットとにより確定するため、符号系列は、この入力ビ
ットに従った内部状態の状態遷移により一意に表すこと
ができる。
力される符号は、過去K−1ビット(図8では2ビッ
ト)の入力により表される2K-1 個の内部状態と、入力
ビットとにより確定するため、符号系列は、この入力ビ
ットに従った内部状態の状態遷移により一意に表すこと
ができる。
【0006】そして、過去K−1ビットのビット列を、
最も古いビットを最下位ビット(LSB)とした数値と
して、この数値をそのまま内部状態を表すものとすれ
ば、新たな入力ビットを受信した時の内部状態の遷移
は、このK−1ビットのビット列を、LSB側に1ビッ
トシフトし、且つ最上位ビット(MSB)として入力ビ
ットを付加したものとなる。
最も古いビットを最下位ビット(LSB)とした数値と
して、この数値をそのまま内部状態を表すものとすれ
ば、新たな入力ビットを受信した時の内部状態の遷移
は、このK−1ビットのビット列を、LSB側に1ビッ
トシフトし、且つ最上位ビット(MSB)として入力ビ
ットを付加したものとなる。
【0007】例えば、状態[0](ビット列で表現すれ
ば‘00’)又は[1](‘01’)にある場合、入力
ビットが0であれば状態[0](‘00’)に遷移し、
一方、入力ビットが1であれば状態[2](‘10’)
に遷移する。つまり、状態[2n]及び状態[2n+
1](n=0,1,…2K-2−1) が、それぞれ状態
[n]又は状態[n+2K-2 ]に遷移するのである。
ば‘00’)又は[1](‘01’)にある場合、入力
ビットが0であれば状態[0](‘00’)に遷移し、
一方、入力ビットが1であれば状態[2](‘10’)
に遷移する。つまり、状態[2n]及び状態[2n+
1](n=0,1,…2K-2−1) が、それぞれ状態
[n]又は状態[n+2K-2 ]に遷移するのである。
【0008】なお、内部状態を、上記説明とは反対に、
最も古いビットをMSBとした数値で表すように定義し
た場合には、状態[n]及び状態[n+2K-2 ]が、状
態[2n]又は状態[2n+1]に遷移することになる
が、以下の説明では、前者の場合を用いるものとする。
最も古いビットをMSBとした数値で表すように定義し
た場合には、状態[n]及び状態[n+2K-2 ]が、状
態[2n]又は状態[2n+1]に遷移することになる
が、以下の説明では、前者の場合を用いるものとする。
【0009】また以下では、ある状態から他の状態に遷
移する経路をブランチ、状態遷移に従ってブランチを連
結したものをパスと呼ぶ。更に、あるブランチについ
て、そのブランチに対応する状態遷移が行われた時に生
成されるべき既知の符号と、実際に入力された符号との
距離(ハミング距離など)をブランチメトリック、パス
を構成する全てのブランチのブランチメトリックを積算
したものをパスメトリックと呼ぶ。
移する経路をブランチ、状態遷移に従ってブランチを連
結したものをパスと呼ぶ。更に、あるブランチについ
て、そのブランチに対応する状態遷移が行われた時に生
成されるべき既知の符号と、実際に入力された符号との
距離(ハミング距離など)をブランチメトリック、パス
を構成する全てのブランチのブランチメトリックを積算
したものをパスメトリックと呼ぶ。
【0010】つまり、パスメトリックは、パスに従って
状態遷移が行われた場合に生成されるべき既知の符号系
列と、実際に入力された符号系列との距離を表してお
り、この距離が小さい(即ち、尤度が大きい)パスほ
ど、そのパスが表す状態遷移の過程は、入力された符号
系列を生成する際に実際に辿った状態遷移の過程に近い
ということになる。
状態遷移が行われた場合に生成されるべき既知の符号系
列と、実際に入力された符号系列との距離を表してお
り、この距離が小さい(即ち、尤度が大きい)パスほ
ど、そのパスが表す状態遷移の過程は、入力された符号
系列を生成する際に実際に辿った状態遷移の過程に近い
ということになる。
【0011】なお、上述したように、ある状態に合流す
るブランチ(即ちパス)は、必ず2つずつ存在する。こ
のため、新たな符号が入力される毎に、各内部状態に到
る各一対のパスのパスメトリックをそれぞれ算出し、算
出されたパスメトリックの小さい方を、その内部状態に
ついての生き残りパスとして選択する手順を繰り返すこ
とにより、各時刻毎に各内部状態についての生き残りパ
スを順次定め、最終的に各内部状態の生き残りパスの中
から、尤度が最大であるパスを最尤パスとして選択すれ
ば、この最尤パスから入力された符号系列を特定するこ
とができ、ひいては復号データを生成することができる
のである。
るブランチ(即ちパス)は、必ず2つずつ存在する。こ
のため、新たな符号が入力される毎に、各内部状態に到
る各一対のパスのパスメトリックをそれぞれ算出し、算
出されたパスメトリックの小さい方を、その内部状態に
ついての生き残りパスとして選択する手順を繰り返すこ
とにより、各時刻毎に各内部状態についての生き残りパ
スを順次定め、最終的に各内部状態の生き残りパスの中
から、尤度が最大であるパスを最尤パスとして選択すれ
ば、この最尤パスから入力された符号系列を特定するこ
とができ、ひいては復号データを生成することができる
のである。
【0012】ここで、図9は、このような処理を実現す
るビタビ復号器の一般的な構成を表すブロック図であ
る。図9に示すように、このビタビ復号器102では、
内部状態毎に該内部状態に到るパスを記憶するパスメモ
リ106と、同じく内部状態毎に、パスメモリ106に
記憶されたパスのパスメトリックを記憶するパスメトリ
ック(PM)メモリ108と、PMメモリ108から同
一状態に遷移する一対の内部状態についてのパスメトリ
ックを読み込んで、ブランチメトリックとの加算を行う
ことにより、新たなブランチが追加された一対のパスの
パスメトリックを算出し、この算出されたパスメトリッ
クの小さい方を生き残りパスとして選択するACS計算
を実行し、その処理結果をパスメモリ106及びPMメ
モリ108に書き込むACS回路110と、ACS回路
110での処理に従って、パスメモリ106及びPMメ
モリ108のアドレスを制御するアドレス制御回路12
2a,122bと、決められた長さの符号系列について
の処理を終了する毎に、PMメモリ108の記憶内容に
基づいてパスメトリックの最も小さい内部状態を検出す
る最尤パス検出器124と、この最尤パス検出器124
にて検出された内部状態に対応するパスを、パスメモリ
106から読み出して、データを復元し誤り訂正後のデ
ータとして出力する最尤復号器126とを備えている。
るビタビ復号器の一般的な構成を表すブロック図であ
る。図9に示すように、このビタビ復号器102では、
内部状態毎に該内部状態に到るパスを記憶するパスメモ
リ106と、同じく内部状態毎に、パスメモリ106に
記憶されたパスのパスメトリックを記憶するパスメトリ
ック(PM)メモリ108と、PMメモリ108から同
一状態に遷移する一対の内部状態についてのパスメトリ
ックを読み込んで、ブランチメトリックとの加算を行う
ことにより、新たなブランチが追加された一対のパスの
パスメトリックを算出し、この算出されたパスメトリッ
クの小さい方を生き残りパスとして選択するACS計算
を実行し、その処理結果をパスメモリ106及びPMメ
モリ108に書き込むACS回路110と、ACS回路
110での処理に従って、パスメモリ106及びPMメ
モリ108のアドレスを制御するアドレス制御回路12
2a,122bと、決められた長さの符号系列について
の処理を終了する毎に、PMメモリ108の記憶内容に
基づいてパスメトリックの最も小さい内部状態を検出す
る最尤パス検出器124と、この最尤パス検出器124
にて検出された内部状態に対応するパスを、パスメモリ
106から読み出して、データを復元し誤り訂正後のデ
ータとして出力する最尤復号器126とを備えている。
【0013】また、パスメモリ106は、それぞれが全
ての内部状態についてのデータを格納できるように構成
された一対のメモリブロック106a,106bからな
り、一方が読み込みに使用されている時には、他方が書
き込みに使用されるように、セレクタ120a,120
bを介して制御され、また、PMメモリ108も同様に
一対のメモリブロック108a,108bからなり、セ
レクタ116a,116bを介して制御されるように構
成されている。
ての内部状態についてのデータを格納できるように構成
された一対のメモリブロック106a,106bからな
り、一方が読み込みに使用されている時には、他方が書
き込みに使用されるように、セレクタ120a,120
bを介して制御され、また、PMメモリ108も同様に
一対のメモリブロック108a,108bからなり、セ
レクタ116a,116bを介して制御されるように構
成されている。
【0014】このように構成されたビタビ復号器102
の動作を、拘束長K=6として具体的に説明する。即
ち、このビタビ復号器102では、32(25 )個(状
態[0],[1],…[31]と表記する)の状態を有
しており、また、各メモリブロック106a,106
b,108a,108bでは、状態[i]のデータはi
番地といったように、各状態毎に決められたアドレスに
データを格納するようにされている。
の動作を、拘束長K=6として具体的に説明する。即
ち、このビタビ復号器102では、32(25 )個(状
態[0],[1],…[31]と表記する)の状態を有
しており、また、各メモリブロック106a,106
b,108a,108bでは、状態[i]のデータはi
番地といったように、各状態毎に決められたアドレスに
データを格納するようにされている。
【0015】まず、PMメモリ108の一方のメモリブ
ロックを読込用,他方のメモリブロックを書込用に設定
し、読込用に設定されたメモリブロックから、遷移先の
状態が等しくなる一対の状態(例えば[0],[1])
についてのパスメトリックを読み込んで、予め計算され
たブランチメトリックとのACS計算を行い、その処理
結果を、書込用に設定されたメモリブロックに書き込
む。このとき、各処理結果は、遷移先の状態([0],
[16])に対応したアドレスに書き込まれる。以下、
同様に、読込用に設定されたメモリブロックから状態
[2n],[2n+1](n=0,1,…15)につい
てのパスメトリックを読み込んで、ACS計算を行い、
その処理結果を、書込用に設定されたメモリブロック
の、遷移先の状態[n],[n+16]に対応したアド
レスに書き込む処理を順次繰り返すことにより、全ての
状態[0]〜[31]についてパスメトリックの更新が
一通り終了すると、メモリブロック108a,108b
の設定を読込用と書込用とで入れ替えて、同様の処理を
繰り返す。
ロックを読込用,他方のメモリブロックを書込用に設定
し、読込用に設定されたメモリブロックから、遷移先の
状態が等しくなる一対の状態(例えば[0],[1])
についてのパスメトリックを読み込んで、予め計算され
たブランチメトリックとのACS計算を行い、その処理
結果を、書込用に設定されたメモリブロックに書き込
む。このとき、各処理結果は、遷移先の状態([0],
[16])に対応したアドレスに書き込まれる。以下、
同様に、読込用に設定されたメモリブロックから状態
[2n],[2n+1](n=0,1,…15)につい
てのパスメトリックを読み込んで、ACS計算を行い、
その処理結果を、書込用に設定されたメモリブロック
の、遷移先の状態[n],[n+16]に対応したアド
レスに書き込む処理を順次繰り返すことにより、全ての
状態[0]〜[31]についてパスメトリックの更新が
一通り終了すると、メモリブロック108a,108b
の設定を読込用と書込用とで入れ替えて、同様の処理を
繰り返す。
【0016】即ち、このようにPMメモリ108が一対
のメモリブロック108a,108bを必要とするの
は、読み込んだデータが格納されていたアドレスと、処
理後に格納すべきデータのアドレスとが異なっているた
め、メモリブロックが一つしかない場合、読み出されて
いない未処理のデータに新たなデータが上書きされてし
まい、正しく処理をすることができなくなってしまうか
らである。
のメモリブロック108a,108bを必要とするの
は、読み込んだデータが格納されていたアドレスと、処
理後に格納すべきデータのアドレスとが異なっているた
め、メモリブロックが一つしかない場合、読み出されて
いない未処理のデータに新たなデータが上書きされてし
まい、正しく処理をすることができなくなってしまうか
らである。
【0017】なお、パスメモリ106についても、選択
されたパスに従って、一つ前の内部状態のパスを読み込
んで、その内容を、新たに追加されたブランチを表すデ
ータを加えたものに更新し、遷移先の状態に対応したア
ドレスに書き込むといった、PMメモリ108とほぼ同
様の手順により内容の更新が行われている。
されたパスに従って、一つ前の内部状態のパスを読み込
んで、その内容を、新たに追加されたブランチを表すデ
ータを加えたものに更新し、遷移先の状態に対応したア
ドレスに書き込むといった、PMメモリ108とほぼ同
様の手順により内容の更新が行われている。
【0018】このようなビタビ復号器102では、一つ
の符号を受信する毎に、2K-1 個の各内部状態毎に同様
の処理を行わねばならない。従って、ACS回路110
では、符号が入力される早さの2K-1 倍以上のクロック
を使用して、ACS計算を行わなければならず、回路設
計が難しいだけでなく、高速に動作する部品を用いて装
置を構成しなければならないため、装置が非常に高価な
ものとなってしまう。
の符号を受信する毎に、2K-1 個の各内部状態毎に同様
の処理を行わねばならない。従って、ACS回路110
では、符号が入力される早さの2K-1 倍以上のクロック
を使用して、ACS計算を行わなければならず、回路設
計が難しいだけでなく、高速に動作する部品を用いて装
置を構成しなければならないため、装置が非常に高価な
ものとなってしまう。
【0019】そこで、通常は、特開平8−340262
号に開示されているように、ACS回路での動作速度を
抑えるために、上述のACS回路110を多重化するこ
とが行われている。そして、このようにACS回路を多
重化した場合、各ACS回路を並列動作させるために、
パスメモリ106やPMメモリ108も、各ACS回路
に対応して、独立に制御可能な複数の部分に分割する必
要があり、分割された部分毎に、一対のメモリブロック
が設けられていた。
号に開示されているように、ACS回路での動作速度を
抑えるために、上述のACS回路110を多重化するこ
とが行われている。そして、このようにACS回路を多
重化した場合、各ACS回路を並列動作させるために、
パスメモリ106やPMメモリ108も、各ACS回路
に対応して、独立に制御可能な複数の部分に分割する必
要があり、分割された部分毎に、一対のメモリブロック
が設けられていた。
【0020】
【発明が解決しようとする課題】ところで、パスメモリ
106及びPMメモリ108では、全データの格納に必
要なワード数(アドレス数)が符号化時の拘束長Kによ
り決定され、各ワード毎のビット数が、パスメモリ10
6では、最尤復号器からデータ出力を行うまでに蓄積さ
れる符号数(以下、フレーム数という)により、PMメ
モリ108では1符号当たりのビット数とフレーム数と
により決定される。
106及びPMメモリ108では、全データの格納に必
要なワード数(アドレス数)が符号化時の拘束長Kによ
り決定され、各ワード毎のビット数が、パスメモリ10
6では、最尤復号器からデータ出力を行うまでに蓄積さ
れる符号数(以下、フレーム数という)により、PMメ
モリ108では1符号当たりのビット数とフレーム数と
により決定される。
【0021】そして、このようなビタビ復号器102を
移動体通信機などにて使用するには、小型で且つできる
だけ高い誤り訂正能力を有することが要求される。しか
し、誤り訂正能力を高くするには、拘束長Kやフレーム
数を大きくしたり、符号化率Rを小さく(即ち、1符号
当たりのビット数を大きく)する必要があり、従って、
パスメモリ106やPMメモリ108の容量を増大させ
なければならない。しかも、上述の装置では、同じ容量
のものを各一対ずつ用意しなければならないため、パス
メモリ106やPMメモリ108が大型化してしまい、
装置を小型化する要求に反してしまうという問題があっ
た。
移動体通信機などにて使用するには、小型で且つできる
だけ高い誤り訂正能力を有することが要求される。しか
し、誤り訂正能力を高くするには、拘束長Kやフレーム
数を大きくしたり、符号化率Rを小さく(即ち、1符号
当たりのビット数を大きく)する必要があり、従って、
パスメモリ106やPMメモリ108の容量を増大させ
なければならない。しかも、上述の装置では、同じ容量
のものを各一対ずつ用意しなければならないため、パス
メモリ106やPMメモリ108が大型化してしまい、
装置を小型化する要求に反してしまうという問題があっ
た。
【0022】本発明は、パスメモリやパスメトリックメ
モリの削減して装置の小型化を図ることが可能なビタビ
復号器を提供することを目的とする。
モリの削減して装置の小型化を図ることが可能なビタビ
復号器を提供することを目的とする。
【0023】
【課題を解決するための手段】上記目的を達成するため
になされた本発明のビタビ復号器では、ブランチメトリ
ック算出手段が、内部状態間の状態遷移を表すブランチ
毎に、ブランチを経由する際に入力されるべき設定符号
と実際に入力された実符号との距離を表すブランチメト
リックをそれぞれ算出する。そして、パス記憶手段に記
憶された、各内部状態に到るまでに選択されたブランチ
の経路であるパスと、パスメトリック記憶手段に記憶さ
れた、パス記憶手段に記憶されたパスについてのブラン
チメトリックの積算値であるパスメトリックとに基づ
き、ACS計算手段が、同一の内部状態に遷移する一対
の内部状態についての各パスメトリックに、遷移先の内
部状態に到るブランチのブランチメトリックをそれぞれ
加算することにより、遷移先の内部状態に到る一対のパ
スのパスメトリックを算出し、該算出されたパスメトリ
ックの小さい方のパスを、遷移先の内部状態についての
新たなパスとしてパス記憶手段及びパスメトリック記憶
手段の内容を更新する。
になされた本発明のビタビ復号器では、ブランチメトリ
ック算出手段が、内部状態間の状態遷移を表すブランチ
毎に、ブランチを経由する際に入力されるべき設定符号
と実際に入力された実符号との距離を表すブランチメト
リックをそれぞれ算出する。そして、パス記憶手段に記
憶された、各内部状態に到るまでに選択されたブランチ
の経路であるパスと、パスメトリック記憶手段に記憶さ
れた、パス記憶手段に記憶されたパスについてのブラン
チメトリックの積算値であるパスメトリックとに基づ
き、ACS計算手段が、同一の内部状態に遷移する一対
の内部状態についての各パスメトリックに、遷移先の内
部状態に到るブランチのブランチメトリックをそれぞれ
加算することにより、遷移先の内部状態に到る一対のパ
スのパスメトリックを算出し、該算出されたパスメトリ
ックの小さい方のパスを、遷移先の内部状態についての
新たなパスとしてパス記憶手段及びパスメトリック記憶
手段の内容を更新する。
【0024】なお、本発明では、ACS計算手段が2M
個並列に設けられていると共に、パス記憶手段及びパス
メトリック記憶手段のうち少なくともいずれか一方が、
それぞれを独立に制御可能な2M 個のメモリブロックB
K0,BK1,…BKx(x=2M−1 )からなるよう
に構成されている。
個並列に設けられていると共に、パス記憶手段及びパス
メトリック記憶手段のうち少なくともいずれか一方が、
それぞれを独立に制御可能な2M 個のメモリブロックB
K0,BK1,…BKx(x=2M−1 )からなるよう
に構成されている。
【0025】そして、アドレス制御手段により、各メモ
リブロックから連続した2M+1 個の状態[0+j・2
M+1][1+j・2M+1]…[2M+1−1+j・2M+1]に
ついてのデータが並列に読み出され、この読み出された
データは、データ分配手段により、格納されていたメモ
リブロックと予め1対1に対応付けられたACS計算手
段にそれぞれ供給され処理される。このACS計算手段
での処理結果は、データ分配手段により、半数の各メモ
リブロックBKi(i=0,1,…2M-1 −1)には、 状態[(2・i)+2M+1・j],[(2・i+1)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j+2M],[(2・i+1)+2M+1・j+2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) 残り半数の各メモリブロックBKi(i=2M-1,2M-1
+1,…2M−1 )には、 状態[(2・i)+2M+1・j],[(2・i)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j−2M],[(2・i+1)+2M+1・j−2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) についてのデータがそれぞれ格納されるよう分配され、
この分配されたデータが、アドレス制御手段により、先
にデータが読み出された同じアドレスに書き込まれる。
リブロックから連続した2M+1 個の状態[0+j・2
M+1][1+j・2M+1]…[2M+1−1+j・2M+1]に
ついてのデータが並列に読み出され、この読み出された
データは、データ分配手段により、格納されていたメモ
リブロックと予め1対1に対応付けられたACS計算手
段にそれぞれ供給され処理される。このACS計算手段
での処理結果は、データ分配手段により、半数の各メモ
リブロックBKi(i=0,1,…2M-1 −1)には、 状態[(2・i)+2M+1・j],[(2・i+1)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j+2M],[(2・i+1)+2M+1・j+2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) 残り半数の各メモリブロックBKi(i=2M-1,2M-1
+1,…2M−1 )には、 状態[(2・i)+2M+1・j],[(2・i)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j−2M],[(2・i+1)+2M+1・j−2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) についてのデータがそれぞれ格納されるよう分配され、
この分配されたデータが、アドレス制御手段により、先
にデータが読み出された同じアドレスに書き込まれる。
【0026】このように、本発明のビタビ復号器におい
ては、同一状態に遷移する一対の状態[2n]及び[2
n+1](n=0,1,…2K-2−1) についてのデー
タを、同じメモリブロックから読み出して同じACS計
算手段にて処理し、各ACS計算手段での処理結果を、
従来装置のように内部状態毎に決められたアドレスに書
き込むのではなく、内部状態毎に決められたメモリブロ
ック、且つ処理のために先にデータが読み出されたアド
レスに書き込むようにされている。
ては、同一状態に遷移する一対の状態[2n]及び[2
n+1](n=0,1,…2K-2−1) についてのデー
タを、同じメモリブロックから読み出して同じACS計
算手段にて処理し、各ACS計算手段での処理結果を、
従来装置のように内部状態毎に決められたアドレスに書
き込むのではなく、内部状態毎に決められたメモリブロ
ック、且つ処理のために先にデータが読み出されたアド
レスに書き込むようにされている。
【0027】つまり、全内部状態についてデータの更新
が一通り終了すると、各データが格納されているアドレ
スは、処理前とは異なったものとなる。しかし、各メモ
リブロックには、それぞれ処理前と同じ内部状態のデー
タが格納されているため、各メモリブロック毎に、アク
セスする順番を変更しさえすれば、各ACS計算手段
は、各内部状態についてのデータが、常に同じ組み合わ
せで供給され、同様の処理を繰り返すことができるので
ある。
が一通り終了すると、各データが格納されているアドレ
スは、処理前とは異なったものとなる。しかし、各メモ
リブロックには、それぞれ処理前と同じ内部状態のデー
タが格納されているため、各メモリブロック毎に、アク
セスする順番を変更しさえすれば、各ACS計算手段
は、各内部状態についてのデータが、常に同じ組み合わ
せで供給され、同様の処理を繰り返すことができるので
ある。
【0028】従って、本発明のビタビ復号器によれば、
各ACS計算手段毎に、2重にメモリブロックを設けな
くても、全ての内部状態についてのデータを、未処理の
データに処理結果を上書きしてしまうことなく処理する
ことができる。その結果、パス記憶手段及びパスメトリ
ック記憶手段の全体としての記憶容量を半分に削減でき
るため装置を小型化でき、また、従来と同じ記憶容量を
用いるのであれば、より、誤り訂正能力の高い復号を行
うことが可能となる。
各ACS計算手段毎に、2重にメモリブロックを設けな
くても、全ての内部状態についてのデータを、未処理の
データに処理結果を上書きしてしまうことなく処理する
ことができる。その結果、パス記憶手段及びパスメトリ
ック記憶手段の全体としての記憶容量を半分に削減でき
るため装置を小型化でき、また、従来と同じ記憶容量を
用いるのであれば、より、誤り訂正能力の高い復号を行
うことが可能となる。
【0029】なお、メモリブロックには、同一状態に遷
移する一対の状態[2n],[2n+1] についての
データが、同一番地にて同時に読み書きが可能なように
格納されていてもよい。この場合、メモリブロックから
の読込時、及びメモリブロックへの書込時に、一回の操
作で実行することができるため、処理の高速化を図るこ
とができる。
移する一対の状態[2n],[2n+1] についての
データが、同一番地にて同時に読み書きが可能なように
格納されていてもよい。この場合、メモリブロックから
の読込時、及びメモリブロックへの書込時に、一回の操
作で実行することができるため、処理の高速化を図るこ
とができる。
【0030】
【発明の実施の形態】以下に本発明の実施例を図面と共
に説明する。図1は、符号化率Rが1/2,拘束長Kが
6である畳み込み符号を復号する本実施例のビタビ復号
器2の全体構成を表すブロック図である。
に説明する。図1は、符号化率Rが1/2,拘束長Kが
6である畳み込み符号を復号する本実施例のビタビ復号
器2の全体構成を表すブロック図である。
【0031】即ち、本実施例のビタビ復号器2は、入力
信号1ビット当たり2ビットの符号に符号化された符号
系列を復号するものであり、32(=25 )個の内部状
態(状態[0],[1],…[31])を有する。但
し、内部状態を識別する数値は、符号化時に次の符号を
決める過去5ビットのビット列を、最も古いビットを最
下位ビット(LSB)として数値表現したものであり、
各内部状態は、図2に示すように、右側の状態から矢印
の先に示された左側の状態、例えば、状態[10]であ
れば、状態[5]又は[21]に遷移するものとする。
信号1ビット当たり2ビットの符号に符号化された符号
系列を復号するものであり、32(=25 )個の内部状
態(状態[0],[1],…[31])を有する。但
し、内部状態を識別する数値は、符号化時に次の符号を
決める過去5ビットのビット列を、最も古いビットを最
下位ビット(LSB)として数値表現したものであり、
各内部状態は、図2に示すように、右側の状態から矢印
の先に示された左側の状態、例えば、状態[10]であ
れば、状態[5]又は[21]に遷移するものとする。
【0032】図1に示すように、本実施例のビタビ復号
器2は、各内部状態に到る各一対のブランチについて、
そのブランチに対応する状態遷移が行われた時に生成さ
れるべき既知の符号と実際に当該復号器2に入力された
符号との距離、即ちブランチメトリックを算出するブラ
ンチメトリック(BM)計算回路4と、内部状態毎にそ
の内部状態に到る選択された唯一のパスを記憶するパス
メモリ6(6a〜6d)と、同じく内部状態毎にパスメ
モリ6に記憶されたパスのパスメトリックを記憶するパ
スメトリック(PM)メモリ8(8a〜8d)と、PM
メモリ8から同一状態に遷移する一対の内部状態につい
てのパスメトリックを読み込んで、ブランチメトリック
との加算を行うことにより、新たなブランチが追加され
た同一の内部状態に到る一対のパスのパスメトリックを
算出し、この算出されたパスメトリックの小さい方を生
き残りパスとして選択するACS計算を実行し、その処
理結果によりPMメモリ8の記憶内容を更新する4個の
ACS回路10(10a〜10d)と、ACS回路10
での処理結果に基づきパスメモリ6の記憶内容を更新す
る4個のパス更新回路12(12a〜12d)とを備え
ている。
器2は、各内部状態に到る各一対のブランチについて、
そのブランチに対応する状態遷移が行われた時に生成さ
れるべき既知の符号と実際に当該復号器2に入力された
符号との距離、即ちブランチメトリックを算出するブラ
ンチメトリック(BM)計算回路4と、内部状態毎にそ
の内部状態に到る選択された唯一のパスを記憶するパス
メモリ6(6a〜6d)と、同じく内部状態毎にパスメ
モリ6に記憶されたパスのパスメトリックを記憶するパ
スメトリック(PM)メモリ8(8a〜8d)と、PM
メモリ8から同一状態に遷移する一対の内部状態につい
てのパスメトリックを読み込んで、ブランチメトリック
との加算を行うことにより、新たなブランチが追加され
た同一の内部状態に到る一対のパスのパスメトリックを
算出し、この算出されたパスメトリックの小さい方を生
き残りパスとして選択するACS計算を実行し、その処
理結果によりPMメモリ8の記憶内容を更新する4個の
ACS回路10(10a〜10d)と、ACS回路10
での処理結果に基づきパスメモリ6の記憶内容を更新す
る4個のパス更新回路12(12a〜12d)とを備え
ている。
【0033】なお、パスメモリ6は、独立に制御可能な
4つのメモリブロック6a〜6dからなり、各メモリブ
ロック6a〜6dから読み出されたデータは、それぞれ
決められたパス更新回路12a〜12dに入力されるよ
うに構成されている。また、PMメモリ8も、独立に制
御可能な4つのメモリブロック8a〜8dからなり、メ
モリブロック8a,8bから読み出されたデータは、そ
れぞれ決めれたACS回路10a,10bに入力され、
また、メモリブロック8c,8dから読み出されたデー
タは、それぞれバッファ9a,9bを介して決められた
ACS回路10c,10dに入力されるように構成され
ている。
4つのメモリブロック6a〜6dからなり、各メモリブ
ロック6a〜6dから読み出されたデータは、それぞれ
決められたパス更新回路12a〜12dに入力されるよ
うに構成されている。また、PMメモリ8も、独立に制
御可能な4つのメモリブロック8a〜8dからなり、メ
モリブロック8a,8bから読み出されたデータは、そ
れぞれ決めれたACS回路10a,10bに入力され、
また、メモリブロック8c,8dから読み出されたデー
タは、それぞれバッファ9a,9bを介して決められた
ACS回路10c,10dに入力されるように構成され
ている。
【0034】また、本実施例のビタビ復号器2は、AC
S回路10aから出力されるデータを上位ビット、AC
S回路10bから出力されるデータを下位ビットとして
合成し、PMメモリ8への書込データを生成する合成回
路14aと、ACS回路10cから出力されるデータを
上位ビット、ACS回路10dから出力されるデータを
下位ビットとして合成し、PMメモリ8への書込データ
を生成する合成回路14bと、PMメモリ8のメモリブ
ロック8a〜8d毎に設けられ、選択信号に従って、合
成回路14a,14bのいずれかからの書込データをメ
モリブロック8a〜8dにそれぞれ供給するセレクタ1
6a〜16dと、パス更新回路12aから出力されるデ
ータを上位ビット、パス更新回路12bから出力される
データを下位ビットとして合成し、パスメモリ6への書
込データを生成する合成回路18aと、パス更新回路1
2cから出力されるデータを上位ビット、パス更新回路
12dから出力されるデータを下位ビットとして合成
し、パスメモリ6への書込データを生成する合成回路1
8bと、パスメモリ6のメモリブロック6a〜6d毎に
設けられ、選択信号に従って、合成回路18a,18b
のいずれかからの書込データを各メモリブロック6a〜
6dにそれぞれ供給するセレクタ20a〜20dと、パ
スメモリ6,PMメモリ8のアドレス信号,セレクタ1
6a〜16d,20a〜20dの選択信号や、回路全体
を同期して動作させるためのタイミング信号等を生成す
るアドレス制御回路22とを備えている。
S回路10aから出力されるデータを上位ビット、AC
S回路10bから出力されるデータを下位ビットとして
合成し、PMメモリ8への書込データを生成する合成回
路14aと、ACS回路10cから出力されるデータを
上位ビット、ACS回路10dから出力されるデータを
下位ビットとして合成し、PMメモリ8への書込データ
を生成する合成回路14bと、PMメモリ8のメモリブ
ロック8a〜8d毎に設けられ、選択信号に従って、合
成回路14a,14bのいずれかからの書込データをメ
モリブロック8a〜8dにそれぞれ供給するセレクタ1
6a〜16dと、パス更新回路12aから出力されるデ
ータを上位ビット、パス更新回路12bから出力される
データを下位ビットとして合成し、パスメモリ6への書
込データを生成する合成回路18aと、パス更新回路1
2cから出力されるデータを上位ビット、パス更新回路
12dから出力されるデータを下位ビットとして合成
し、パスメモリ6への書込データを生成する合成回路1
8bと、パスメモリ6のメモリブロック6a〜6d毎に
設けられ、選択信号に従って、合成回路18a,18b
のいずれかからの書込データを各メモリブロック6a〜
6dにそれぞれ供給するセレクタ20a〜20dと、パ
スメモリ6,PMメモリ8のアドレス信号,セレクタ1
6a〜16d,20a〜20dの選択信号や、回路全体
を同期して動作させるためのタイミング信号等を生成す
るアドレス制御回路22とを備えている。
【0035】つまり、各ACS回路10a〜10dは、
それぞれPMメモリ8の決められたメモリブロック8a
〜8dからデータを読み込んで、任意のメモリブロック
8a〜8dに処理結果を書き込むことができるように構
成されており、また、同様にパス更新回路12a〜12
dは、それぞれパスメモリ6の決められたメモリブロッ
ク6a〜6dからデータを読み込んで、任意のメモリブ
ロック6a〜6dに処理結果を書き込むことができるよ
うに構成されている。
それぞれPMメモリ8の決められたメモリブロック8a
〜8dからデータを読み込んで、任意のメモリブロック
8a〜8dに処理結果を書き込むことができるように構
成されており、また、同様にパス更新回路12a〜12
dは、それぞれパスメモリ6の決められたメモリブロッ
ク6a〜6dからデータを読み込んで、任意のメモリブ
ロック6a〜6dに処理結果を書き込むことができるよ
うに構成されている。
【0036】更に、本実施例のビタビ復号器2は、決め
られた長さの符号系列(本実施例では16符号分,以
下、蓄積符号長という)についての処理を終了する毎
に、PMメモリ8の記憶内容に基づいてパスメトリック
の最も小さい内部状態を検出する最尤パス検出器24
と、この最尤パス検出器にて検出された内部状態に対応
するパスをパスメモリ6から読み出し、この読み出され
たパスに基づいて特定される符号系列に従って復号を行
うことにより誤り訂正された復号データを生成する最尤
復号器26とを備えている。
られた長さの符号系列(本実施例では16符号分,以
下、蓄積符号長という)についての処理を終了する毎
に、PMメモリ8の記憶内容に基づいてパスメトリック
の最も小さい内部状態を検出する最尤パス検出器24
と、この最尤パス検出器にて検出された内部状態に対応
するパスをパスメモリ6から読み出し、この読み出され
たパスに基づいて特定される符号系列に従って復号を行
うことにより誤り訂正された復号データを生成する最尤
復号器26とを備えている。
【0037】ここで、図3は、パスメモリ6及びPMメ
モリ8の構成を表す説明図であり、図3(a)に示すよ
うに、パスメモリ6は、蓄積符号長の2倍のビット幅
(本実施例では32ビット幅)でデータが読み書きさ
れ、このうち半分(本実施例では16ビット)ずつに分
割された上位ワードと下位ワードとで、異なる内部状態
のパスを格納するようにされている。
モリ8の構成を表す説明図であり、図3(a)に示すよ
うに、パスメモリ6は、蓄積符号長の2倍のビット幅
(本実施例では32ビット幅)でデータが読み書きさ
れ、このうち半分(本実施例では16ビット)ずつに分
割された上位ワードと下位ワードとで、異なる内部状態
のパスを格納するようにされている。
【0038】また、パスメモリ6の各メモリブロック6
a〜6dには、内部状態の総数2K- 1 (本実施例では3
2(K=6))を、メモリブロック数2M (本実施例で
は4(M=2))で割った2K-1/2M(本実施例では
8)個分のデータ(パス)がそれぞれ格納され、しか
も、各アドレスには2つの内部状態についてのデータが
格納されるため、各メモリブロック6a〜6dは、格納
されるデータ数の半分(本実施例では4)のアドレスに
より制御される。
a〜6dには、内部状態の総数2K- 1 (本実施例では3
2(K=6))を、メモリブロック数2M (本実施例で
は4(M=2))で割った2K-1/2M(本実施例では
8)個分のデータ(パス)がそれぞれ格納され、しか
も、各アドレスには2つの内部状態についてのデータが
格納されるため、各メモリブロック6a〜6dは、格納
されるデータ数の半分(本実施例では4)のアドレスに
より制御される。
【0039】なお、パスメモリ6に格納されたデータの
各ビットは、同じ内部状態に到る一対のブランチの一方
を0,他方を1として各内部状態毎に定義された1ビッ
トのデータを表しており、このデータを、ACS計算を
繰り返すことにより順次選択されるブランチに対応し
て、順番に並べることによりパスを表している。
各ビットは、同じ内部状態に到る一対のブランチの一方
を0,他方を1として各内部状態毎に定義された1ビッ
トのデータを表しており、このデータを、ACS計算を
繰り返すことにより順次選択されるブランチに対応し
て、順番に並べることによりパスを表している。
【0040】つまり、本実施例においてパスメモリ6の
各メモリブロック6a〜6dは、最大16個のブランチ
からなるパスを8個ずつ格納し、この8個のパスを、4
つのアドレス(0〜3番地)にて一度に2つずつ読み書
きできるように構成されている。
各メモリブロック6a〜6dは、最大16個のブランチ
からなるパスを8個ずつ格納し、この8個のパスを、4
つのアドレス(0〜3番地)にて一度に2つずつ読み書
きできるように構成されている。
【0041】一方、PMメモリ8は、図3(b)に示す
ように、蓄積符号長をNb(本実施例では16)ビッ
ト,1符号当たりのビット数をNc(本実施例では2)
ビットとすると、2・{(log2 Nb・Nc)+1}
ビット幅(本実施例では12ビット幅)でデータが読み
書きされ、このうち半分(本実施例では6ビット)ずつ
に分割された上位ワードと下位ワードとで、異なる内部
状態のデータ(パスメトリック)を格納するようにされ
ている。
ように、蓄積符号長をNb(本実施例では16)ビッ
ト,1符号当たりのビット数をNc(本実施例では2)
ビットとすると、2・{(log2 Nb・Nc)+1}
ビット幅(本実施例では12ビット幅)でデータが読み
書きされ、このうち半分(本実施例では6ビット)ずつ
に分割された上位ワードと下位ワードとで、異なる内部
状態のデータ(パスメトリック)を格納するようにされ
ている。
【0042】即ち、Nb個のブランチからなるパスのパ
スメトリックは、最大Nb・Nc(本実施例では32)
の値をとるため、これを2進数で表すには、一つの内部
状態当たり{(log2 Nb・Nc)+1}ビット幅が
必要となるのである。また、PMメモリ8の各メモリブ
ロック8a〜8dには、パスメモリ6のメモリブロック
6a〜6dと全く同様に、2K-1/2M(本実施例では
8)個分のデータ(パスメトリック)がそれぞれ格納さ
れ、しかも、各アドレスには各一対のデータが格納され
るため、各メモリブロック8a〜8dは、それぞれ格納
されるデータ数の半分(本実施例では4)のアドレスに
より制御される。
スメトリックは、最大Nb・Nc(本実施例では32)
の値をとるため、これを2進数で表すには、一つの内部
状態当たり{(log2 Nb・Nc)+1}ビット幅が
必要となるのである。また、PMメモリ8の各メモリブ
ロック8a〜8dには、パスメモリ6のメモリブロック
6a〜6dと全く同様に、2K-1/2M(本実施例では
8)個分のデータ(パスメトリック)がそれぞれ格納さ
れ、しかも、各アドレスには各一対のデータが格納され
るため、各メモリブロック8a〜8dは、それぞれ格納
されるデータ数の半分(本実施例では4)のアドレスに
より制御される。
【0043】つまり、本実施例においてPMメモリ8の
各メモリブロック8a〜8dは、数値0〜32で表され
るパスメトリックを8個ずつ格納し、この8個のパスメ
トリックを、4つのアドレス(0〜3番地)にて一度に
2つずつ読み書きできるように構成されている。
各メモリブロック8a〜8dは、数値0〜32で表され
るパスメトリックを8個ずつ格納し、この8個のパスメ
トリックを、4つのアドレス(0〜3番地)にて一度に
2つずつ読み書きできるように構成されている。
【0044】次に、アドレス制御回路22は、パスメモ
リ6及びPMメモリ8を制御するために、2種類のアド
レス生成回路30,40を備えている。このうち、メモ
リブロック6a,6b,8a,8bを制御するためのア
ドレスを生成する第1アドレス生成回路30は、図4に
示すように、3ビット出力(Q0〜Q2)のアドレスカ
ウンタ32と、最上位ビットQ2がLow レベルの時に出
力Q0、Highレベルの時に出力Q1を下位アドレスA0
として出力するセレクタ34と、ビットQ2がLow レベ
ルの時に出力Q1、Highレベルの時に出力Q0を上位ア
ドレスA1として出力するセレクタ36とからなる。つ
まり、この第1アドレス生成回路30は、図4中の表H
1に示すように、0→1→2→3→0→2→1→3の順
序で変化するアドレスを生成するように構成されてい
る。
リ6及びPMメモリ8を制御するために、2種類のアド
レス生成回路30,40を備えている。このうち、メモ
リブロック6a,6b,8a,8bを制御するためのア
ドレスを生成する第1アドレス生成回路30は、図4に
示すように、3ビット出力(Q0〜Q2)のアドレスカ
ウンタ32と、最上位ビットQ2がLow レベルの時に出
力Q0、Highレベルの時に出力Q1を下位アドレスA0
として出力するセレクタ34と、ビットQ2がLow レベ
ルの時に出力Q1、Highレベルの時に出力Q0を上位ア
ドレスA1として出力するセレクタ36とからなる。つ
まり、この第1アドレス生成回路30は、図4中の表H
1に示すように、0→1→2→3→0→2→1→3の順
序で変化するアドレスを生成するように構成されてい
る。
【0045】一方、メモリブロック6c,6d,8c,
8dを制御するためのアドレスを生成する第2アドレス
生成回路40は、図5に示すように、4ビット出力(Q
0〜Q3)のアドレスカウンタ42と、出力Q0,Q1
を反転させた反転出力*Q0,*Q1をそれぞれ生成す
る反転回路47,48と、アドレスカウンタ42の出力
Q2,Q3に従って、(Q3,Q2)が(0,0)なら
ばQ0,(0,1)ならば*Q1,(1,0)ならば*
Q0,(1,1)ならばQ1を選択して、下位アドレス
A0として出力するセレクタ44と、(Q3,Q2)
が、(0,0)ならばQ1,(0,1)ならばQ0,
(1,0)ならば*Q1,(1,1)ならば*Q0を選
択して、上位アドレスA1として出力するセレクタ46
とからなる。つまり、この第2アドレス生成回路40
は、図5中の表H2に示すように、0→1→2→3→1
→3→0→2→3→2→1→0→2→0→3→1の順序
で変化するアドレスを生成するように構成されている。
8dを制御するためのアドレスを生成する第2アドレス
生成回路40は、図5に示すように、4ビット出力(Q
0〜Q3)のアドレスカウンタ42と、出力Q0,Q1
を反転させた反転出力*Q0,*Q1をそれぞれ生成す
る反転回路47,48と、アドレスカウンタ42の出力
Q2,Q3に従って、(Q3,Q2)が(0,0)なら
ばQ0,(0,1)ならば*Q1,(1,0)ならば*
Q0,(1,1)ならばQ1を選択して、下位アドレス
A0として出力するセレクタ44と、(Q3,Q2)
が、(0,0)ならばQ1,(0,1)ならばQ0,
(1,0)ならば*Q1,(1,1)ならば*Q0を選
択して、上位アドレスA1として出力するセレクタ46
とからなる。つまり、この第2アドレス生成回路40
は、図5中の表H2に示すように、0→1→2→3→1
→3→0→2→3→2→1→0→2→0→3→1の順序
で変化するアドレスを生成するように構成されている。
【0046】なお、アドレス制御回路22には、第2ア
ドレス生成回路40が生成するアドレスを、一時的に記
憶するアドレスバッファ(図示せず)も設けられてい
る。また、本実施例では、各メモリブロックを制御する
アドレスの数Nmが4の場合を説明しているが、アドレ
スを変化させる順番は、このアドレスの数Nmによって
異なり、一般的に、第1アドレス生成回路は、log2
Nm ビットのカウンタの出力表に従ってアドレスを変
化させ、一通りの変化(即ち、Nm個のアドレスの出
力)を終了する毎に、出力表の各値を上位ビット側にシ
フトさせ、キャリーアウトした最上位ビットの値を最下
位ビットの値として付加することにより作成される出力
表に順次切り換え、この切り換えた出力表に従ってアド
レスを出力するように構成すればよい。
ドレス生成回路40が生成するアドレスを、一時的に記
憶するアドレスバッファ(図示せず)も設けられてい
る。また、本実施例では、各メモリブロックを制御する
アドレスの数Nmが4の場合を説明しているが、アドレ
スを変化させる順番は、このアドレスの数Nmによって
異なり、一般的に、第1アドレス生成回路は、log2
Nm ビットのカウンタの出力表に従ってアドレスを変
化させ、一通りの変化(即ち、Nm個のアドレスの出
力)を終了する毎に、出力表の各値を上位ビット側にシ
フトさせ、キャリーアウトした最上位ビットの値を最下
位ビットの値として付加することにより作成される出力
表に順次切り換え、この切り換えた出力表に従ってアド
レスを出力するように構成すればよい。
【0047】また、第2アドレス生成回路は、同様に一
通りの変化を終了する毎に、出力表の各値を上位ビット
側にシフトさせ、キャリーアウトした最上位ビットの値
を反転させて最下位ビットに付加することにより作成さ
れる出力表に順次切り換え、この切り換えた出力表に従
ってアドレスを出力するように構成すればよい。
通りの変化を終了する毎に、出力表の各値を上位ビット
側にシフトさせ、キャリーアウトした最上位ビットの値
を反転させて最下位ビットに付加することにより作成さ
れる出力表に順次切り換え、この切り換えた出力表に従
ってアドレスを出力するように構成すればよい。
【0048】次に、以上のように構成された本実施例の
ビタビ復号器2の動作を、PMメモリ8へのデータの読
み書きを中心にして説明する。ここで、図6は、PMメ
モリ8の各メモリブロック8a〜8dでのデータの格納
状態を表す説明図であり、図7は、本実施例のビタビ復
号器2の各部の動作を表すタイミング図である。なお、
以下では、状態[X]についてのデータを、データ
{X}と表記するものとする。
ビタビ復号器2の動作を、PMメモリ8へのデータの読
み書きを中心にして説明する。ここで、図6は、PMメ
モリ8の各メモリブロック8a〜8dでのデータの格納
状態を表す説明図であり、図7は、本実施例のビタビ復
号器2の各部の動作を表すタイミング図である。なお、
以下では、状態[X]についてのデータを、データ
{X}と表記するものとする。
【0049】図6に示すように、初期状態(更新回数
0)の時、PMメモリ8のメモリブロック8aには、0
番地にデータ{0}{1},1番地にデータ{8}
{9},2番地にデータ{20}{21},3番地にデ
ータ{28}{29}が格納され、メモリブロック8b
には、0番地にデータ{2}{3},1番地にデータ
{10}{11},2番地にデータ{22}{23},
3番地にデータ{30}{31}が格納され、メモリブ
ロック8cには、0番地にデータ{4}{5},1番地
にデータ{12}{13},2番地にデータ{16}
{17},3番地にデータ{24}{25}が格納さ
れ、メモリブロック8dには、0番地にデータ{6}
{7},1番地にデータ{14}{15},2番地にデ
ータ{18}{19},3番地にデータ{26}{2
7}が格納されている。
0)の時、PMメモリ8のメモリブロック8aには、0
番地にデータ{0}{1},1番地にデータ{8}
{9},2番地にデータ{20}{21},3番地にデ
ータ{28}{29}が格納され、メモリブロック8b
には、0番地にデータ{2}{3},1番地にデータ
{10}{11},2番地にデータ{22}{23},
3番地にデータ{30}{31}が格納され、メモリブ
ロック8cには、0番地にデータ{4}{5},1番地
にデータ{12}{13},2番地にデータ{16}
{17},3番地にデータ{24}{25}が格納さ
れ、メモリブロック8dには、0番地にデータ{6}
{7},1番地にデータ{14}{15},2番地にデ
ータ{18}{19},3番地にデータ{26}{2
7}が格納されている。
【0050】また、この時、第1及び第2アドレス生成
回路30,40のアドレスカウンタ32,42はゼロク
リアされており、第1アドレス生成回路30が生成する
アドレス(以下、第1アドレスという),第2アドレス
生成回路40が生成するアドレス(以下、第2読出アド
レスという),及びアドレスバッファに格納されたアド
レス(以下、第2書込アドレスという)は、いずれも0
番地に設定されているものとする。
回路30,40のアドレスカウンタ32,42はゼロク
リアされており、第1アドレス生成回路30が生成する
アドレス(以下、第1アドレスという),第2アドレス
生成回路40が生成するアドレス(以下、第2読出アド
レスという),及びアドレスバッファに格納されたアド
レス(以下、第2書込アドレスという)は、いずれも0
番地に設定されているものとする。
【0051】この状態から、図7に示すように、まず時
刻t1では、第2読出アドレス(ここでは0番地)に従
って、メモリブロック8c,8dからデータ{4}
{5}及び{6}{7}を読み出して、バッファ9a,
9bに格納する。続く時刻t2では、第1アドレス(こ
こでは0番地)に従って、メモリブロック8a,8bか
らデータ{0}{1}及び{2}{3}を読み出してA
CS回路10a,10bに供給すると共に、先にバッフ
ァ9a,9bに格納されているデータ{4}{5}及び
{6}{7}を読み出してACS回路10c,10dに
供給する。
刻t1では、第2読出アドレス(ここでは0番地)に従
って、メモリブロック8c,8dからデータ{4}
{5}及び{6}{7}を読み出して、バッファ9a,
9bに格納する。続く時刻t2では、第1アドレス(こ
こでは0番地)に従って、メモリブロック8a,8bか
らデータ{0}{1}及び{2}{3}を読み出してA
CS回路10a,10bに供給すると共に、先にバッフ
ァ9a,9bに格納されているデータ{4}{5}及び
{6}{7}を読み出してACS回路10c,10dに
供給する。
【0052】この時、ACS回路10aは、供給された
一対のデータ{0}{1}に基づきACS計算を行って
一対のデータ{0}{16}を生成し(図2参照)、こ
の一対のデータのうち一方のデータ{0}のみ出力す
る。同様に他のACS回路10b〜10dでも、それぞ
れ供給された各一対のデータ{2}{3},{4}
{5},{6}{7}に基づいて、各一対のデータ
{1}{17},{2}{18},{3}{19}を生
成し、このうち各一方のデータ{1}{2}{3}のみ
出力する。
一対のデータ{0}{1}に基づきACS計算を行って
一対のデータ{0}{16}を生成し(図2参照)、こ
の一対のデータのうち一方のデータ{0}のみ出力す
る。同様に他のACS回路10b〜10dでも、それぞ
れ供給された各一対のデータ{2}{3},{4}
{5},{6}{7}に基づいて、各一対のデータ
{1}{17},{2}{18},{3}{19}を生
成し、このうち各一方のデータ{1}{2}{3}のみ
出力する。
【0053】続く時刻t3では、ACS回路10a,1
0bから出力され合成回路14aにて合成されたデータ
{0}{1}がメモリブロック8aに供給され、ACS
回路10c,10dから出力され合成回路14bにて合
成されたデータ{2}{3}がメモリブロック8bに供
給されるようにセレクタ16a,16bを設定し、第1
アドレス(ここでは0番地)に従って、これらデータ
{0}{1}及び{2}{3}をメモリブロック8a,
8bに書き込む。これと共に、各ACS回路10a〜1
0dから、データ{0}〜{7}に対するACS計算結
果のうち残り半分のデータ{16}〜{19}を出力す
る。
0bから出力され合成回路14aにて合成されたデータ
{0}{1}がメモリブロック8aに供給され、ACS
回路10c,10dから出力され合成回路14bにて合
成されたデータ{2}{3}がメモリブロック8bに供
給されるようにセレクタ16a,16bを設定し、第1
アドレス(ここでは0番地)に従って、これらデータ
{0}{1}及び{2}{3}をメモリブロック8a,
8bに書き込む。これと共に、各ACS回路10a〜1
0dから、データ{0}〜{7}に対するACS計算結
果のうち残り半分のデータ{16}〜{19}を出力す
る。
【0054】更に、アドレス制御回路22では、第2読
出アドレスをアドレスバッファに格納することで第2書
込アドレスを更新すると共に、第2アドレス生成回路4
0のアドレスカウンタ42をインクリメントすることに
より第2読出アドレスを更新し、この更新された第2ア
ドレス(ここでは1番地)に従って、メモリブロック8
c,8dからデータ{12}{13}及び{14}{1
5}を読み出してバッファ9a,9bに格納する。
出アドレスをアドレスバッファに格納することで第2書
込アドレスを更新すると共に、第2アドレス生成回路4
0のアドレスカウンタ42をインクリメントすることに
より第2読出アドレスを更新し、この更新された第2ア
ドレス(ここでは1番地)に従って、メモリブロック8
c,8dからデータ{12}{13}及び{14}{1
5}を読み出してバッファ9a,9bに格納する。
【0055】続く時刻t4では、合成回路14aにて合
成されたデータ{16}{17}がメモリブロック8c
に供給され、合成回路14bにて合成されたデータ{1
8}{19}がメモリブロック8dに供給されるように
セレクタ16c,16dを設定し、第2書込アドレス
(ここでは0番地)に従って、これらデータ{16}
{17}及び{18}{19}をメモリブロック8c,
8dに書き込む。
成されたデータ{16}{17}がメモリブロック8c
に供給され、合成回路14bにて合成されたデータ{1
8}{19}がメモリブロック8dに供給されるように
セレクタ16c,16dを設定し、第2書込アドレス
(ここでは0番地)に従って、これらデータ{16}
{17}及び{18}{19}をメモリブロック8c,
8dに書き込む。
【0056】これと共に、アドレス制御回路22では、
第1アドレス生成回路30のアドレスカウンタ32をイ
ンクリメントすることにより第1アドレスを更新し、以
下、先の時刻t2の場合と全く同様に動作して、更新さ
れた第1アドレス(ここでは1番地)に従ってメモリブ
ロック8a,8bからデータ{8}{9}及び{10}
{11}の読込、メモリブロック8a,8b及びバッフ
ァ9a,9bから読み込んだデータ{8}〜{15}に
対するACS計算、各ACS回路10a〜10dからA
CS計算結果のうち半分のデータ{20}〜{23}の
出力が行われる。
第1アドレス生成回路30のアドレスカウンタ32をイ
ンクリメントすることにより第1アドレスを更新し、以
下、先の時刻t2の場合と全く同様に動作して、更新さ
れた第1アドレス(ここでは1番地)に従ってメモリブ
ロック8a,8bからデータ{8}{9}及び{10}
{11}の読込、メモリブロック8a,8b及びバッフ
ァ9a,9bから読み込んだデータ{8}〜{15}に
対するACS計算、各ACS回路10a〜10dからA
CS計算結果のうち半分のデータ{20}〜{23}の
出力が行われる。
【0057】続く時刻t5では、先の時刻t3の場合と
全く同様に動作して、第1アドレス(ここでは1番地)
に従ってメモリブロック8a,8bへのデータ{20}
{21}及び{22}{23}の書込、各ACS回路1
0a〜10dからデータ{8}〜{15}に対するAC
S計算結果のうち残り半分のデータ{4}〜{7}の出
力、第2書込アドレス及び第2読出アドレスの更新、更
新された第2読出アドレス(ここでは2番地)に従って
メモリブロック8c,8dから読み出したデータ{1
6}{17}及び{18}{19}のバッファ9a,9
bへの格納が行われる。
全く同様に動作して、第1アドレス(ここでは1番地)
に従ってメモリブロック8a,8bへのデータ{20}
{21}及び{22}{23}の書込、各ACS回路1
0a〜10dからデータ{8}〜{15}に対するAC
S計算結果のうち残り半分のデータ{4}〜{7}の出
力、第2書込アドレス及び第2読出アドレスの更新、更
新された第2読出アドレス(ここでは2番地)に従って
メモリブロック8c,8dから読み出したデータ{1
6}{17}及び{18}{19}のバッファ9a,9
bへの格納が行われる。
【0058】続く時刻t6では、先の時刻t4の場合と
同様に動作して、第2書込アドレス(ここでは1番地)
に従って、データ{4}{5}及び{6}{7}のメモ
リブロックの8c,8dへの書込、第1アドレスの更
新、更新された第1アドレス(ここでは2番地)に従っ
てメモリブロック8a,8bからデータ{20}{2
1}及び{22}{23}の読込、メモリブロック8
a,8b及びバッファ9a,9bから読み込んだデータ
{16}〜{23}に対するACS計算、各ACS回路
10a〜10dからACS計算結果のうち半分のデータ
{10}{11}{8}{9}の出力が行われる。
同様に動作して、第2書込アドレス(ここでは1番地)
に従って、データ{4}{5}及び{6}{7}のメモ
リブロックの8c,8dへの書込、第1アドレスの更
新、更新された第1アドレス(ここでは2番地)に従っ
てメモリブロック8a,8bからデータ{20}{2
1}及び{22}{23}の読込、メモリブロック8
a,8b及びバッファ9a,9bから読み込んだデータ
{16}〜{23}に対するACS計算、各ACS回路
10a〜10dからACS計算結果のうち半分のデータ
{10}{11}{8}{9}の出力が行われる。
【0059】続く時刻t7では、合成回路14aにて合
成されたデータがメモリブロック8bに供給され、合成
回路14bにて合成された書込データがメモリブロック
8aに供給されるようにセレクタ16a,16bが設定
される以外は、先の時刻t3,t5の場合と全く同様に
動作する。
成されたデータがメモリブロック8bに供給され、合成
回路14bにて合成された書込データがメモリブロック
8aに供給されるようにセレクタ16a,16bが設定
される以外は、先の時刻t3,t5の場合と全く同様に
動作する。
【0060】つまり、第1アドレス(ここでは2番地)
に従って、メモリブロック8a,8bへのデータ{8}
{9}及び{10}{11}の書込、各ACS回路10
a〜10dからデータ{16}〜{23}に対するAC
S計算結果のうち残り半分のデータ{26}{27}
{24}{25}の出力、第2書込アドレス及び第2読
出アドレスの更新、更新された第2読出アドレス(ここ
では3番地)に従ってメモリブロック8c,8dから読
み出したデータ{24}{25}及び{26}{27}
のバッファ9a,9bへの格納が行われる。
に従って、メモリブロック8a,8bへのデータ{8}
{9}及び{10}{11}の書込、各ACS回路10
a〜10dからデータ{16}〜{23}に対するAC
S計算結果のうち残り半分のデータ{26}{27}
{24}{25}の出力、第2書込アドレス及び第2読
出アドレスの更新、更新された第2読出アドレス(ここ
では3番地)に従ってメモリブロック8c,8dから読
み出したデータ{24}{25}及び{26}{27}
のバッファ9a,9bへの格納が行われる。
【0061】続く時刻t8では、合成回路14aにて合
成されたデータ{24}{25}がメモリブロック8c
に供給され、合成回路14bにて合成されたデータ{2
6}{27}がメモリブロック8dに供給されるように
セレクタ16a,16bが設定される以外は、先の時刻
t4,t6の場合と全く同様に動作する。つまり、第2
書込アドレス(ここでは2番地)に従ってメモリブロッ
クの8c,8dへのデータ{24}{25}及び{2
6}{27}の書込、第1アドレスの更新、更新された
第1アドレス(ここでは3番地)に従ってメモリブロッ
ク8a,8bからデータ{28}{29}及び{30}
{31}の読込、メモリブロック8a,8b及びバッフ
ァ9a,9bから読み込んだデータ{24}〜{31}
に対するACS計算、各ACS回路10a〜10dから
ACS計算結果のうち半分のデータ{30}{31}
{28}{29}の出力が行われる。
成されたデータ{24}{25}がメモリブロック8c
に供給され、合成回路14bにて合成されたデータ{2
6}{27}がメモリブロック8dに供給されるように
セレクタ16a,16bが設定される以外は、先の時刻
t4,t6の場合と全く同様に動作する。つまり、第2
書込アドレス(ここでは2番地)に従ってメモリブロッ
クの8c,8dへのデータ{24}{25}及び{2
6}{27}の書込、第1アドレスの更新、更新された
第1アドレス(ここでは3番地)に従ってメモリブロッ
ク8a,8bからデータ{28}{29}及び{30}
{31}の読込、メモリブロック8a,8b及びバッフ
ァ9a,9bから読み込んだデータ{24}〜{31}
に対するACS計算、各ACS回路10a〜10dから
ACS計算結果のうち半分のデータ{30}{31}
{28}{29}の出力が行われる。
【0062】続く時刻t9では先の時刻t7の場合と全
く同様に動作して、第1アドレス(ここでは3番地)に
従ってメモリブロック8a,8bへのデータ{28}
{29}及び{30}{31}の書込、各ACS回路1
0a〜10dからデータ{24}〜{31}に対するA
CS計算結果のうち残り半分のデータ{14}{15}
{12}{13}の出力、第2書込アドレス及び第2読
出アドレスの更新、更新された第2アドレス(ここでは
1番地)に従ってメモリブロック8c,8dから読み込
んだデータ{4}{5}及び{6}{7}のバッファ9
a,9bへの格納が行われる。
く同様に動作して、第1アドレス(ここでは3番地)に
従ってメモリブロック8a,8bへのデータ{28}
{29}及び{30}{31}の書込、各ACS回路1
0a〜10dからデータ{24}〜{31}に対するA
CS計算結果のうち残り半分のデータ{14}{15}
{12}{13}の出力、第2書込アドレス及び第2読
出アドレスの更新、更新された第2アドレス(ここでは
1番地)に従ってメモリブロック8c,8dから読み込
んだデータ{4}{5}及び{6}{7}のバッファ9
a,9bへの格納が行われる。
【0063】続く時刻t10では先の時刻t8の場合と
全く同様に動作して、第2書込アドレス(ここでは3番
地)に従ってメモリブロックの8c,8dへのデータ
{12}{13}及び{14}{15}の書込、第1ア
ドレスの更新、更新された第1アドレス(ここでは0番
地)に従ってメモリブロック8a,8bからデータ
{0}{1}及び{2}{3}の読込、メモリブロック
8a,8b及びバッファ9a,9bから読み込んだデー
タ{0}〜{7}に対するACS計算、各ACS回路1
0a〜10dからACS計算結果のうち半分のデータ
{0}{1}及び{2}{3}の出力が行われる。
全く同様に動作して、第2書込アドレス(ここでは3番
地)に従ってメモリブロックの8c,8dへのデータ
{12}{13}及び{14}{15}の書込、第1ア
ドレスの更新、更新された第1アドレス(ここでは0番
地)に従ってメモリブロック8a,8bからデータ
{0}{1}及び{2}{3}の読込、メモリブロック
8a,8b及びバッファ9a,9bから読み込んだデー
タ{0}〜{7}に対するACS計算、各ACS回路1
0a〜10dからACS計算結果のうち半分のデータ
{0}{1}及び{2}{3}の出力が行われる。
【0064】この時刻t10の時点で、PMメモリ8に
格納された全てのデータについての更新が一通り終了す
ることになり、以後、第1アドレス,第2読出アドレ
ス,第2書込アドレスに従って、上述した時刻t3〜t
10についての処理が繰り返し実行される。
格納された全てのデータについての更新が一通り終了す
ることになり、以後、第1アドレス,第2読出アドレ
ス,第2書込アドレスに従って、上述した時刻t3〜t
10についての処理が繰り返し実行される。
【0065】つまり、1回目のデータ更新時には、第1
アドレス生成回路30からの第1アドレスにより制御さ
れるメモリブロック8a,8b、及び第2アドレス生成
回路40からの第2読出アドレス/第2書込アドレスに
より制御されるメモリブロック8c,8dは、いずれも
0→1→2→3の順番で各番地のデータが読み書きされ
る。即ち、まず各メモリブロック8a〜8dの0番地か
らデータ{0}〜{7}が読み出され、ACS計算の結
果として、ACS回路10a〜10dから出力される各
一対のデータ{0}{16},{1}{17},{2}
{18},{3}{19}が、データ{0}{1},
{2}{3},{16}{17},{18}{19}の
対に組み替えられ、これら組み替えられたデータが、各
メモリブロック8a〜8dに、初期状態の時に割り当て
られた状態についてのデータがそれぞれ格納されるよう
に分配され、先にデータが読み出された0番地に書き込
まれる。
アドレス生成回路30からの第1アドレスにより制御さ
れるメモリブロック8a,8b、及び第2アドレス生成
回路40からの第2読出アドレス/第2書込アドレスに
より制御されるメモリブロック8c,8dは、いずれも
0→1→2→3の順番で各番地のデータが読み書きされ
る。即ち、まず各メモリブロック8a〜8dの0番地か
らデータ{0}〜{7}が読み出され、ACS計算の結
果として、ACS回路10a〜10dから出力される各
一対のデータ{0}{16},{1}{17},{2}
{18},{3}{19}が、データ{0}{1},
{2}{3},{16}{17},{18}{19}の
対に組み替えられ、これら組み替えられたデータが、各
メモリブロック8a〜8dに、初期状態の時に割り当て
られた状態についてのデータがそれぞれ格納されるよう
に分配され、先にデータが読み出された0番地に書き込
まれる。
【0066】以下、同様に、各メモリブロック8a〜8
dの1番地からデータ{8}〜{15}が読み出され、
ACS計算の結果を組み替えたデータ{20}{2
1},{22}{23},{4}{5},{6}{7}
が、各メモリブロック8a〜8dに分配され同じ1番地
に書き込まれる。
dの1番地からデータ{8}〜{15}が読み出され、
ACS計算の結果を組み替えたデータ{20}{2
1},{22}{23},{4}{5},{6}{7}
が、各メモリブロック8a〜8dに分配され同じ1番地
に書き込まれる。
【0067】続けて、各メモリブロック8a〜8dの2
番地からデータ{16}〜{23}が読み出され、AC
S計算の結果を組み替えたデータ{8}{9},{1
0}{11},{24}{25},{26}{27}
が、各メモリブロック8a〜8dに分配され同じ2番地
に書き込まれる。
番地からデータ{16}〜{23}が読み出され、AC
S計算の結果を組み替えたデータ{8}{9},{1
0}{11},{24}{25},{26}{27}
が、各メモリブロック8a〜8dに分配され同じ2番地
に書き込まれる。
【0068】更に、各メモリブロック8a〜8dの3番
地からデータ{24}〜{31}が読み出され、ACS
計算の結果を組み替えたデータ{28}{29},{3
0}{31},{12}{13},{14}{15}
が、各メモリブロック8a〜8dに分配され同じ3番地
に書き込まれる。
地からデータ{24}〜{31}が読み出され、ACS
計算の結果を組み替えたデータ{28}{29},{3
0}{31},{12}{13},{14}{15}
が、各メモリブロック8a〜8dに分配され同じ3番地
に書き込まれる。
【0069】このようにして、全データについての1回
目のデータ更新が終了した時に、各メモリブロック8a
〜8dのデータ格納状態は、図6中の更新回数1の欄に
示すようなものとなる。そして、2回目のデータ更新の
時には、メモリブロック8a,8bでは、0→2→1→
3の順番で、一方、メモリブロック8c,8dでは、1
→3→0→2の順番で各番地のデータが読み書きされ
る。
目のデータ更新が終了した時に、各メモリブロック8a
〜8dのデータ格納状態は、図6中の更新回数1の欄に
示すようなものとなる。そして、2回目のデータ更新の
時には、メモリブロック8a,8bでは、0→2→1→
3の順番で、一方、メモリブロック8c,8dでは、1
→3→0→2の順番で各番地のデータが読み書きされ
る。
【0070】図6中の更新回数1の欄に示された各メモ
リブロック8a〜8dのデータ格納状態から明らかなよ
うに、各回毎に、並列に処理されるデータの組み合わせ
(即ち、データ{0}〜{7},{8}〜{15},
{16}〜{23},{24}〜{31})は常に同じ
であり、上述と同様に、ACS計算の結果の組み替え、
組み替えたデータの分配、読み出したアドレスへの書込
が順次行われることにより、2回目のデータ更新が終了
した時に、各メモリブロック8a〜8dのデータ格納状
態は、図6中の更新回数2の欄に示すようなものとな
る。
リブロック8a〜8dのデータ格納状態から明らかなよ
うに、各回毎に、並列に処理されるデータの組み合わせ
(即ち、データ{0}〜{7},{8}〜{15},
{16}〜{23},{24}〜{31})は常に同じ
であり、上述と同様に、ACS計算の結果の組み替え、
組み替えたデータの分配、読み出したアドレスへの書込
が順次行われることにより、2回目のデータ更新が終了
した時に、各メモリブロック8a〜8dのデータ格納状
態は、図6中の更新回数2の欄に示すようなものとな
る。
【0071】この時、メモリブロック8a,8bのデー
タ格納状態は、初期状態に戻っている。以下同様に、3
回目のデータ更新時には、メモリブロック8a,8b
は、1回目のデータ更新時と同様に0→1→2→3番地
の順番で、一方、メモリブロック8c,8dでは、3→
2→1→0の順番で各番地のデータが読み書きされるこ
とにより、3回目のデータ更新終了時には図6中の更新
回数3の欄にに示すようなものとなり、更に、4回目の
データ更新時には、メモリブロック8a,8bは、2回
目のデータ更新時と同様に0→2→1→3の順番で、一
方、メモリブロック8c,8dは、2→0→3→1の順
番で各番地のデータが読み書きされることにより、4回
目のデータ更新終了時には図6中の更新回数4の欄に示
すようになものとなる。この時、メモリブロック8a,
8bだけでなく、メモリブロック8c,8dのデータ格
納状態も初期状態に戻っている。
タ格納状態は、初期状態に戻っている。以下同様に、3
回目のデータ更新時には、メモリブロック8a,8b
は、1回目のデータ更新時と同様に0→1→2→3番地
の順番で、一方、メモリブロック8c,8dでは、3→
2→1→0の順番で各番地のデータが読み書きされるこ
とにより、3回目のデータ更新終了時には図6中の更新
回数3の欄にに示すようなものとなり、更に、4回目の
データ更新時には、メモリブロック8a,8bは、2回
目のデータ更新時と同様に0→2→1→3の順番で、一
方、メモリブロック8c,8dは、2→0→3→1の順
番で各番地のデータが読み書きされることにより、4回
目のデータ更新終了時には図6中の更新回数4の欄に示
すようになものとなる。この時、メモリブロック8a,
8bだけでなく、メモリブロック8c,8dのデータ格
納状態も初期状態に戻っている。
【0072】つまり、データ更新毎に、メモリブロック
8a,8bは2つのデータ格納状態を、メモリブロック
8c,8dは4つのデータ格納状態を繰り返すことにな
る。なお、ここでは、PMメモリ8について説明した
が、パスメモリ6についてもほぼ同様の手順でデータの
更新が行われる。
8a,8bは2つのデータ格納状態を、メモリブロック
8c,8dは4つのデータ格納状態を繰り返すことにな
る。なお、ここでは、PMメモリ8について説明した
が、パスメモリ6についてもほぼ同様の手順でデータの
更新が行われる。
【0073】そして本実施例のビタビ復号器2では、こ
のような処理を符号蓄積数(本実施例では16)回だけ
繰り返す毎に、最尤パス検出器24が起動され、PMメ
モリ8に格納されたデータ、即ち各内部状態のパスメト
リックを比較して、最小のパスメトリックとなる内部状
態を検出する。すると、最尤復号器26では、最尤パス
検出器24にて検出された内部状態に従って、これに対
応するパスをパスメモリ6から読み出し復号データを生
成する。
のような処理を符号蓄積数(本実施例では16)回だけ
繰り返す毎に、最尤パス検出器24が起動され、PMメ
モリ8に格納されたデータ、即ち各内部状態のパスメト
リックを比較して、最小のパスメトリックとなる内部状
態を検出する。すると、最尤復号器26では、最尤パス
検出器24にて検出された内部状態に従って、これに対
応するパスをパスメモリ6から読み出し復号データを生
成する。
【0074】即ち、最後の内部状態とこの内部状態に到
るパスとがわかっていれば、パスを構成するブランチに
従って、内部状態を逆方向に辿っていくことにより、入
力された符号を特定することができ、ひいてはこの符号
を復号したデータを得ることができるのである。
るパスとがわかっていれば、パスを構成するブランチに
従って、内部状態を逆方向に辿っていくことにより、入
力された符号を特定することができ、ひいてはこの符号
を復号したデータを得ることができるのである。
【0075】以上、説明したように、本実施例のビタビ
復号器2においては、パスメモリ6及びPMメモリ8
が、2つの内部状態についてのデータを同一番地にて同
時に読み書きできるように構成されていると共に、各A
CS回路10及びパス更新回路12から出力されるデー
タを、同一状態に遷移する一対の状態についてのデータ
{2n}{2n+1}(n=0,1,…2K-2−1) が
一緒になるよう組み替えて合成し、パスメモリ6及びP
Mメモリ8への書込データとするようにされている。
復号器2においては、パスメモリ6及びPMメモリ8
が、2つの内部状態についてのデータを同一番地にて同
時に読み書きできるように構成されていると共に、各A
CS回路10及びパス更新回路12から出力されるデー
タを、同一状態に遷移する一対の状態についてのデータ
{2n}{2n+1}(n=0,1,…2K-2−1) が
一緒になるよう組み替えて合成し、パスメモリ6及びP
Mメモリ8への書込データとするようにされている。
【0076】従って、本実施例のビタビ復号器2によれ
ば、パスメモリ6及びPMメモリ8の各番地には、常
に、同一状態に遷移する一対の状態についてのデータ
{2n}{2n+1}が格納され、これら一対のデータ
{2n}{2n+1}を、それぞれ一回の操作で読み書
きできるので、処理の高速化を図ることができる。
ば、パスメモリ6及びPMメモリ8の各番地には、常
に、同一状態に遷移する一対の状態についてのデータ
{2n}{2n+1}が格納され、これら一対のデータ
{2n}{2n+1}を、それぞれ一回の操作で読み書
きできるので、処理の高速化を図ることができる。
【0077】また、本実施例のビタビ復号器2において
は、各メモリブロックには、常に、初期状態の時に割り
当てられた状態についてのデータがそれぞれ格納される
ように、ACS回路10及びパス更新回路12での処理
結果からなる書込データが分配され、且つこの書込デー
タは、処理のために先に読み出されたデータと同じ番地
に書き込まれるようにされていると共に、データ更新が
一通り終了する毎に変化するデータの格納状態に応じ
て、メモリブロック毎にデータを読み出す順番を変化さ
せ、各内部状態についてのデータが、常に同じ組み合わ
せで読み出されるようにされている。
は、各メモリブロックには、常に、初期状態の時に割り
当てられた状態についてのデータがそれぞれ格納される
ように、ACS回路10及びパス更新回路12での処理
結果からなる書込データが分配され、且つこの書込デー
タは、処理のために先に読み出されたデータと同じ番地
に書き込まれるようにされていると共に、データ更新が
一通り終了する毎に変化するデータの格納状態に応じ
て、メモリブロック毎にデータを読み出す順番を変化さ
せ、各内部状態についてのデータが、常に同じ組み合わ
せで読み出されるようにされている。
【0078】従って、本発明のビタビ復号器によれば、
パスメモリ6やPMメモリ8を2重に設けたり、ACS
回路10やパス更新回路12での処理を複雑にすること
なく、パスメモリ6やPMメモリに格納されたデータの
更新を繰り返し実行することができる。
パスメモリ6やPMメモリ8を2重に設けたり、ACS
回路10やパス更新回路12での処理を複雑にすること
なく、パスメモリ6やPMメモリに格納されたデータの
更新を繰り返し実行することができる。
【0079】その結果、パスメモリ6及びPMメモリ8
が2重化されている従来装置に比べて、全体の記憶容量
を半分に削減できるため、装置を小型化でき、また、従
来と同じ記憶容量を用いるのであれば、より、誤り訂正
能力の高い復号を行うことが可能な装置を構成すること
ができる。
が2重化されている従来装置に比べて、全体の記憶容量
を半分に削減できるため、装置を小型化でき、また、従
来と同じ記憶容量を用いるのであれば、より、誤り訂正
能力の高い復号を行うことが可能な装置を構成すること
ができる。
【0080】なお、本実施例において、ブランチメトリ
ック計算回路4がブランチメトリック算出手段に相当
し、また、パスメモリ6がパス記憶手段、PMメモリ8
がパスメトリック記憶手段、ACS回路10及びパス更
新回路12がACS計算手段、合成回路14a,14
b,18a,18b及びセレクタ16a〜16d,20
a〜20dがデータ分配手段、アドレス制御回路22が
アドレス制御手段にそれぞれ相当する。
ック計算回路4がブランチメトリック算出手段に相当
し、また、パスメモリ6がパス記憶手段、PMメモリ8
がパスメトリック記憶手段、ACS回路10及びパス更
新回路12がACS計算手段、合成回路14a,14
b,18a,18b及びセレクタ16a〜16d,20
a〜20dがデータ分配手段、アドレス制御回路22が
アドレス制御手段にそれぞれ相当する。
【図1】 実施例のビタビ復号器の全体構成を表すブロ
ック図である。
ック図である。
【図2】 状態遷移の様子を表す説明図である。
【図3】 メモリブロックの構成を表す説明図である。
【図4】 第1アドレス生成回路の構成及び動作を表す
説明図である。
説明図である。
【図5】 第2アドレス生成回路の構成及び動作を表す
説明図である。
説明図である。
【図6】 メモリブロックのデータの格納状態が変化す
る様子を表す説明図である。
る様子を表す説明図である。
【図7】 実施例のビタビ復号器の各部の動作を表すタ
イミング図である。
イミング図である。
【図8】 畳み込み符号を生成する符号器の構成図であ
る。
る。
【図9】 従来のビタビ復号器の構成を表すブロック図
である。
である。
2…ビタビ復号器 4…ブランチメトリック計算回路 6(6a〜6d)…パスメモリ 9a,9b…バッ
ファ 8(8a〜8d)…パスメトリック(PM)メモリ 10(10a〜10d)…ACS回路 12(12a〜12d)…パス更新回路 14a,14b,18a,18b…合成回路 16a〜16d,20a〜20d…セレクタ 22…アドレス制御回路 24…最尤パス検出器
26…最尤復号器 30…第1アドレス生成回路 32,42…アドレス
カウンタ 34,36,44,46…セレクタ 40…第2アド
レス生成回路 47,48…反転回路
ファ 8(8a〜8d)…パスメトリック(PM)メモリ 10(10a〜10d)…ACS回路 12(12a〜12d)…パス更新回路 14a,14b,18a,18b…合成回路 16a〜16d,20a〜20d…セレクタ 22…アドレス制御回路 24…最尤パス検出器
26…最尤復号器 30…第1アドレス生成回路 32,42…アドレス
カウンタ 34,36,44,46…セレクタ 40…第2アド
レス生成回路 47,48…反転回路
Claims (2)
- 【請求項1】 状態[2n]及び状態[2n+1]が、
それぞれ状態[n]又は状態[n+2K-2](n=0,
1,…2K-2−1)に遷移するよう設定された2 K-1 個
の内部状態を有し、拘束長kの畳み込み符号からなる符
号系列を復号するビタビ復号器であって、 前記内部状態間の状態遷移を表すブランチ毎に、該ブラ
ンチを経由する際に入力されるべき既知の符号と実際に
入力された符号との距離を表すブランチメトリックを算
出するブランチメトリック算出手段と、 前記内部状態毎に、該内部状態に到るまでに選択された
ブランチの経路であるパスを記憶するパス記憶手段と、 前記内部状態毎に、前記パス記憶手段に記憶されたパス
についての前記ブランチメトリックの積算値であるパス
メトリックを記憶するパスメトリック記憶手段と、 同一の内部状態に遷移する一対の内部状態についての各
パスメトリックに、遷移先の内部状態に到るブランチの
ブランチメトリックをそれぞれ加算することにより、遷
移先の内部状態に到る一対のパスのパスメトリックを算
出し、該算出されたパスメトリックの小さい方のパス
を、遷移先の内部状態についての新たなパスとして前記
パス記憶手段及び前記パスメトリック記憶手段の内容を
更新する2 M (M≧1)個のACS計算手段と、 前記パス記憶手段及び前記パスメトリック記憶手段に対
するデータの読み書きを制御するメモリ制御手段と、 を備え、 前記パス記憶手段及び前記パスメトリック記憶手段のう
ち少なくともいずれか一方が、それぞれを独立に制御可
能な2M 個のメモリブロックBK0,BK1,…BKx
(x=2M−1 )からなり、 前記メモリ制御手段に、 前記各メモリブロックから読み出した記憶内容が、該メ
モリブロックに予め1対1に対応付けられた前記ACS
計算手段のいずれかにそれぞれ供給され、且つ半数の各
メモリブロックBKi(i=0,1,…2M-1−1 )に
は、 状態[(2・i)+2M+1・j],[(2・i+1)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j+2M],[(2・i+1)+2M+1・j+2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) 残り半数の各メモリブロックBKi(i=2M-1,2M-1
+1,…2M−1 )には、 状態[(2・i)+2M+1・j],[(2・i)+2M+1・j] (但し、j=0,1,…2K-M-3−1) 状態[(2・i)+2M+1・j−2M],[(2・i+1)+2M+1・j−2M] (但し、j=2K-M-3,2K-M-3+1,…2K-M-2−1) についてのデータがそれぞれ格納されるよう、前記AC
S計算手段での処理結果を分配するデータ分配手段と、 前記各メモリブロックから、連続した2M+1 個の状態
[0+2M+1・j][1+2M+1・j]…[2M+1−1+
2M+1・j]についてのデータが並列に読み出され、該
データが読み出されたアドレスに前記ACS計算手段で
の処理結果が書き込まれるよう前記各メモリブロックの
アドレスを制御するアドレス制御手段と、 を設けたことを特徴とするビタビ復号器。 - 【請求項2】 前記メモリブロックには、同一状態に遷
移する一対の状態[2n],[2n+1] についての
データが、同一アドレスにて同時に読み書きが可能なよ
うに格納されていることを特徴とする請求項1に記載の
ビタビ復号器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15288998A JP3837913B2 (ja) | 1998-06-02 | 1998-06-02 | ビタビ復号器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15288998A JP3837913B2 (ja) | 1998-06-02 | 1998-06-02 | ビタビ復号器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11346160A true JPH11346160A (ja) | 1999-12-14 |
JP3837913B2 JP3837913B2 (ja) | 2006-10-25 |
Family
ID=15550350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15288998A Expired - Fee Related JP3837913B2 (ja) | 1998-06-02 | 1998-06-02 | ビタビ復号器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3837913B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018509857A (ja) * | 2015-03-23 | 2018-04-05 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラム |
-
1998
- 1998-06-02 JP JP15288998A patent/JP3837913B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018509857A (ja) * | 2015-03-23 | 2018-04-05 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3837913B2 (ja) | 2006-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3677257B2 (ja) | 畳込み復号装置 | |
US7127664B2 (en) | Reconfigurable architecture for decoding telecommunications signals | |
US5787127A (en) | Viterbi decoding method and apparatus with balance among memory and processing requirements | |
US5537424A (en) | Matched spectral null codes with partitioned systolic trellis structures | |
JP3280183B2 (ja) | 通信システムおよび情報処理方法 | |
US6865710B2 (en) | Butterfly processor for telecommunications | |
JP2001156651A (ja) | ビタビ復号器 | |
KR100779782B1 (ko) | 비터비 디코더 용 고속 acs 유닛 | |
JP3008685B2 (ja) | 可変長符号の復号化回路 | |
US20020162074A1 (en) | Method and apparatus for path metric processing in telecommunications systems | |
JP3784896B2 (ja) | ビタビデコーダの論理ブロック | |
JPH04241521A (ja) | 畳込み符号の復号回路 | |
JPH06338808A (ja) | 加算比較選択装置 | |
US7035356B1 (en) | Efficient method for traceback decoding of trellis (Viterbi) codes | |
JPH11346160A (ja) | ビタビ復号器 | |
KR20010067413A (ko) | 브랜치 메트릭 계산 처리에서 감소된 비트수를 갖는비터비 디코더 | |
JP4047697B2 (ja) | ビタビ復号装置 | |
EP1192719A1 (en) | Viterbi decoder | |
JP2591332B2 (ja) | 誤り訂正復号装置 | |
JP4702721B2 (ja) | ビタビ・メトリック計算のためのアドレッシング方法 | |
JP2001331381A (ja) | メモリ装置及びメモリ管理方法 | |
KR20040031323A (ko) | 비터비 복호기의 경로 메트릭 저장 장치 및 방법 | |
JPH0730438A (ja) | ビタビ復号方法 | |
KR100410995B1 (ko) | 즉시역추적 알고리즘을 이용한 비터비 복호기용 생존경로메모리 관리 방법 및 그 장치 | |
JP2002198827A (ja) | 最尤復号方法及び最尤復号器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20040713 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060711 |
|
A61 | First payment of annual fees (during grant procedure) |
Effective date: 20060724 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |