【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年度、総務省、「超高速・低消費電力光ネットワーク技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、光通信の分野では、通信路で発生する様々な歪をデジタル信号処理技術で補償可能とするデジタルコヒーレント光通信技術が注目されている。通信路で発生する歪である非線形歪は、主に光の強度が強い場合に、分極が光の電界に比例しなくなることから生じる。非線形歪には、自身の光の強度により位相が変化する自己位相変調、波長分割多重などによる別の光により位相が変化する相互位相変調、2つ以上の光が相互作用して新しい光を発生させる四光波混合などがある。
【0003】
現在、研究開発が進められている光通信の速度は100Gbpsを越える一方、デジタル信号処理部は数GHz程度でしか動作させることができない(Gbps:Gigabits per second、GHz:Gigahertz)。すなわち、光通信は、デジタル信号処理と比べて100倍程度速い。光通信とデジタル信号処理との速度差を埋めるためには、並列に並べられた入力信号の数だけ同じデジタル信号処理を行う回路を並べる必要がある。
【0004】
例えば、複素乗算器一つで済む処理であっても、光通信とデジタル信号処理との速度差を吸収するためには、複素乗算器を100個並べる必要があり、その回路規模は数Mゲート程度になる。高速な信号処理を行うLSIでは、たった一つの複素乗算器であってもその回路規模は数Mゲートとなり、すぐにLSIの設計限界を超えてしまう(LSI:Large Scale Integration)。そのため、高速な信号処理を行うLSIでは回路規模を削減することが重要な課題となる。
【0005】
図11には、一般的なFIRフィルタ110の一例を示した(FIR:Finite Impulse Response)。
【0006】
図11のFIRフィルタ110は、遅延器群111と、乗算器群113と、加算器群115と、によって構成される。遅延器群111は、複数の遅延器(111−1、111−2、111−3、・・・、111−N−1)からなる(Nは2以上の自然数)。乗算器群113は、複数の乗算器(113−1、113−2、・・・、113−N−1、113−N)からなる。また、加算器群115は、複数の加算器(115−1、115−2、・・・、115−N−2、115−N−1)からなる。
【0007】
図11に示したFIRフィルタ110では、1タップを実現するのに一つの乗算器を必要とするため、非線形補償で求められるデジタルフィルタは数100個の乗算器を必要とする。そのため、光デジタルコヒーレント送受信器のような高速LSIにおいてデジタルフィルタの回路規模は数100Mゲート規模になる。
【0008】
また、
図12には、一般的なIIRフィルタ120の一例を示した(IIR:Infinite Impulse Response)。
【0009】
図12のIIRフィルタ120は、遅延器群121と、第1の乗算器群123と、第2の乗算器群124と、第1の加算器群125と、第2の加算器群126と、によって構成される。遅延器群121は、複数の遅延器(121−1、121−2、・・・、121−N)からなる。第1の乗算器群123は、複数の乗算器(123−1、・・・、123−N−1、123−N)からなる。第2の乗算器群124は、複数の乗算器(124−1、124−2、・・・、124−N、124−N+1)からなる。第1の加算器群125は、複数の加算器(125−1、125−2、・・・、125−N)からなる。第2の加算器群126は、複数の加算器(126−1、126−2、・・・、126−N)からなる。
【0010】
図12に示すIIRフィルタ120によれば、FIRフィルタよりも少ない数の乗算器で良い振幅特性のフィルタを実現することができる。
【0011】
図13は、a[1]のみが非零となり、a[1]以外は全て0となるIIRフィルタを、2つの信号が並列に入力されるシステムで実現した構成例である。
図13のIIRフィルタ130は、加算器131及び133と、乗算器132及び134と、遅延器135と、を含む。
【0012】
また、非線形歪を補償する有効な手法の一つとして、通信路で発生する歪の順番を逆から補償していくバックプロパゲーション法(Back Propagation)と呼ばれる手法がある。バックプロパゲーション法には、非特許文献1のように自己位相変調のみを補償する方法や、非特許文献2のように自己位相変調だけでなく別偏波の相互位相変調も補償する方法がある。
【発明を実施するための形態】
【0022】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
【0023】
まず、本発明の実施形態の概要に係るデジタルフィルタ装置について、
図1を参照して詳細に説明する。
【0024】
図1を参照すると、本発明の実施形態の概要に係るデジタルフィルタ装置1は、データ並替手段11と、中間データ計算手段12と、フィルタ出力第一計算手段13と、フィルタ出力第二計算手段14と、遅延手段15と、を備えている。
【0025】
データ並替手段11は、入力データの並び替えを行う。なお、並び替えた入力データのことを並替データと呼ぶ。データ並替手段11は、中間データ計算手段12及び遅延手段15に並替データを出力する。
【0026】
例えば、データ並替手段11は、1フレームがL列×M行で構成されたデータ群を入力データとして入力した際に、行方向に整列されたデータを列方向に整列するように並び替え、入力データとはデータ配列が異なるL列×M行のデータ群に変換する。また、データ並替手段11は、1フレームがL列×M行で構成されたデータ群を入力した際に、並替データの先頭方向を末尾方向に向けるように並び替えてもよい。
【0027】
また、データ並替手段11は、自身が有する並替回路の数に合わせて行数を変更した並替データを生成してもよい。データ並替手段11が有する並替回路の数に合わせて行数を変更した並替データを用いれば、並替回路を効率的に利用することができる。
【0028】
なお、データ並替手段11によるデータの並べ替え方法はここであげた例に限らず、後段の構成要素において計算処理しやすいようなデータの配列となるように並び替えればよい。少なくとも、データ並替手段11は、中間データ計算手段12が中間データを計算しやすいような配列にデータを並び替えればよい。
【0029】
ここで、データ番号nのデータのインパルス応答h[n]を、特定の時間範囲では非零であり、その他の時間範囲では0であると仮定する(n:整数)。インパルス応答h[n]が連続している場合、インパルス応答h[n]の長さが上述の特定の範囲となる。なお、インパルス応答h[n]は、連続していない範囲で非零であってもよい。すなわち、インパルス応答h[n]が非零である時刻が離散していてもよい。
【0030】
フィルタ出力y[n]は、入力信号をx[n]とする差分方程式で表現できる。また、差分方程式は、特定時刻前後のフィルタ出力及び入力信号を用いた漸化式の形で表現することができる。なお、漸化式は、遅延手段15の構成が大きくならなくて済むように、必要に応じて近似式としてもよい。
【0031】
中間データ計算手段12は、特定時刻において同時に処理するデータに対して、特定の数値ごとに区切った中間データを計算する。なお、特定時刻は、インパルス応答が非零となる時刻に含まれる時刻である。また、中間データの区切りは、中間データ計算手段12に入力する並替データの行数と同じに設定すればよい。
【0032】
例えば、中間データ計算手段12において特定時刻に同時に処理するデータとしては、データ群の同じ列にあるM個のデータを選択すればよい。その場合、中間処理データ計算手段12は、入力されたデータのうち、M個飛びのデータを処理することになる。
【0033】
すなわち、中間データ計算手段12は、デジタルフィルタ装置1の部分的な値を計算することになる。例えば、中間データ計算手段12は、インパルス応答が非零となる時刻に含まれる特定時刻のデータに対してのみ、デジタルフィルタ装置1の出力値を算出するための中間データを計算する。中間データ計算手段12は、フィルタ出力第一計算手段13に計算した中間データを出力する。
【0034】
フィルタ出力第一計算手段13は、中間データ計算手段12によって計算された中間データを用いて、特定時刻のデジタルフィルタ装置1の出力値(第1の出力値)を計算する。
【0035】
例えば、L列×M行のデータ群が入力された場合、フィルタ出力第一計算手段13は、中間データ計算手段12に特定時刻に入力されたM個飛びのデータについてデジタルフィルタ装置1の出力値を計算することになる。
【0036】
遅延手段15は、中間データ計算手段12が中間データを計算し、フィルタ出力第一計算手段13が第1の出力値を計算する時間だけ入力データを遅延させるとともに、フィルタ出力第二計算手段14で必要とする入力データを適切なタイミングで供給する。遅延手段15による遅延時間は、中間データ計算手段12の回路長・処理性能やフィルタ出力第二計算手段14の計算順序などによって決定される。
【0037】
フィルタ出力第二計算手段14は、遅延手段15が遅延させた並替データと、フィルタ出力第一計算手段13が算出したデジタルフィルタ装置1の出力値と、を入力する。フィルタ出力第二計算手段14は、フィルタ出力第一計算手段13によって処理されていない時刻のデータについて、差分方程式から求められる漸化式を用いてデジタルフィルタ装置1の出力値を計算する。例えば、特定時刻における出力値と、特定時刻以外の時刻における出力値と、を漸化式の形で設定しておけば、その漸化式を用いて特定時刻以外の時刻における出力値(第2の出力値)を計算できる。
【0038】
フィルタ出力第二計算手段14は、特定時刻における出力値(第1の出力値)と、特定時刻以外の時刻における出力値(第2の出力値)を合わせてフィルタ出力として出力する。
【0039】
以上のように、本発明の実施形態に係るデジタルフィルタ装置では、まず、データ並替手段によって、入力されたデータを並び替え、そのデータを中間データ計算手段と遅延手段とに分配する。中間データ計算手段は、特定時刻に入力されたデータを中間データに変換し、フィルタ出力第一計算手段は、その中間データを用いてフィルタ出力を計算する。そして、フィルタ出力第二出力手段は、特定時間以外に入力されたデータと中間データを用いて計算されたフィルタ出力とを、漸化式によって計算し、フィルタ出力を出力する。そのため、本実施形態に係るデジタルフィルタ装置によれば、一般的なデジタルフィルタ装置と比較して少ない計算処理によってフィルタ出力を得ることができ、回路規模を削減することができる。
【0040】
言い換えると、特定時刻において飛び飛びのフィルタ出力値を計算するときは演算を共通化し、特定時刻以外の時刻におけるフィルタ出力値は、それ以前のサイクルで求めた飛び飛びのファイル出力値から漸化式を用いて求めることができる。そのため、非線形補償で使用されるデジタルフィルタの性能を損なわずに回路規模を削減し、非線形補償をLSIで実現することが可能となるデジタルフィルタを得ることができる。
【0041】
また、本発明の実施形態に係るデジタルフィルタ装置によれば、通信路で発生する歪のうち、これまでLSIでは補償できなかった非線形歪を補償することができる。
【0042】
なお、本発明の実施形態に係るデジタルフィルタ装置による信号処理方法及びその信号処理方法を用いたプログラムも本発明の範囲に含まれるものである。
【0043】
以下において、本実施形態に係るデジタルフィルタ装置について、具体的な数値を加えた実施形態をあげて詳細に説明する。
【0044】
(第1の実施形態)
まず、本発明の第1の実施形態に係るデジタルフィルタ装置について説明する。なお、第1の実施形態に係るデジタルフィルタ装置の構成は、
図1に示したデジタルフィルタ装置1の構成をとる。なお、第1の実施形態においては、1フレームがL列×M行のデータからなるデータ群を入力する例において、L列として32列、M行として128行というように具体的な数値として説明する。
【0045】
データ並替手段11は、
図2のように並列に入力された入力データ21を、
図3のような配列の並替データ31に並び替える。
【0046】
なお、入力データ21の上方に示した数字は時刻を表す。ある時刻において、データ並替手段11には、入力データ21において同じ列にあるデータが入力される。
【0047】
通常ADCから出力されたデータは、
図2に示した入力データ21のように、128個のデータが並列して入力される(ADC:Analog Digital Converter)。なお、本発明の実施形態に係るデジタルフィルタ装置に入力するデータは、128個以外の数のデータを並列で入力してもよく、数値範囲を限定することはない。
【0048】
図2の入力データ21において、0は0番目のデータ、1は1番目のデータ、・・・、4095は4095番目のデータを表している。
【0049】
例えば、入力データ21において、時刻1において入力されるデータは0、1、2、・・・、126、127番目のデータであり、時刻2において入力されるデータは128、129、130、・・・、254、255番目のデータである。
【0050】
データ並替手段11は、例えば、4096個(=32列×128行)のデータを1フレームとして扱い、
図3の並替データ31となるように、クロックサイクルごとにデータが並ぶように並び替える。なお、本実施形態においては、フレームの行数と列数を変更しない。
【0051】
ここで、
図2及び
図3に示した各データ群の一番上の行に注目する。データ並替手段11は、
図2の入力データ21のように0、128、256、・・・のような128飛びの配列であったものを、
図3の並替データ31のように0、1、2、・・・というような本来のデータの並びに並び替える。一方で、時刻1では、0、32、64、・・・と32飛びの配列のデータが並列して出力される。すなわち、本実施形態に係るデータ並替手段11は、列方向に並んでいた入力データ21を、行方向に並び替えた並替データ31に変換して出力する。
【0052】
非特許文献1にあるようなバックプロパゲーション法においては、線形補償部、非線形補償部が交互に処理される。そして、線形補償部は一般的には周波数ドメインで処理されるため、FFT、乗算処理、IFFTのように構成される(FFT:Fast Fourier Transform、IFFT:Inverse Fast Fourier Transform)。
【0053】
一般に、並列で動作するIFFTの出力データは、
図3の並替データ31のように出力されるため、非線形補償部におけるデジタルフィルタ装置ではデータ並替手段11は不要となる。すなわち、非特許文献1のようなバックプロパゲーション法においては、IFFTの出力をそのまま利用することができる。
【0054】
次に、中間データ計算手段12、フィルタ出力第一計算手段13、フィルタ出力第二計算手段14の動作について、具体的な数式を用いて説明する。
【0055】
例えば、デジタルフィルタ装置のインパルス応答h[n]を式1のように仮定する。
【0056】
このとき、フィルタ出力y[n]は、入力信号をx[n]とすると式2のような差分方程式で表現できる。なお、式2中のkは整数である。
【0057】
式2から得られるy[n]とy[n−1]の展開式において、y[n]とy[n−1]の差をとり、y[n−1]を左辺から右辺に移項すると、式3の漸化式が得られる。
【0058】
式3において、x[n]及びx[n−256]には入力信号の値をそのまま代入すればよく、y[n−1]には既に求められたフィルタ出力を代入すればよい。例えば、y[n−1]に第1の出力値を代入して第2の出力値であるy[n]を計算する。次に入力されたx[n]については、既に算出した第2の出力値であるy[n]をy[n−1]として式3に代入すれば、次の第2の出力値を得ることができる。よって、式3の漸化式を用いれば、特定時刻以外の時刻に入力されるデータについて、特定時刻に入力されたデータの第1の出力値を用いて、第2の出力値を漸次的に計算することができる。
【0059】
ここで、式2の差分方程式を展開し、32個ごとの和に分割すると、式4のように表現できる。なお、同一時刻において入力するデータが32個であるため、式2においては32個ごとの和に分割している。
【0060】
ここで、中間データとして、中間変数T[n]を式5のように定義する。
【0061】
y[n]は、中間変数T[n]を用いると、式6のように表現できる。
【0062】
例えば、n−32における出力値はy[n−32]とすればよく、n−64における出力値はy[n−64]とすればよい。
【0063】
本実施形態において、中間データ計算手段12は、式5に示した中間変数T[n]を計算する。中間データ計算手段12は、例えば、
図4のように、加算器41と遅延器42とを備える構成の回路40として実現できる。
【0064】
フィルタ出力第一計算手段13は、式6を用いて、中間変数T[n]から特定時刻におけるフィルタ出力値(第1の出力値)y[n]、y[n−32]、・・・を計算する。また、フィルタ出力第二計算手段14は、
図5のように、減算器51と、加算器52と、遅延器53と、を備える回路50によって実現できる。
【0065】
そして、フィルタ出力第二計算手段14は、フィルタ出力第一計算手段13及び遅延手段15の出力データ(第1の出力値及び並替データ)を入力する。フィルタ出力第二計算手段14は、入力したフィルタ出力第一計算手段13及び遅延手段15の出力データに式3の漸化式を適用し、インパルス応答の範囲に含まれる特定時刻以外の時刻におけるフィルタ出力値(第2の出力値)y[n]を計算する。すなわち、フィルタ出力第二計算手段14は、y[n−1]、y[n−2]、・・・、y[n−31]、y[n−33]、・・・を計算する。
【0066】
以上の具体的な数値で示した説明を、L列×M行(L、Mは自然数)のフレームを有する並替データに適用するには、以下のような数式(式7〜11)を用いればよい。ただし、以下の数式中のNは自然数である。
【0067】
式7はインパルス応答の式であり、式1に相当する。
【0068】
式8は差分方程式であり、式2に相当する。
【0069】
式9は中間データを算出するための式であり、式5に相当する。
【0070】
式10は特定時刻における出力値(第1の出力値)を計算するための式であり、式6に相当する。
【0071】
式11は、特定時刻以外の時刻における出力値(第2の出力値)を計算するための漸化式であり、式3に相当する。
【0072】
以上のような数式(式7〜11)を用いれば、L列×M行のフレームを有する並替データからフィルタ出力値を計算することができる。
【0073】
次に、第1の実施形態に係るデジタルフィルタ装置の効果について説明する。
【0074】
一般に、128個のデータが並列で入力される入力データ21に関して、式2で示されるような計算を直接的に実現しようとすると、32640個(=255×128個)の加算器が必要になる。
【0075】
それに対し、本発明の第1の実施形態に係るデジタルフィルタ装置では、中間データ計算手段12によるT[n]の計算では128個(=1×128個)の加算器を必要とする。また、フィルタ出力第一計算手段13は896個(=7×128個)の加算器を必要とし、フィルタ出力第二計算手段14は256個(=2×128個)の加算器を必要とする。すなわち、本発明の第1の実施形態に係るデジタルフィルタ装置は、合計すると1280個(=10×128個)の加算器で構成でき、一般的な構成の回路と比較して、回路の規模を約1/25に削減することができる。
【0076】
以上のように、本発明の第1の実施形態に係るデジタルフィルタ装置では、一般的なデジタルフィルタ装置と比較して回路規模を削減することができる。第1の理由は、特定時刻における離散したフィルタ出力値を計算するときは、必要な演算を共通化させることで求めるからである。第2の理由は、特定時刻以外の時刻におけるフィルタ出力値は、その前のサイクルで求めた離散したファイル出力値を用いて、漸化式によって求めるからである。
【0077】
また、本発明の第1の実施形態に係るデジタルフィルタ装置によれば、通信路で発生する歪のうち、これまでLSIでは補償できなかった非線形歪を補償することができる。
【0078】
また、これまでの光通信においては、光強度を下げて非線形歪の影響が少ない範囲で通信する必要があったために、中継器の数が増加して敷設コストが増加するという課題があった。本発明の第1の実施形態に係るデジタルフィルタ装置によれば、上述の敷設コストが増加するという課題を解決することができ、デジタルフィルタ装置の性能を損なわない非線形補償を実現できる。
【0079】
なお、本発明は、非線形補償におけるデジタルフィルタ装置の構成や、非線形補償におけるフィルタ装置に限定されるものではなく、デジタルフィルタ装置一般、さらにはデジタルフィルタ装置を含む信号処理装置に利用可能なものである。
【0080】
(第2の実施形態)
次に、本発明の第2の実施形態に係るデジタルフィルタ装置について説明する。なお、第2の実施形態に係るデジタルフィルタ装置の構成は、
図1に示した第1の実施形態に係るデジタルフィルタ装置と同じである。なお、第2の実施形態においても、1フレームがL列×M行のデータからなるデータ群を入力する例において、L列として32列、M行として128行というように具体的な数値として説明する。
【0081】
第2の実施形態は、デジタルフィルタ装置のインパルス応答h[n]が式12で表せる場合の例である。ただし、式12において、aは0よりも大きく、1よりも小さい実数である(a:実数:0<a<1)。
【0082】
第2の実施形態において、データ並替手段11及び遅延手段15の動作は、第1の実施形態と同様である。
【0083】
第2の実施形態に係るデジタルフィルタ装置の中間データ計算手段12、フィルタ出力第一計算手段13、フィルタ出力第二計算手段14の動作について、第1の実施形態と同様に具体的な数式を用いて説明する。
【0084】
このとき、フィルタ出力y[n]は、入力信号をx[n]とすると式13のような差分方程式の形で表現できる。
【0085】
式13から得られるy[n]とy[n−1]の展開式において、y[n]とa×y[n−1]の差をとり、a×y[n−1]を左辺から右辺に移項すると、式14の漸化式が得られる。
【0086】
式13を32個ごとの和に分割すると、式15のように書ける。
【0087】
ここで、式15の右辺の各項を中間データである中間変数T[n]として式16のように定義する。
【0088】
y[n]は、中間変数T[n]を用いると、式17のように表現できる。
【0089】
第2の実施形態において、中間データ計算手段12は、式16で示した中間変数T[n]を計算する。中間データ計算手段12は、
図6のように、加算器61と、遅延器62と、乗算器63と、を備える回路60によって実現される。
【0090】
フィルタ出力第一計算手段13は、式17を用いて、中間変数T[n]から特定時刻におけるフィルタ出力値(第1の出力値)y[n]、y[n−32]、・・・を計算する。また、フィルタ出力第二計算手段14は、
図7のように、減算器71と、乗算器72と、加算器73と、乗算器74と、遅延器75と、を備える回路70によって実現される。
【0091】
そして、フィルタ出力第二計算手段14は、フィルタ出力第一計算手段13及び遅延手段15の出力データ(第1の出力値及び並替データ)を入力する。フィルタ出力第二計算手段14は、入力したフィルタ出力第一計算手段13及び遅延手段15の出力データに式14の漸化式を適用し、特定時刻以外の時刻におけるフィルタ出力値(第2の出力値)y[n]を計算する。
【0092】
以上の具体的な数値で示した説明を、L列×M行のフレームを有する並替データに適用するには、以下のような数式(式18〜22)を用いればよい。ただし、Nは自然数である。
【0093】
式18はインパルス応答の式であり、式12に相当する。
【0094】
式19は差分方程式であり、式15に相当する。
【0095】
式20は中間データを算出するための式であり、式16に相当する。
【0096】
式21は特定時刻における出力値(第1の出力値)を計算するための式であり、式17に相当する。
【0097】
式22は、特定時刻以外の時刻における出力値(第2の出力値)を計算するための漸化式であり、式14に相当する。
【0098】
以上のような数式(式18〜22)を用いれば、L列×M行のフレームを有する並替データからフィルタ出力値を計算することができる。
【0099】
次に、第2の実施の形態に係るデジタルフィルタ装置の効果について説明する。
【0100】
一般に、式7で示すインパルス応答をFIRデジタルフィルタ装置で実現する場合、N個の乗算器、2N−1個の加算器、N−1個の遅延器から構成される。一般には、デジタルフィルタ装置の回路規模は乗算器が支配的であるため、乗算器のみで考えると、128並列、256タップを直接的に実現する場合32768個(=128×256個)の乗算器が必要になる。
【0101】
それに対し、本発明の第2の実施形態に係るデジタルフィルタ装置では、中間データ計算手段12によるT[n]の計算では128個(=1×128個)の乗算器を必要とする。また、フィルタ出力第一計算手段13は896個(=7×128個)の乗算器を必要とし、フィルタ出力第二計算手段14は256個(=2×128個)の乗算器を必要とする。すなわち、本発明の第2の実施形態に係るデジタルフィルタ装置は、合計1280個(=10×128個)の乗算器で構成でき、一般的な構成の回路と比較して、回路の規模を約1/24に削減することができる。
【0102】
なお、第2の実施形態に係るデジタルフィルタ装置では、遅延手段15を実現するメモリが別途必要となるが、一般的には遅延手段15を実現するメモリの数が乗算器削減量を上回ることはない。
【0103】
以上のように、本発明の第2の実施形態に係るデジタルフィルタ装置では、第1の実施形態に係るデジタルフィルタ装置と同様に、一般的なデジタルフィルタ装置と比較して回路規模を削減することができる。
【0104】
また、第1の実施形態に係るデジタルフィルタ装置では、インパルス応答が式1のようなものに限られたが、第2の実施形態に係るデジタルフィルタ装置によれば、式7に示したようなインパルス応答についても計算を実行することができる。
【0105】
(第3の実施形態)
次に、本発明の第3の実施形態に係るデジタルフィルタ装置について説明する。なお、第3の実施形態に係るデジタルフィルタ装置の構成は、
図1に示した第1の実施形態に係るデジタルフィルタ装置と同じである。なお、第3の実施形態においても、1フレームがL列×M行のデータからなるデータ群を入力する例において、L列として32列、M行として128行というように具体的な数値として説明する。
【0106】
第3の実施形態は、デジタルフィルタ装置のインパルス応答h[n]が式23で表せる場合の例である。ただし、式23において、aは0よりも大きく、1よりも小さい実数である(a:実数:0<a<1)。
【0107】
なお、データ並替手段11は、
図3に示した並替データ31の他に、
図9に示した並替データ91を出力する。並替データ91は、並替データ31の入力順序を逆順にしたデータである。
【0108】
第3の実施形態において、遅延手段15の動作は第1の実施形態と同様であり、入力データを遅らせるだけである。
【0109】
第3の実施形態に係るデジタルフィルタ装置の中間データ計算手段12、フィルタ出力第一計算手段13、フィルタ出力第二計算手段14の動作について説明する。
【0110】
このとき、フィルタ出力y[n]は、入力信号をx[n]とすると式24のような差分方程式で表現できる。
【0111】
ここで、式24の右辺の第一項をA[n]、第二項をB[n]とする。
【0112】
式24の右辺第一項のA[n]から得られるA[n]とA[n−1]の展開式において、a×A[n]とA[n−1]の差をとると、式25の上段のような漸化式で表現できる。なお、式25の下段の式は、上段の漸化式においてA[n−1]を左辺から右辺に移項した式である。実際には、式25の下段の漸化式を用いる。
【0113】
同様に、式24の右辺第二項から得られるB[n]とB[n−1]の展開式において、B[n]とa×B[n−1]の差をとると、式26の上段のような漸化式で表現できる。なお、式26の下段の式は、上段の漸化式においてa×B[n−1]を左辺から右辺に移項した式である。実際には、式26の下段の漸化式を用いる。
【0114】
式25において、aの255乗はほぼ0であるため、aの255乗の項を削除した近似式を使用している。また、式26においても同様に、aの256乗の項を削除した近似式を示している。なお、この近似は必ずしも行わなくてもよいが、式25で近似を用いていないと、y[n]の計算時にx[n+255]が必要となり、255が32の倍数でないため別の遅延手段が必要になってしまう。そのため、式25及び式26のように近似することが好ましい。
【0115】
ここで、第1及び第2の実施形態と同様に、A[n]を32ずつに分割すると、式27のように表現できる。
【0116】
ここで、中間データとして、中間変数S[n]を式28のように定義する。
【0117】
A[n]は、式29のように中間変数S[n]を用いて表現できる。
【0118】
また、A[n]と同様に、B[n]を32ずつに分割すると、式30のように表現できる。
【0119】
ここで、中間データとして、中間変数T[n]を式31のように定義する。
【0120】
B[n]は、式32のように中間変数T[n]を用いて表現できる。
【0121】
式24より、y[n]=A[n]+B[n]であるため、y[n]、y[n−32]、・・・、y[n−224]は、A[n]、A[n−32]、・・・、A[n−224]、B[n]、B[n−32]、・・・、B[n−224]、x[n]を用いて計算可能であることが分かる。
【0122】
第3の実施形態において、中間データ計算手段12は、式28及び式31で示すように中間変数S[n]及びT[n]を計算する。なお、中間データ計算手段12は、
図6の回路60を2個用いて実現でき、S[n]及びT[n]を計算できる。T[n]は、並替データ31を用いて計算され、S[n]は、並替データ91を用いて計算される。
【0123】
また、フィルタ出力第一計算手段13は、式29及び式32を用いて中間変数S[n]、T[n]から特定時刻におけるフィルタ出力値(第1の出力値)y[n]、y[n−32]、・・・をそのまま計算することができる。
【0124】
さらに、フィルタ出力第二計算手段14は、フィルタ出力第一計算手段13及び遅延手段15の出力データ(第1の出力値及び並替データ)を入力し、式25及び式26を用いて、特定の時刻以外の時刻におけるフィルタ出力値(第2の出力値)y[n]を計算する。なお、フィルタ出力第二計算手段14は、
図8のように、減算器81と、乗算器82と、遅延器83と、加算器84と、乗算器85と、遅延器86と、加算器87と、を備える回路80として実現される。
【0125】
以上の具体的な数値で示した説明を、L列×M行のフレームを有する並替データに適用するには、以下のような数式(式33〜43)を用いればよい。ただし、Nは自然数である。
【0126】
式33はインパルス応答の式であり、式23に相当する。
【0127】
式34は差分方程式であり、式24に相当する。
【0128】
ここで、式34の右辺の第一項を式35のようにA[n]、第二項を式36のようにB[n]とする。
【0130】
式37及び式38は第1の中間データS[n]及び第2の中間データT[n]を算出するための式であり、式28及び式31に相当する。
【0132】
式39及び式40は、A[n]及びB[n]を計算するための式であり、式29及び式31に相当する。
【0134】
式41は特定時刻における出力値(第1の出力値)を計算するための式である。
【0135】
式42及び式43は、特定時刻以外の時刻における出力値(第2の出力値)を計算するための漸化式であり、式25及び式26の下段の式と同じ式である。
【0137】
以上のような数式(式33〜43)を用いれば、L列×M行のフレームを有する並替データからフィルタ出力値を計算することができる。
【0138】
次に、第3の実施形態に係るデジタルフィルタ装置の効果について説明する。
【0139】
一般に、式13で示すインパルス応答をFIRデジタルフィルタ装置で実現する場合、N/2個の乗算器、2N−1個の加算器、N−1個の遅延器から構成される。なお、Nが奇数の場合、乗算器はN/2+0.5個となる。このとき、デジタルフィルタ装置の回路規模は乗算器が支配的であるため、128並列、513タップを直接的に実現しようとすると、32768個(=128×256個)の乗算器が必要になる。
【0140】
それに対し、本発明の第3の実施形態に係るデジタルフィルタ装置では、中間データ計算手段12(S[n]、T[n]の計算)では256個(=2×128個)の乗算器を必要とする。また、フィルタ出力第一計算手段13は、1792個(=2×7×128個)の乗算器を必要とし、フィルタ出力第二計算手段14は、256個(=2×128個)の乗算器を必要とする。すなわち、本発明の第3の実施形態に係るデジタルフィルタ装置は、合計2304個(=18×128個)の乗算器で構成でき、一般的な構成の回路と比較して、回路の規模を約1/14に削減することができる。
【0141】
なお、第3の実施形態に係るデジタルフィルタ装置では、遅延手段15を実現するメモリが2つ必要となるが、一般的には遅延手段15を実現するメモリの数が乗算器削減量を上回ることはない。
【0142】
本発明の第1〜3の実施形態において、インパルス応答の長さを256としたり、1フレームの長さを4096にしているのは分かりやすさを重視したりした結果である。そのため、インパルス応答の長さや1フレームの長さは、必要に応じて変更することができ、本発明の範囲を上述の数値に限定するものではない。
【0143】
(第4の実施形態)
次に、本発明の第4の実施形態に係るデジタルフィルタ装置について説明する。なお、第4の実施形態に係るデジタルフィルタ装置の構成は第3の実施形態に係るデジタルフィルタ装置と同じであり、フィルタ出力第二計算手段及び遅延手段の動作以外は第3の実施形態と同じである。
【0144】
第4の実施形態に関わるデジタルフィルタ装置のフィルタ出力第二計算手段及び遅延手段の動作について説明する。フィルタ出力y[n]は、入力信号をx[n]とすると、第3の実施形態で示した式24のような差分方程式で表現できる。
【0145】
第3の実施形態で示した式24の右辺第一項のA[n]から得られるA[n]とA[n−1]の展開式において、a×A[n]とA[n−1]の差をとると、式44の上段のような漸化式で表現できる。なお、式44の下段の式は、上段の漸化式においてA[n−1]を左辺から右辺に移項した式である。実際には、式44の下段のように近似した漸化式を用いる。
【0146】
第3の実施形態のように、式24の差分方程式から求めた式25の下段に示した漸化式のように、1より大きい数である1/aを
図8のようにループして使用すると、丸め誤差が常に1/a倍され、いずれは無限大に発散してしまう。そのため、計算精度を向上するため、式44の下段の漸化式を用いてA[n]を計算する。この場合、丸め誤差は常にa倍されるために無限大に発散することはない。
【0147】
また、式44において、aの255乗はほぼ0であるため、aの255乗の項を削除した近似式を使用している。この近似は必ずしも行わなくてもよいが、式44で近似を用いないと、y[n]の計算時にx[n+255]が必要となり、255が32の倍数でないため別の遅延手段が必要になってしまう。そのため、式44及び式26のように近似することが好ましい。
【0148】
さらに、フィルタ出力第二計算手段14は、フィルタ出力第一計算手段13及び遅延手段15の出力データを入力し、式44及び式26を用いて、特定の時刻以外の時刻におけるフィルタ出力値(第2の出力値)y[n]を計算する。
【0149】
ただし、式44では、例えば、A[31]を計算する場合、A[31]=aA[32]+x[32]で計算するためにx[32]が必要となる。同様に、A[30]は、A[30]=aA[31]+x[31]で計算するためにx[31]が必要となり、A[29]は、A[29]=aA[30]+x[30]で計算するためにx[30]が必要となる。すなわち、A[31]、A[30]、A[29]、・・・を計算する際に、x[32]、x[31]、x[30]、・・・などといった逆順のデータ(nが大きい項)が必要となる。
【0150】
そのため、遅延手段15は、
図3に示した並替データ31の他に、
図9に示した並替データ91も同様に遅延させてから、フィルタ出力第二計算手段14に供給することでこの課題を解決する。
【0151】
また、A[n]を逆順に計算する都合上、例えばA[31]は時刻1に、A[30]は時刻2に計算され、一方のB[31]は時刻31にA[30]は時刻30に出力されるので、その時刻を調整した上でフィルタ出力値y[n]を計算する必要がある。そのため、フィルタ出力第二計算手段14は、そのタイミングを調整する第一遅延調整手段101と、第二遅延調整手段102と、を含む回路100で実現される(
図10)。なお、
図10の回路100は、
図8の回路80における乗算器82を乗算器103に入れ替え、第一遅延調整手段101及び第二遅延調整手段102を追加した以外は、回路80と同様の構成である。
【0152】
第4の実施形態では、式26を式44とする以外は、第3の実施形態と同様の計算によって、第1の出力値及び第2の出力値を算出する。すなわち、第4の実施形態をL列×M行のフレームを有する並替データに適用するには、第3の実施形態で示した式33〜43において、式43を式44の下段の式に入れ替えさえすればよい。A[n]とB[n]を計算するタイミングは、第一遅延調整手段101及び第二遅延調整手段102によって調整される。
【0153】
次に、第4の実施形態に係るデジタルフィルタ装置の効果について説明する。
【0154】
第4の実施形態に係るデジタルフィルタ装置では、第3の実施形態と同じように、回路規模を約1/14に削減することができる。さらに、ループ回数が多い場合は、第3の実施形態より精度良くフィルタ出力を計算することができる。一方、別途第一遅延調整手段101、第二遅延調整手段102などを必要とするが、一般的には、それらが乗算器削減量を上回ることはない。
【0155】
本発明の第1〜4の実施形態において、インパルス応答の長さを256としたり、1フレームの長さを4096にしているのは分かりやすさを重視したりした結果である。そのため、インパルス応答の長さや1フレームの長さは、必要に応じて変更することができ、本発明の範囲を上述の数値に限定するものではない。
【0156】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0157】
この出願は、2013年6月3日に出願された日本出願特願2013−116760を基礎とする優先権を主張し、その開示の全てをここに取り込む。