以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の受信装置は、マルチパスの定常性を有する信号を受信して、復号する受信装置(例えば、図5のLSI100)において、前記信号を1ビットに相当するビット時間単位に区切ったときの、最近に受信した現在ビット時間の前記信号からサンプリングされたサンプリング値と、前記現在ビット時間より前の過去ビット時間の前記信号からサンプリングされたサンプリング値とに基づいて、前記信号を分類し、その分類結果としての分類コードを決定する分類手段(例えば、図7の分類部303)と、前記分類手段で決定された前記分類コードに対応する係数と、前記現在ビット時間および前記過去ビット時間の前記サンプリング値との積を演算することにより、前記信号の波形を整形する波形整形手段(例えば、図7の積和演算部305)と、整形後の前記信号の波形に基づいて、前記信号の前記現在ビット時間のビットを判定するビット判定手段(例えば、図7のビット判定部306)とを備える。
前記分類手段(例えば、図11の分類部303−1)には、マルチパスの定常性を有する信号の統計値と前記分類コードとが対応付けられた分類コード表を記憶する分類コード記憶手段(例えば、図11の分散値RAM362)と、前記現在ビット時間および前記過去ビット時間の前記サンプリング値と、前記統計値とを比較して、前記分類コードを決定する分類コード決定手段(例えば、図11の分類コード決定部361)とを有するようにさせることができる。
前記分類手段(例えば、図27の分類部303−2)には、前記現在ビット時間および前記過去ビット時間の前記サンプリング値の最大値と最小値を検出するとともに、前記最大値と最小値に基づいて所定の閾値を決定する最大値最小値検出手段(例えば、図27の最大値最小値検出部502)と、前記現在ビット時間および前記過去ビット時間の前記サンプリング値と、前記閾値とを比較して、前記分類コードを決定する分類コード決定手段(例えば、図27の比較部503および分類コード決定部504)とを有するようにさせることができる。
前記分類手段(例えば、図28の分類部303−3)には、前記現在ビット時間および前記過去ビット時間の前記サンプリング値の差分値を計算する差分計算手段(例えば、図28の差分計算部521)と、前記差分値の最大値と最小値を検出するとともに、前記最大値と最小値に基づいて所定の閾値を決定する最大値最小値検出手段(例えば、図28の最大値最小値検出部502)と、前記差分値と前記閾値とを比較して、前記分類コードを決定する分類コード決定手段(例えば、図28の比較部503および分類コード決定部504)とを有するようにさせることができる。
前記ビット判定手段(例えば、図34のビット判定部306−2)には、前記現在ビット時間および前記過去ビット時間の前記サンプリング値の最大値と最小値を検出する最大値最小値検出手段(例えば、図34の最大値最小値検出部542)と、前記最大値と最小値に基づいて所定の閾値を決定するとともに、前記閾値と、整形後の前記信号の前記現在ビット時間の値を表す積和値とを比較することにより、前記現在ビット時間のビットを判定する比較手段(例えば、図34の比較部543)とを有するようにさせることができる。
前記ビット判定手段(例えば、図35のビット判定部306−3)には、前記現在ビット時間および前記過去ビット時間の前記サンプリング値の最大値と最小値を検出する最大値最小値検出手段(例えば、図35の最大値最小値検出部542)と、前記最大値と最小値と、整形後の前記信号の前記現在ビット時間の値を表す積和値とを比較することにより、前記現在ビット時間のビットを判定する比較手段(例えば、図35の距離比較部561)とを有するようにさせることができる。
本発明の第1の側面の受信方法は、マルチパスの定常性を有する信号を受信して、復号する受信装置の受信方法において、前記信号を1ビットに相当するビット時間単位に区切ったときの、最近に受信した現在ビット時間の前記信号からサンプリングされたサンプリング値と、前記現在ビット時間より前の過去ビット時間の前記信号からサンプリングされたサンプリング値とに基づいて、前記信号を分類し、その分類結果としての分類コードを決定し(例えば、図20のステップS23)、決定された前記分類コードに対応する係数と、前記現在ビット時間および前記過去ビット時間の前記サンプリング値との積を演算することにより、前記信号の波形を整形し、整形後の前記信号の波形に基づいて、前記信号の前記現在ビット時間のビットを判定する(例えば、図20のステップS27)ステップを含む。
本発明の第2の側面の学習装置は、マルチパスの定常性を有する信号を受信して、復号する受信装置で利用されるデータを学習する学習装置(例えば、図5のLSI100)において、所定のビットデータに対応する前記信号を受信する受信手段(例えば、図7のAD変換部301)と、前記信号を、前記受信装置が受信した信号を分類したときの分類結果となる分類コードごとに記憶する記憶手段(例えば、図21の受信値RAM401)と、前記ビットデータを教師データとし、前記分類コードの前記信号と所定の係数との積和値を生徒データとして、前記教師データと前記生徒データとの誤差が最小となるような前記係数を前記分類コードごとに算出する係数算出手段(例えば、図21の係数算出部404)とを備える。
前記信号を1ビットに相当するビット時間単位に区切ったときの、最近に受信した現在ビット時間の前記信号からサンプリングされたサンプリング値と、前記現在ビット時間より前の過去ビット時間の前記信号からサンプリングされたサンプリング値とに基づいて、前記信号を分類し、その分類結果としての分類コードを決定する分類コードに分類する分類手段(例えば、図7の分類部303)をさらに設けることができる。
本発明の第2の側面の学習方法は、マルチパスの定常性を有する信号を受信して、復号する受信装置で利用されるデータを学習する学習装置の学習方法において、所定のビットデータに対応する前記信号を受信し(例えば、図24のステップS43)、前記信号を、前記受信装置が受信した信号を分類したときの分類結果となる分類コードごとに記憶し(例えば、図24のステップS44)、前記ビットデータを教師データとし、前記分類コードの前記信号と所定の係数との積和値を生徒データとして、前記教師データと前記生徒データとの誤差が最小となるような前記係数を前記分類コードごとに算出する(例えば、図24のステップS54)ステップを含む。
以下、図を参照して、本発明の実施の形態について説明する。
図2は、本発明を適用した情報処理装置の一実施の形態の構成例を示している。
情報処理装置1は、その筐体2のなかに、基板11乃至14と、その基板11乃至14が装着されるベース基板15を有している。基板11および12は、基板固定冶具16を介してベース基板15に装着され、基板13および14は、ベース基板15に直に装着されている。
基板11乃至14それぞれは、無線通信の機能を有するLSI(Large Scale Integration)とアンテナを少なくとも1つ以上有している。即ち、基板11は、LSI100とアンテナ101を有し、基板12は、LSI102とアンテナ103を有している。また、基板13は、LSI104とアンテナ105、および、LSI106とアンテナ107を有し、基板14は、LSI108とアンテナ109を有している。このLSI100,102,104,106、または108は、それぞれ、アンテナ101,103,105,107、または109を介して、電波(電磁波)を送信および受信する送信装置および受信装置としての機能を有する。
なお、図2に示される基板の配置、設置方法、および枚数などは、あくまで一例であり、これに限定されるものではない。
LSI100は、電波を伝送媒体とする無線通信により、画像や音声などの所定のデータを、情報処理装置1内の他のLSI(LSI102,104,106、または108)にアンテナ101を介して送信したり、他のLSIから送信されたデータを、アンテナ101を介して受信する。LSI100では、リアルタイム性が必要とされるバースト信号、および、間欠パケット信号の両方の通信が可能である。
LSI102,104,106、および108もLSI100と同様に、情報処理装置1内の他のLSIと無線通信を行う。以下では、LSI100が他のLSIにデータを送信したり、受信する場合について説明し、その他のLSIのデータの送信および受信についての説明は省略する。
筐体2の中に存在する白色ノイズ(熱雑音)、有色ノイズ(LSIから放射されるノイズ)、および、筐体2内の壁面や基板で反射および回折した信号によって、受信側で受信した信号には波形歪みが生じる。即ち、情報処理装置1内のLSI100が受信する信号の波形には、マルチパスによる歪みが生じている。
図3は、他のLSI(以下では、例えば、LSI102とする)から送信された送信データに対応する送信波形と、その送信波形をLSI100が受信したときの受信波形を示している。
図3において、横軸は時間を表し、縦軸は、信号波形の振幅値を表す。また、灰色の線は、送信または受信した信号波形そのもの(data)を表し、黒色の線は、送信または受信した信号波形の包絡線の波形(env)を表す。なお、信号の変調方式は、ASK変調方式である。
図3を参照して分かるように、LSI102から送信された送信データに対応する信号波形を、LSI100が受信したときには、波形に歪みが生じている。
図4は、図3に示した、14波ある送信波形および受信波形の包絡線の位相を揃え、重ねて表示したものである。図4の灰色の線は、14波の波形それぞれ(data)を表し、黒色の線は、その14波の平均波形(ave)を表す。
図4によれば、筐体2内で発生するマルチパスによる受信波形の劣化は、時間に対してほぼ一定であり、受信波形へマルチパス波が影響を及ぼす時間は短いことが分かる。従って、筐体2内のマルチパス環境下においては、LSI100が受信する受信波形は、短時間で、時間に対して一定とみなすことができる影響を受けるということができる。このように、マルチパス環境下で受信することによって、短時間で、時間に対して一定とみなすことができる影響を受けた受信信号を、定常性のあるマルチパス信号と称する。また、時間に対して一定とみなすことができる影響を定常性と称する。
LSI100は、マルチパスの定常性を有する受信信号を精度良く復号する。
図5は、LSI100の構成例を示すブロック図である。
LSI100は、入出力I/F(Interface)201、アルゴリズム処理部202、RF (Radio Frequency)信号処理部203、およびBB(Base band)信号処理部204により構成される。また、RF信号処理部203は、送信部211と受信部212を有する。
入出力I/F201は、制御信号および基準クロック信号に基づいて、基板11上の他のブロック(不図示)と、アルゴリズム処理部202との間で、データを仲介する。入出力I/F201が基板11上の他のブロックとやり取りする信号は、例えば、LVDS(Low Voltage Differential Signal)などの規格に従う信号である。なお、制御信号および基準クロック信号は、必要に応じてLSI100内の各部に供給される。
アルゴリズム処理部202は、入出力I/F201またはBB信号処理部204から供給される信号に対して所定の信号処理を行う。例えば、BB信号処理部204から供給されるデジタル信号が画像信号である場合、アルゴリズム処理部202には、線形補間処理を施したり、高画質化処理を行うDRC(Digital Reality Creation)などを行わせることができる。また、BB信号処理部204から供給されるデジタル信号が音声信号である場合、アルゴリズム処理部202には、供給された音声信号をサラウンド信号に分離する処理などを行わせることができる。
なお、アルゴリズム処理部202は、入力された信号に対応するデータに対する乗算や除算の処理を、基準クロック信号が表す基準クロックよりも高速に動作を行うことが可能である。従って、アルゴリズム処理部202は、BB信号処理部204から供給される信号の信号レートが基準クロックよりも高速であったとしても、演算を行うことができる。また、BB信号処理部204から供給される信号の信号レートが基準クロックよりも遅い場合にも勿論対応可能である。
アルゴリズム処理部202は、入出力I/F201から供給された信号に所定の信号処理を施した後の、処理後のデジタル信号をRF信号処理部203に供給する。また、アルゴリズム処理部202は、BB信号処理部204から供給された信号に所定の信号処理を施した後の、処理後のデジタル信号を入出力I/F201に供給する。
RF信号処理部203の送信部211は、アルゴリズム処理部202から供給されるデジタル信号に対して、ASK変調などの変調処理を施し、変調処理後の信号を、キャリア周波数fcのキャリア信号とさらに乗算して、RF信号を生成し、アンテナ101に供給する。ここで、送信部211は、例えば、時分割多重方式(TDM: Time Division Multiplexing)でデータを送信するものとし、他のLSIがデータを送信しているかどうかを確認し、他のLSIがデータを送信していない場合、所定のフレームの乱数で割り当てられたスロットに自分のIDを送信後、データを送信する。
RF信号処理部203の受信部212は、アンテナ101から供給されるRF信号としての、ASK変調された変調波を同期検波し、ベースバンド信号に変換してBB信号処理部204に供給する。
なお、本実施の形態では、RF信号処理部203は、ASK変調されたアナログ信号を送受信することとするが、その他、PSK(Phase Shift Keying)変調されたアナログ信号、スペクトラム拡散方式によるアナログ信号などを送受信するようにしてもよい。
BB信号処理部204は、RF信号処理部203から供給されたアナログのベースバンド信号を、デジタル信号に変換し、アルゴリズム処理部202に供給する。RF信号処理部203から供給されるベースバンド信号は、定常性のあるマルチパス信号であり、マルチパスにより歪んだ波形となっている。なお、BB信号処理部204は、アルゴリズム処理部202からのレート制御情報に基づいて、アルゴリズム処理部202との通信レートを変化させる。
図6は、RF信号処理部203の受信部212の詳細な構成例を示すブロック図である。
受信部212は、LNA(Low Noise Amplifier)231、ミキサ232、LPF(Low Pass Filter)233、AMP(Amplifier)234および235、クロック同期回路236、並びにキャリア同期回路237により構成される。
アンテナ101から入力されるRF信号は、LNA231で増幅され、ミキサ232に入力される。ミキサ232は、LNA231からのRF信号を、キャリア同期回路237から供給される搬送波(キャリア)と乗算する。乗算された信号は、LPF233で高周波成分が除去され、AMP234および235で増幅されて、アナログのベースバンド信号となって、BB信号処理部204およびクロック同期回路236に供給される。クロック同期回路236は、AMP235から供給されるベースバンド信号に同期するクロック信号を生成する。キャリア同期回路237は、搬送波に同期する同期信号をミキサ232に供給する。
図7は、BB信号処理部204の詳細な構成例を示すブロック図である。
BB信号処理部204は、AD(Analog/Digital)変換部301、データ保持部302、分類部303、係数保持部304、積和演算部305、ビット判定部306、データ保持部307、学習部308、および既知信号データベース309により構成される。
BB信号処理部204には、アナログのベースバンド信号を受信して、デジタル信号に変換する受信処理を行う受信モードと、受信処理において利用する各種の対応表を学習する学習処理を行う学習モードの2つのモードがある。受信処理は、AD変換部301、データ保持部302、分類部303、係数保持部304、積和演算部305、ビット判定部306、およびデータ保持部307によって行われ、学習処理は、AD変換部301、データ保持部302、分類部303、係数保持部304、学習部308、および既知信号データベース309によって行われる。従って、BB信号処理部204が学習モードであるときは、LSI100は学習装置として機能し、BB信号処理部204が受信モードであるときは、LSI100は受信装置として機能する。
RF信号処理部203の受信部212から出力されたアナログのベースバンド信号は、BB信号処理部204のAD変換部301に供給される。AD変換部301は、ベースバンド信号の受信データの1ビットに相当する時間(以下、1ビット時間という)ごとに、ベースバンド信号を複数点サンプリングし、その結果得られるサンプリング値をデータ保持部302に供給する。なお、本実施の形態では、図8に示すように、AD変換部301は、1ビット時間あたり、3点のサンプリングを行い、その結果得られるサンプリング値をデータ保持部302に供給するものとするが、複数点であれば、2点、または4点以上でもよい。なお、1ビット時間中のどの時刻でサンプリングするかは、予め決定される。また、アナログのベースバンド信号を1ビット時間ごとに区切ったときの、最近の1ビット時間を、適宜、現在ビット時間という。
データ保持部302は、フリップフロップ等により構成される。データ保持部302は、受信モードにおいて、AD変換部301から供給された3個のサンプリング値を、その内部(図10の過去ビットRAM342)に記憶されている、現在ビット時間より1ビット時間前と2ビット時間前(以下、適宜、過去ビット時間という)にそれぞれサンプリングされた2個のサンプリング値とともに、分類部303に供給する。即ち、データ保持部302は、現在ビット時間と過去ビット時間の5個のサンプリング値を分類部303に供給する。なお、現在ビット時間より1ビット時間前または2ビット時間前それぞれ1個合わせて計2個のサンプリング値としては、本実施の形態では、そのビット時間内にサンプリングされた3個のサンプリング値のうちの、時間的に真ん中のサンプリング値を採用するものとするが、これに限定されず、例えば、そのビット時間内にサンプリングされた3個のサンプリング値すべてを記憶して、現在ビット時間のサンプリング値とともに供給するようにしてもよい。
また、現在ビット時間と過去ビット時間の5個のサンプリング値は、データ保持部302において所定時間だけ保持され、積和演算部305に供給される。データ保持部302は、係数保持部304から所定の係数が積和演算部305に供給されるタイミングに合わせて、サンプリング値を積和演算部305に供給する。
従って、受信モードにおいては、図9に示すように、現在ビット時間の時刻t1,t2,t3それぞれにサンプリングされたサンプリング値x1,x2、およびx3と、内部に記憶しておいた現在ビット時間よりも1ビット時間前の1ビット時間の時刻t4にサンプリングされたサンプリング値x4、および、現在ビット時間よりも2ビット時間前の1ビット時間の時刻t5にサンプリングされたサンプリング値x5が、分類部303と積和演算部305に供給される。xiは、時刻tiにおけるサンプリング値であり、xi=x(ti)である。
一方、BB信号処理部204が学習モードである場合には、データ保持部302は、受信モード時と同様の現在ビット時間と過去ビット時間の5個のサンプリング値を、学習部308に供給する。
分類部303は、学習モードにおいて、マルチパスの定常性を有する波形整形前の受信データ(サンプリング値)の統計値と分類コードとが対応付けられた分類コード表(図12)を学習部308から取得する。そして、受信モードにおいて、分類部303は、学習モード時に取得した分類コード表に基づいて、受信データを分類する。より具体的には、分類部303は、波形整形前の受信データの統計値に基づいて、現在ビット時間と過去ビット時間の5個のサンプリング値の分類コードを決定し、その分類結果としての分類コードを係数保持部304に供給する。
係数保持部304は、学習モードにおいて、分類コードと、積和演算部305における積和演算に使用される係数とが対応付けられた係数データ表を学習部308から取得する。図19を参照して後述するように、係数データ表には、1つの分類コードに対して、現在ビット時間と過去ビット時間でサンプリングされるサンプリング値の個数と同一の個数の係数が記憶されている。係数保持部304は、係数データ表を、HDD(Hard Disk Drive)やメモリカードなどの図示せぬ外部記憶装置から取得することも可能である。そして、係数保持部304は、受信モードにおいて、係数データ表を参照し、分類部303から供給される分類コードに基づいて、係数を決定する。
積和演算部305は、受信信号の波形を整形する。即ち、積和演算部305は、現在ビット時間より先のビット時間(即ち、過去ビット時間)に受信されたデータの影響も考慮して、次式(1)の積和値TPを、波形整形後の現在ビット時間の値として求める。
式(1)は、現在ビット時間と過去ビット時間のサンプリング値と、係数保持部304から供給される係数との積和演算であり、xi(i=1乃至h)は時刻tiにおけるサンプリング値、ciは時刻tiのサンプリング値xiに対する係数を表す。また、hは、データ保持部302から1回に供給されるサンプリング値の総数を表し、いまの場合、h=5である。
なお、積和演算部305では、次の積和値TPに更新されるまで、その出力がホールドされる。
ビット判定部306は、積和演算部305から供給される現在ビット時間の積和値TPと、所定の閾値Vthとを比較して、現在ビット時間のビットを判定する。具体的には、ビット判定部306は、積和値TPが閾値Vthよりも大きい場合には、現在ビット時間に受信したビットを“1”と判定し、積和値TPが閾値Vth以下である場合には、現在ビット時間に受信したビットを“0”と判定する。そして、ビット判定部306は、デジタル信号としての現在ビット時間のビットデータをデータ保持部307に供給する。なお、ビット判定部306の動作には、白色性のガウス雑音を考慮してヒステリシスを持たせるようにしてもよい。
積和値TPは、式(1)で表されるように、現在ビット時間および過去ビット時間にサンプリングされたサンプリング値に対して所定の係数ciを乗算しており、ビット判定部306の閾値Vthに対して、受信データ(サンプリング値)の特徴を表す分類コードに応じて、相対的に閾値Vthを変化させていることになる。なお、ビット判定部306は、演算結果の信号に対応可能なように、広帯域な信号を処理することが可能となされている。
データ保持部307は、DRAM(Dynamic Random Access Memory)等により構成され、レート制御情報で指示された通信レートとなるように、ビット判定部306から供給されるビットデータを所定時間だけ保持し、その後、アルゴリズム処理部202に供給する。
学習部308は、学習モードにおいて、受信信号におけるマルチパスの定常性を学習する。より具体的には、学習部308は、上述した係数ciと、その分類コード、および波形整形前の受信データの統計値とが対応付けられた係数受信データ対応表(図23)を作成する。
学習部308は、データ保持部302から供給される波形整形前の受信データを分類コードごとに蓄積し、分類コードごとに、蓄積された波形整形前の受信データから、波形整形前の受信データの統計値を算出する。ここで、受信データの統計値とは、例えば、サンプリング値の平均値μおよび分散σ2である。
また、学習部308は、学習の教師となる教師データとしての送信データ(ビットデータ)と分類コードを既知データベース309から取得する。一方、学習部308は、データ保持部302から供給される波形整形前の受信データを、学習の生徒となる生徒データとする。そして、学習部308は、教師データと生徒データを用いて、分類コードごとに係数ciを求める。これにより、学習部308では、分類コードと、係数ciおよび波形整形前の受信データの統計値とを対応付けた係数受信データ対応表が作成される。なお、学習モードにおいては、他のLSIから、送信データがどういう順番で送信されてくるかが予め決定されている。
学習部308は、係数受信データ対応表から、分類コードと受信データの統計値との対応を抽出し、分類コード表として、分類部303に供給する。また、学習部308は、係数受信データ対応表から、分類コードと係数ciとの対応を抽出し、係数データ表として、係数保持部304に供給する。
既知信号データベース309は、分類コードに対応付けられた係数ciの初期値と教師データ(送信データ)を図示せぬ外部記憶装置から取得して記憶し、必要に応じて、学習部308に供給する。なお、係数ciを求める学習処理において、係数ciの初期値を、BB信号処理部204がいま使用している係数ciとする場合、既知信号データベース309は、係数保持部304に記憶されている係数データ表の係数ciを取得して、学習部308に供給する。
図10は、AD変換部301とデータ保持部302の詳細な構成例を示すブロック図である。
AD変換部301は、ADC(Analog/Digital Converter)331−1乃至331−3とクロック信号変換部332−1および332−2とにより構成される。データ保持部302は、データ保持部341−1乃至341−3および過去ビットRAM(Random Access Memory)342により構成される。
ADC331−1は、クロック信号変換部332−1から供給されるクロック信号のタイミングで、RF信号処理部203の受信部212(図5)から供給されるアナログのベースバンド信号をデジタル信号に変換し、データ保持部341−1に供給する。
ADC331−2は、そこに供給される内部クロック信号のタイミングで、受信部212から供給されるアナログのベースバンド信号をデジタル信号に変換し、データ保持部341−2に供給する。
ADC331−3は、クロック信号変換部332−2から供給されるクロック信号のタイミングで、受信部212から供給されるアナログのベースバンド信号をデジタル信号に変換し、データ保持部341−3に供給する。
クロック信号変換部332−1は、内部クロック信号よりもTds時間だけ位相が早いクロック信号を生成し、ADC331−1に供給する。クロック信号変換部332−2は、内部クロック信号よりもTds時間だけ位相が遅いクロック信号を生成し、ADC331−3に供給する。ここで、Tds時間は、内部クロック信号よりも非常に短い時間であり、配線長さや同期クロックの両エッジを用いる等で作り出すことが可能である。
AD変換部301およびデータ保持部302に供給される内部クロック信号は、クロック同期回路236によって生成されるクロック信号か、または、BB信号処理部204内で生成したクロック信号を、受信データに周波数同期させた位相雑音の小さいクロック信号である。
ADC331−1は、図9に示した例で言えば、時刻t1のサンプリング値x1をデータ保持部341−1に供給する。また、ADC331−2は、時刻t2のサンプリング値x2をデータ保持部341−2に供給し、ADC331−3は、時刻t3のサンプリング値x3をデータ保持部341−3に供給する。従って、AD変換部301は、同期クロックよりも高速なサンプリングを行う。
換言すれば、AD変換部301は、内部クロック信号のクロック周波数fpの2倍以上のサンプリング周波数fsにしなければ正確に復元することができないというサンプリング定理を満たしていないが、受信データの復号に有利となる高速なサンプリングが可能である。また、AD変換部301は、通常であれば受信データの復調時に必要となるオーバーサンプリングが必要ないので、高速に動作するADCを用いてサンプリングする必要がなく、構成の簡素化および低消費電力を実現できる。
AD変換部301は、受信モードおよび学習モードのいずれにおいても上述した動作を行う。
データ保持部302のデータ保持部341−1乃至341−3は、例えば、内部クロック信号のクロックで動作するラッチ回路などにより構成され、受信モードのときには、ADC331−1乃至331−3それぞれから供給されるサンプリング値を分類部303に供給するとともに、そのサンプリング値を所定時間だけ遅延させた後、積和演算部305にも供給する。また、データ保持部341−2は、サンプリング値を過去ビットRAM342にも供給する。
一方、学習モードのときには、データ保持部341−1乃至341−3は、それぞれ、ADC331−1乃至331−3から供給されるサンプリング値を学習部308に供給する。
過去ビットRAM342は、現在ビット時間よりも1ビット時間前の1つのサンプリング値と、現在ビット時間よりも2ビット時間前の1つのサンプリング値を記憶し、データ保持部341−1乃至341−3が現在ビット時間のサンプリング値を出力するのと同一のタイミングで出力する。
図9に示した例で言えば、過去ビットRAM342は、サンプリング値x4およびx5を記憶し、データ保持部341−1乃至341−3がサンプリング値x1乃至x3を出力するのと同一のタイミングでサンプリング値x4およびx5を出力する。出力された過去ビット時間のサンプリング値は、データ保持部341−1乃至341−3からの出力と同様に、受信モードのときには分類部303および積和演算部305に供給され、学習モードのときには学習部308に供給される。また、過去ビットRAM363は、データ保持部341−2から新しいサンプリング値が供給された場合には、それを、時刻の古い方のサンプリング値に上書きして記憶する。
図11は、分類部303の第1の構成である分類部303−1のブロック図である。
分類部303−1は、分類コード決定部361と分散値RAM362により構成される。
受信モードにおいて、分類コード決定部361は、分散値RAM362から、他のLSIから送信されたデータを受信した場合の受信データの平均値μと分散σ2を取得する。この受信データの平均値μと分散σ2は、後述する学習処理により決定されるものである。また、他のLSIとは、LSI100の通信相手であるLSI102,104,106、または108のいずれかを表し、LSI100は、どのLSIからデータが送信されてくるかをアルゴリズム処理部202からのレート制御情報に基づいて認識しているものとする。
分類コード決定部361は、受信データの分類コードごとの平均値μと分散σ2から、各分類コードにおける受信データの取り得る最大値と最小値(範囲)を算出する。例えば、99%の確率で受信データの取り得る範囲を設定する場合には、μ±3σの範囲に、受信データの範囲を設定すればよい。
分類コード決定部361は、データ保持部302から供給される、現在ビット時間の3つのサンプリング値x1乃至x3と過去ビット時間のサンプリング値x4およびx5のそれぞれが、所定の分類コードの受信データの取り得る範囲に入っているか否かを順次絞り込むことにより、分類コードを決定し、係数保持部304に供給する。
一方、学習モードにおいては、分類コード決定部361は、学習部308から供給される、受信データの統計値と分類コードとが対応付けられた分類コード表を分散値RAM362に供給し、記憶させる。
分散値RAM362は、図12に示される、受信データの統計値(平均値μと分散σ2)を分類コードごとに記憶させた分類コード表を、通信相手としてのLSI102,104,106、および108ごとに記憶する。そして、分散値RAM362は、他のLSIの受信データの平均値μと分散σ2を、必要に応じて分類コード決定部361に供給する。
なお、図12では、受信データをn個のサンプリング値として示しているが、本実施の形態では、n=5である。また、図12において、受信データの統計値は、16進で表されている。
図13乃至図16を参照して、分類部303−1による分類コードの決定について説明する。
分類コード決定部361は、図9に示した、現在ビット時間の3つのサンプリング値x1乃至x3と、過去ビット時間のサンプリング値x4およびx5のそれぞれが、所定の分類コードの受信データの取り得る範囲に入っているか否かを絞り込むことにより、分類コードを決定する。分類コード決定部361は、サンプリング値x1乃至x5を、時刻の古い順であるサンプリング値x5,x4,x3,x2,x1の順で分類コードを絞り込んでもよいし、新しい順であるサンプリング値x1,x2,x3,x4,x5の順で分類コードを絞り込んでもよいが、以下では、時刻の古い順であるサンプリング値x5,x4,x3,x2,x1の順で分類コードを絞り込む例について説明する。図13乃至図16では、サンプリング値x5,x4,x3,x2,x1の順で行う処理のうちの、現在ビット時間のサンプリング値x3,x2、およびx1について説明するが、その前のサンプリング値x5およびx4についても同様の処理が行われる。
いま、データ保持部302から供給された現在ビット時間の受信データのサンプリング値x3,x2,x1が、それぞれ、170,162,150であるとする。即ち、x3=170,x2=162、およびx1=150である。
図13は、分散値RAM362から取得された平均値μと分散σ2にしたがい、サンプリング値x3の取り得る範囲を分類コードごとに示したものである。図13の横軸は、分類コード(0乃至31)を表し、縦軸は、振幅値(サンプリング値)を表す。また、図13では、分類コード0乃至15に対応するサンプリング値x3の取り得る最大値および最小値を星(*)印で表し、分類コード16乃至31に対応するサンプリング値x3の取り得る最大値および最小値を黒丸(●)印で表し、サンプリング値x3の取り得る範囲は、星印または黒丸印どうしの間となる。なお、一部の分類コードの取りうる範囲の図示は省略されている。
分類コード表によって、各分類コード0乃至31におけるサンプリング値x3の取り得る範囲が、図13に示すように決定されている場合、分類コード決定部361は、データ保持部302から供給されたサンプリング値x3である170を、取り得る範囲として含む分類コードを探索する。
図13に示すように、サンプリング値170を取る可能性がある分類コードは、7,15,20、および31である。従って、分類コード決定部361は、分類コード7,15,20、および31を、受信データに対応する分類コードの候補として決定する。
次に、分類コード決定部361は、サンプリング値x3に対する分類コードの探索で候補として残った分類コード7,15,20、および31のみを対象に、サンプリング値x2について、同様の処理を行う。
図14は、分散値RAM362から取得された平均値μと分散σ2にしたがい、サンプリング値x2の取り得る範囲を分類コードごとに示したものである。また、図14では、分類コード0乃至15に対応するサンプリング値x2の取り得る最大値および最小値を黒三角(▲)印で表し、分類コード16乃至31に対応するサンプリング値x2の取り得る最大値および最小値をバツ(×)印で表し、サンプリング値x2の取り得る範囲は、黒三角印またはバツ印どうしの間となる。
サンプリング値x3に対する分類コードの探索で候補として残った分類コード7,15,20、および31のなかで、データ保持部302から供給されたサンプリング値x2である162を取る可能性がある分類コードは、15および31である。従って、分類コード決定部361は、分類コード15および31を、受信データに対応する新たな分類コードの候補として決定する。
次に、分類コード決定部361は、サンプリング値x2に対する分類コードの探索で候補として残った分類コード15および31のみを対象に、サンプリング値x1について、同様の処理を行う。
図15は、分散値RAM362から取得された平均値μと分散σ2にしたがい、サンプリング値x1の取り得る範囲を分類コードごとに示したものである。また、図15では、分類コード0乃至15に対応するサンプリング値x1の取り得る最大値および最小値を黒菱形(◆)印で表し、分類コード16乃至31に対応するサンプリング値x1の取り得る最大値および最小値を黒四角(■)印で表し、サンプリング値x1の取り得る範囲は、黒菱形印または黒四角印どうしの間となる。
サンプリング値x2に対する分類コードの探索で候補として残った分類コード15および31のなかで、データ保持部302から供給されたサンプリング値x1である150を取る可能性がある分類コードは、15である。従って、分類コード決定部361は、分類コード15を、受信データに対応する最終的な分類コードとして決定する。
図13乃至図15の処理をまとめると、図16に示すようになる。
時刻t3におけるサンプリング値x3=170から、白丸(○)印で示される探索対象の分類コード0乃至31のうちの、黒丸(●)印で示される分類コード7,15,20、および31が、受信データの分類コードの候補に挙がる。次に、時刻t2におけるサンプリング値x2=162から、白丸印で示される探索対象の分類コード7,15,20、および31のうちの、黒丸印で示される分類コード15および31が、受信データの分類コードの候補に挙がる。最後に、時刻t1におけるサンプリング値x1=150から、白丸印で示される探索対象の分類コード15および31のうちの、黒丸印で示される分類コード15が、受信データの分類コードに決定される。
図17は、受信モード時の分類部303−1による分類コード決定処理のフローチャートである。
なお、LSI100は、どのLSIからデータが送信されてくるかをアルゴリズム処理部202からのレート制御情報に基づいて認識しており、分類コード決定処理の前には、各分類コードに対応する、通信相手のLSI用の受信データの統計値を分散値RAM362から取得しているものとする。
初めに、ステップS1において、分類コード決定部361は、データ保持部302から供給される、現在ビット時間の3つのサンプリング値x1乃至x3と、過去ビット時間のサンプリング値x4およびx5を取得する。
ステップS2において、分類コード決定部361は、最初のサンプリング値、例えば、時間的に最も過去のサンプリング値x5を、取り得る範囲に含む分類コードを、分類コードの候補として決定する。
ステップS3において、分類コード決定部361は、分類コードの候補のなかで、次のサンプリング値、例えば、サンプリング値x4を、取り得る範囲に含む分類コードを、新たな分類コードの候補に決定する。
ステップS4において、ステップS1で取得された全てのサンプリング値について調べたか否かが判定される。全てのサンプリング値について調べていないと判定された場合、処理はステップS3に戻り、ステップS3およびS4の処理が繰り返される。これにより、例えば、サンプリング値x3,x2,x1について同様の処理が行われる。
ステップS4で、全てのサンプリング値について調べたと判定された場合、ステップS5において、分類コード決定部361は、最終的な分類コードの候補を、受信データに対応する分類コードに決定し、係数保持部304に供給して、処理を終了する。
以上のようにして、サンプリング値x1乃至x5のそれぞれが、所定の分類コードの受信データの取り得る範囲に入っているか否かを順次絞り込むことにより、分類コード決定部361は、受信データの分類コードを一意に決定する。
上述した例では、LSI100が、どのLSIからデータが送信されてくるかをアルゴリズム処理部202からのレート制御情報に基づいて認識しており、そのLSI用の受信データの統計値を分散値RAM362から取得しているものとしたが、どのLSIからデータが送信されてくるかがわからない場合には、分散値RAM362に記憶されているLSI102,104,106、および108それぞれの受信データの統計値と分類コードについて図17の処理を実行し、受信したサンプリング値が範囲に該当するLSIを探索する。この場合、分類コード決定部361は、通信相手と認識されたLSIを識別するLSI情報も係数保持部304に供給する。
図18は、係数保持部304の詳細な構成例を示すブロック図である。
係数保持部304は、係数決定部381と係数RAM382により構成されている。
係数決定部381は、学習モードにおいて、通信相手となるLSIそれぞれの、分類コードと係数とが対応付けられた係数データ表を、学習部308から取得し、係数RAM382に記憶させる。
係数決定部381は、受信モードにおいて、係数RAM382に記憶されている、通信相手のLSI用の係数データ表を参照し、分類部303−1から供給された分類コードに基づいて係数を決定し、積和演算部305に供給する。
係数RAM382は、図19に示すように、分類コードと係数とが対応付けられた係数データ表を、通信相手であるLSIごとに記憶する。この係数データ表には、1つの分類コードに対して、データ保持部302から積和演算部305に供給されるサンプリング値の個数と同一の個数(n=5)の係数が記憶されている。
次に、図20のフローチャートを参照して、BB信号処理部204による受信モード時の受信処理について説明する。
初めに、ステップS21において、AD変換部301は、RF信号処理部203の受信部212からのベースバンド信号をA/D変換する。即ち、AD変換部301は、受信部212から供給される1ビット時間分のベースバンド信号から、3点をサンプリングし、その結果得られるサンプリング値をデータ保持部302に供給する。
ステップS22において、データ保持部302は、現在ビット時間と過去ビット時間のサンプリング値を分類部303−1に供給する。また、データ保持部302は、現在ビット時間のサンプリング値を所定時間保持する。
ステップS23において、分類部303−1の分類コード決定部361は、図17を参照して説明した分類コード決定処理を行うことにより、受信データの分類コードを決定する。
ステップS24において、係数保持部304の係数決定部381は、通信相手のLSI用の、分類コードと係数ciとが対応付けられた係数データ表を参照し、分類部303−1から供給された分類コードに基づいて係数ciを決定する。決定された係数ciは、積和演算部305に供給される。
ステップS25において、データ保持部302は、保持しておいた現在ビット時間と過去ビット時間のサンプリング値を積和演算部305に供給する。また、データ保持部302では、現在ビット時間の真ん中の時刻にサンプリングされたサンプリング値が、次のビット時間以降の出力のために過去ビットRAM363に記憶される。
ステップS26において、積和演算部305は、式(1)に従い、データ保持部302から供給される現在ビット時間と過去ビット時間のサンプリング値と、係数保持部304から供給される係数ciとを積和演算する。これにより、積和値TPが得られる。
ステップS27において、ビット判定部306は、積和演算部305からの積和値TPと、所定の閾値Vthとを比較して、現在ビット時間に受信したビットの判定を行う。具体的には、ビット判定部306は、積和値TPが閾値Vthよりも大きい場合には、現在ビット時間に受信したビットを“1”と判定し、積和値TPが閾値Vth以下である場合には、現在ビット時間に受信したビットを“0”と判定する。そして、ビット判定部306は、ビット判定結果をビットデータとしてデータ保持部307に供給する。
ステップS28において、データ保持部307は、レート制御情報で指示された通信レートとなるように、ビット判定部306から供給されたビットデータを所定時間だけ保持する。
そして、所定時間経過後、ステップS29において、データ保持部307は、保持しておいたビットデータをアルゴリズム処理部202に出力する。
ステップS30において、BB信号処理部204は、受信が終了したか否かを判定する。
ステップS30における受信が終了したか否かの判定は、アルゴリズム処理部202からのレート制御情報か、または、LSI100に入力される制御信号に基づいて行われる。
ステップS30で、受信が終了していないと判定された場合、即ち、RF信号処理部203の受信部212からBB信号処理部204のAD変換部301にベースバンド信号が継続して供給されている場合、BB信号処理部204は、処理をステップS21に戻し、それ以降の処理を繰り返す。
一方、ステップS30で、受信が終了したと判定された場合、受信処理は終了する。
図21は、学習部308の詳細な構成例を示すブロック図である。
学習部308は、受信値RAM401、平均値算出部402、分散値算出部403、係数算出部404、および対応表作成部405により構成され、学習モード時のみ動作する。
受信値RAM401には、データ保持部302から現在ビット時間および過去ビット時間のサンプリング値が供給されるとともに、対応表作成部405から分類コードが供給される。受信値RAM401は、データ保持部302から供給されるサンプリング値を分類コードごとに記憶する。
平均値算出部402は、受信値RAM401に記憶されているサンプリング値を用いて、分類コードが割り当てられた回数である分類コードの頻度と、その分類コードを有するサンプリング値の総和から、各サンプリング値の平均値を分類コードごとに算出する。
分散値算出部403は、受信値RAM401に記憶されているサンプリング値と平均値算出部402で算出された平均値を用いて、各サンプリング値の分散値を分類コードごとに算出する。そして、分散値算出部403は、平均値算出部402からの平均値と、算出された分散値とを対応表作成部405に供給する。
平均値算出部402による平均値の算出、および、分散値算出部403による分散値の算出は、LSI100の通信相手のLSIごとに実行される。
係数算出部404は、受信値RAM401に記憶されているサンプリング値、および、対応表作成部405を介して既知信号データベース309から供給される教師データから、最適な係数ciを分類コードごとに算出する。
具体的には、係数算出部404は、受信値RAM401に記憶されているサンプリング値x1乃至xhを受信したときに積和演算部305で計算される式(1)のoutput(tp)と、それに対応する教師データ和teach(tp)との誤差が、学習モード時に受信したサンプリング値x1乃至xhのすべてのセットについて最小となるような係数ciを算出する。即ち、係数算出部404は、式(2)で表される2乗誤差Ωが最小となる係数ciを算出する。
ここで、教師データ和teach(tp)は、時刻tiのサンプリング値xiに対応する教師データwiの和であり、式(3)で表すことができる。
また、式(2)の値uは、所定の分類コードにおいて、学習モード時に受信したサンプリング値x1乃至xhのセットの総数であり、分類コードの頻度とも等しい。
係数算出部404は、最初に、係数ciの初期値を式(2)に代入し、2乗誤差Ωが所定の閾値ε以下であって、2乗誤差Ωが最小であると判定した場合には、その代入した係数ciの初期値を、求める最適な係数ciとするが、係数ciの初期値を代入したときの2乗誤差Ωが閾値εより大きい場合には、式(2)を係数ciについて解き、最適な係数ciを算出する。
対応表作成部405は、図22に示される、教師データとしての送信データと分類コードとが対応づけられたデータを、既知データベース309から取得する。図22は、既知信用データベース309が外部記憶装置からダウンロードした送信データと分類コードとが対応づけられたデータを示している。図22の送信データ1_t乃至n_tは、上述した式(3)のw1乃至whである。このデータを取得することにより、BB信号処理部204は、送信側のLSIがどんなデータを送ったのかを知ることができる。
また、対応表作成部405は、係数ciの初期値を既知データベース309から必要に応じて取得する。そして、対応表作成部405は、学習モードにおいてデータ保持部302から受信値RAM401に供給されるサンプリング値が、どの送信データに対応するものかが分かっているので、データ保持部302から受信値RAM401に供給されるサンプリング値に対応する送信データの分類コードを受信値RAM401に供給する。
そして、対応表作成部405は、式(2)の計算に使用される教師データと係数ciの初期値を係数算出部404に供給し、それに対して、係数算出部404から供給される分類コードごとの係数ciと、分散値算出部403から供給される分類コードごとの受信データの統計値とを、分類コードごとにまとめ、図23に示す係数受信データ対応表を作成する。
対応表作成部405は、通信相手のLSIごとに作成した係数受信データ対応表を図示せぬ内部メモリに記憶する。さらに、対応表作成部405は、係数受信データ対応表から、分類コードと受信データの統計値との対応を抽出し、分類コード表として分類部303(図11の分類部303−1)に供給する。また、対応表作成部405は、係数受信データ対応表から、分類コードと係数との対応を抽出し、係数データ表として係数保持部304に供給する。
次に、図24のフローチャートを参照して、BB信号処理部204による学習モード時の学習処理について説明する。
この学習処理は、最初の電源投入時など情報処理装置1が初期状態であるとき、経年変化などに対応するための所定の設定時間が経過したとき、ユーザの指示による任意のタイミング、または、情報処理装置1の筐体2内の構成が変化したとき、などに実行される。情報処理装置1の筐体2内の構成が変化したときとは、情報処理装置1に新たなモジュール(基板やLSIなど)が追加装着されたときや情報処理装置1内の基板の配置が変化したときなどである。
初めに、ステップS41において、学習部308の対応表作成部405は、繰り返し回数をカウントする変数pにゼロをセットする。
ステップS42において、対応表作成部405は、この後通信相手のLSIから送信されてくる送信データの分類コード(以下、適宜、該当分類コードという)を受信値RAM401に供給する。
ステップS43において、受信値RAM401は、通信相手のLSIから送信されたデータを受信する。より具体的には、受信値RAM401は、現在ビット時間および過去ビット時間のサンプリング値をデータ保持部302から受信する。
ステップS44において、受信値RAM401は、受信した現在ビット時間および過去ビット時間のサンプリング値を、該当分類コードに対応させて記憶する。
ステップS45において、平均値算出部402は、受信値RAM401に記憶されている該当分類コードのサンプリング値を用いて、サンプリング値の平均値を算出する。
ステップS46において、分散値算出部403は、受信値RAM401に記憶されているサンプリング値と平均値算出部402で算出された平均値を用いて、サンプリング値の分散値を算出する。また、分散値算出部403は、平均値と分散値を対応表作成部405に供給する。
ステップS47において、対応表作成部405は、該当分類コードの教師データを係数算出部404に供給する。
ステップS48において、対応表作成部405は、式(2)の2乗誤差Ωを求める際の係数ciの初期値をリセットするか否かを判定する。ステップS48では、例えば、最初の電源投入時など情報処理装置1が初期状態であるとき、経年変化などに対応するための所定の設定時間が経過したとき、係数の初期状態からの再設定がユーザによって指示されたとき、または、情報処理装置1の筐体2内の構成が変化したときなどの場合に、係数ciの初期値をリセットすると判定される。
ステップS48で、係数ciの初期値をリセットすると判定された場合、ステップS49において、対応表作成部405は、式(2)に与える係数ciの初期値として“1”を係数算出部404に供給する。
一方、ステップS48で、係数ciの初期値をリセットしないと判定された場合、ステップS50において、対応表作成部405は、係数保持部304に記憶されている現在の値を使用するか否かを判定する。
ステップS50で、現在の値を使用すると判定された場合、ステップS51において、対応表作成部405は、係数保持部304に記憶されている係数ciを、既知信号データベース309を介して取得し、係数ciの初期値として係数算出部404に供給する。
一方、ステップS50で、現在の値を使用しないと判定された場合、ステップS52において、既知信号データベース309は、外部記憶装置から係数ciの初期値をダウンロードし、対応表作成部405は、その係数ciの初期値を既知信号データベース309から取得して、係数算出部404に供給する。
ステップS53において、係数算出部404は、係数ciの初期値と教師データを式(2)に代入し、2乗誤差Ωが十分小さいかを判定する。ステップS53で、2乗誤差Ωが十分小さいと判定された場合、即ち、2乗誤差Ωが所定の閾値ε以下である場合、係数算出部404は、式(2)に代入した係数ciの初期値を最適な係数ciとする。その後、処理はステップS55に進む。
一方、ステップS53で、2乗誤差Ωが大きいと判定された場合、ステップS54において、係数算出部404は、式(2)を係数ciについて解き、2乗誤差Ωが最小となる係数ciを算出する。
ステップS55において、対応表作成部405は、係数受信データ対応表の該当分類コードに、分散値算出部403から供給された受信データの統計値(平均値および分散値)と、係数算出部404から供給された係数ciを登録し、係数受信データ対応表を作成(更新)する。
ステップS56において、対応表作成部405は、すべての送信データについて学習したかを判定する。対応表作成部405は、上述したステップS42乃至S55の処理を、LSI100が通信する相手全てのLSIの、全ての分類コードに対して行った場合に、すべての送信データについて学習したと判定する。
ステップS56で、すべての送信データについて学習していないと判定された場合、処理はステップS42に戻り、BB信号処理部204は、次の分類コードに対して、上述したステップS42乃至S56の処理を繰り返す。所定のLSIの全ての分類コードに対してステップS42乃至S56の処理が既に行われた場合には、ステップS42乃至S56の処理をまだ実行していない他のLSIの所定の分類コードに対して、上述したステップS42乃至S56の処理が実行される。
一方、ステップS56で、すべての送信データについて学習したと判定された場合、ステップS57において、対応表作成部405は、変数pが予め設定された繰り返し回数qに等しいか否かを判定する。
ステップS57で、変数pが予め設定された繰り返し回数qに等しくない、即ち、予め設定された繰り返し回数qだけ学習を行っていないと判定された場合、ステップS58において、対応表作成部405は、変数pを1だけインクリメントし、処理はステップS42に戻る。ここで、繰り返し回数qは、統計的に十分な信頼度のデータが得られる回数である。
ステップS57で、変数pが予め設定された繰り返し回数qに等しいと判定された場合、ステップS59において、対応表作成部405は、係数受信データ対応表から分類コードと受信データの統計値との対応を抽出して得られる分類コード表を分類部303−1に供給するとともに、係数受信データ対応表から分類コードと係数ciとの対応を抽出して得られる係数データ表を係数保持部304に供給し、処理を終了する。
図24の学習処理では、全てのLSIおよびその全分類コードについてデータを受信することをq回繰り返すようにしたが、LSIごとにq回繰り返すことを全てのLSIについて順に行うようにしても勿論よい。即ち、通信相手となる全てのLSIについて、統計的に十分な信頼度の受信データの統計値および係数ciが得られればよい。
以上のように、BB信号処理部204の学習モードでは、教師データに対応する、マルチパスによる歪みのある受信データの統計値および係数ciが学習処理により学習される。そして、受信データの統計値と分類コードとの対応が分類コード表として分類部303−1に記憶され、分類コードと係数ciとの対応が係数データ表として係数保持部304に記憶される。
そして、BB信号処理部204の受信モードにおいて、現在ビット時間の3個のサンプリング値と過去の2ビット時間の2個のサンプリング値とに基づいて、分類コードが決定され、その分類コードに対応する最適な係数ciを用いて現在ビット時間の積和値TPが算出され、閾値Vthとの比較により、現在ビット時間に受信したビットが判定される。
これにより、マルチパスによる歪みのある受信信号を精度良く復号することができる。
なお、上述した例では、波形整形前の受信データの平均値μと分散σ2を求めて分散値RAM362に記憶させ、分類コード決定部361が、その平均値μと分散σ2から、受信データの取り得る最大値と最小値を算出したが、分散値RAM362には、受信データの最大値と最小値をそのまま記憶させてもよい。
図25は、学習処理で決定された係数ciによって積和演算部305で算出された現在ビット時間の積和値TPを示している。
図25の太線の点線は、各ビット時間の教師データを表し、図25の実線は、その太線の点線で示される教師データに対して学習処理で決定された係数ciを使って、受信モード時に積和演算部305で算出された各ビット時間の積和値TPを表している。
なお、図25の細線の点線(実線と重なっている部分も含む)は、各ビット時間の教師データを、太線の点線で示されるような“0”または“1”ではなく、“0.3”,“0.8”などの実数で与えたときに学習処理で決定された係数ciを使って、受信モード時に積和演算部305で算出された各ビット時間の積和値TPを表している。
この実数で与えられる教師データ(実数教師データ)は、次のようにして作成することができる。最初に、所定の送信データ(“0”または“1”からなるデータ)を通信相手のLSIから送信させ、LSI100が受信する。受信された送信データは、BB信号処理部204のAD変換部301でデジタルデータに変換され、データ保持部302に順次記憶される。データ保持部302に蓄積された受信データ(蓄積受信データ)は、外部記憶装置などを介して、他の計算機、例えば、図43を参照して後述するコンピュータ等に転送され、図26の実数教師データ決定処理が実行される。以下では、図43のコンピュータを用いて実行した場合の、図26の実数教師データ決定処理のフローチャートについて説明する。
初めに、ステップS61において、CPU801は、所定の教師データと生徒データを用いて図24の学習処理を実行して係数ci’(復号エミュレーション処理における係数ciを係数ci’とする)を算出し、さらに算出された係数ci’を使って図20のステップS22乃至S29を実行して蓄積受信データを復号する復号エミュレーション処理を行う。ステップS61の復号エミュレーション処理では、蓄積受信データを生徒データ、通信相手のLSIが送信したものと同一の“0”または“1”からなる送信データを教師データとして復号エミュレーション処理が行われる。
ステップS62において、CPU801は、ステップS61の復号エミュレーション処理によって復号した結果のビットエラーレート(Bit Error Rate)を計算し、ビットエラーレートが所定の規定値K1以下であるかを判定する。ステップS62で、ビットエラーレートが規定値K1以下であると判定された場合、実数教師データ処理を終了する。この場合、送信データと同一の“0”または“1”からなるデータが、そのまま教師データとなり、教師データは実数とはならない。
一方、ステップS62で、ビットエラーレートが規定値K1より大きいと判定された場合、ステップS63において、CPU801は、送信データ“1”に対応する実数教師データとして、“1”にオフセット値OFFSET1を加算した値(“1+OFFSET1”)、および、“1”にオフセット値OFFSET1を減算した値(“1−OFFSET1”)を設定する。
ステップS64において、CPU801は、蓄積受信データを生徒データ、“1+OFFSET1”を教師データとして復号エミュレーション処理を行う。また、CPU801は、蓄積受信データを生徒データ、“1−OFFSET1”を教師データとした復号エミュレーション処理も行う。
ステップS65において、CPU801は、ステップS64の復号エミュレーション処理の結果と送信データとを比較して、“1”の送信データを間違って“0”と復号したビット数であるビットエラー数を、“1+OFFSET1”を教師データとした場合と“1−OFFSET1”を教師データとした場合のそれぞれについてカウントする。
ステップS66において、CPU801は、“1+OFFSET1”を教師データとした場合と“1−OFFSET1”を教師データとした場合のいずれかでビットエラー数が所定の規定値K2以下であるかを判定する。
ステップS66で、“1+OFFSET1”と“1−OFFSET1”のどちらでもビットエラー数が規定値K2より大きいと判定された場合、ステップS67において、CPU801は、オフセット値OFFSET1を現在の半分の値に設定する。そして、処理はステップS63に戻り、それ以降の処理が繰り返される。
一方、ステップS66で、ビットエラー数が規定値K2以下であると判定された場合、ステップS68において、CPU801は、“1+OFFSET1”と“1−OFFSET1”のうちのビットエラー数が規定値K2以下となった方の実数教師データを教師データ“1”にとって代わる教師データとする。
ステップS69において、CPU801は、送信データ“0”に対応する実数教師データとして、“0”にオフセット値OFFSET0を加算した値(“0+OFFSET0”)、および、“0”にオフセット値OFFSET0を減算した値(“0−OFFSET0”)を設定する。
ステップS70において、CPU801は、蓄積受信データを生徒データ、“0+OFFSET0”を教師データとして復号エミュレーション処理を行う。また、CPU801は、蓄積受信データを生徒データ、“0−OFFSET0”を教師データとした復号エミュレーション処理も行う。
ステップS71において、CPU801は、ステップS70の復号エミュレーション処理の結果と送信データとを比較して、“0”の送信データを間違って“1”と復号したビット数であるビットエラー数を、“0+OFFSET0”を教師データとした場合と“0−OFFSET0”を教師データとした場合のそれぞれについてカウントする。
ステップS72において、CPU801は、“0+OFFSET0”を教師データとした場合と“0−OFFSET0”を教師データとした場合のいずれかでビットエラー数が所定の規定値K3以下であるかを判定する。
ステップS72で、“0+OFFSET0”と“0−OFFSET0”のどちらでもビットエラー数が規定値K3より大きいと判定された場合、ステップS73において、CPU801は、オフセット値OFFSET0を現在の半分の値に設定する。そして、処理はステップS69に戻り、それ以降の処理が繰り返される。
一方、ステップS72で、ビットエラー数が規定値K3以下であると判定された場合、ステップS74において、CPU801は、“0+OFFSET0”と“0−OFFSET0”のうちのビットエラー数が規定値K3以下となった方の実数教師データを教師データ“0”にとって代わる教師データとする。
ステップS75において、CPU801は、決定された実数教師データを記憶部808またはリムーバブルメディア811に記憶させ、処理を終了する。
以上のように、実数教師データ決定処理では、“1”および“0”から所定のオフセット値OFFSET1およびOFFSET0だけ変更した実数教師データを使って係数ci’を求め、その係数ci’を用いて蓄積受信データを実際に復号してみて、ビットエラー数が所定の規定値K2またはK3以下となったものが最終的な実数教師データとして決定される。
次に、BB信号処理部204を構成する各ブロックのその他の実施の形態について説明する。
図27は、分類部303の第2の構成である分類部303−2のブロック図である。
分類部303−2は、データ保持部501、最大値最小値検出部502、比較部503、および分類コード決定部504により構成される。
データ保持部501は、データ保持部302から供給される、現在ビット時間のサンプリング値x1乃至x3と過去ビット時間のサンプリング値x4およびx5を、最大値最小値検出部502に供給する。また、データ保持部501は、最大値最小値検出部502がサンプリング値x1乃至x5のなかの最大値と最小値を検出して、その最大値と最小値から求められる閾値Xth1を比較部503に供給するまでの間、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5を保持し、その後、比較部503に供給する。
最大値最小値検出部502は、データ保持部501から供給されるサンプリング値x1乃至x5のなかから、最大値と最小値を検出し、その最大値と最小値の中間値を閾値Xth1として求め、比較部503に供給する。
比較部503は、データ保持部501から供給されるサンプリング値x1乃至x5のそれぞれを、閾値Xth1と比較する。より具体的には、比較部503は、サンプリング値x1乃至x5のそれぞれについて、閾値Xth1よりも大きい場合には“1”を、閾値Xth1以下の場合には、“0”を分類コード決定部504に供給する。
分類コード決定部504は、サンプリング値x1乃至x5のそれぞれについて、順次、閾値Xth1と比較されて比較部503から供給される“1”または“0”を並べたビット列を分類コードとして係数保持部304に供給する。
図28は、分類部303の第3の構成である分類部303−3のブロック図である。なお、図28において、図27と対応する部分については同一の符号を付してある。
分類部303−3は、差分計算部521、データ保持部501、最大値最小値検出部502、比較部503、および分類コード決定部504により構成される。
即ち、分類部303−3は、差分計算部521が新たに設けられている他は、分類部303−2と同様に構成されており、データ保持部501に供給されるデータが、サンプリング値x1乃至x5ではなくて、差分計算部521の計算結果である差分値となっている。
差分計算部521は、データ保持部302から供給される、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5から、差分値sdj(j=1乃至4)を計算する。差分値sdjは、sdj=(xj+1−xj)で求められ、データ保持部501に供給される。従って、データ保持部501に供給される差分値の個数は、データ保持部302から供給されるサンプリング値の個数より1だけ少なくなる。
データ保持部501は、差分計算部521から供給される差分値sd1乃至sd4を、最大値最小値検出部502に供給する。また、データ保持部501は、最大値最小値検出部502が差分値sd1乃至sd4のなかの最大値と最小値を検出して、その最大値と最小値から求められる閾値Xth2を比較部503に供給するまでの間、差分値sd1乃至sd4を保持し、その後、比較部503に供給する。
最大値最小値検出部502は、データ保持部501から供給される差分値sd1乃至sd4のなかから、最大値と最小値を検出し、その最大値と最小値の中間値を閾値Xth2として求め、比較部503に供給する。
比較部503は、データ保持部501から供給される差分値sd1乃至sd4のそれぞれを、閾値Xth2と比較する。より具体的には、比較部503は、差分値sd1乃至sd4のそれぞれについて、閾値Xth2よりも大きい場合には“1”を、閾値Xth2以下の場合には、“0”を分類コード決定部504に供給する。
分類コード決定部504は、差分値sd1乃至sd4のそれぞれについて、順次、閾値Xth2と比較されて比較部503から供給される“1”または“0”を並べたビット列を分類コードとして係数保持部304に供給する。
図29は、図27の分類部303−2による分類コード決定処理のフローチャートである。
初めに、ステップS81において、データ保持部501は、データ保持部302から供給される、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5を、最大値最小値検出部502に供給する。また、データ保持部501は、サンプリング値x1乃至x5を所定時間保持する。
ステップS82において、最大値最小値検出部502は、データ保持部501から供給されるサンプリング値x1乃至x5のなかから、最大値と最小値を検出し、その最大値と最小値の中間値を閾値Xth1として求め、比較部503に供給する。
ステップS83において、データ保持部501は、保持しておいたサンプリング値x1乃至x5を、比較部503に供給する。
ステップS84において、比較部503は、データ保持部501から供給されるサンプリング値x1乃至x5のそれぞれを、閾値Xth1と比較する。より具体的には、比較部503は、サンプリング値x1乃至x5のそれぞれについて、閾値Xth1よりも大きい場合には“1”を、閾値Xth1以下の場合には、“0”を分類コード決定部504に供給する。
ステップS85において、分類コード決定部504は、受信データに対応する分類コードを決定する。即ち、分類コード決定部504は、サンプリング値x1乃至x5のそれぞれについて、順次、閾値Xth1と比較されて比較部503から供給される“1”または“0”を並べたビット列を分類コードとして係数保持部304に供給して、処理を終了する。
分類部303−2では、以上のようにして分類コードが決定される。なお、分類部303−3による分類コード決定処理は、上述したステップS81の処理の前に、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5から、差分値sd1乃至sd4を計算する処理が挿入され、計算された差分値sd1乃至sd4に対して、ステップS81乃至S85と同様の処理が実行される。
なお、分類部303−2による図29の分類コード決定処理では、サンプリング値ごとにビットを判定するので、5個のサンプリング値x1乃至x5に対して5個のビット列が分類コードとして出力されるが、過去ビット時間のサンプリング値x4およびx5と同様に、現在ビット時間についてもサンプリング値x1乃至x3のなかの代表の1個のサンプリング値についてのみビットを判定し、サンプリング値を取得した3ビット時間に対して3ビットの分類コードを出力するようにしてもよい。分類部303−3による分類コード決定処理でも同様に、サンプリング値を取得した3ビット時間に対して2ビットの分類コードを出力するようにしてもよい。
以上のように、分類部303−2および303−3による分類コード決定処理では、分類部303−1のように分類コード表を使用せず、受信データ(サンプリング値)のみから分類コードを決定することが可能である。換言すれば、学習処理により、分類コードごとの受信データの統計値を予め求めておく必要はない。
したがって、分類部303が分類部303−2または303−3によって構成される場合、上述した学習部308は、図30に示すように、平均値算出部402および分散値算出部403を省略することが可能である。
この場合、受信値RAM401は、データ保持部302から供給される現在ビット時間および過去ビット時間のサンプリング値を、対応表作成部405から供給される分類コードごとに記憶する。なお、分類コードは、上述したように、受信データからも一意に決定されるので、対応表作成部405からではなく、実際に受信した受信データを分類部303−2(または303−3)に分類させて、その結果得られる分類コードを分類部303−2(または303−3)からもらうようにすることも可能である。
その結果、受信値RAM401には、図31に示すように、受信データと分類コードとが対応付けられた分類コード表が、通信相手のLSIごとに記憶される。
係数算出部404は、上述した最初の実施の形態と同様に、受信値RAM401に記憶されているサンプリング値、および、対応表作成部405を介して既知信号データベース309から供給される教師データから、最適な係数ciを分類コードごとに算出し、対応表作成部405に供給する。
対応表作成部405は、上述した最初の実施の形態と同様に、図22に示した教師データとしての送信データと分類コードとが対応づけられたデータを、既知データベース309から取得したり、係数ciの初期値を既知データベース309から必要に応じて取得し、係数算出部404に供給する。
そして、対応表作成部405は、係数算出部404から供給される最適な係数ciと、受信値RAM401から供給される分類コード表から、図32に示される、受信データと係数ciとが分類コードに対応付けられた係数受信データ対応表を、通信相手のLSIごとに作成する。
対応表作成部405は、係数受信データ対応表から、分類コードと受信データの統計値との対応を抽出し、分類コード表として分類部303(分類部303−2または303−3)に供給する。また、対応表作成部405は、係数受信データ対応表から、分類コードと係数との対応を抽出し、係数データ表として係数保持部304に供給する。
図33は、分類部303が分類部303−2または303−3として構成される場合の、学習部308の学習処理のフローチャートである。
図33のステップS101乃至S104,S106乃至S113、およびS115乃至S117の処理は、図24のステップS41乃至S44,S47乃至S54、およびS56乃至58にそれぞれ対応するので、その説明は省略する。換言すれば、図24のステップS45およびS46の処理に代えて、図33ではステップS105の処理が実行され、図24のステップS55の処理に代えて図33ではステップS114の処理が実行され、図24のステップS59の処理に代えて図33ではステップS118の処理が実行される点が相違する。
ステップS105において、受信値RAM401は、受信データと分類コードとが対応付けられた分類コード表を対応表作成部405に供給する。
ステップS114において、対応表作成部405は、係数受信データ対応表の該当分類コードに、受信値RAM401から供給される受信データと、係数算出部404から供給される係数ciを登録し、係数受信データ対応表を作成(更新)する。
ステップS116で、変数pが予め設定された繰り返し回数qに等しいと判定された場合、ステップS118において、対応表作成部405は、係数受信データ対応表から分類コードと受信データとの対応を抽出して得られる分類コード表を分類部303−2または303−3に供給するとともに、係数受信データ対応表から分類コードと係数ciとの対応を抽出して得られる係数データ表を係数保持部304に供給し、処理を終了する。
以上のように、分類部303を分類部303−2または303−3のように構成した場合でも、学習モードにおいて、受信モード時に積和演算部305で演算される2乗誤差Ωが最小となるような係数ciを分類コードごとに算出し、受信モードにおいて、現在ビット時間および過去ビット時間のサンプリング値に基づいて分類コードを決定し、その決定された分類コードに対応する係数ciとサンプリング値とを用いて演算された現在ビット時間の積和値TPを閾値Vthと比較することにより、現在ビット時間に受信したビットが判定される。これにより、BB信号処理部204によれば、マルチパスによる歪みのある受信信号を精度良く復号することができる。
次に、ビット判定部306のその他の構成について説明する。
ビット判定部306は、そこに供給される積和値TPを、予め決められた所定の閾値Vthと比較してビット判定するようにしたが、図34のビット判定部306−2または図35のビット判定部306−3に示すように構成し、受信したデータに基づいてビット判定するようにさせることもできる。この場合、積和演算部305は、現在ビット時間の積和値TPだけでなく、現在ビット時間および過去ビット時間のサンプリング値も、ビット判定部306−2または306−3に供給する。
図34は、ビット判定部306−2の構成例を示すブロック図である。
ビット判定部306−2は、データ保持部541、最大値最小値検出部542、および比較部543により構成される。
データ保持部541には、現在ビット時間の積和値TPと、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5が、積和演算部305から供給される。データ保持部541は、現在ビット時間および過去ビット時間のサンプリング値x1乃至x5を最大値最小値検出部542に供給するとともに、最大値最小値検出部542においてサンプリング値x1乃至x5の最大値と最小値が検出されるまでの所定時間だけ積和値TPを保持し、所定時間経過後、積和値TPを比較部543に供給する。
最大値最小値検出部542は、供給される現在ビット時間および過去ビット時間のサンプリング値x1乃至x5のなかから、サンプリング値の最大値と最小値を検出し、比較部543に供給する。
比較部543は、最大値最小値検出部542から供給される最大値と最小値の中間値を閾値Vth’として決定する。そして、比較部543は、データ保持部541から供給される積和値TPと、閾値Vth’とを比較して、現在ビット時間に受信したビットを判定する。即ち、比較部543は、積和値TPが閾値Vth’よりも大きい場合には、現在ビット時間に受信したビットを“1”と判定し、積和値TPが閾値Vth’以下である場合には、現在ビット時間に受信したビットを“0”と判定する。ビット判定結果は、最初の実施の形態における場合と同様に、データ保持部307に供給される。
図35は、ビット判定部306−3の構成例を示すブロック図である。なお、図34のビット判定部306−2と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
ビット判定部306−3は、データ保持部541、最大値最小値検出部542、および距離比較部561により構成される。従って、ビット判定部306−3では、ビット判定部306−2と同様に、データ保持部541と最大値最小値検出部542が構成されており、比較部543に代えて距離比較部561が設けられている。
距離比較部561は、データ保持部541から供給される積和値TPが、最大値最小値検出部542から供給される最大値と最小値のどちらに近いかを判定することにより、現在ビット時間に受信したビットを判定する。即ち、距離比較部561は、積和値TPが最大値に近い場合には、現在ビット時間に受信したビットを“1”と判定し、積和値TPが最小値に近い場合には、現在ビット時間に受信したビットを“0”と判定する。ビット判定結果は、最初の実施の形態における場合と同様に、データ保持部307に供給される。
分類部303を上述した分類部303−2または303−3の構成にした場合や、ビット判定部306に代えてビット判定部306−2または306−3を採用した場合においても、教師データを実数として与えた係数ciを使用することが可能である。この場合、図26を参照して説明した復号エミュレーション処理のなかで行われる分類コード決定処理とビットの判定処理は、BB信号処理部204と同様の分類部303−2または303−3が行う処理と、ビット判定部306−2または306−3が行う処理となる。
以上のように、BB信号処理部204では、学習モードにおいて、受信モード時に積和演算部305で演算される2乗誤差Ωが最小となるような係数ciを分類コードごとに算出し、受信モードにおいて、現在ビット時間および過去ビット時間のサンプリング値に基づいて分類コードを決定し、その決定された分類コードに対応する係数ciとサンプリング値とを用いて演算された現在ビット時間の積和値TPを閾値Vth(Vth')またはサンプリング値x1乃至x5の最大値および最小値と比較することにより、現在ビット時間に受信したビットが判定される。これにより、マルチパスによる歪みのある受信信号を精度良く復号することができる。
BB信号処理部204の受信処理では、従来の受信装置のように、プリアンブルデータを必要としないので、常にプリアンブルデータを送信して、そのプリアンブルデータの変更に追従するようにBB信号処理部204を初期化または更新する必要がなく、バースト信号とパケット信号の両方に対応可能である。
さらに、BB信号処理部204では、情報処理装置1に装着されている基板に変更があった場合、追加装着された基板用の係数受信データ対応表を外部記憶装置から取得したり、不要となった基板の係数受信データ対応表を外部記憶装置に退避させたりすることが可能である。また、ユーザが、所定の特徴をもつ係数受信データ対応表などを作成または購入して、既知信号データベース309に転送することも可能である。換言すれば、ユーザは、係数受信データ対応表を書き換えることが可能であり、基板(または装置)のアップグレードなどを容易に行うことができる。設計者および開発者側から見れば、係数受信データ対応表以外の構成はそのままで、アップグレードなどした係数受信データ対応表を最終的に転送すればよいので、製造コストを低減し、製品の低価格化を実現することができる。
図36は、LSI100のその他の構成例を示すブロック図である。なお、図36において、図5と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
図36のLSI100は、入出力I/F201、アルゴリズム処理部202、およびRF信号処理部203により構成され、RF信号処理部203は、送信部211と受信部701を有する。即ち、図36では、図5のLSI100と比較して、BB信号処理部204が省略され、受信部212に代えて受信部701が設けられている。
図5に示したLSI100では、RF信号処理部203の受信部212によって、受信したRF信号がベースバンド信号に変換され、BB信号処理部204によって、ベースバンド信号がデジタル信号に変換され、アルゴリズム処理部202に供給されるようになされていた。
RF信号をベースバンド信号に変換する受信部212は、図6を参照して説明したように、LNA231、ミキサ232、LPF233、AMP234および235などで構成され、これらのブロックを構成する素子のいくつかは、一般的に非線形動作するので、マルチパス信号の定常性に多少なりとも歪みを生じさせる。また、受信部212のクロック同期回路236において同期処理がうまく動作しない場合には、周波数オフセットが発生し、この場合もマルチパス信号の定常性をうまくベースバンド信号に含むことができなくなる。
そこで、図36に示すLSI100では、図5に示したBB信号処理部204の機能を、受信部701が行うように構成されており、受信部701は、アンテナ101から供給されるRF信号を、デジタル信号に変換し、アルゴリズム処理部202に供給する。
図37は、受信部701の詳細な構成例を示すブロック図である。なお、図37において、図7と対応する部分については同一の符号を付してあり、その説明は適宜省略する。
受信部701は、AD変換部301、データ保持部302、分類部303−2、係数保持部304、積和演算部305、データ保持部307、学習部308、既知信号データベース309、およびビット判定部711により構成される。受信部701にもBB信号処理部204と同様に受信モードと学習モードがある。
受信部701のAD変換部301に入力される信号は、図4に受信波形として示したようなベースバンド信号ではなくて、図3に受信波形として示したRF信号である。
AD変換部301は、受信モードにおいて、RF信号を1ビット時間ごとに3点サンプリングし、データ保持部302は、現在ビット時間の3個のサンプリング値と過去の2ビット時間の2個のサンプリング値を分類部303−2および積和演算部305に供給する。
分類部303−2は、図29を参照して説明した分類コード決定処理を行い、分類コードを係数保持部304に供給する。係数保持部304は、分類コードに対応する係数ciを積和演算部305に供給する。
積和演算部305は、式(1)による現在ビット時間の積和値TPを求める。後述する学習処理において、教師データを図4の送信波形のような矩形波のデジタル信号、生徒データを図3の受信波形のような搬送波を含む信号として与えることにより、積和演算部305からの出力は、“0”または“1”の値のみを持つデジタル信号となる。
ビット判定部711は、硬判定を行う。即ち、ビット判定部711は、例えば、“0”と“1”の中間値である“0.5”を閾値として、現在ビット時間に受信したビットを判定する。なお、積和演算部305から出力される信号が、“0”または“1”の値のみを持つデジタル信号であるので、ビット判定部711を省略し、積和演算部305の出力をそのままデータ保持部307に供給することも可能である。
データ保持部307は、レート制御情報で指示された通信レートとなるように、ビット判定部711から供給されるビットデータを所定時間だけ保持し、その後、アルゴリズム処理部202に供給する。
学習部308は、図30を参照して説明した構成を有し、学習モードにおいて、図4の送信波形のような矩形波のデジタル信号を教師データとし、データ保持部302から供給される波形整形前の受信データを生徒データとして、分類コードごとに係数ciを求める。
次に、図38のフローチャートを参照して、受信部701による受信モード時の受信処理について説明する。
初めに、ステップS141において、AD変換部301は、アンテナ101からのRF信号をA/D変換する。即ち、AD変換部301は、1ビット時間分のRF信号から、3点をサンプリングし、その結果得られるサンプリング値をデータ保持部302に供給する。
ステップS142において、データ保持部302は、現在ビット時間と過去ビット時間のサンプリング値を分類部303−2に供給する。また、データ保持部302は、現在ビット時間のサンプリング値を所定時間保持する。
ステップS143において、分類部303−2の分類コード決定部361は、図29を参照して説明した分類コード決定処理を行うことにより、受信データの分類コードを決定する。
ステップS144において、係数保持部304の係数決定部381は、通信相手のLSI用の、分類コードと係数ciとが対応付けられた係数データ表を参照し、分類部303−2から供給された分類コードに基づいて係数ciを決定し、積和演算部305に供給する。
ステップS145において、データ保持部302は、保持しておいた現在ビット時間と過去ビット時間のサンプリング値を積和演算部305に供給する。また、データ保持部302では、現在ビット時間の真ん中の時刻にサンプリングされたサンプリング値が、次のビット時間以降の出力のために過去ビットRAM363に記憶される。
ステップS146において、積和演算部305は、式(1)に従い、データ保持部302から供給される現在ビット時間と過去ビット時間のサンプリング値と、係数保持部304から供給される係数ciとを積和演算する。これにより積和値TPが得られる。
ステップS147において、ビット判定部711は、現在ビット時間に受信したビットの判定を行う。具体的には、ビット判定部711は、積和値TPが閾値0.5よりも大きい場合には、現在ビット時間に受信したビットを“1”と判定し、積和値TPが閾値0.5以下である場合には、現在ビット時間に受信したビットを“0”と判定する。そして、ビット判定部711は、ビット判定結果をビットデータとしてデータ保持部307に供給する。
ステップS148において、データ保持部307は、レート制御情報で指示された通信レートとなるように、ビット判定部711から供給されたビットデータを所定時間だけ保持する。
そして、所定時間経過後、ステップS149において、データ保持部307は、保持しておいたビットデータをアルゴリズム処理部202に出力する。
ステップS150において、受信部701は、受信が終了したか否かを判定する。
ステップS150における受信が終了したか否かの判定は、アルゴリズム処理部202からのレート制御情報か、または、LSI100に入力される制御信号に基づいて行われる。
ステップS150で、受信が終了していないと判定された場合、即ち、アンテナ101から受信部701のAD変換部301にRF信号が継続して供給されている場合、受信部701は、処理をステップS141に戻し、それ以降の処理を繰り返す。
一方、ステップS150で、受信が終了したと判定された場合、受信処理は終了する。
なお、ビット判定部711が省略された場合には、ステップS147の処理が省略され、ステップS148では、積和演算部305から供給されたビットデータが所定時間だけ保持される。
次に、図39のフローチャートを参照して、受信部701による学習モード時の学習処理について説明する。
初めに、ステップS171において、学習部308の対応表作成部405は、繰り返し回数をカウントする変数pにゼロをセットする。
ステップS172において、対応表作成部405は、この後通信相手のLSIから送信されてくる送信データの分類コード(該当分類コード)を受信値RAM401に供給する。
ステップS173において、受信値RAM401は、通信相手のLSIから送信されたデータを受信する。より具体的には、受信値RAM401は、現在ビット時間および過去ビット時間のサンプリング値をデータ保持部302から受信する。
なお、受信データから分類コードを決定する場合には、ステップS172の処理を省略し、ステップS173において、分類部303−2が、データ保持部302から供給されるサンプリング値を分類したときの分類コードを学習部308の受信値RAM401に供給する。
ステップS174において、受信値RAM401は、受信した現在ビット時間および過去ビット時間のサンプリング値を、該当分類コードに対応させて記憶する。
ステップS175において、受信値RAM401は、受信データと分類コードとが対応付けられた分類コード表を対応表作成部405に供給する。
ステップS176において、対応表作成部405は、該当分類コードの教師データを係数算出部404に供給する。
ステップS177において、対応表作成部405は、式(2)の2乗誤差Ωを求める際の係数ciの初期値をリセットするか否かを判定する。ステップS177で、係数ciの初期値をリセットすると判定された場合、ステップS178において、対応表作成部405は、式(2)に与える係数ciの初期値として“1”を係数算出部404に供給する。
一方、ステップS177で、係数ciの初期値をリセットしないと判定された場合、ステップS179において、対応表作成部405は、係数保持部304に記憶されている現在の値を使用するか否かを判定する。
ステップS179で、現在の値を使用すると判定された場合、ステップS180において、対応表作成部405は、係数保持部304に記憶されている係数ciを、既知信号データベース309を介して取得し、係数ciの初期値として係数算出部404に供給する。
一方、ステップS179で、現在の値を使用しないと判定された場合、ステップS181において、既知信号データベース309は、外部記憶装置から係数ciの初期値をダウンロードし、対応表作成部405は、その係数ciの初期値を既知信号データベース309から取得して、係数算出部404に供給する。
ステップS182において、係数算出部404は、係数ciの初期値と教師データを式(2)に代入し、2乗誤差Ωが十分小さいかを判定する。ステップS182で、2乗誤差Ωが十分小さいと判定された場合、係数算出部404は、式(2)に代入した係数ciの初期値を最適な係数ciとする。その後、処理はステップS184に進む。
一方、ステップS182で、2乗誤差Ωが大きいと判定された場合、ステップS183において、係数算出部404は、式(2)を係数ciについて解き、2乗誤差Ωが最小となる係数ciを算出する。
ステップS184において、対応表作成部405は、係数受信データ対応表の該当分類コードに、受信値RAM401から供給された受信データと、係数算出部404から供給された係数ciを登録し、係数受信データ対応表を作成(更新)する。
ステップS185において、対応表作成部405は、すべての送信データについて学習したかを判定する。対応表作成部405は、上述したステップS172乃至S184の処理を、LSI100が通信する相手全てのLSIの、全ての分類コードに対して行った場合に、すべての送信データについて学習したと判定する。
ステップS185で、すべての送信データについて学習していないと判定された場合、処理はステップS172に戻り、受信部701は、次の分類コードに対して、上述したステップS172乃至S185の処理を繰り返す。所定のLSIの全ての分類コードに対してステップS172乃至S185の処理が既に行われた場合には、ステップS172乃至S185の処理をまだ実行していない他のLSIの所定の分類コードに対して、上述したステップS172乃至S185の処理が実行される。
一方、ステップS185で、すべての送信データについて学習したと判定された場合、ステップS186において、対応表作成部405は、変数pが予め設定された繰り返し回数qに等しいか否かを判定する。
ステップS186で、変数pが予め設定された繰り返し回数qに等しくない、即ち、予め設定された繰り返し回数qだけ学習を行っていないと判定された場合、ステップS187において、対応表作成部405は、変数pを1だけインクリメントし、処理はステップS172に戻る。ここで、繰り返し回数qは、統計的に十分な信頼度のデータが得られる回数である。
ステップS186で、変数pが予め設定された繰り返し回数qに等しいと判定された場合、ステップS188において、対応表作成部405は、係数受信データ対応表から分類コードと受信データとの対応を抽出して得られる分類コード表を分類部303−2に供給するとともに、係数受信データ対応表から分類コードと係数ciとの対応を抽出して得られる係数データ表を係数保持部304に供給し、処理を終了する。
図40および図41を参照して、受信部701による受信処理の結果について説明する。
図40は、基板11のLSI100と基板12のLSI102が受信した受信波形を簡略化して示している。
図40において、実線で示される波形は、LSI100および102以外の所定のLSIが送信した送信データを表し、受信側のLSI100および102にとっての教師データを表す。この教師データをLSI100が受信したときの波形が、点線で示される波形であり、この教師データをLSI102が受信したときの波形が、1点鎖線で示される波形である。なお、図40に示される波形では、図を見やすくするために、各ビット時間について所定の時刻の1サンプリング値が示されている。
図41は、LSI100とLSI102それぞれの受信部701によって復号されたデジタル信号を示す図である。図41の灰色菱形印は、LSI100で復号されたデジタル信号を表し、黒四角印は、LSI102で復号されたデジタル信号を表す。図41の横軸は、サンプリング点を表し、縦軸は振幅値を表す。
図40によれば、LSI100とLSI102とでは、情報処理装置1内の環境、即ち、そのLSI周辺の障害物の配置が異なるので、LSI100とLSI102が受信する受信波形も異なるものとなることが分かる。従って、受信した波形を固定閾値によって判定する硬判定処理でビット判定すると、正しい信号に復号することができない。
しかしながら、受信部701でRF信号を受信し、復号すれば、図41に示されるように、LSI100およびLSI102のどちらの場合でも、きれいな矩形波とすることができることがわかる。
即ち、受信したRF信号をベースバンド信号に変換せずに、搬送波がのったままの信号を、マルチパス信号の定常性を利用して直接復号することにより、ベースバンド信号に変換する際の波形の歪みや周波数オフセットを生じさせることがないので、マルチパスによる歪みのある受信信号であっても精度良く復号することができる。
また、受信部701の受信処理はプリアンブルデータを必要としないので、バースト信号とパケット信号の両方に対応することができる。さらに、上述した他の実施の形態と同様に、基板(または装置)のアップグレードなどを容易に行うことができる。
図36に示すLSI100の受信部701では、アンテナ701からのRF信号を、そのままA/D変換し、サンプリングしており、図5のLSI100の受信部212に構成されるクロック同期回路236およびキャリア同期回路237(図6)を有していない。換言すれば、受信信号と同期をとるクロック同期回路やキャリア同期回路がなくても、精度良く復号することができ、回路の構成を少なくすることができるので、受信回路の低コスト化および低消費電力化に貢献することができる。
以上では、無線通信の伝送媒体として“電波”を用いる例について説明したが、無線通信の伝送媒体としては、その他、光や、個体、液体、気体等の中における粗密波または表面弾性波など、波の性質を有するものであればなんでもよい。従って、例えば、ビル間や山と山を結ぶ固定のマイクロ波通信、および、電波塔間における電波無線通信などに対しても本発明は適用可能である。
また、マルチパスの定常性は、ケーブルによる反射や、回路内に分岐等を持ちインピーダンス不整合を伴う固定の有線通信、例えば、電力線通信やバス接続された配線などにも起こり得る。
従って、例えば、図5に示したLSI100の実施の形態において、図42に示すように、入出力I/F201とアルゴリズム処理部202との間に、BB信号処理部204と同様のBB信号処理部751を設け、入出力I/F201から出力されるデジタル信号に対して、上述した受信処理を行わせることによって、インピーダンス不整合等によるマルチパスの定常性を除去したデジタル信号を生成し、アルゴリズム処理部202に供給することができる。この場合、BB信号処理部751は、基準クロック信号に同期して動作するので、レート制御情報は必要ない。
上述した受信処理などの一連の処理を、筐体2内のLSIどうしではなく、所定の閉鎖された空間内に配置されたコンピュータ間で行うことも可能である。
図43は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。CPU(Central Processing Unit)801は、ROM(Read Only Memory)802、または記憶部808に記憶されているプログラムに従って上述した機能の処理の他、各種の処理を実行する。RAM(Random Access Memory)803には、CPU801が実行するプログラムやデータなどが適宜記憶される。これらのCPU801、ROM802、およびRAM803は、バス804により相互に接続されている。
CPU801にはまた、バス804を介して入出力インタフェース805が接続されている。入出力インタフェース805には、キーボード、マウス、マイクロホンなどよりなる入力部806、ディスプレイ、スピーカなどよりなる出力部807が接続されている。CPU801は、入力部806から入力される指令に対応して各種の処理を実行する。そして、CPU801は、処理の結果を出力部807に出力する。
入出力インタフェース805に接続されている記憶部808は、例えばハードディスクからなり、CPU801が実行するプログラムや各種のデータを記憶する。通信部809は、電波を媒体として外部の装置と無線で通信する。また、通信部809は、必要に応じてルータ、モデムなどを備え、有線による通信も行う。
入出力インタフェース805に接続されているドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア811が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部808に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図43に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア811、または、プログラムが一時的もしくは永続的に格納されるROM802や、記憶部808を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、通信部809を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
100,102,104,106,108 LSI, 301 AD変換部, 303,303−1乃至303−3 分類部, 305 積和演算部, 306,306−2,306−3 ビット判定部, 361 分類コード決定部, 362 分散値RAM, 401 受信値RAM, 404 係数算出部, 502 最大値最小値検出部, 503 比較部, 504 分類コード決定部, 521 差分計算部, 542 最大値最小値検出部, 561 距離比較部