(57)【要約】  周波数領域におけるディジタルフィルタ処理を行うための回路規模や消費電力の低減を図る。本ディジタルフィルタ回路は、フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数の共役複素数を含む第２の複素数信号を生成する複素共役生成部、入力された複素数の第１、第２及び第３の入力フィルタ係数から複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成部、第１の複素数信号に対して第１の周波数領域フィルタ係数によりフィルタ処理を行い第３の複素数信号を出力する第１のフィルタ部、第２の複素数信号に対して第２の周波数領域フィルタ係数によりフィルタ処理を行い第４の複素数信号を出力する第２のフィルタ部、第３の複素数信号と第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成部、を備える。
2013125173.tif 000002
【特許請求の範囲】
【請求項１】
フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成する複素共役生成部と、
入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成部と、
前記第１の複素数信号に対して前記第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力する第１のフィルタ部と、
前記第２の複素数信号に対して前記第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力する第２のフィルタ部と、
前記第３の複素数信号と、前記第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成部と、
を備えることを特徴とするディジタルフィルタ回路。
【請求項２】
入力された前記時間領域の複素数入力信号を前記フーリエ変換により前記第１の複素数信号に変換するフーリエ変換部と、
前記第５の複素数信号を、逆フーリエ変換により時間領域の信号に変換する逆フーリエ変換部と、
を備えることを特徴とする請求項１記載のディジタルフィルタ回路。
【請求項３】
前記フーリエ変換の変換サンプル数をＮ（ＮはＮ＞０の整数）とするとき、
前記複素共役生成部は、前記第１の複素数信号に含まれる周波数番号（Ｎ−ｋ）の複素数信号の共役複素数を前記第２の複素数信号として生成する
ことを特徴とする請求項１又は２記載のディジタルフィルタ回路。
【請求項４】
前記複素共役合成部は、０≦ｋ≦Ｎ−１の範囲の周波数番号ｋのそれぞれについて、前記第３の複素数信号に含まれる周波数番号ｋの第１の複素数データと、前記第４の複素数信号に含まれる周波数番号（Ｎ−ｋ）の第２の複素数データとを、複素加算して前記第５の複素数信号を生成する、
ことを特徴とする請求項３に記載のディジタルフィルタ回路。
【請求項５】
前記フィルタ係数生成部は、
前記第１の周波数領域フィルタ係数を、前記第１の入力フィルタ係数に前記第２の入力フィルタ係数を複素加算したのち、さらに前記第３の入力フィルタ係数を複素乗算して生成し、
前記第２の周波数領域フィルタ係数を、前記第１の入力フィルタ係数から前記第２の入力フィルタ係数を複素減算したのち、さらに前記第３の入力フィルタ係数を複素乗算して生成する、
ことを特徴とする請求項１乃至４のいずれかに記載のディジタルフィルタ回路。
【請求項６】
前記第１の周波数領域フィルタ係数は、前記複素入力信号に対する時間領域でのフィルタ処理である時間領域フィルタ処理における、前記複素入力信号の実数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、
前記第２の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記複素入力信号の虚数部に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数であり、
前記第３の周波数領域フィルタ係数は、前記時間領域フィルタ処理における、前記複素数入力信号に対するフィルタ係数に対応する、周波数領域での複素数フィルタ係数である
ことを特徴とする請求項１乃至５のいずれかに記載のディジタルフィルタ回路。
【請求項７】
フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成し、
入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成し、
前記第１の複素数信号に対して前記第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力し、
前記第２の複素数信号に対して前記第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力し、
前記第３の複素数信号と、前記第４の複素数信号とを合成して第５の複素数信号を生成する
ことを特徴とするディジタルフィルタ処理方法。
【請求項８】
演算装置が備えるコンピュータを、
フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成する複素共役生成手段と、
入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成手段と、
前記第１の複素数信号に対して前記第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力する第１のフィルタ処理手段と、
前記第２の複素数信号に対して前記第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力する第２のフィルタ処理手段と、
前記第３の複素数信号と、前記第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成手段
として機能させるためのディジタルフィルタ処理プログラムを格納した非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル信号処理における演算処理に関し、特にディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体に関する。
【背景技術】
【０００２】
広く利用されているディジタルフィルタとしてＦＩＲ（Finite Impulse Response）フィルタやＩＩＲ（Infinite Impulse Response）フィルタがある。図９はＦＩＲフィルタを用いたディジタルフィルタ回路１００の構成例である。【０００３】
ディジタルフィルタ回路１００は、複素数信号ｘ(n)＝ｒ(n)＋jｓ(n)（jは虚数単位、nは整数）に対して、時間領域でフィルタ処理を行う。ディジタルフィルタ回路１００は、３つのＦＩＲフィルタ１０１、１０２、１０３から構成される。【０００４】
ＦＩＲフィルタ１０１は、入力された複素数信号ｘ(n)の実数部である実数の実数部信号ｒ(n)に対して、実数演算によりフィルタ処理を行う、タップ数５の実数係数のＦＩＲフィルタである。ＦＩＲフィルタ１０１の５つのフィルタ係数ａ0〜ａ4は実数である。ＦＩＲフィルタ１０１は、フィルタ処理の結果を実数部信号ｒ'(n)として出力する。【０００５】
同様に、ＦＩＲフィルタ１０２は、入力された複素数信号の虚数部である実数の虚数部信号ｓ(n)に対して、実数演算によりフィルタ処理を行う、タップ数５の実数係数のＦＩＲフィルタである。ＦＩＲフィルタ１０２の５つのフィルタ係数ｂ0〜ｂ4は実数である。ＦＩＲフィルタ１０２は、フィルタ処理の結果を虚数部信号ｓ'(n)として出力する。【０００６】
ＦＩＲフィルタ１０３は、ＦＩＲフィルタ１０１及び１０２によりフィルタ処理された実数部信号ｒ'(n)及び虚数部信号ｓ'(n)から構成される複素数信号ｘ'(n)＝ｒ'(n)＋jｓ'(n)に対して、複素数演算によりフィルタ処理を行う、タップ数５の複素数係数のＦＩＲフィルタである。ＦＩＲフィルタ１０３の５つのフィルタ係数ｃ0〜ｃ4は複素数である。ＦＩＲフィルタ１０３は、フィルタ処理の結果を複素数信号ｘ"(n)として出力する。【０００７】
図９の構成図では、複素数信号は、実数の信号を示す線よりも太い線で表記されて区別されている。以下、他の構成図においても、信号を示す線は同様に表記される。【０００８】
ＦＩＲフィルタによるフィルタ処理には、ディジタルフィルタ回路１００のように、実数のフィルタ係数を用いた実数演算によるフィルタ処理と、複素数のフィルタ係数を用いた複素数演算によるフィルタ処理の両方が行われる場合がある。【０００９】
一般に、ＦＩＲフィルタのタップ数の最小値は、実現したいフィルタ関数のインパルス応答長で決定される。そのため、複雑なフィルタ関数を実現する場合、数１００タップ以上のタップ数が必要な場合もある。このような、タップ数の大きいＦＩＲフィルタが実装されたＬＳＩ（Large Scale Integrated circuit）には、ＬＳＩの回路規模や消費電力が莫大になるという問題がある。【００１０】
この問題に対して、周波数領域でフィルタ処理を行う技術が知られている（例えば、特許文献１）。周波数領域でのフィルタ処理では、高速フーリエ変換（ＦＦＴ。Fast Fourier Transform）により、時間領域上の信号データは一旦、周波数領域上の信号データに変換される。そして、周波数領域で信号データとフィルタ係数とのフィルタ演算が実施された上で、高速逆フーリエ変換（ＩＦＦＴ。Inverse Fast Fourier Transform）により、時間領域上の信号データに再変換される。【００１１】
ＦＩＲフィルタのタップ数が大きい場合、周波数領域でフィルタ処理を行うことで、フィルタ処理の実現に必要な回路規模や消費電力を低減することができる。なぜなら、ＦＩＲフィルタによる時間領域での畳み込み演算は、周波数領域では単純な乗算に変換できるからである。【００１２】
ところで、時間領域の信号が複素数信号である場合、複素数信号は複素ＦＦＴにより周波数領域の複素数信号データに変換される。複素ＦＦＴ変換では、時間領域における複素数信号の実数部及び虚数部は合成され、周波数領域での複素数信号データに変換される。すなわち、周波数領域での複素数信号データの実数部及び虚数部のそれぞれの算出に、時間領域における複素数信号の実数部及び虚数部の両方が用いられる。このため、時間領域の複素数信号の実数部及び虚数部のそれぞれを独立にフィルタ処理する場合、特許文献１の技術によれば、それぞれを独立に、実数ＦＦＴにより周波数領域の信号データに変換する必要がある。【００１３】
図１０に、周波数領域においてフィルタ処理を行うディジタルフィルタ回路１１０の構成例を示す。ディジタルフィルタ回路１１０は、図９に示した時間領域でフィルタ処理を行うディジタルフィルタ回路１００に対応する。ディジタルフィルタ回路１１０は、複素数信号ｘ(n)（＝ｒ(n)＋jｓ(n)）に対して、周波数領域でフィルタ処理を行うディジタルフィルタ回路である。ディジタルフィルタ回路１１０は、３つの周波数領域フィルタ回路１１１、１１２、１１３から構成される。【００１４】
周波数領域フィルタ１１１は、入力された時間領域上の複素数信号ｘ(n)の実数部である実数部信号ｒ(n)を、ＦＦＴにより周波数領域上の複素数信号データに変換する。そして、周波数領域フィルタ１１１は、周波数領域上の複素数信号データに、周波数領域上で複素数演算によるフィルタ演算を実施した上で、ＩＦＦＴにより時間領域上の実数部信号データｒ'(n)に再変換する。実数部信号ｒ(n)は実数の信号であるが、実数の信号をフーリエ変換した場合でも、変換後の信号データは複素数になる。また、フィルタ係数も通常、複素数である。そのため、フィルタ演算には複素数演算が必要である。【００１５】
同様に、周波数領域フィルタ１１２は、入力された時間領域上の複素数信号ｘ(n)の虚数部である実数の虚数部信号ｓ(n)を、ＦＦＴにより周波数領域上の複素数信号データに変換する。そして、周波数領域フィルタ１１２は、周波数領域上の複素数信号データに、周波数領域上で複素数演算によるフィルタ演算を実施した上で、ＩＦＦＴにより時間領域上の実数の虚数部信号データｓ'(n)に再変換する。【００１６】
一方、周波数領域フィルタ１１３は、実数部信号ｒ'(n)及び虚数部信号ｓ'(n)から構成される複素数信号ｘ'(n)＝ｒ'(n)＋jｓ'(n)に対して、ＦＦＴにより周波数領域上の複素数信号データに変換する。そして、周波数領域フィルタ１１３は、周波数領域上の複素数信号データに、周波数領域上で複素数演算によるフィルタ演算を実施した上で、ＩＦＦＴにより時間領域上の実数の虚数部信号データｓ"(n)に再変換する。【００１７】
入力信号を複素数信号として取り扱うディジタルフィルタは、特許文献２にも記載されている。【００１８】
また、入力信号をフーリエ変換して生成した複素数信号とその複素共役値を用いて所定の演算を施した後、逆フーリエ変換する技術は、特許文献３にも記載されている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２０１１−４２６４号公報
【特許文献２】国際公開ＷＯ２００７／０１０７２７号公報
【特許文献３】特開平２−３６３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
図１０に示されたディジタルフィルタ回路１１０の構成から明らかなように、特許文献１の技術では、複素数信号に対して複素数演算によるフィルタ処理を行うためには、複素数信号の実数部及び虚数部のそれぞれに対して、独立した実数演算によるフィルタ処理を行われる。そのため、特許文献１の技術を適用すると、周波数領域フィルタでの複素数信号の実数部及び虚数部のそれぞれへのフィルタ処理について、ＦＦＴ及びＩＦＦＴが必要となる。従って、上記のようなフィルタ機能が実装されたＬＳＩは、回路規模や消費電力が莫大になるという問題がある。  【００２１】
特許文献２、３の技術でも、複素数信号に対して複素数演算によるフィルタ処理を行うためには、複素数信号の実数部及び虚数部のそれぞれに対して、独立したフィルタ処理が必要である。従って、周波数領域フィルタでの複素数信号の実数部及び虚数部のそれぞれへのフィルタ処理について、ＦＦＴ及びＩＦＦＴが必要となるという、特許文献１と同様の問題がある。
（発明の目的）
本発明は上記のような課題を解決するためのものであり、周波数領域におけるディジタルフィルタ処理を行うための回路規模や消費電力の低減を図ることができるディジタルフィルタ回路、ディジタルフィルタ処理方法及びディジタルフィルタ処理プログラム記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明のディジタルフィルタ回路は、フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成する複素共役生成部と、入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成部と、第１の複素数信号に対して第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力する第１のフィルタ部と、第２の複素数信号に対して第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力する第２のフィルタ部と、第３の複素数信号と、第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成部と、を備えることを特徴とする。【００２３】
本発明のディジタルフィルタ処理方法は、フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成し、入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成し、第１の複素数信号に対して第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力し、第２の複素数信号に対して第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力し、第３の複素数信号と、第４の複素数信号とを合成して第５の複素数信号を生成することを特徴とする。【００２４】
本発明のディジタルフィルタ処理プログラム記憶媒体は、演算装置が備えるコンピュータを、フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成する複素共役生成手段と、入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成手段と、第１の複素数信号に対して第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力する第１のフィルタ処理手段と、第２の複素数信号に対して第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力する第２のフィルタ処理手段と、第３の複素数信号と、第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成手段として機能させるためのプログラムを格納する。
【発明の効果】
【００２５】
本発明によれば、周波数領域におけるディジタルフィルタ処理を行うための回路規模や消費電力の低減を図ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態にかかるディジタルフィルタ回路の構成を示すブロック図である。
【図２】本発明の第１の実施形態にかかる複素共役生成回路１５の構成を示すブロック図である。
【図３】本発明の第１の実施形態にかかるフィルタ回路２１の構成を示すブロック図である。
【図４】本発明の第１の実施形態にかかるフィルタ回路２２の構成を示すブロック図である。
【図５】本発明の第１の実施形態にかかる複素共役合成回路１６の構成を示すブロック図である。
【図６】本発明の第１の実施形態にかかるフィルタ係数生成回路４１の構成を示すブロック図である。
【図７】本発明の第１の実施形態にかかるディジタルフィルタ回路の必須の構成のみを備えるディジタルフィルタ回路のブロック図である。
【図８Ａ】本発明の第２の実施形態にかかるディジタルフィルタ処理プログラムの処理手順の第1の例を示すフローチャートである。
【図８Ｂ】本発明の第２の実施形態にかかるディジタルフィルタ処理プログラムの処理手順の第２の例を示すフローチャートである。
【図９】ＦＩＲフィルタを用いたディジタルフィルタ回路の構成例を示すブロック図である。
【図１０】周波数領域においてフィルタ処置を行うディジタルフィルタ回路の構成例を示すブロック図である。
【発明を実施するための形態】
【００２７】
次に、本発明の実施形態について図面を参照して説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態にかかるディジタルフィルタ回路１０の構成を示すブロック図である。ディジタルフィルタ回路１０は、ＦＦＴ回路１３、ＩＦＦＴ回路１４、複素共役生成回路１５、複素共役合成回路１６、フィルタ回路２１、フィルタ回路２２、フィルタ係数生成回路４１、を備える。
【００２８】
ディジタルフィルタ回路１０は、時間領域における複素数信号
ｘ(n)＝ｒ(n)＋jｓ(n)      ・・・(1)
を入力する。
【００２９】
ＦＦＴ回路１３は、入力された複素数信号ｘ(n)を、ＦＦＴにより周波数領域の複素数信号
Ｘ(k)＝Ａ(k)＋jＢ(k)      ・・・(2)
に変換する。
【００３０】
ここで、nは時間領域上の信号サンプル番号を示す0≦n≦N−1の整数、NはＦＦＴの変換サンプル数を示す0＜Nの整数、kは周波数領域上の周波数番号を示す0≦k≦N−1の整数である。
【００３１】
また、ＦＦＴ回路１３は、Ｘ(k)から、
Ｘ(N−k)＝Ａ(N−k)＋jＢ(N−k)      ・・・(3)
を生成して出力する。
【００３２】
なお、ＦＦＴは、高速にフーリエ変換を行うための１つの手法である。フーリエ変換の処理形態や処理速度は本発明にとって本質的問題ではない。従って、ＦＦＴ回路１３の代わりに、ＦＦＴ以外の方式によるフーリエ変換を行う回路が用いられても何ら差し支えない。以上のことは、後述のＩＦＦＴについても同様である。
【００３３】
複素共役生成回路１５は、0≦k≦N−1の周波数番号kのそれぞれについて、ＦＦＴ回路１３が出力するＸ(N−k)を入力し、Ｘ(N−k)の複素共役
Ｘ*(N−k)＝Ａ(N−k)−jＢ(N−k)      ・・・(4)
を生成する。
【００３４】
複素共役生成回路１５は、入力した複素数信号Ｘ(k)を複素数信号３２として出力し、生成した複素数信号Ｘ*(N−k)を複素数信号３３として出力する。
【００３５】
次に、フィルタ係数生成回路４１は、0≦k≦N−1の周波数番号kのそれぞれについて、入力した複素数係数Ｖ(k)、Ｗ(k)、及びＨ(k)から、複素数係数
Ｃ1(k)＝{Ｖ(k)＋Ｗ(k)}×Ｈ(k)      ・・・(5)
及び、複素数係数
Ｃ2(k)＝{Ｖ(k)−Ｖ(k)}×Ｈ(k)      ・・・(6)
を生成する。
【００３６】
ここで複素数係数Ｖ(k)、Ｗ(k)、及びＨ(k)は、ディジタルフィルタ回路１０の上位回路（図示せず）から与えられる周波数領域での係数で、時間領域での実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する。Ｖ(k)、Ｗ(k)、及びＨ(k)の詳細に関しては後述する。
【００３７】
フィルタ係数生成回路４１は、生成した複素数係数Ｃ1(k)を複素数信号４５として出力する。また、フィルタ係数生成回路４１は、複素数信号Ｃ2(k)（式(6)）から複素数信号Ｃ2(N−k)を生成し、複素数信号４６として出力する。
【００３８】
次に、フィルタ回路２１は、複素共役生成回路１５が複素数信号３２に出力するＸ(k)（式(2)）に対して、フィルタ係数生成回路４１が複素数信号４５に出力するＣ1(k)（式(5)）を用いて、複素数乗算による複素数フィルタ処理を行う。具体的には、フィルタ回路２１は、0≦k≦N−1の周波数番号kのそれぞれについて、複素数信号
Ｘ'(k)＝Ｘ(k)×Ｃ1(k)      ・・・(7)
を計算して、複素数信号３４として出力する。
【００３９】
同様に、フィルタ回路２２は、複素共役生成回路１５が複素数信号３３に出力するＸ*(N−k)（式(4)）に対して、フィルタ係数生成回路４１が複素数信号４６に出力するＣ2(N−k)（式(6)）を用いて、複素数乗算による複素数フィルタ処理を行う。具体的には、フィルタ回路２２は、0≦k≦N−1の周波数番号kのそれぞれについて、複素数信号
Ｘ*'(N−k)＝Ｘ*(N−k)×Ｃ2(N−k)      ・・・(8)
を計算して、複素数信号３５として出力する。
【００４０】
Ｃ1(k)、Ｃ2(k)は、それぞれ、実数部と虚数部に分けて、
Ｃ1(k)＝Ｃ1I(k)＋jＣ1Q(k)      ・・・(9)
Ｃ2(k)＝Ｃ2I(k)＋jＣ2Q(k)      ・・・(10)
と書くことができる。
【００４１】
次に、複素共役合成回路１６は、フィルタ回路２１が複素数信号３４に出力するＸ'(k)（式(7)）と、フィルタ回路２２が複素数信号３５に出力するＸ*'(N−k)（式(8)）とを合成した複素数信号Ｘ"(k)を生成する。具体的には、複素共役合成回路１６は、0≦k≦N−1の周波数番号kのそれぞれについて、
Ｘ"(k)＝1/2×{Ｘ'(k)＋Ｘ*'(N−k)}      ・・・(11)
を計算して、複素数信号３６として出力する。
【００４２】
次に、ＩＦＦＴ回路１４は、0≦k≦N−1の周波数番号kのそれぞれについて、複素共役合成回路１６が複素数信号３６に出力するＸ"(k)（式(11)）に対して、ＩＦＦＴにより時間領域の複素数信号ｘ"(n)を生成して出力する。
【００４３】
図２は、複素共役生成回路１５の構成の詳細を示すブロック図である。複素共役生成回路１５は、ＦＦＴ回路１３の出力Ｘ(k)（＝Ａ(k)＋jＢ(k)。式(2)）を入力してそのまま出力すると共に、出力Ｘ(N−k)（＝Ａ(N−k)＋jＢ(N−k)。式(3)）を入力して、
Ｘ*(N−k)＝Ａ(N−k)−jＢ(N−k)      ・・・(4)
を計算して出力する。
【００４４】
Ｘ(k)、Ｘ*(N−k)は、それぞれ、実数部と虚数部に分けて、
Ｘ(k)＝ＸI(k)＋jＸQ(k)                 ・・・(12)
Ｘ*(N−k)＝Ｘ*I(N−k)＋jＸ*Q(N−k)      ・・・(13)
と書くことができる。
【００４５】
図３は、フィルタ回路２１の構成の詳細を示すブロック図である。フィルタ回路２１は、複素共役生成回路１５が複素信号線３２に出力するＸ(k)（＝ＸI(k)＋jＸQ(k)。式(12)）と、複素数係数Ｃ1(k)（＝Ｃ1I(k)＋jＣ1Q(k)。式(9)）を入力して、
Ｘ'(k)＝ＸI'(k)＋jＸQ'(k)
＝Ｘ(k)×Ｃ1(k)      ・・・(14)
を計算して出力する。
【００４６】
ここで、ＸI'(k)及びＸQ'(k)は、それぞれＸ'(k)の実数部と虚数部であり、次式で与えられる。
【００４７】
ＸI'(k)＝ＸI(k)×Ｃ1I(k)−ＸQ(k)×Ｃ1Q(k)      ・・・(15)
ＸQ'(k)＝ＸI(k)×Ｃ1Q(k)＋ＸQ(k)×Ｃ1I(k)      ・・・(16)
図４は、フィルタ回路２２の構成の詳細を示すブロック図である。フィルタ回路２２は、複素共役生成回路１５が複素信号線３３に出力するＸ*(N−k)（＝Ｘ*I(N−k)＋jＸ*Q(N−k)。式(13)）と複素数係数Ｃ2(k)（＝Ｃ2I(k)＋jＣ2Q(k)。式(10)）を入力して、
Ｘ*'(N−k)＝Ｘ*I'(N−k)＋jＸ*Q'(N−k)
＝Ｘ*(N−k)×Ｃ2(N−k)      ・・・(17)
を計算して出力する。
【００４８】
ここで、Ｘ*I'(N−k)及びＸ*Q'(N−k)は、それぞれＸ*'(N−k)の実数部と虚数部であり、次式で与えられる。
【００４９】
Ｘ*I'(N−k)＝Ｘ*I(N−k)×Ｃ2I(N−k)−Ｘ*Q(N−k)×Ｃ2Q(N−k)・・・(18)
Ｘ*Q'(N−k)＝Ｘ*I(N−k)×Ｃ2Q(N−k)＋Ｘ*Q(N−k)×Ｃ2I(N−k)・・・(19)
図５は、複素共役合成回路１６の構成の詳細を示すブロック図である。複素共役合成回路１６は、0≦k≦N−1の周波数番号kのそれぞれについて、フィルタ回路２１が複素数信号３２に出力するＸ'(k)（＝ＸI'(k)＋jＸQ'(k)。式(14)）と、フィルタ回路２２が複素数信号３３に出力するＸ*'(N−k)（＝Ｘ*I'(N−k)＋jＸ*Q'(N−k)。式(17)）とを入力して、
Ｘ"(k)＝ＸI"(k)＋jＸQ"(k)
＝1/2{Ｘ'(k)＋Ｘ*'(N−k)}      ・・・(20)
を計算して出力する。
【００５０】
ここで、ＸI"(k)及びＸQ"(k)は、それぞれＸ"(k)の実数部と虚数部であり、次式で与えられる。
【００５１】
ＸI"(k)＝1/2{ＸI'(k)＋Ｘ*I'(N−k)}      ・・・(21)
ＸQ"(k)＝1/2{ＸQ'(k)＋Ｘ*Q'(N−k)}      ・・・(22)
ここで、ＸI'(k)、ＸQ'(k)、Ｘ*I'(N−k)、Ｘ*Q'(N−k)は、それぞれ式(15)、(16)、(18)、(19)の通りである。
【００５２】
フィルタ係数生成回路４１は、フィルタ回路２１、２２で用いられる複素数係数Ｃ1(k)、Ｃ2(k)を生成する。図６は、フィルタ係数生成回路４１の構成の詳細を示すブロック図である。フィルタ係数生成回路４１は、0≦k≦N−1の周波数番号kのそれぞれについて、上位回路（図示せず）から入力された複素数係数Ｖ(k)、Ｗ(k)から、Ｖ(k)＋Ｗ(k)及びＶ(k)−Ｗ(k)を計算する。
【００５３】
ここで、
Ｖ(k)＋Ｗ(k)＝ＶI(k)＋ＷI(k)＋jＶQ(k)＋jＷQ(k)      ・・・(23)
Ｖ(k)−Ｗ(k)＝ＶI(k)−ＷI(k)＋jＶQ(k)−jＷQ(k)      ・・・(24)
である。ＶI(k)及びＶQ(k)は、それぞれＶ(k)の実数部と虚数部であり、ＷI(k)及びＷQ(k)は、それぞれＷ(k)の実数部と虚数部である。
【００５４】
また、Ｈ(k)も実数部と虚数部とに分けて、
Ｈ(k)＝ＨI(k)＋jＨQ(k)      ・・・(25)
と書くことができる。
【００５５】
次に、フィルタ係数生成回路４１は、以下の式で定義された複素数係数Ｃ1(k)及びＣ2(k)を計算して出力する。
【００５６】
Ｃ1(k)＝Ｃ1I(k)＋jＣ1Q(k)
＝{Ｖ(k)＋Ｗ(k)}×Ｈ(k)      ・・・(26)
Ｃ2(k)＝Ｃ2I(k)＋jＣ2Q(k)
＝{Ｖ(k)−Ｗ(k)}×Ｈ(k)        ・・・(27)
ここで、Ｃ1I(k)、Ｃ1Q(k)は、それぞれＣ1(k)の実数部と虚数部であり、Ｃ2I(k)、Ｃ2Q(k)は、それぞれＣ2(k)の実数部と虚数部である。
【００５７】
式(26)に式(23)、(25)を代入して、
Ｃ1(k)＝{ＶI(k)＋ＷI(k)＋jＶQ(k)＋jＷQ(k)}×{ＨI(k)＋jＨQ(k)}・・・(28)
である。
【００５８】
従って、
Ｃ1I(k)＝{ＶI(k)＋ＷI(k)}×ＨI(k)−{ＶQ(k)＋ＷQ(k)}×ＨQ(k)・・・(29)
Ｃ1Q(k)＝{ＶQ(k)＋ＷQ(k)}×ＨI(k)＋{ＶI(k)＋ＷI(k)}×ＨQ(k)・・・(30)
である。
【００５９】
同様に、式(27)に式(24)、(25)を代入して、
Ｃ2(k)＝Ｃ2I(k)＋jＣ2Q(k)
＝{Ｖ(k)−Ｗ(k)}×Ｈ(k)
＝{ＶI(k)−ＷI(k)＋jＶQ(k)−jＷQ(k)}×{ＨI(k)＋jＨQ(k)}・・・(31)
である。
【００６０】
従って、
Ｃ2I(k)＝{ＶI(k)−ＷI(k)}×ＨI(k)−{ＶQ(k)−ＷQ(k)}×ＨQ(k)・・・(32)
Ｃ2Q(k)＝{ＶQ(k)−ＷQ(k)}×ＨI(k)＋{ＶI(k)−ＷI(k)}×ＨQ(k)・・・(33)
である。
【００６１】
以上のように、ディジタルフィルタ回路１０は、時間領域の入力信号をＦＦＴ変換して周波数領域の複素数信号を生成する。そして、ディジタルフィルタ回路１０は、周波数領域の複素数信号の実数部、虚数部のそれぞれを、Ｖ(k)、Ｗ(k)、Ｈ(k)から生成された２種類の係数を用いて独立にフィルタ処理し、その結果をＩＦＦＴによって時間領域の信号に変換する。このように、ディジタルフィルタ回路１０では、ＦＦＴとＩＦＦＴは、それぞれ、時間領域の入力信号に対して１回のみ実行される。
【００６２】
フィルタ処理に用いられる２種類の係数が、ＦＦＴ及びＩＦＦＴの回数の最小化を可能にする。以下に、Ｖ(k)、Ｗ(k)、Ｈ(k)の物理的な意味と、これらから生成された係数Ｃ1(k)及びＣ2(k)を用いたフィルタ処理により、時間領域での所望のフィルタ処理と同等の、周波数領域でのフィルタ処理が可能となる原理を説明する。
【００６３】
本実施形態では、入力する時間領域の複素数信号ｘ(n)（＝ｒ(n)＋jｓ(n)。式(1)）を複素ＦＦＴした周波数領域の複素数信号
Ｘ(k)＝Ｒ(k)＋jＳ(k)      ・・・(34)
から、複素共役生成回路１５がＸ*(N−k)を生成する。
【００６４】
ここで、Ｒ(k)は、時間領域における実数の実数部信号ｒ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号、Ｓ(k)は時間領域における実数の虚数部信号ｓ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号である。このとき、複素共役の対称性から次式が成立する。
【００６５】
Ｘ*(N−k)＝Ｒ(k)−jＳ(k)      ・・・(35)
ここで、Ｘ*(N−k)は、Ｘ(N−k)の複素共役である。
【００６６】
式(14)、(34)、(26)から、
Ｘ'(k)＝Ｘ(k)×Ｃ1(k)
＝{Ｒ(k)＋jＳ(k)}×{Ｖ(k)＋Ｗ(k)}×Ｈ(k)
＝Ｒ(k)Ｖ(k)Ｈ(k)＋Ｒ(k)Ｗ(k)Ｈ(k)＋jＳ(k)Ｖ(k)Ｈ(k)＋jＳ(k)      Ｗ(k)Ｈ(k)・・・(36)
となる。
【００６７】
また、式(17)、(35)、(27)から、
Ｘ*'(N−k)＝Ｘ*(N−k)×Ｃ2(N−k)
＝{Ｒ(k)−jＳ(k)}×{Ｖ(k)−Ｗ(k)}×Ｈ(k)
＝Ｒ(k)Ｖ(k)Ｈ(k)−Ｒ(k)Ｗ(k)Ｈ(k)−jＳ(k)Ｖ(k)Ｈ(k)＋jＳ(k)Ｗ(k)Ｈ(k)      ・・・(37)
となる。
【００６８】
式(20)に、式(36)、(37)を代入すると、
Ｘ"(k)＝1/2×{Ｘ'(k)＋Ｘ*'(N−k)}
＝1/2×{2×Ｒ(k)Ｖ(k)Ｈ(k)＋2×jＳ(k)Ｗ(k)Ｈ(k)}
＝Ｒ(k)Ｖ(k)Ｈ(k)＋jＳ(k)Ｗ(k)Ｈ(k)
＝{Ｒ(k)Ｖ(k)＋jＳ(k)Ｗ(k)}×Ｈ(k)      ・・・(38)
となる。
【００６９】
式(38)は、ＩＦＦＴ前の信号Ｘ"(k)を、フィルタ係数Ｖ(k)、Ｗ(k)及びＨ(k)と、ＦＦＴ後の信号Ｘ(k)におけるＲ(k)及びＳ(k)を用いて表したものである。Ｒ(k)は、時間領域における実数の実数部信号ｒ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号である。Ｓ(k)は、時間領域における実数の虚数部信号ｓ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号である。つまり、式(38)は、ＦＦＴ後の信号Ｘ(k)に対して施されるフィルタ処理の内容を表す。式(38)から、ディジタルフィルタ回路１０は、複素数信号ｘ(n)＝ｒ(n)＋jｓ(n)が実数ＦＦＴにより変換されて生成された、周波数領域の複素数信号Ｘ(k)（＝Ｒ(k)＋jＳ(k)。式(34)）に対して、以下の３つのフィルタ処理と同等の処理を行うことがわかる。
１）Ｒ(k)に対する係数Ｖ(k)によるフィルタ処理
まず、ディジタルフィルタ回路１０は、時間領域における実数部信号ｒ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号Ｒ(k)に対して、フィルタ係数Ｖ(k)によるフィルタ処理を行う。従って、Ｖ(k)には、実数部信号ｒ(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
２）Ｓ(k)に対する係数Ｗ(k)によるフィルタ処理
同様に、ディジタルフィルタ回路１０は、時間領域における虚数部信号ｓ(n)が実数ＦＦＴにより変換された周波数領域の複素数信号Ｓ(k)に対して、フィルタ係数Ｗ(k)によるフィルタ処理を行う。従って、Ｗ(k)には、虚数部信号ｓ(n)に対して時間領域で実数演算によるフィルタ処理を行った場合の、実数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てられる。
３）１）、２）のフィルタ処理結果に対する係数Ｈ(k)によるフィルタ処理
次に、ディジタルフィルタ回路１０は、それぞれ独立に処理された上記の２つのフィルタ処理後の、Ｒ(k)Ｖ(k)及びＳ(k)Ｗ(k)からなる複素数信号Ｒ(k)Ｖ(k)＋jＳ(k)Ｗ(k)に対して、フィルタ係数Ｈ(k)によるフィルタ処理を行う。
【００７０】
Ｒ(k)Ｖ(k)＋jＳ(k)Ｗ(k)は、時間領域における実数部信号ｒ(n)及び虚数部信号ｓ(n)のそれぞれに独立にフィルタ処理した２つの信号からなる時間領域の信号に対応する、周波数領域の複素数信号である。実数部信号ｒ(n)及び虚数部信号ｓ(n)をそれぞれに独立にフィルタ処理した信号とは、図９、１０における、ｒ'(n)、ｓ'(n)に相当する。そして、ｒ'(n)、ｓ'(n)からなる時間領域の信号とは、図９、１０のx’(n)に相当する。このように、Ｒ(k)Ｖ(k)＋jＳ(k)Ｗ(k)は、時間領域において実数部及び虚数部のそれぞれに独立にフィルタ処理した時間領域の信号に対応する、周波数領域の信号である。
【００７１】
従って、時間領域における複素数信号に対する複素数演算によるフィルタ処理に相当する処理を、周波数領域の信号Ｒ(k)Ｖ(k)＋jＳ(k)Ｗ(k)に対して行うには、次のような係数を用いればよい。すなわち、Ｈ(k)には、複素数信号ｘ(n)に対して時間領域で複素数演算によるフィルタ処理を行った場合の、複素数フィルタ係数に対応する、周波数領域での複素数フィルタ係数が割り当てればよい。
【００７２】
以上のように、本実施形態では、外部から３種類の係数が設定される。すなわち、複素数信号ｘ(n)の実数部及び虚数部のそれぞれに対する時間領域でのフィルタ係数に対応する周波数領域のフィルタ係数Ｖ(k)、Ｗ(k)と、ｘ(n)に対する時間領域でのフィルタ係数に対応する周波数領域の係数Ｈ(k)が設定される。以上の３つの係数から求めた２つの係数を用いたフィルタ処理を行うことにより、フィルタ処理の前のＦＦＴ及びフィルタ処理後のＩＦＦＴをそれぞれ１回のみとすることができる。
【００７３】
ところで、ディジタルフィルタ回路１０におけるＦＦＴとＩＦＦＴは、それぞれ通常の変換であり、本発明に独自の処理は行われない。そのため、ＦＦＴとＩＦＦＴは、ディジタルフィルタ回路１０の外部の回路によって処理されてもよい。すなわち、ディジタルフィルタ回路は、外部のフーリエ変換回路からの信号を入力してフィルタ処理のみを行い、処理結果を外部の逆フーリエ変換回路に出力してもよい。従って、本実施形態のフィルタ回路の必須の構成のみを備えるディジタルフィルタ回路１１０のブロック図は、図７のようになる。図７のブロック図は、図１の構成から、ＦＦＴ回路１３、IＦＦＴ回路１４を除いたものである。ディジタルフィルタ回路１１０は、複素共役生成回路１５、複素共役合成回路１６、フィルタ回路２１、フィルタ回路２２、フィルタ係数生成回路４１を備える。これら各ブロックの機能はディジタルフィルタ回路１０のものと同じであるため、説明は省略する。
【００７４】
ＦＦＴとＩＦＦＴの処理を外部で行う場合も、ＦＦＴ、ＩＦＦＴを行う回路はそれぞれ１個のみでよく、実数部用、虚数部用のように、複数個用いる必要はない。
（第１の実施形態の効果）
以上のように、本実施形態によれば、複素数信号の実数部及び虚数部のそれぞれに対する時間領域でのフィルタ係数に対応する、２種類の周波数領域のフィルタ係数と、複素信号に対する時間領域でのフィルタ係数に対応する周波数領域の係数を用いたフィルタ処理が行われる。すなわち、時間領域における複素数信号の実数部及び虚数部のそれぞれに対する実数演算による独立したフィルタ処理と、時間領域における複素数信号に対する複素数演算によるフィルタ処理と、に対応する周波数領域におけるフィルタ処理が行われる。従って、フィルタ処理前のＦＦＴを行うＦＦＴ回路及びフィルタ処理後のＩＦＦＴを行うＩＦＦＴ回路を、それぞれ１個のみを用いて、所望のフィルタ処理を実現することができる。その結果、フィルタ処理を行うための回路規模や消費電力の低減を図ることができるという効果がある。
（第２の実施形態）
第１の実施形態では、ＦＦＴ、ＩＦＦＴ、共役複素数の生成及び合成、フィルタ係数の算出、フィルタ処理の各処理は、すべて個別の回路等の構成要素によって処理されることが想定されている。本発明の各処理は、第１の実施形態のような形態ではなく、所定の装置が備えるコンピュータ、例えば、ＤＳＰ（Digital Signal Processor）等を用いたソフトウェアによって実行されてもよい。
【００７５】
第２の実施形態では、コンピュータプログラムによってフィルタ処理を行う場合の例を示す。コンピュータプログラムはＤＳＰ（図示なし）によって読み込まれ、実行される。なお、本実施形態では、プログラム処理を行うコンピュータ以外のハードウェアは使用されないので、実施形態の構成は特に図示しない。
【００７６】
図８Ａ、８Ｂは、本発明の第２の実施形態の、フィルタ処理プログラムの処理手順の例を示すフローチャートである。以下の説明に用いられている、Ｘ(k)等の信号名やＶ(k)等の情報名は、すべて第１の実施形態で用いられているものと同じである。
【００７７】
図８Ａの処理では、まず初めに、ＤＳＰは、Ｖ(k)、Ｗ(k)、及びＨ(k)から、Ｃ1(k)、Ｃ2(k)を求める（ステップＳ０）。なお、ステップ０の処理は、後述のフィルタ処理（ステップＳ３、Ｓ４）までに実施されればよく、必ずしも最初に実行される必要はない。
【００７８】
次に、ＤＳＰは、入力信号Ｘ(n)をフーリエ変換し、Ｘ(k)、Ｘ(N-k)を生成するする（ステップＳ１）。
【００７９】
さらに、ＤＳＰは、Ｘ(N-k)の共役複素数Ｘ*(N-k)を求める（ステップＳ２）。
【００８０】
そして、ＤＳＰは、Ｃ1(k)を用いてＸ(k)をフィルタ処理し、Ｘ'(k)を生成する（ステップＳ３）。また、ＤＳＰは、Ｃ2(k)を用いてＸ*(N-k)をフィルタ処理し、Ｘ*'(N-k)を生成する（ステップＳ４）。ステップＳ３とステップＳ４の処理順序は、上記と逆であってもよい。
【００８１】
次に、ＤＳＰは、Ｘ'(k)とＸ*'(N-k)を合成し、Ｘ"(k)を求める（ステップＳ５）。
【００８２】
最後に、ＤＳＰは、Ｘ"(k)を逆フーリエ変換し、ｘ"(n)を求める（ステップＳ６）。
【００８３】
以上のように、第２の実施形態のフィルタ処理の内容は第１の実施形態と同じである。従って、第２の実施形態のフィルタ処理には第１の実施形態と同様の効果がある。
【００８４】
なお、フィルタ係数Ｃ1(k)、Ｃ2(k)の算出は、別個のプログラムによって予め行われてもよい。その場合、ステップ０の処理は不要となるので、動作を示すフローチャートは、図８Ｂのようになる。さらに、ＦＦＴ、ＩＦＦＴ等、個別の処理が、他のプロセッサによって処理されてもよい。
【００８５】
上記のフィルタ処理プログラムは、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等の、非一時的な媒体に格納されてもよい。
【００８６】
第１の実施形態と第２の実施形態は組み合わされてもよい。すなわち、一部の処理はハードウェアによって処理され、他の処理はソフトウェアによって処理されてもよい。例えば、ＦＦＴとＩＦＦＴは、それぞれＦＦＴ回路１３、ＩＦＦＴ回路１４を用いて処理され、その他の処理はソフトウェアによって行われてもよい。ハードウェアによる処理とソフトウェアによる処理の分担は任意である。
【００８７】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８８】
この出願は、２０１２年２月２０日に出願された日本出願特願２０１２−０３４００２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００８９】
１０    ディジタルフィルタ回路
１３    ＦＦＴ回路
１４    ＩＦＦＴ回路
１５    複素共役生成回路
１６    複素共役合成回路
２１    フィルタ回路
２２    フィルタ回路
３１〜３６    複素数信号
４１    フィルタ係数生成回路
４５、４６    複素数信号
１００    ディジタルフィルタ回路
１０１〜１０３    ＦＩＲフィルタ
１１１〜１１３    周波数領域フィルタ回路
【図１】
2013125173.tif 000003
【図２】
2013125173.tif 000004
【図３】
2013125173.tif 000005
【図４】
2013125173.tif 000006
【図５】
2013125173.tif 000007
【図６】
2013125173.tif 000008
【図７】
2013125173.tif 000009
【図８Ａ】
2013125173.tif 000010
【図８Ｂ】
2013125173.tif 000011
【図９】
2013125173.tif 000012
【図１０】
2013125173.tif 000013
【手続補正書】
【提出日】平成26年7月22日(2014.7.22)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
演算装置が備えるコンピュータを、
フーリエ変換により時間領域の複素数信号が変換され生成された周波数領域の第１の複素数信号を構成するすべての複素数のそれぞれの共役複素数を含む第２の複素数信号を生成する複素共役生成手段と、
入力された複素数の第１、第２及び第３の入力フィルタ係数から、複素数の第１及び第２の周波数領域フィルタ係数を生成するフィルタ係数生成手段と、
前記第１の複素数信号に対して前記第１の周波数領域フィルタ係数によりフィルタ処理を行い、第３の複素数信号を出力する第１のフィルタ処理手段と、
前記第２の複素数信号に対して前記第２の周波数領域フィルタ係数によりフィルタ処理を行い、第４の複素数信号を出力する第２のフィルタ処理手段と、
前記第３の複素数信号と、前記第４の複素数信号とを合成して第５の複素数信号を生成する複素共役合成手段
として機能させるためのディジタルフィルタ処理プログラム。
【国際調査報告】
2013125173.tif 000014
2013125173.tif 000015
2013125173.tif 000016
2013125173.tif 000017