【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年度、総務省、「超高速・低消費電力光ネットワーク技術の研究開発 委託研究産業技術力強化法 第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、インターネットや携帯電話端末などの普及により、データ通信量が増加し、光通信ネットワークが扱う通信トラフィック容量は3年間で4倍という率で増加している。このような伝送容量増加の要求に応えるために、伝送効率の良い直交振幅変調(QAM)などを採用することが可能なデジタルコヒーレント光通信技術が注目されている。
【0003】
デジタルコヒーレント光通信技術では、受信器において搬送波の周波数と位相とが完全に一致したローカル光(
図2、ローカル発振レーザー201)が必要となる。しかしながら、実際には、異なる場所にある送信器のレーザーの周波数や位相と、受信器のレーザーの周波数や位相とを一致させることは非常に困難である。このため、受信側のベースバンドの電気信号には、ゼロでない中間周波数、すなわち周波数オフセットが発生する。現在、商用で使用されているレーザーの発振周波数誤差は最大で±2.5GHzのため、周波数オフセットは最大±5GHzに達する。
【0004】
光通信システムにおいて、この周波数オフセットを補償する技術としては、光PLL(Phase Locked Loop)を使う方法やデジタル信号処理で補償する方法などが挙げられる。デジタル信号処理で補償する技術として、非特許文献1の方法や特許文献1(
図2)の方法がある。
図2は、デジタル信号処理による光デジタルコヒーレント受信器の構成例である。入力光は光周波数混合器200にて、ローカル発信レーザー201からの光と混合し、PD(フォトダイオード)202、ADC(アナログ・デジタル変換器)203へと進む。特許文献1の方法は、周波数オフセット推定器207が周波数オフセット補償量を計算し、周波数オフセット補償器204がその補償を行う。その補償は、オフセットとして加わる位相を打ち消すために、同じ位相量で逆の値を持つ位相を複素乗算することで行われる。
【0005】
現在、研究開発が進められている光通信の速度は100Gbps超である一方、デジタル信号処理部210は高々数GHz程度でしか動作させることができない。この速度差を埋めるために、同じ回路を複数個並べて補償することが行われ、例えば、周波数オフセット補償器204では、逆位相を乗算するための複素乗算器が複数個並べられる。より具体的には、100個以上の複素乗算器が用意され、その規模は数メガゲート級になる。
【0006】
一方、デジタル信号処理部210には、この周波数オフセット補償器204以外にも、波長分散補償や偏波分離等を行う等化器205、積分器206、搬送波の位相を推定する位相推定器208、データ復元209など、様々な回路が内蔵される。特に等化器205に含まれる波長分散補償は、時間ドメインのFIR(Finite Impulse Response)フィルタでは回路規模が大きすぎるため、周波数ドメインで行われる。そのため時間軸のデータを周波数へ変換するFFT(Fast Fourier Transform)や、その逆の処理を行うIFFT(Inverse Fast Fourier Transform)もデジタル信号処理部210に含まれる。そして、FFTやIFFTに必要となるサイズ(ポイント数)は波長分散補償量によって変化し、そのサイズは4096ポイントや補償する量が大きい場合には16384ポイント程度必要となる。
【0007】
効率的なFFT/IFFTとしてはCooley−Tukey(非特許文献2)によるバタフライ演算が有名であるが、ポイント数の大きいCooley−TukeyによるFFT/IFFTは回路が複雑になる。そのため、Prime Factor法(非特許文献3)により2つの小さなFFT/IFFTに分解して処理を行う。
図3は4096ポイントFFT/IFFTをPrime Factor法を利用して2つの64ポイントFFT302に分解した図である。
【0008】
100Gbps超のデジタルコヒーレント受信器では、128並列あれば処理できるので、
図3のFFTブロック301が物理的なハードウェアとして実装される。ただし、以降の説明では説明を簡単にするため、128並列(FFTブロック301)ではなく64並列(FFTブロック300)として説明を行う。また、64ポイントFFTは、Cooley−Tukeyの方法やその他の手法、もしくは同じくPrime Factor法で8×8に分解しても良い。
【0009】
次に、
図2におけるデータの流れ、特にデータの並び順について図面を用いて説明する。
図6は、
図2におけるAnalog/Digital Converter(以下、ADC203)、周波数オフセット補償器204、等化器205を拡大して表示したものである。そして、等化器205内部には波長分散補償を周波数ドメインで行うためのFFT602、フィルタ演算(複素乗算器)603、IFFT604が含まれる。また、
図6には図示していないが、偏波分離など多くの機能が実装される。
【0010】
まずはじめに、ADC203のデータの並びについて説明を行う。一般的なADC203から出力されるデータは
図4のようになる。ここで時刻1はADCのサンプリング間隔を表している。例えば64GSample/secのADC203では、サンプリング間隔が15.625ps(=1sec/64GSample)となるため、時刻1は15.625ps、時刻2は31.25ps、時刻127は1984.375(=127×15.625)psのサンプリングされた波形データである。しかしながら、一般的なデジタル回路の動作周波数は高々数GHzであるため、1つのデータを1クロックサイクルで受け取ることはできない。したがって、ADC203から出力されるデータは、
図4のように1クロックサイクルに64個並べて、デジタル信号処理部210に入力される。
【0011】
一方、FFTへ入力すべきデータは、
図3から、1サイクル目に入力するデータはx[0],x[64],・・・,x[63×64]、2サイクル目に入力するデータはx[1],x[65],・・・,x[63×64+1]となることが分かる。したがって、FFTへ入力するデータ順序は
図5のようになり、IFFTの場合も同様である。ただし、ここでxはFFTへの入力信号を表し、yはFFTの出力信号を表す。
図4と
図5を比較すると、ADCからの出力とFFTへの入力順序が異なることが分かる。したがって、データの並び替えが必要となり、
図6のように並び替え用メモリ(1)601、並び替え用メモリ(2)605が必要となる。
【0012】
また、同様の並び替えが、FFT内部のクロスされている箇所(
図3の並び替え用メモリ303)で必要となる。
【0013】
以降、4096ポイントFFTで64並列の場合のFFT内部のデータ並び換えについて、
図7および
図8を利用して具体的に説明する。
【0014】
FFT内部でのデータの並び替えを行うために、
図7のようなメモリブロックを用意する。このメモリブロックは幅が1データ分、深さ64ワードの1R1Wメモリ701が64個横に並べられ(64個の1R1Wメモリを並べたもの702)、それが2セット(並べ替え用メモリ303)から構成される。1R1Wメモリ701は、幅が1データ分、深さ64ワードのメモリの一般的な1R1Wメモリ(1サイクルで1回のリード処理と1回のライト処理が可能なメモリ)である。
【0015】
このメモリブロックに対して、
図8の上側図に示す位置に値を書き込む。
図8の[A,B]は
図3の左側のFFT列の出力を示している。つまり1サイクル目に計算された64個の値[0,0],[0,1],・・・,[0,63]は、
図8の上側図の太字で記載された対角線上の位置に書き込まれる。同様に2サイクル目の[1,0],[1,1],・・・,[1,63]も順次、
図8の上側図のメモリに書き込まれる。このような動作を64回続けメモリを一杯にする。逆に読み出すときは、
図8の上側図の点線で囲まれた位置を読み出す。これにより、1サイクル目には[*,0](*は0〜63の値)が、2サイクル目には[*,1]が読み出され、
図3右側のFFT列に適切にデータを与えることができる。このように64個のメモリを使用し、データの書き込む位置を
図8の上側図のように工夫することでFFTの1フレーム分(4096個のデータ)のメモリ容量だけで、並び替えを実現することができる。
【0016】
ただしメモリを読み出している途中で上書きされるため、
図7に示すように、メモリセット(64個の1R1Wメモリを並べたもの702)を2つ用意する。そして、最初の書き込みは上側のメモリ群に書き込み、その次は下側のメモリ群に、その次は上側のメモリ群に、と順々に書き込む。一方、読み出し側はその逆の順序で読み出すことで、上書きされる問題を解決することができる。
【0017】
次に、周波数オフセット補償を周波数ドメインで行う場合を考える。周波数ドメインでオフセット補償する場合は、
図9のようにオフセットする量の分だけ、左もしくは右シフトすることで実現される。したがって、信号yをFFTの結果とすると、左にpシフトする場合(pは整数)は、y[(n−p)%4096](%はn−pを4096で割ったときの余りを示す)、右にpシフトする場合はy[(n+p)%4096]を計算すれば良い。つまり、右1シフトする場合は、FFTした結果のy[4095]をy[0]、y[0]をy[1]、y[1]をy[2]などとして取り扱えばよい。しかしながら、
図5から、y[4095]は64サイクル目で出力されるが、それをy[0]として扱い、y[0]をy[1]として扱うためには、少なくとも64サイクル以上遅延させる必要がある。つまり、1つ右シフトする場合だけでも少なくとも4096個のデータを保持するだけのメモリが必要となり、このようなメモリも数百キロゲート必要となる。
【発明を実施するための最良の形態】
【0027】
以下、図を参照しながら、本発明の最良の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
本発明の第1の実施形態について
図1を参照して説明する。本実施形態の周波数オフセット補償装置は、入力信号の離散時間フーリエ変換を行う第一FFT手段101と、離散時間フーリエ変換を行う第二FFT手段105とを備える。さらに、第一FFT手段101の出力データの順序を周波数オフセット補償量109に応じて変え、前記周波数オフセット補償量109に応じた順序とした前記出力データを並び替えして第二FFT手段105に入力する、オフセット補償手段110を備える。
【0028】
本実施形態により、新たな複素乗算器や新たなメモリを必要とすることなく周波数オフセット補償を行う周波数オフセット補償装置を実現することができる。
(第2の実施形態)
図1は、本発明の第2の実施形態の周波数オフセット補償装置の構成を示すブロック図である。本実施形態の周波数オフセット補償装置となるFFTブロック100は、入力信号の離散時間フーリエ変換を行う第一FFT手段101と、離散時間フーリエ変換を行う第二FFT手段105とを備える。さらに、第一FFT手段101の出力データの順序を周波数オフセット補償量109に応じて変え、周波数オフセット補償量109に応じた順序とした出力データを並び替えして第二FFT手段105に入力する、オフセット補償手段110とを備える。
【0029】
オフセット補償手段110は、入力データの順序をカウントするカウンタ108を備える。さらに、第一FFT手段101の出力結果を第二FFT手段105へ適切に入力するための並び替え用メモリ102を備える。さらに、カウンタ108の値に基づいて、並び替え用メモリ102の書き込み位置を決定する書き込み位置決定手段107と、周波数オフセット補償量109に基づいて、並び替え用メモリ102への読み出し順序を変える読み出し位置決定手段106とを備える。さらに、カウンタ108の値と周波数オフセット補償量109に基づいて、並び替え用メモリ102の出力を並び替える第一並替手段103を備える。さらに、カウンタ108の値に基づいて、第一並替手段103からの読み出し結果を並び替えし、第二FFT手段105へ入力するためのデータを作る第二並替手段104を備える。
【0030】
すなわち、オフセット補償手段110は、並び替え用メモリ102と、カウンタ108と、書き込み位置決定手段107と、読み出し位置決定手段106と、第一並替手段103、第二並替手段104とを備える。そして、周波数オフセット補償装置は、第一FFT手段101と、第二FFT手段105と、第一FFT手段101と第二FFT手段105の間にある前記オフセット補償手段110とを備える。
【0031】
本実施形態の動作の説明の前に、どのようにして周波数オフセット補償を行うのか、その原理を詳細に説明する。背景技術で述べた通り、周波数ドメインで周波数オフセット補償を行う場合、周波数オフセット補償は、
図9のように、オフセットする量の分だけ、信号(オフセット補償前)901を左もしくは右にシフトすることで実現される。したがって、信号yをFFTの結果とすると、左にpシフトする場合はy[(n−p)%4096](%はn−pを4096で割ったときの余りを示す)、右にpシフトする場合はy[(n+p)%4096]を計算すれば良い。つまり、右に1シフトする場合は、FFTした結果のy[4095]をy[0]、y[0]をy[1]、y[1]をy[2]などとして取り扱えばよい。
【0032】
したがって、左1シフト、左2シフト、右1シフト、右2シフトの場合、
図10に示すように出力すればよい。以下、左1シフトの場合を例として説明する。本来は、1サイクル目にy[0],y[64]・・・,y[4032]、2サイクル目にy[1],y[65],・・・,y[4033]を出力して、後段の処理ブロック(例えば
図6のフィルタ演算603)に伝搬させる。これを1サイクル目にy[1],y[65],・・・,y[4033]を出力し、2サイクル目にy[2],y[66],・・・,y[4034]を出力し、64サイクル目にy[64],・・・,y[4032],y[0]を出力する。これにより、後段の処理ブロックは、y[1],y[65],・・・,y[4033]をy[0],y[64],・・・,y[4032]として処理することになるので、左1シフトしたときと同等の動作とすることができる。
【0033】
本実施形態では、
図3の右側のFFTへ入力する順序を変更することで、これを実現する。
図10はFFTの出力に着目した表であるが、それを
図3の右側のFFTへの入力へ変換した表を
図11に示す。本実施形態では、
図3の右側のFFTへ入力する順序を
図11に示すようにすることで、周波数オフセット補償を実現する。
【0034】
次に、各手段の動作について、詳細に説明を行う。
【0035】
第一FFT手段101と第二FFT手段105は、入力されたデータに対して個別にFFTを行い、その結果を出力する手段である。FFTの実現方法は一般的なCooley−Tukey(非特許文献2)の方法でも良いし、理論的に離散時間フーリエ変換を計算する方法でも良い。第一FFT手段101と第二FFT手段105は、
図3に対応させた場合、第一FFT手段101は左側の1つの64ポイントFFT302を指し、第二FFT手段は右側の1つの64ポイントFFT302を指す。
【0036】
並び替え用メモリ102は、
図3のFFTブロック300において左側にあるFFT群と右側にあるFFT群との間で適切なデータ授受を行うためのメモリ(並び替え用メモリ303)である。その動作の詳細は、
図7および
図8を利用して説明したとおりである。書き込み位置決定手段107の動作も、
図7を利用して説明したとおり、第一FFT手段101から出力されたデータの書き込み位置を、カウンタ108の値にしたがって
図8に表示したように決定するものである。なお、
図8では、上側の図は
図3の左側のFFTの出力に着目した表(例えば
図10に対応)、下側の図は
図3の右側のFFTへの入力へ変換した表(例えば
図11に対応)を示す。
【0037】
第二並替手段104は、並び替え用メモリ102から読み出される値を並び替えさせるものである。
図8によると、例えば2サイクル目は[63,1],[0,1],[1,1],・・・,[62,1]となる。これを[0,1],[1,1],・・・,[62,1],[63,1]と左へ一つ並び替えて(以下、左1ローテートと記す)、第二FFT手段105へ入力する。3サイクル目は[62,2],[63,2],[0,2],[1,2],・・・,[61,2]となるので、それを[0,2],[1,2],・・・,[62,1],[63,1]と左2ローテートさせる。64サイクル目は左63ローテート(=右1ローテート)させる。
【0038】
本実施形態の新規な特徴は、読み出し位置決定手段106と第一並替手段103を追加したことである。以下、これら2つの手段の動作について詳細に説明する。
【0039】
読み出し位置決定手段106は、周波数オフセット補償量109に基づいて並び替え用メモリ102の読み出し順序を変更するものである。周波数オフセット補償を行わない場合は、
図8に示すようにアドレスの上位から順番に64サイクル読み出しを行う。一方、左に1シフトする場合は、
図10、
図11に示すように本来は1サイクル目にy[0],y[64],・・・,y[4032]に対する入力データ[0,0],[1,0],・・・,[63,0]を第二FFT手段105に供給すべきである。が、それを[0,1],[1,1],・・・,[63,1]に変更する。つまり、読み出すアドレスを0からではなく1から開始するように動作する。そして最後の64サイクル目はアドレス0を読み出すように動作する。
【0040】
また、第一並替手段103は、1サイクル目に何もしなければ、
図8から[63,1],[0,1],[1,1],・・・,[62,1]が供給されてしまう。本来であれば
図11に示すとおり、1サイクル目には[0,1],[1,1],・・・,[62,1],[63,1]を供給する必要があるので、左1ローテートを行う。以降2〜63サイクルすべてにおいて、入力データされるデータを1サイクル目と同じように左1ローテートする。ただし64サイクル目の場合、アドレス0から読み出され、読み出されたデータは[0,0],[1,0],[2,0],・・・,[63,0]である。一方、第二FFT手段105に入力すべきデータは
図11から[1,0],[2,0],・・・,[63,0],[0,0]と左1ローテートした状態である。前述したとおり、第二並替手段104は64サイクル目には左63ローテート(=右1ローテート)するので、第一並替手段103は左2ローテートする必要がある。
【0041】
また、周波数オフセット補償量が左2シフトの場合、読み出しはアドレス2,・・・,63,0,1の順序で読み出す。そして第一並替手段103は、1から62サイクルまでは左2ローテートを行い、63,64サイクルは左3ローテートを行う。
【0042】
次に左64シフトの場合、FFTの出力信号順を
図12に示す。これを
図11と同じように
図3の右側のFFTへの入力へ変換した表を
図13に示す。左64シフトの場合は、読み出し位置決定手段106は周波数オフセット補償しない場合と同じようにアドレス0から並び替え用メモリ102の読み出しを行うが、第一並替手段103は常に左1ローテートを行う。また、左65シフトの場合は、読み出し位置決定手段106は1から63サイクル目は左2ローテートし、64サイクル目は左3ローテートを行う。
【0043】
逆に右シフトの場合の読み出し位置決定手段106と第一並替手段103の動作について説明する。
【0044】
右1シフトする場合は、
図11に示すとおり、1サイクル目はアドレス[63,63],[0,63][1,63],[2,63],・・・,[62,63]と読み出す必要がある。したがって、読み出し位置決定手段106は、アドレス63,0,1,・・・,62の順で読み出しを行う。一方、第二並替手段104は1サイクル目は何もしないため、第一並替手段103は、右2ローテートを行うように動作する。2サイクル目は、並び替え用メモリ102からは[0,0],[1,0],・・・,[63,0]が読み出され、第二FFT手段105にもそのまま入力すべきだが、第二並替手段104が左1ローテートを行うので、第一並替手段103は、右1ローテートを行う。
【0045】
同じく右2シフトする場合は、読み出し位置決定手段106はアドレス62,63,0,1,・・・,61の順で読み出し、第一並替手段103は1、2サイクル目は右3ローテート、3〜64サイクルは右2ローテートを行う。
【0046】
また右64シフトの場合、読み出し位置決定手段106はアドレス0,1,・・・,62,63の順で読み出し、第一並替手段103は、すべてのサイクルで右1ローテートを行う。右65シフトの場合は、読み出し位置決定手段106は、アドレス63,0,1,・・・,62の順で読み出しを行い、1サイクル目は右3ローテート、2〜64サイクル目は右2ローテートすればよい。
【0047】
本実施形態では、その効果を分かりやすく説明するため第一並替手段103と第二並替手段104とを分けて記載したが、カウンタの値と周波数オフセット量に基づいて、並び替え用メモリ102の出力を並び替えするように動作する一つの並替手段として一体化しても良い。
【0048】
次に、本実施形態の全体の動作について、並び替え用メモリ102を中心に、左1シフトの場合について説明を行う。
【0049】
まず1サイクル目、並び替え用メモリ102は
図14のように変化する。並び替え用メモリ102の書き込み側のメモリにはFFTの結果が太字で記載された対角線上の位置に書き込まれると同時に、読み出し側のメモリのアドレス1が読み出される。その後、第一並替手段103で並び替えした後、第二FFT手段105に供給される。そして第二FFT手段105のFFT結果は、
図3のようにy[0],y[64],・・・,y[63×64]となる。前述したとおり、1サイクル目、第二並替手段104はなにも行わず、第一並替手段103は左1ローテートを行う。
【0050】
次に2サイクル目、並び替え用メモリ102は
図15のように変化する。並び替え用メモリ102の書き込み側のメモリにはFFTの結果が太字で記載された位置に書き込まれると同時に、読み出し側のメモリのアドレス2が読み出される。前述したとおり、2サイクル目、第二並替手段104は左1ローテートし、第一並替手段103も同じく左1ローテートを行い、第二FFT手段105に供給される。そして第二FFT手段105の結果は、
図3のようにy[1],y[65],・・・,y[63×64+1]となる。
【0051】
このような動作が、3サイクルから63サイクルまで続く。
図16には63サイクル目の動作を記載している。
【0052】
次に64サイクル目、並び替え用メモリは
図17のように変化する。並び替え用メモリ102の書き込み側のメモリにはFFTの結果が太字で記載された位置に書き込まれると同時に、読み出し側のメモリのアドレス0が読み出される。前述したとおり、第一並替手段103では、左2ローテートされ、第二並替手段では左63ローテート(合わせて左1ローテート)され、第二FFT手段105へ供給される。そして第二FFTの結果は、
図3のようにy[63],y[64],・・・,y[63×64+63]となる。
【0053】
次に65サイクル目、並び替え用メモリは
図18のように変化する。このときは書き込まれるメモリと読み出されるメモリの位置が逆転するものの、その他の動作は1サイクル目と同じである。
【0054】
また、本実施形態で説明した、メモリに書き込むアドレスおよび読み出すアドレスは一例であり、それに限定されるものではない。同様に右左のローテート数も、それに限定されるものではない。
【0055】
以上のように、本実施形態では、FFTブロック100に備えられた並び替え用メモリ102の読み出し順序を周波数オフセット補償量109に応じて変化させる。さらに、周波数オフセット補償量109に応じて並び替え用メモリから読み出されたデータを適切に並び替える第一並替手段103を備える。これにより、周波数ドメインで周波数オフセット補償するための新たなメモリを備える必要がなく、周波数オフセット補償を行うことが可能となる。一方、本実施形態では、読み出し位置決定手段106や第一並替手段103が必要となるが、これらを備えることは新たなメモリを備えることに比べて圧倒的に軽微である。
(第3の実施形態)
本発明の第3の実施形態について図面を参照して説明する。第2の実施形態では、周波数オフセット補償を、補償量に応じてメモリから読み出す順序を変えることで必要なデータを並び替えして実現したが、本実施形態では、これを書き込む順序を変更することで実現する。
【0056】
図19は、本実施形態の周波数オフセット補償装置の構成を示すブロック図である。本実施形態は、周波数オフセット補償装置となる離散時間フーリエ変換を行うFFTブロック100の内部に、小さいFFTを行う第一FFT手段101、第二FFT手段105と、入力データの順序をカウントするカウンタ108とを備える。さらに、第一FFT手段101と第二FFT手段105の間にあり、第一FFT手段101の出力結果を第二FFT手段105へ適切に入力するための並び替え用メモリ102とを備える。
【0057】
さらに、前記カウンタ108の値に基づいて、前記並び替え用メモリ102への読み出し位置を決定する読み出し位置決定手段1901を備える。さらに、前記カウンタ108の値および周波数オフセット量に基づいて、前記並び替え用メモリ102への書き込む位置を決定する書き込み位置決定手段1902とを備える。さらに、前記カウンタ108および周波数オフセット補償量109に基づいて、並び替え用メモリ102の出力を並び替えする第一並替手段1903を備える。さらに、前記カウンタ108の値に基づいて、第一並替手段1903から出力されるデータを並び替えする第二並替手段104とを備える。
【0058】
すなわち、オフセット補償手段111は、並び替え用メモリ102と、カウンタ108と、書き込み位置決定手段1902と、読み出し位置決定手段1901と、第一並替手段1903、第二並替手段104とを備える。そして、周波数オフセット補償装置は、第一FFT手段101と、第二FFT手段105と、第一FFT手段101と第二FFT手段105の間にある前記オフセット補償手段111とを備える。
【0059】
第一FFT手段101、第二FFT手段105、カウンタ108、並び替え用メモリ102、第二並替手段104は第2の実施形態と同じ動作をする。周波数オフセット補償を行うために、本実施形態での新規な特徴は、周波数オフセット補償量109に基づいて、第一FFT手段101の結果を並び替え用メモリ102に書き込む位置を決定する書き込み位置決定手段1902と第一並替手段1903である。
【0060】
以下、書き込み位置決定手段1902の動作について、詳細に説明を行う。左1シフト、左2シフト、右1シフト、右2シフトを例に取り、書き込み位置決定手段1902が第一FFT手段101の結果を並び替え用メモリ102に書き込む位置を
図20に示す。書き込み位置は左Xシフトの場合は、第一FFT手段の結果を右に(X%64)個ローテーションし、右Xシフトの場合は、(X%64)個左にローテーションしてメモリに書き込む。
【0061】
第一並替手段1903は、結果が
図11と同じになるように並び替えする。つまり、左1シフトの場合は、1〜63サイクルの場合は何も並び替えせず、64サイクルの場合のみ左1ローテートさせる。また、左2シフトの場合は、1〜62サイクルの場合は何も並び替えせず、63,64サイクルの場合のみ左1ローテートさせる。また、右1シフトの場合は、1サイクルの場合のみ右1ローテートさせ、2〜64サイクルの場合は何も並び替えしない。また、右2シフトの場合は、1、2サイクルの場合のみ右1ローテートさせ、3〜64サイクルの場合は何も並び替えしない。
【0062】
このように構成することで、周波数オフセット補償を実現することができる。本実施形態は、第2の実施形態では周波数オフセット補償量に対応して読み出し位置を変えたことを、周波数オフセット補償量に対応して書き込み位置を変えるように変更しただけであるので、その効果は第2の実施形態と同様である。
(第4の実施形態)
本発明の第4の実施形態について図面を参照して説明する。本実施形態は、FFT手段が3つある場合である。
図21および
図22は、本実施形態の構成を示すブロック図である。
図21は、読み出し位置決定手段106、第一並替手段103を第一FFT手段101と第二FFT手段105の間に入れる方法である。また、
図22は、読み出し位置決定手段106、第一並替手段103を第二FFT手段105と第三FFT手段2101の間に入れる方法である。
【0063】
図21および
図22ともに得られる効果は、第2の実施形態や第3の実施形態と同様である。また、FFTブロック100が、4つ以上のFFTに分割された場合も、いずれかのFFTの間に、読み出し位置決定手段と第一並替手段を備えることで、周波数オフセット補償を行うことができる。また、本実施形態では、第2の実施形態をFFTブロックが3つ以上に分解された場合へ適用したが、同様に第3の実施形態を適用することも可能である。
(第5の実施形態)
本発明の第5の実施形態について図面を参照して説明する。
図23は、本実施形態の構成を示すブロック図である。本実施形態は、第2の実施形態に強制ゼロ手段2301を付加したものである。強制ゼロ手段2301以外の手段については、第2の実施形態と同じである。
【0064】
強制ゼロ手段2301は、第二FFT手段105から出力されたデータのうち、いくつかの出力を強制的にゼロにし、その他の値についてはそのまま出力するものである。強制的にゼロにする場所および量は周波数オフセット補償量109に基づいて決定される。FFTのポイント数が4096の場合、例えば、左1シフトの場合は2048のみを0とし、左2シフトの場合は2047,2048のみを0とする。逆に右1シフトの場合は2049のみを0とし、右2シフトの場合は2049,2050のみをゼロとする。強制ゼロ手段がゼロにすべきデータは、周波数オフセット補償量109およびカウンタ108の値に基づいて計算する。
【0065】
次に、本実施形態の効果について説明する。離散時間フーリエ変換の場合、そのデジタル信号で表せる周波数の上限はサンプリング周波数の半分である。本実施形態で強制ゼロ手段2301が出力値をゼロにするのは、
図24に示すように周波数オフセット分のシフト操作によって、シフト前は表すことのできず、シフト後新たに表せるようになった周波数領域の部分(
図24の(1))である。この操作により、第2の実施形態では、
図24の(2)の箇所が(1)に見えていたが、理論的にはそこはすでにカット(ADCの前の帯域フィルタでカットされている)されるため、強制ゼロ手段2301がこの部分をゼロとすることで、より理想的な動作となる。
【0066】
また、本実施形態では片側だけ強制的にゼロにしているが、理想的な波形は対称性がある場合もあるため、両側ともゼロにする形態も可能である。つまり、
図24において(1)だけでなく(2)もゼロとする形態も可能である。
(第6の実施形態)
本発明の第6の実施形態について図面を参照して説明する。
図25は、本実施形態の構成を示すブロック図である。本実施形態は、周波数オフセット補償をFFT602ではなくIFFT2502の内部で行う方法である。IFFT2501内部での動作は、第2の実施形態のFFT101の場合と同じである。
【0067】
ただし、本実施形態では、
図25に示すとおりフィルタ演算2501を変える必要がある。第2の実施形態のようにFFTで周波数オフセット補償しフィルタ演算を行う場合は、
図26においては、点線の信号(周波数オフセット補償後)900に対して、点線のフィルタ特性(オフセット無し)を掛け合わせれば良い。それに対して、IFFTで周波数オフセットする場合は、オフセット補償のされていない実線の信号(周波数オフセット補償前)901がフィルタ演算2501に入力される。そのため、フィルタ特性も、周波数オフセット分逆にシフトさせた実線のフィルタ特性(オフセット有り)とする必要がある。すなわち、フィルタ演算2501では、周波数オフセット補償量109に基づいてフィルタ特性をシフトさせた実線のフィルタ特性(オフセット有り)と、FFT602の結果とを掛け合わせる。これにより、IFFT2502での周波数オフセット補償の効果を、第2の実施形態と同じとすることができる。
【0068】
以上、本実施形態により、FFTおよびIFFTを構成する元々の構成要素を利用して、周波数オフセット補償を行うことが可能となる。これにより、新たな複素乗算器やメモリを必要とすることなく周波数オフセット補償を行うことができる。その結果、システム全体として回路面積を削減でき、さらに、消費電力増加やチップの歩留まり低下などの問題が解決する。
【0069】
本実施形態は、光デジタルコヒーレント通信といった用途に適用できる。また無線通信など周波数オフセットがあるシステムに適用可能である。
【0070】
本発明は上記実施形態に限定されることなく、請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0071】
付記
(付記1)
入力信号の離散時間フーリエ変換を行う第1のFFT手段と、離散時間フーリエ変換を行う第2のFFT手段と、前記第1のFFT手段の出力データの順序を周波数オフセット補償量に応じて変え、前記周波数オフセット補償量に応じた順序とした前記出力データを並び替えして前記第2のFFT手段に入力する、オフセット補償手段と、を備えた周波数オフセット補償装置。
(付記2)
前記オフセット補償手段が、前記第1のFFT手段の出力データを書き込み、前記第2のFFT手段に入力するための並び替えを行う、並び替え用メモリ手段と、前記並び替え用メモリ手段へ前記出力データを書き込む位置を決定する、書き込み位置決定手段と、前記周波数オフセット補償量に基づいて、前記並び替え用メモリ手段に書き込まれた前記出力データの読み出し順序を決定する、読み出し位置決定手段と、前記周波数オフセット補償量に基づいて、前記読み出し順序で読み出された順序に対応して前記出力データを並び替える、第1の並び替え手段と、前記第1の並び替え手段で並び替えられた前記出力データを並び替えして前記第2のFFT手段へ入力する、第2の並び替え手段と、を備えた、付記1記載の周波数オフセット補償装置。
(付記3)
前記オフセット補償手段が、前記入力信号の順序をカウントするカウンタ手段を備え、前記書き込み位置決定手段が、前記カウンタ手段のカウント値に基づいて、前記並び替え用メモリ手段へ前記出力データを書き込む位置を決定し、前記読み出し位置決定手段が、前記周波数オフセット補償量に基づいて、前記並び替え用メモリ手段に書き込まれた前記出力データの読み出し順序を決定し、前記第1の並び替え手段が、前記カウンタ手段のカウント値と前記周波数オフセット補償量に基づいて、前記読み出し順序で読み出された順序に対応して前記出力データを並び替え、前記第2の並び替え手段が、前記カウンタ手段のカウント値に基づいて、前記第1の並び替え手段で並び替えられた前記出力データを並び替えして前記第2のFFT手段へ入力する、付記2記載の周波数オフセット補償装置。
(付記4)
前記オフセット補償手段が、前記第1のFFT手段の出力データを書き込み、前記第2のFFT手段に入力するための並び替えを行う、並び替え用メモリ手段と、前記周波数オフセット補償量に基づいて、前記並び替え用メモリ手段へ前記出力データを書き込む位置を決定する、書き込み位置決定手段と、前記並び替え用メモリ手段に書き込まれた前記出力データの読み出し順序を決定する、読み出し位置決定手段と、前記周波数オフセット補償量に基づいて、前記読み出し順序で読み出された順序に対応して前記出力データを並び替える、第1の並び替え手段と、前記第1の並び替え手段で並び替えられた前記出力データを、並び替えして前記第2のFFT手段へ入力する、第2の並び替え手段と、を備えた、付記1記載の周波数オフセット補償装置。
(付記5)
前記オフセット補償手段が、前記入力信号の順序をカウントするカウンタ手段を備え、前記書き込み位置決定手段が、前記周波数オフセット補償量に基づいて、前記並び替え用メモリ手段へ前記出力データを書き込む位置を決定し、前記読み出し位置決定手段が、前記カウンタ手段のカウント値に基づいて、前記並び替え用メモリ手段に書き込まれた前記出力データの読み出し順序を決定し、前記第1の並び替え手段が、前記カウンタ手段のカウント値と前記周波数オフセット補償量に基づいて、前記読み出し順序で読み出された順序に対応して前記出力データを並び替え、前記第2の並び替え手段が、前記カウンタ手段のカウント値に基づいて、前記第1の並び替え手段で並び替えられた前記出力データを並び替えして前記第2のFFT手段へ入力する、付記4記載の周波数オフセット補償装置。
(付記6)
前記第1のFFT手段と前記第2のFFT手段の少なくとも一方が、逆離散時間フーリエ変換である、付記1から5の内の1項記載の周波数オフセット補償装置。
(付記7)
前記第2のFFT手段の後に、前記第2のFFT手段の所定の出力値をゼロにする強制ゼロ手段を備えた、付記1から6の内の1項記載の周波数オフセット補償装置。
(付記8)
前記強制ゼロ手段が、前記周波数オフセット補償量に基づいて前記出力値をゼロにする、付記7に記載の周波数オフセット補償装置。
(付記9)
入力信号を第1の離散時間フーリエ変換し、前記第1の離散時間フーリエ変換した出力データの順序を周波数オフセット補償量に応じて変え、前記周波数オフセット補償量に応じた順序とした前記出力データを並び替え、前記並び替えした前記出力データを第2の離散時間フーリエ変換する、周波数オフセット補償方法。
(付記10)
前記第1の離散時間フーリエ変換した前記出力データのメモリへの書き込み位置を決定し、前記書き込み位置に前記出力データを書き込み、前記書き込み位置に書き込まれた前記出力データの読み出し順序を決定し、前記読み出し順序で読み出された前記出力データを第1の並び替えをし、前記第1の並び替えをした前記出力データを第2の並び替えをして前記第2の離散時間フーリエ変換する、付記9に記載の周波数オフセット補償方法。
(付記11)
前記周波数オフセット補償量に基づいて、前記読み出し順序を決定する、または、前記書き込み位置を決定する、付記10に記載の周波数オフセット補償方法。
(付記12)
前記第1の並び替えは、前記周波数オフセット補償量に基づいて前記出力データを並び替える、付記10または11に記載の周波数オフセット補償方法。
(付記13)
前記第1の離散時間フーリエ変換と前記第2の離散時間フーリエ変換の少なくとも一方が、逆フーリエ変換を行う、付記9から12の内の1項記載の周波数オフセット補償方法。
(付記14)
前記第2の離散時間フーリエ変換の後に、前記第2の離散時間フーリエ変換の所定の出力値をゼロにする、付記9から13の内の1項記載の周波数オフセット補償方法。
(付記15)
前記ゼロにするが、前記周波数オフセット補償量に基づいて前記出力値をゼロにする、付記14に記載の周波数オフセット補償方法。
【0072】
この出願は、2012年12月20日に出願された日本出願特願2012−277818を基礎とする優先権を主張し、その開示の全てをここに取り込む。