図1は実施の形態に係る通信装置100の構成を示す図である。本実施の形態に係る通信装置100は、例えば、互いに直交する複数のサブキャリアが合成されたOFDM(Orthogonal Frequency Division Multiplexing)信号を受信する受信機能を有している。また、通信装置100は、例えば電力線を通じて通信相手装置と通信を行う。つまり、通信装置100は、通信相手装置と電力線通信(PLC:Power Line Communication)を行う。なお、通信装置100は、通信相手装置と無線通信を行っても良いし、電力線通信以外の方法で有線通信を行っても良い。また、通信装置100には、OFDM信号を送信する送信機能を追加しても良い。
図1に示されるように、通信装置100は、アンテナ1aを有する受信部1と、A/D変換器2と、FFT(Fast Fourier Transform)処理部3と、等化処理部4と、データ取得部5とを備えている。通信装置100は、さらに、伝送路推定部6と、インパルス応答取得部7と、最大遅延量取得部8と、フィルタ特性決定部9とを備えている。
受信部1は、アンテナ1aを用いて、通信相手装置からの信号を受信する。受信部1は、アンテナ1aで受信された受信信号に対して増幅処理及びダウンコンバート等を行って、ベースバンドの受信信号を生成する。なお、本実施の形態では、受信部1で受信されるOFDM信号は、J個のサブキャリアで構成されている。例えばJ=128である。また、受信部1で受信されるOFMD信号を構成する各サブキャリアは、例えばQPSK(Quadrature Phase Shift Keying)方式で変調されている。
A/D変換器2は、受信部1で生成されたベースバンドの受信信号をアナログ形式からデジタル形式に変換して出力する。FFT処理部3は、A/D変換器2から出力されるベースバンドの受信信号に対してFFT処理を行って出力する。具体的には、FFT処理部3は、A/D変換器2から出力されるデジタル形式の受信信号に対してDFT(Discrete Fourier Transform)処理を行って出力する。これにより、FFT処理部3からは、受信部1で受信された受信信号を構成する複数のサブキャリアをそれぞれ変調する複数の複素シンボルが出力される。複素シンボルの種類としては、受信側では既知である既知シンボルと、受信側では未知であるデータシンボルとが存在する。既知シンボルは、パイロットシンボルやプリアンブルシンボルと呼ばれる。複素シンボルは複素数の値である。
等化処理部4は、伝送路推定部6で推定された周波数領域の伝送路伝達関数に基づいて、FFT処理部3から出力されるデータシンボルに対して等化処理を行う。具体的には、等化処理部4は、FFT処理部3から出力される、あるサブキャリアに対応するデータシンボルを、周波数領域の伝送路伝達関数についての当該サブキャリアの周波数での値(複素数)、あるいは当該伝送路伝達関数についての当該サブキャリアの周波数に近い周波数での値(複素数)で除算(複素除算)することによって、当該データシンボルに対して等化処理を行う。これにより、データシンボルに含まれる伝送路の歪みが除去される。
データ取得部5は、等化処理部4からの出力信号に対して、デマッピング処理、デインターリーブ処理及び復号化処理等を行って、受信部1で受信された受信信号に含まれるビットデータを再生する。
伝送路推定部6は、伝達関数取得部60と、付加処理部61と、ローパスフィルタ(LPF)62と、出力値選択部63とを備えている。
伝達関数取得部60は、受信部1で受信された受信信号に基づいて、周波数領域の伝送路伝達関数を求める。具体的には、伝達関数取得部60は、FFT処理部3から出力される、受信部1で受信された受信信号に含まれる複数のサブキャリアをそれぞれ変調する複数の既知シンボルに基づいて、周波数領域の伝送路伝達関数を求める。以後、周波数領域の伝送路伝達関数を単に「伝送路伝達関数」と呼ぶ。また、伝送路伝達関数を求める際に使用する既知シンボルを「推定用既知シンボル」と呼ぶ。
本実施の形態では、通信相手装置が、推定用既知シンボルを送信する際には、OFDM信号を構成するJ個のサブキャリアのうちN個(2≦N≦J)のサブキャリアが使用される。つまり、推定用既知シンボルを含むOFDMシンボル(1シンボル分のOFDM信号)においては、J個のサブキャリアのうちN個のサブキャリアがN個の推定用既知シンボルで変調されている。以後、このN個のサブキャリアのそれぞれを「既知用サブキャリア」と呼ぶ。また、当該N個のサブキャリアを、周波数の小さいものから順に第1〜第Nの既知用サブキャリアとそれぞれ呼ぶ。第1〜第Nの既知用サブキャリアの周波数は周波数方向において連続している。
伝達関数取得部60は、FFT処理部3から出力される、受信部1で受信されたOFDMシンボルに含まれるN個の既知用サブキャリアをそれぞれ変調するN個の推定用既知シンボルに基づいて伝送路伝達関数を求める。具体的には、伝達関数取得部60は、当該N個の推定用既知シンボルに基づいて、伝送路伝達関数についての互いに異なるN個の周波数での値(複素数)を求める。伝送路伝達関数についてのある周波数での値は、当該周波数での伝送路特性の推定値であると言える。伝達関数取得部60は、FFT処理部3から出力されるN個の推定用既知シンボルのそれぞれについて、当該推定用既知シンボルを、当該推定用既知シンボルの理想的な値である参照シンボルで除算し、それによって得られた値を、当該推定用既知シンボルに対応する既知用サブキャリアの周波数(中心周波数)での伝送路伝達関数の値とする。これにより、伝達関数取得部60では、伝送路伝達関数についての互いに異なるN個の周波数での値が求められる。以後、当該N個の値のそれぞれを「1次推定値」と呼ぶ。また、当該N個の値を周波数方向に並べたものを「伝送路1次推定値列200」と呼ぶ。また、周波数方向に並べられた当該N個の値を、周波数が小さい方から順に第1〜第Nの1次推定値とそれぞれ呼ぶ。
付加処理部61は、伝達関数取得部60で求められた伝送路伝達関数についての周波数方向に並ぶN個の値、つまり伝送路1次推定値列200の前方及び後方のそれぞれに対してL(≧2)個の値(複素数)を付加することによって、(N+2L)個の値から成る付加処理後推定値列201を生成する。以後、当該L個の値のそれぞれをパッド値と呼ぶことがある。
ローパスフィルタ62は、付加処理部61で生成された付加処理後推定値列201に対してローパスフィルタ処理を行う。具体的には、ローパスフィルタ62は、付加処理後推定値列201を構成する(N+2L)個の値(複素数)の実部を、時間領域の実信号についての複数のサンプリング値と見なして、当該(N+2L)個の値の実部に対してローパスフィルタ処理を行う。同様に、ローパスフィルタ62は、当該(N+2L)個の値の虚部を、時間領域の実信号についての複数のサンプリング値と見なして、当該(N+2L)個の値の虚部に対してローパスフィルタ処理を行う。このようにして、付加処理後推定値列201を構成する(N+2L)個の値に対してローパスフィルタ処理が行われる。タップ数M(M≧2)のローパスフィルタ62に(N+2L)個の値が入力されると、ローパスフィルタ62の出力信号202は(N+2L+M−1)個の値で構成される。本実施の形態では、ローパスフィルタ62は、例えば、直線位相特性を有するFIR(Finite Impulse Response)フィルタで構成されている。本実施の形態では、FIRフィルタでローパスフィルタ62を構成していることから、ローパスフィルタ62で使用されるフィルタ係数(インパルス応答)は偶対称となる。なお、M≦Nに設定される。
ここで、伝達関数取得部60で求められた伝送路伝達関数(伝送路1次推定値列)には伝送路ノイズ(伝送路で発生するノイズ)が含まれている。本実施の形態では、付加処理部61で生成された付加処理後推定値列201に対してローパスフィルタ処理を行うことによって、伝達関数取得部60で求められた伝送路伝達関数(伝送路1次推定値列200)に対してローパスフィルタ処理を行っている。これにより、伝送路伝達関数(伝送路1次推定値列200)に含まれる伝送路ノイズを低減することができる。以後、ローパスフィルタ62の出力信号202を「フィルタ出力信号202」と呼ぶことがある。
出力値選択部63は、フィルタ出力信号202を構成する(N+2L+M−1)個の値から、等化処理部4での等化処理で使用される、フィルタ処理後の伝送路伝達関数の値としてのN個の値を選択する。この選択されたN個の値のそれぞれを「2次推定値」と呼ぶ。また、当該N個の値を周波数方向に並べたものを「伝送路2次推定値列203」と呼ぶ。また、周波数方向に並べられた当該N個の値を、周波数の小さい方から順に、第1〜第Nの2次推定値とそれぞれ呼ぶ。
第1〜第Nの2次推定値は、伝達関数取得部60で伝送路特性が求められる際に使用されたN個の推定用既知シンボルに対応する第1〜第Nの既知用サブキャリアにそれぞれ対応している。出力値選択部63は、伝達関数取得部60で求められた第rの1次推定値(1≦r≦N)をフィルタ処理した後の値として、第rの2次推定値を出力する。等化処理部4は、第rの2次推定値を、第rの既知用サブキャリアの周波数での伝送路伝達関数の値として使用する。
なお、付加処理部61、ローパスフィルタ62及び出力値選択部63での処理については後で詳細に説明する。
インパルス応答取得部7は、伝達関数取得部60で求められた伝送路伝達関数に対してIFFT(Inverse FFT)処理を行って、時間領域の伝送路インパルス応答を求める。具体的には、インパルス応答取得部7は、伝達関数取得部60で求められた伝送路1次推定値列200に対してIDFT(Inverse DFT)処理を行って、時間領域の伝送路インパルス応答を求める。
最大遅延量取得部8は、インパルス応答取得部7で求められた伝送路インパルス応答に基づいて、伝送路の最大遅延量、言い換えれば、伝送路インパルス応答の最大広がりを求める。
フィルタ特性決定部9は、最大遅延量取得部8で求められた最大遅延量に基づいて、ローパスフィルタ62のフィルタ特性を決定する。本実施の形態では、ローパスフィルタ62のフィルタ特性は可変である。ローパスフィルタ62は、フィルタ特性決定部9で決定されたフィルタ特性を有するローパスフィルタ処理を、付加処理部61で生成された付加処理後推定値列201に対して行う。
なお、通信装置100でのフィルタ特性の決定方法については後で詳細に説明する。
<付加処理について>
次に付加処理部61での処理について詳細に説明する。
ローパスフィルタ62のインパルス応答、入力信号及び出力信号を、それぞれ、h(n)、x(n)及びy(n)とすると(n≧0)、出力信号y(n)は以下の式(1),(2)で表される。
本実施の形態では、付加処理部61で生成された付加処理後推定値列201を構成する各値の実部あるいは虚部が、入力信号x(n)としてローパスフィルタ62に入力される。タップ数Mのローパスフィルタ62、言い換えれば、フィルタ係数を構成する複数の要素係数の数がM個のローパスフィルタ62に対して、データの数(サンプル数)がPの入力信号x(n)を入力すると、(P+M−1)個のデータを有する出力信号y(n)が得られる。
図2は、ローパスフィルタ62において、式(1)を用いてフィルタ処理が行われる際の当該フィルタ処理を示す概念図である。式(1)においては、入力信号を固定し、フィルタ係数を反転させてから左から右へ一つずつシフトしながら当該フィルタ係数と入力信号との積和を計算することによって出力信号が求められる。
式(1)において、n<(M−1)の場合には、i>nとなることがある。i>nのときにはh(n−i)=0であることから、この場合には、フィルタ係数を構成する要素係数がM個存在するにもかかわらず、実質的にはM個の要素係数の一部しか出力信号y(n)を求める際に使用されないことになる。したがって、図2において斜線が示されている出力信号y(0)〜y(M−2)に関して、適切な値が得られなくなる。
また、入力信号x(n)のデータの数(サンプル数)をPとすると、n>(P−1)のときには、入力信号x(n)は存在しないことから、x(n)=0となる。したがって、この場合には、M個の要素係数に掛け合わされる入力信号x(n)の数が実質的にM個よりも少なくなる。よって、図2において斜線が示されている出力信号y(P)〜y(M+P−2)に関して、適切な値が得られなくなる。
このように、フィルタ対象の入力信号x(n)をそのままローパスフィルタ62に入力すると、出力信号y(n)の一部の値について適切な値が得られないことがある。
そこで、本実施の形態では、付加処理部61において、フィルタ対象である伝送路1次推定値列200の前方及び後方に対して適切なL個のパッド値を付加し、それによって得られた、(N+2L)個の値から成る付加処理後推定値列201をローパスフィルタ62に入力している。これにより、出力信号y(n)の一部の値が適切な値とならないことを抑制している。以下にこの点について詳細に説明する。
<パッド値のデータパターンについて>
ここでは、伝送路1次推定値列200の前方及び後方に付加されるパッド値の適切なデータパターンについて説明する。以下の説明では、ローパスフィルタ62において、付加処理後推定値列201を構成する(N+2L)個の値の実部がローパスフィルタ処理される場合について説明するが、当該(N+2L)個の値の虚部がローパスフィルタ処理される場合について同様である。
また、伝達関数取得部60で求められる伝送路1次推定値列200の実部(1次推定値の実部)を元データxr(n)(1≦n≦N)とする。元データxr(n)は、第nの既知用サブキャリアの周波数での伝送路伝達関数の値の実部である。
また、伝送路1次推定値列200の前方に付加されるL個のパッド値の実部を前方パッド値pfr(j)(1≦j≦L)とし、伝送路1次推定値列200の後方に付加されるL個のパッド値の実部を後方パッド値pbr(j)(1≦j≦L)とする。付加処理後推定値列201を構成する(N+2L)個の値の実部を、パッド後データxpr(n)=[pfr(1),・・・pfr(L),xr(1),xr(2),・・・xr(N),pbr(1),・・・pbr(L)](1≦n≦(N+2L))とする。フィルタ出力信号202を構成する(N+2L+M−1)個の値の実部をフィルタ出力値for(k)(1≦k≦(N+2L+M−1))とする。そして、出力値選択部63から出力される伝送路2次推定値列203の実部(2次推定値の実部)を出力データyr(n)(1≦n≦N)とする。
以下の説明では、一例として、N=32、L=10、M=21とする。このような例では、OFDMシンボルを構成する128個のサブキャリアのうち、それらの周波数が周波数方向に連続する32個のサブキャリアが推定用既知シンボルの送信に使用される。
図3は、元データxr(n)のデータパターン300の一例を示す図である。図3の横軸はインデックスnの値(サンプル番号)を示しており、図2の縦軸は元データxr(n)の値を示している。
図3に示される元データxr(n)が伝達関数取得部60で取得される場合において、前方パッド値pfr(j)=xr(1)、後方パッド値pbr(j)=xr(N)とすると、パッド後データxpr(n)のデータパターン301は図4のようになる。そして、ローパスフィルタ62が、図4の示されるパッド後データxpr(n)に対してローパスフィルタ処理を行い、その後、出力値選択部63が、ローパスフィルタ62から出力されるフィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択すると、つまり、k=21からk=52までの32個の値を選択すると、出力データyr(n)のデータパターン302は図5のようになる。この場合には、出力データyr(n)=フィルタ出力値for(n+L+(M−1)/2)となる。なお、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択する理由については後で説明する。
図5では、出力データyr(n)のデータパターン302以外にも、元データxr(n)のデータパターン300も示されている。図5では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図5に示されるように、前方パッド値pfr(j)=xr(1)、後方パッド値pbr(j)=xr(N)とした場合には、出力データyr(n)のデータパターン(信号波形)は、元データxr(n)のデータパターン(信号波形)に対して、中央部ではほぼ一致しているものの、両端部において少しずれるようになる。したがって、このようなパッド値の実部を伝送路1次推定値列200の実部に付加したとしても、出力データyr(n)の一部の値については十分に適切な値となっていない。
図6は、伝達関数取得部60において図3に示される元データxr(n)が取得された場合において、前方パッド値pfr(j)=xr(L+2−j)、後方パッド値pbr(j)=xr(N−i)とした場合のパッド後データxpr(n)のデータパターン311を示している。
図6の例では、元データxr(n)のN個の値のうち、先頭から2番目の値(xr(2))から、先頭から(L+1)番目の値(xr(L+1))までのL個の値に対して、元データxr(n)のN個の値の先頭の値(xr(1))を原点として、前方パッド値pfr(j)のL個の値が偶対称となるように、前方パッド値pfr(j)のL個の値が、元データxr(n)のN個の値の前方に付加されている。つまり、元データxr(n)の32個の値のうち、先頭から2番目の値から、先頭から11番目の値までの10個の値に対して、当該32個の値の先頭の値を原点として、前方パッド値pfr(j)の10個の値が偶対称となるように、前方パッド値pfr(j)の10個のパッド値が元データxr(n)の32個の値の前方に付加されている。これにより、前方パッド値pfr(j)及び元データd(1)から成るデータのデータパターンは、元データxr(1)〜xr(L+1)のデータパターンを左側に折り返したようなデータパターンとなる。
また図6の例では、元データxr(n)のN個の値のうち、末尾から2番目の値(xr(N−1))から、末尾から(L+1)番目の値(xr(N−L))までのL個の値に対して、元データxr(n)のN個の値の末尾の値(xr(N))を原点として、後方パッド値pbr(j)のL個の値が偶対称となるように、後方パッド値pbr(j)のL個の値が、元データxr(n)のN個の値の後方に付加されている。これにより、元データxr(N)及び後方パッド値pbr(j)から成るデータのデータパターンは、元データxr(N−L)〜xr(N−1)のデータパターンを右側に折り返したようなデータパターンとなる。
図6に示されるパッド後データxpr(n)に対してローパスフィルタ62がローパスフィルタ処理を行い、その後、出力値選択部63が、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択すると、つまり、k=21からk=52までの32個の値を選択すると、出力データyr(n)のデータパターン312は図7のようになる。
図7では、出力データyr(n)のデータパターン312以外にも、元データxr(n)のデータパターン300も示されている。図7では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図7に示されるように、前方パッド値pfr(j)=xr(L+2−j)、後方パッド値pbr(j)=xr(N−i)とした場合には、前方パッド値pfr(j)=xr(1)、後方パッド値pbr(j)=xr(N)とした場合と同様に、出力データyr(n)のデータパターン(信号波形)312は、元データxr(n)のデータパターン(信号波形)300に対して、中央部ではほぼ一致しているものの、両端部において少しずれるようになる。したがって、このようなパッド値の実部を伝送路1次推定値列200の実部に付加したとしても、出力データyr(n)の一部の値については十分に適切な値となっていない。
図8は、伝達関数取得部60において図3に示される元データxr(n)が得られた場合に、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合のパッド後データxpr(n)のデータパターン321を示している。
図8の例では、元データxr(n)のN個の値のうち、先頭から2番目の値(xr(2))から、先頭から(L+1)番目の値(xr(L+1))までのL個の値に対して、元データxr(n)のN個の値の先頭の値(xr(1))を原点として、前方パッド値pfr(j)のL個の値が奇対称となるように、前方パッド値pfr(j)のL個の値が、元データxr(n)のN個の値の前方に付加されている。つまり、元データxr(n)の32個の値のうち、先頭から2番目の値から、先頭から11番目の値までの10個の値に対して、当該32個の値の先頭の値を原点として、前方パッド値pfr(j)の10個の値が奇対称となるように、前方パッド値pfr(j)の10個のパッド値が元データxr(n)の32個の値の前方に付加されている。これにより、前方パッド値pfr(j)及び元データxr(1)から成るデータのデータパターンは、元データxr(1)〜xr(L+1)のデータパターンを左側に折り返した後、さらに上下方向側に折り返したようなデータパターンとなる。
また図8の例では、元データxr(n)のN個の値のうち、末尾から2番目の値(xr(N−1))から、末尾から(L+1)番目の値(xr(N−L))までのL個の値に対して、元データxr(n)のN個の値の末尾の値(xr(N))を原点として、後方パッド値pbr(j)のL個の値が奇対称となるように、後方パッド値pbr(j)のL個の値が、元データxr(n)のN個の値の後方に付加されている。これにより、元データxr(N)及び後方パッド値pbr(j)から成るデータのデータパターンは、元データxr(N−L)〜xr(N−1)のデータパターンを、右側に折り返した後、さらに上下方向に折り返したようなデータパターンとなる。
図8に示されるパッド後データxpr(n)に対してローパスフィルタ62がローパスフィルタ処理を行い、その後、出力値選択部63が、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択すると、つまり、k=21からk=52までの32個の値を選択すると、出力データyr(n)のデータパターン322は図9のようになる。
図9では、出力データyr(n)のデータパターン322以外にも、元データxr(n)のデータパターン300も示されている。図9では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図9に示されるように、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合には、出力データyr(n)のデータパターン(信号波形)322は、元データxr(n)のデータパターン(信号波形)300に対して、中央部だけではなく、両端部においてもほぼ一致するようになる。したがって、このようなパッド値の実部を伝送路1次推定値列200の実部に付加した場合には、出力データyr(n)の各値が適切な値となっている。
このように、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合には、出力データyr(n)のデータパターンには歪みが生じない。
そこで、本実施の形態に係る付加処理部61は、伝達関数取得部60で得られた伝送路1次推定値列200の前方に付加するL個のパッド値の実部であるpfr(j)を、pfr(j)=2xr(1)−xr(L+2−j)とする。また、付加処理部61は、伝送路1次推定値列200の後方に付加するL個のパッド値の実部であるpbr(j)を、pbr(j)=2xr(N)−xr(N−i)とする。
伝達関数取得部60で得られた伝送路1次推定値列200の前方に付加するL個のパッド値の虚部についても同様である。ここで、伝送路1次推定値列200の虚部(1次推定値の虚部)を元データxi(n)(1≦n≦N)とし、伝送路1次推定値列200の前方に付加されるL個のパッド値の虚部を前方パッド値pfi(j)(1≦j≦L)とし、伝送路1次推定値列200の後方に付加されるL個のパッド値の虚部を後方パッド値pbi(j)(1≦j≦L)とし、伝送路2次推定値列203の虚部を出力データyi(n)(1≦n≦N)とする。本実施の形態に係る付加処理部61は、pfi(j)=2xi(1)−xi(L+2−j)とし、pbi(j)=2xi(N)−xi(N−i)とする。これにより、出力データyi(n)の各値は適切な値となる。
なお、上記の例では、N=32、L=10、M=21としたが、N、L及びMの値が他の値でも同様のことが言える。
<パッド値の数(長さ)について>
ここでは、L個のパッド値の適切な数(長さ)、つまりLの適切な値について説明する。以下の説明では、ローパスフィルタ62のタップ数Mを奇数、例えば、上記と同様にM=21とする。また、上記と同様にN=32とする。
図10は、L=M−1=20であって、図3に示される元データxr(n)が伝達関数取得部60で取得された場合において、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合のパッド後データxpr(n)のデータパターン331を示している。
図10に示されるパッド後データxpr(n)に対してローパスフィルタ62がローパスフィルタ処理を行い、その後、出力値選択部63が、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択すると、つまり、k=31からk=62までの32個の値を選択すると、出力データyr(n)のデータパターン332は図11のようになる。
図11では、出力データyr(n)のデータパターン332以外にも、元データxr(n)のデータパターン300も示されている。図11では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図11に示されるように、L=M−1とし、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合には、出力データyr(n)のデータパターン332は、元データxr(n)のデータパターン300とほぼ一致するようになる。したがって、このようなパッド値の実部を伝送路1次推定値列200の実部に付加した場合には、出力データyr(n)の各値が適切な値となる。
図12は、L=(M−1)/4=5であって、図3に示される元データxr(n)が伝達関数取得部60で取得された場合において、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合のパッド後データxpr(n)のデータパターン341を示している。
図12に示されるパッド後データxpr(n)に対してローパスフィルタ62がローパスフィルタ処理を行い、その後、出力値選択部63が、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択すると、つまり、k=16からk=47までの32個の値を選択すると、出力データyr(n)のデータパターン342は図13のようになる。
図13では、出力データyr(n)のデータパターン342以外にも、元データxr(n)のデータパターン300も示されている。図13では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図13に示されるように、L=(M−1)/4とし、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合には、出力データyr(n)のデータパターン342は、元データxr(n)のデータパターン300に対して、後方端部(右側端部)において少しずれるようになる。つまり、L=(M−1)/4の場合には、L=M−1の場合よりも、出力データyr(n)のデータパターン342が少し歪むようになる。
一方で、L=(M−1)/2=10とし、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合には、出力データyr(n)のデータパターンは、上述の図9に示されるデータパターン322となる。したがって、この場合の出力データyr(n)のデータパターンは、L=M−1の場合と同様に、元データxr(n)のデータパターン300とほぼ一致するようになる。
このように、L≧(M−1)/2の場合には、出力データyr(n)のデータパターンの歪みが小さくなる。
ここで、上述の式(1),(2)で表される出力信号y(n)については、出力信号y(0)〜y(M−2)及び出力信号y(P)〜y(M+P−2)において適切な値が得られない。したがって、式(1),(2)を考察すれば、伝送路1次推定値列200の前方及び後方のそれぞれには、(M−1)個のパッド値を付加すれば、出力データyr(n)のデータパターンの歪みが小さくなるものと考えられる。
しかしながら、本実施の形態では、ローパスフィルタ62で使用されるフィルタ係数は対称性(偶対称)を有しているため、伝送路1次推定値列200に前方及び後方のそれぞれに対して、(M−1)の半分の数のパッド値を付加する場合であっても、出力データyr(n)のデータパターンの歪みが十分に小さくなるものと考えられる。
そこで、本実施の形態に係る付加処理部61は、伝送路1次推定値列200の実部の前方及び後方にそれぞれ付加する前方パッド値pfr(j)及び後方パッド値pbr(j)のそれぞれについての複数の値の数(L)を、(M−1)の2分の1以上とする。つまり、L≧(M−1)/2とする。
ただし、Mが偶数の場合には(M−1)/2は整数とはならない。したがって、Mが偶数の場合にはL≧M/2とし、Mが奇数の場合にはL≧(M−1)/2とする。これにより、出力値選択部63から出力される伝送路2次推定値列203の実部(2次推定値の実部)の値は適切な値となる。
伝達関数取得部60で得られた伝送路1次推定値列200の前方に付加するL個のパッド値の虚部についても同様であって、Mが奇数の場合にはL≧(M−1)/2とし、Mが偶数の場合にはL≧M/2とする。これにより、出力値選択部63から出力される伝送路2次推定値列203の虚部(2次推定値の虚部)の値は適切な値となる。
なお、本例では、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)としていたが、前方パッド値pfr(j)及び後方パッド値pbr(j)のデータパターンが他のデータパターンであっても、Mが偶数の場合にはL≧M/2とし、Mが奇数の場合にはL≧(M−1)/2とすることによって、出力値選択部63から出力される伝送路2次推定値列203の実部及び虚部の値は適切な値となる。
<出力値選択部での値の選択方法について>
次に出力値選択部63での処理について詳細に説明する。
デジタルフィルタを通過した信号については、当該デジタルフィルタの群遅延特性により必ず遅延が発生する。本実施の形態に係るローパスフィルタ62のような、直線位相特性を有するFIRフィルタでの群遅延量GDは、フィルタのタップ数Mを用いて以下の式(3)で表される。
一方で、本実施の形態では、フィルタ対象の伝送路1次推定値列200に対して、その前方及び後方にL個のパッド値が付加されている。
そこで、本実施の形態に係る出力値選択部63は、伝送路1次推定値列200に付加されるパッド値の数を考慮しつつ、ローパスフィルタ62での群遅延の影響を除去するために、ローパスフィルタ62のフィルタ出力信号202を構成する(N+2L+M−1)個の値のうち、先頭を基準にして、(L+GD+1)番目の値から(L+GD+N)番目の値までのN個の値を選択して出力する。つまり、フィルタ出力信号202を構成する(N+2L+M−1)個の値のうち、先頭を基準にして、(L+(M−1)/2+1)番目の値から(L+(M−1)/2+N)番目の値までのN個の値を選択して出力する。
ただし、タップ数Mが偶数の場合には、群遅延量GDは整数とならない。したがって、この場合には群遅延量GD=M/2として、出力値選択部63は、フィルタ出力信号202を構成する(N+2L+M−1)個の値のうち、先頭を基準にして、(L+M/2+1)番目の値から(L+M/2+N)番目の値までのN個の値を選択して出力する。
上記の内容を実部と虚部を別々に考えると、出力値選択部63は、タップ数Mが奇数の場合には、フィルタ出力値for(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択して出力する。また、フィルタ出力信号202を構成する(N+2L+M−1)個の値の虚部をフィルタ出力値foi(k)(1≦k≦(N+2L+M−1))とすると、出力値選択部63は、タップ数Mが奇数の場合には、フィルタ出力値foi(k)のうち、k=L+(M−1)/2+1からk=L+(M−1)/2+NまでのN個の値を選択して出力する。
一方で、タップ数Mが偶数の場合には、出力値選択部63は、フィルタ出力値for(k)のうち、k=L+M/2+1からk=L+M/2+NまでのN個の値を選択して出力する。また、出力値選択部63は、タップ数Mが偶数の場合には、フィルタ出力値foi(k)のうち、k=L+M/2+1からk=L+M/2+NまでのN個の値を選択して出力する。
図14は、タップ数Mが偶数、例えばM=22、N=32、L=M=22の場合であって、図3に示される元データxr(n)が伝達関数取得部60で取得された場合において、前方パッド値pfr(j)=2xr(1)−xr(L+2−j)、後方パッド値pbr(j)=2xr(N)−xr(N−i)とした場合のパッド後データxpr(n)のデータパターン351を示している。
図14に示されるパッド後データxpr(n)に対してローパスフィルタ62がローパスフィルタ処理を行い、その後、出力値選択部63が、フィルタ出力値for(k)のうち、k=L+M/2+1からk=L+M/2+NまでのN個の値を選択すると、つまり、k=23からk=54までの32個の値を選択すると、出力データyr(n)のデータパターン352は図15のようになる。
図15では、出力データyr(n)のデータパターン352以外にも、元データxr(n)のデータパターン300も示されている。図15では、△印が出力データyr(n)の値を示しており、×印が元データxr(n)の値を示している。なお、パッド後データxpr(n)には、ローパスフィルタ62のカットオフ周波数以上の周波数成分(ノイズ成分)は含まれていない。
図15に示されるように、タップ数Mが偶数の場合には、群遅延量GDを本来の値ではなくM/2としていることから、出力データyr(n)のデータパターン352は、元データxr(n)のデータパターン300に対して、1/2サンプル分進んでいる。
これに対して、タップ数Mが奇数の場合には、群遅延量GDを本来の値である(M−1)/2としていることから、図15に対応する上述の図11に示されるように、出力データyr(n)のデータパターン332は、元データxr(n)のデータパターン300とほぼ一致している。
<フィルタ特性の決定方法について>
本実施の形態に係るフィルタ特性決定部9には、互いにカットオフ周波数が異なる複数種類のフィルタ特性をそれぞれ実現するための複数のフィルタ係数が予め記憶されている。フィルタ特性決定部9は、記憶している複数のフィルタ係数のうちの一つを、ローパスフィルタ62が使用する使用フィルタ係数として決定する。このようにして、フィルタ特性決定部9では、ローパスフィルタ62のカットオフ周波数が決定される。ローパスフィルタ62は、フィルタ特性決定部9で決定された使用フィルタ係数を用いて付加処理後推定値列201に対してローパスフィルタ処理を行う。
次に、使用フィルタ係数の決定方法について説明する。
受信部1で受信されるOFDMシンボルは、有効シンボル(本来の1シンボル分の信号)とガードインターバルとで構成されている。本実施の形態では、ガードインターバルの時間長は有効シンボルの時間長の1/8となっている。有効シンボルの時間長は1/foであることから、ガードインターバルの時間長は1/(8×f0)となる。
また、受信部1において遅延量Tの伝送路を通った信号が受信される場合には、伝達関数取得部60で取得される伝送路伝達関数の値についての信号波形、つまり、上述の元データxr(j)及び元データxi(j)の信号波形(図2参照)には、以下の式(4)で表される、遅延量(遅延広がり)Tに応じた周波数Ftを有する周波数成分が含まれるようになる。
ここで、遅延量Tは、有効シンボルの時間長をJ、つまり“128”とした場合の相対的な時間長である。また周波数Ftは正規化角周波数である。
したがって、ローパスフィルタ62のカットオフ周波数が周波数Ftよりも小さく、ローパスフィルタ62において、元データxr(j)及び元データxi(j)の信号波形から、遅延量Tに応じた周波数Ftを有する周波数成分が除去された場合には、フィルタ処理後の伝送路伝達関数(伝送路2次推定値列)には、等化処理で必要な、当該遅延量Tの伝送路の特性に関する情報が消えてしまうことになる。
なお、正規化角周波数とは、角周波数をローパスフィルタ62の入力データのサンプリング周波数fsで正規化して得られる値である。受信部1で受信されるOFDM信号を構成する複数のサブキャリアについての周波数間隔をf0とすると、当該OFDM信号を構成する複数のサブキャリアの数Jを用いて、サンプリング周波数fs=J×f0と表される。本実施の形態では、J=128であることから、fs=128×f0となる。
一方で、OFDM方式で通信を行う通信装置の間の伝送路の遅延量Tがガードインターバルの時間長以下である場合には、シンボル間干渉及びキャリア間干渉が発生しない。この点に鑑みて、本実施の形態に係る通信装置100が使用されるOFDM通信システムでは、伝送路の遅延量Tがほぼガードインターバルの時間長以下となっている。したがって、元データxr(j)及び元データxi(j)の信号波形には、ガードインターバルの時間長よりも大きい遅延量Tに応じた周波数Ftを有する周波数成分はほとんど含まれない。よって、ローパスフィルタ62のカットオフ周波数については、ガードインターバルの時間長と同じ大きさの遅延量Tに応じた周波数Ft以下に設定すれば良い。
そこで、ローパスフィルタ62のカットオフ周波数として設定可能な最大値Fcmaxを、ガードインターバルの時間長Lgを用いて以下の式(5)で表す。
ここで、カットオフ周波数は正規化角周波数で表されている。また、ガードインターバルの時間長Lgは、遅延量Tと同様に、有効シンボルの時間長をJ、つまり“128”とした場合の相対的な時間長である。本実施の形態では、ガードインターバルの時間長Lgは、有効シンボルの時間長の1/8であることから、式(5)のように、Lg=128/8=16となる。
本実施の形態では、フィルタ特性決定部9には、カットオフ周波数=0.25πのフィルタ特性、つまりカットオフ周波数が最大値Fcmaxに設定されたフィルタ特性を実現するための第1フィルタ係数が記憶されている。さらに、フィルタ特性決定部9には、カットオフ周波数が最大値Fcmaxよりも小さい値に設定されたフィルタ特性を実現するためのフィルタ係数、例えば、カットオフ周波数=0.2πのフィルタ特性を実現するための第2フィルタ係数と、カットオフ周波数=0.1πのフィルタ特性を実現するための第3フィルタ係数とが記憶されている。フィルタ特性決定部9は、第1〜第3フィルタ係数のうちの一つを、ローパスフィルタ62が使用する使用フィルタ係数として決定する。
図16は使用フィルタ係数の決定に関する通信装置100の動作を示すフローチャートである。図16に示されるように、通信装置100への電源供給が開始したり、通信装置100の動作がリセットされたりして、ステップs1において通信装置100が動作を開始すると、ステップs2において、フィルタ特性決定部9は、まず第1フィルタ係数を使用フィルタ係数として決定する。つまり、第1フィルタ係数が使用フィルタ係数の初期係数として使用される。これにより、ローパスフィルタ62のカットオフ周波数が、ガードインターバルの時間長Lgに応じた周波数Ftに設定される。
その後、ステップs3において、通信装置100が通信を開始する。このとき、ローパスフィルタ62では、第1フィルタ係数が使用されて付加処理後推定値列201に対してフィルタ処理が行われる。通信装置100が通信を開始した後に、ステップs4において、最大遅延量取得部8が、伝送路の最大遅延量(伝送路インパルス応答の最大広がり)を求める。最大遅延量取得部8で求められる最大遅延量は、有効シンボルの時間長をJ、つまり“128”とした場合の相対的な時間長である。
最大遅延量取得部8で最大遅延量が求められると、ステップs5において、フィルタ特性決定部9は、当該最大遅延量に基づいて使用カットオフ周波数を決定する。
具体的には、フィルタ特性決定部9は、式(4)を用いて、遅延量Tが最大遅延量のときの周波数Ftを求める。そして、フィルタ特性決定部9は、第1〜第3フィルタ係数のうち、そのカットオフ周波数が、求めた周波数Ft以上であって、かつ当該周波数Ftに最も近いフィルタ係数を使用フィルタ係数として決定する。これにより、等化処理に必要な伝送路特性に関する情報が伝送路伝達関数から除去されることを抑制しつつ、ローパスフィルタ62のカットオフ周波数をできるだけ小さくすることができる。よって、伝送路伝達関数から等化処理に必要な情報が除去されることを抑制しつつ、伝送路伝達関数に含まれる伝送路ノイズをできるだけ除去することができる。その結果、適切に等化処理を行うことができる。
フィルタ特性決定部9は、例えば、求めた周波数Ftが0.15πであるとすると、カットオフ周波数が0.2πの第2フィルタ係数を使用フィルタ係数として決定する。また、フィルタ特性決定部9は、求めた周波数Ftが0.23πであるとすると、カットオフ周波数が0.25πの第1フィルタ係数を使用フィルタ係数として決定する。また、フィルタ特性決定部9は、求めた周波数Ftが0.1πであるとすると、カットオフ周波数が0.1πの第3フィルタ係数を使用フィルタ係数として決定する。
なお、フィルタ特性決定部9は、求めた周波数Ftが、カットオフ周波数として設定可能な最大値Fcmax、つまり0.25πよりも大きい場合には、最大遅延量取得部8で求められた最大遅延量に誤りがあるとして、カットオフ周波数が最大値Fcmaxに設定されたフィルタ特性を実現するための第1フィルタ係数、つまりフィルタ係数の初期係数を使用フィルタ係数とする。これにより、最大遅延量取得部8で求められた最大遅延量に誤りがあったとしても、ローパスフィルタ62のカットオフ周波数が、ガードインターバルの時間長Lgに応じた周波数Ftよりも大きくなることを抑制することができる。よって、ローパスフィルタ62のカットオフ周波数が無駄に大きくなって、伝送路伝達関数に含まれる伝送路ノイズの除去効果が低減することを抑制することができる。
ステップs5において使用フィルタ係数が決定されると、ローパスフィルタ62は、当該使用フィルタ係数を用いて付加処理後推定値列201に対してフィルタ処理を行う。その後、ステップs4において最大遅延量が求められるたびに、ステップs5が実行されて、フィルタ特性決定部9は、使用フィルタ係数を決定し、ローパスフィルタ62のフィルタ特性を決定する。
以上のように、本実施の形態では、伝送路伝達関数に対してローパスフィルタ処理を行っていることから、伝送路伝達特性に含まれる伝送路ノイズを除去することができる。よって、ローパスフィルタ処理後の伝送路伝達特性を用いて等化処理を行うことによって、適切に等化処理を行うことができる。その結果、受信信号に含まれるデータを適切に取得でき、通信装置100の受信性能が向上する。
また、本実施の形態では、付加処理部61において、伝達関数取得部60で取得された伝送路伝達関数についての伝送路1次推定値列200(元データxr(n)及び元データxi(n))の前方及び後方に対して、L個のパッド値を付加している。そして、ローパスフィルタ62のタップ数Mが奇数の場合には、L≧(M−1)/2に設定するとともに、フィルタ出力信号202を構成する(N+2L+M−1)個の値のうち、先頭を基準にして、(L+(M−1)/2+1)番目の値から(L+(M−1)/2+N)番目の値までのN個の値を選択して等化処理部4に出力している。したがって、上述の図9,11に示されるように、等化処理で使用される伝送路2次推定値列203(出力データyr(n)及び出力データyi(n))の値が適切となる。よって、適切に等化処理を行うことができる。その結果、通信装置100の受信性能が向上する。
また、ローパスフィルタ62のタップ数Mが偶数の場合には、L≧M/2に設定するとともに、フィルタ出力信号202を構成する(N+2L+M−1)個の値のうち、先頭を基準にして、(L+M/2+1)番目の値から(L+M/2+N)番目の値までのN個の値を選択して等化処理部4に出力している。したがって、タップ数Mが奇数の場合と同様に、等化処理で使用される伝送路2次推定値列203(出力データyr(n)及び出力データyi(n))の値が適切となる。よって、適切に等化処理を行うことができる。その結果、通信装置100の受信性能が向上する。
なお、タップ数Mが奇数の場合には、L=(M−1)/2に設定することが望ましい。Lの値が大きくなると、ローパスフィルタ62での処理量が大きくなる。一方で、L≧(M−1)/2においては、Lの値が大きくなったとしても、等化処理で使用される伝送路2次推定値列203はほとんど変化しない。したがって、タップ数Mが奇数の場合には、L=(M−1)/2に設定することによって、ローパスフィルタ62での処理量を低減しつつ、等化処理で使用される伝送路2次推定値列203の値を適切にすることができる。同様にして、タップ数Mが偶数の場合には、L=M/2に設定することによって、ローパスフィルタ62での処理量を低減しつつ、等化処理で使用される伝送路2次推定値列203の値を適切にすることができる。
また、本実施の形態では、伝送路伝達関数についての伝送路1次推定値列200の実部である元データxr(n)のN個の値のうち、先頭から2番目の値(xr(2))から、先頭から(L+1)番目の値(xr(L+1))までのL個の値に対して、元データxr(n)のN個の値の先頭の値(xr(1))を原点として、前方パッド値pfr(j)のL個の値が奇対称となるように、前方パッド値pfr(j)のL個の値が、元データxr(n)のN個の値の前方に付加されている。そして、元データxr(n)のN個の値のうち、末尾から2番目の値(xr(N−1))から、末尾から(L+1)番目の値(xr(N−L))までのL個の値に対して、元データxr(n)のN個の値の末尾の値(xr(N))を原点として、後方パッド値pbr(j)のL個の値が奇対称となるように、後方パッド値pbr(j)のL個の値が、元データxr(n)のN個の値の後方に付加されている。したがって、上述の図9等に示されるように、等化処理で使用される伝送路2次推定値列203の値が適切となる。よって、適切に等化処理を行うことができる。その結果、通信装置100の受信性能が向上する。
また、本実施の形態では、フィルタ特性決定部9は、互いにカットオフ周波数が異なる複数種類のフィルタ特性をそれぞれ実現するための複数のフィルタ係数を記憶し、当該複数のフィルタ係数のいずれか一つを、ローパスフィルタ62が使用する使用フィルタ係数として決定している。したがって、ローパスフィルタ62のフィルタ特性を変更しようとするたびに、変更後のフィルタ特性を実現するためのフィルタ係数を算出する場合と比較して、ローパスフィルタ62での使用フィルタ係数を簡単に変更することができる。
なお、フィルタ特性を変更する際の処理量は多くなるが、フィルタ特性決定部9は、ローパスフィルタ62のフィルタ特性を変更しようとするたびに、変更後のフィルタ特性を実現するためのフィルタ係数を算出しても良い。つまり、フィルタ特性決定部9は、最大遅延量取得部8で取得された最大遅延量に基づいてカットオフ周波数を決定した後に、当該カットオフ周波数を有するフィルタ特性を実現するためのフィルタ係数を算出しても良い。