(57)【要約】【課題】  回路規模の削減および処理内容の簡素化が可能な周波数成分分離フィルタ、方法およびプログラムを提供すること。【解決手段】  周波数成分分離フィルタ１００は、入力データに対してＮ個の移動平均を計算する遅延回路１１０、１１２、加算器１２０、１２２、Ｄ型フリップフロップ１３０、係数乗算器１３２からなる移動平均演算手段と、移動平均の計算対象となっているＮ個の入力データの中から中央の入力データを取り出してこの入力データの値から移動平均値を減算する加算器１２４からなる減算手段とを備えている。加算器１２４と係数乗算器１３２の各出力が同時に取り出される。【選択図】        図１
2007201521.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対して所定個数Ｎの移動平均を計算する移動平均演算手段と、
前記移動平均の計算対象となっている前記所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から前記移動平均演算手段による計算によって得られた移動平均値を減算する減算手段と、
を備え、前記移動平均演算手段による計算結果を第１の出力として、前記減算手段による減算結果を第２の出力として取り出すことを特徴とする周波数成分分離フィルタ。
【請求項２】
請求項１において、
前記移動平均演算手段は、前記所定個数Ｎの入力データの値を累積する累積手段と、前記累積手段によって累積された値に対して１／Ｎを係数として乗算する係数乗算手段とを有することを特徴とする周波数成分分離フィルタ。
【請求項３】
請求項２において、
前記累積手段の出力を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離フィルタ。
【請求項４】
請求項２において、
前記累積手段は、
Ｎ−１個の前記入力データを入力順に保持して出力する遅延手段と、
前記入力データに累積値を加算する第１の加算手段と、
前記第１の加算手段による加算結果を、前記入力データの入力間隔に相当する時間保持して出力するデータ保持手段と、
前記データ保持手段から出力されるデータから前記遅延手段の出力データを減算した結果を前記累積値として前記第１の加算手段と前記係数乗算手段のそれぞれに向けて出力する第２の加算手段と、
を有することを特徴とする周波数成分分離フィルタ。
【請求項５】
請求項４において、
前記第１の加算手段、前記データ保持手段、前記第２の加算手段のいずれかの出力を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離フィルタ。
【請求項６】
請求項４または５において、
前記遅延手段は、（Ｎ−１）／２個の前記入力データを入力順に保持して出力する縦続接続された第１および第２の分割遅延手段を有しており、
前段の前記第１の分割遅延手段から出力されるデータを前記中央あるいはその近傍の入力データとして前記減算手段に入力することを特徴とする周波数成分分離フィルタ。
【請求項７】
請求項６において、
前記遅延手段は、半導体メモリによって形成されていることを特徴とする周波数成分分離フィルタ。
【請求項８】
請求項１〜７のいずれかにおいて、
前記入力データは、所定のサンプリング周波数ｆに対応する音声データであり、
ｆ／Ｎの値が音声の可聴範囲の下限値以下となるようにＮの値が設定されることを特徴とする周波数成分分離フィルタ。
【請求項９】
請求項２〜７のいずれかにおいて、
前記所定個数Ｎは２のべき乗の数であり、前記係数乗算手段は、ビット位置をシフトさせることで１／Ｎを係数とする乗算を行うことを特徴とする周波数成分分離フィルタ。
【請求項１０】
入力データに対して所定個数Ｎの移動平均を計算する第１のステップと、
前記移動平均の計算対象となっている前記所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から前記移動平均の計算結果を減算する第２のステップと、
を有し、前記第１のステップにおける計算結果を第１の出力として、前記第２のステップにおける減算結果を第２の出力として取り出すことを特徴とする周波数成分分離方法。
【請求項１１】
請求項１０において、
前記第１のステップは、前記所定個数Ｎの入力データの値を累積する第３のステップと、前記第３のステップにおいて累積された値に対して１／Ｎを係数として乗算する第４のステップとを有することを特徴とする周波数成分分離方法。
【請求項１２】
請求項１１において、
前記第３のステップにおける累積結果を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離方法。
【請求項１３】
請求項１１において、
前記第３のステップは、
Ｎ−１個の前記入力データを入力順に保持して出力する第５のステップと、
前記入力データに累積値を加算する第６のステップと、
前記第６のステップにおける加算結果を前記入力データの入力間隔に相当する時間保持して出力する第７のステップと、
前記第７のステップにおいて出力されるデータから前記第５のステップにおける出力データを減算した結果を前記累積値として計算する第８のステップと、
を有することを特徴とする周波数成分分離方法。
【請求項１４】
請求項１３において、
前記第６のステップ、前記第７のステップ、前記第８のステップのいずれかにおける処理結果を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離方法。
【請求項１５】
請求項１３または１４において、
前記第５のステップは、（Ｎ−１）／２個の前記入力データを入力順に保持して出力する第９のステップと、この第９のステップにおいて出力される（Ｎ−１）／２個の前記入力データを入力順に保持して出力する第１０のステップとを有しており、
前記第９のステップにおいて出力されるデータを前記中央あるいはその近傍の入力データとして前記第２のステップにおいて使用することを特徴とする周波数成分分離方法。
【請求項１６】
コンピュータを、
入力データに対して所定個数Ｎの移動平均を計算する移動平均演算手段と、
前記移動平均の計算対象となっている前記所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から前記移動平均演算手段による計算によって得られた移動平均値を減算する減算手段と、
して機能させ、前記移動平均演算手段による計算結果を第１の出力として、前記減算手段による減算結果を第２の出力として取り出すための周波数成分分離プログラム。
【請求項１７】
請求項１６において、
前記移動平均演算手段は、前記所定個数Ｎの入力データの値を累積する累積手段と、前記累積手段によって累積された値に対して１／Ｎを係数として乗算する係数乗算手段として機能する周波数成分分離プログラム。
【請求項１８】
請求項１７において、
前記累積手段の出力を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離プログラム。
【請求項１９】
請求項１７において、
前記累積手段は、
Ｎ−１個の前記入力データを入力順に保持して出力する遅延手段と、
前記入力データに累積値を加算する第１の加算手段と、
前記第１の加算手段による加算結果を、前記入力データの入力間隔に相当する時間保持して出力するデータ保持手段と、
前記データ保持手段から出力されるデータから前記遅延手段の出力データを減算した結果を前記累積値として前記第１の加算手段と前記係数乗算手段のそれぞれに向けて出力する第２の加算手段と、
して機能する周波数成分分離プログラム。
【請求項２０】
請求項１９において、
前記第１の加算手段、前記データ保持手段、前記第２の加算手段のいずれかの出力を前記第１の出力に代えて取り出すことを特徴とする周波数成分分離プログラム。
【請求項２１】
請求項１９または２０において、
前記遅延手段は、（Ｎ−１）／２個の前記入力データを入力順に保持して出力する縦続接続された第１および第２の分割遅延手段として機能し、
前段の前記第１の分割遅延手段から出力されるデータを前記中央あるいはその近傍の入力データとして前記減算手段に入力することを特徴とする周波数成分分離プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されるデジタルデータから直流成分とそれ以外の周波数成分を分離する周波数成分分離フィルタ、方法およびプログラムに関する。
【背景技術】
【０００２】
最近では、各種の信号処理をデジタル処理によって行う手法が多用されており、デジタルフィルタによって所望の周波数特性を有するハイパスフィルタ等の各種フィルタが実現されている（例えば、特許文献１参照。）。
【０００３】
図３は、デジタルフィルタによって実現される従来のハイパスフィルタの構成を示す図である。図３に示すハイパスフィルタは、非巡回型のＦＩＲフィルタであり、複数の遅延素子６１ａ〜６１ｎ、６２ａ〜６２ｎと、複数の係数乗算器６３、６４ａ〜６４ｎ、６５ａ〜６５ｎと、各係数乗算器の出力を加算する加算器とを含んで構成される。各係数乗算器の係数を左右対称に設定することにより、位相特性をリニアにすることができる。また、遅延素子の数（タップ数）を多くすることにより、急峻な特性を得ることができる。
【０００４】
図４は、ハイパスフィルタのタップ数と周波数特性の関係を示す図である。図４に示す特性は、サンプリング周波数ｆを５０ｋＨｚに設定し、タップ数を可変して周波数特性を計算したものである。Ａはタップ数を４０９７とした場合の周波数特性を、Ｂはタップ数を２０４９とした場合の周波数特性を、Ｃはタップ数を１０２５とした場合の周波数特性をそれぞれ示している。なお、タップ数をＮとしたときに、中央のタップに対応する係数乗算器６３の係数が１−１／Ｎに、それ以外の係数乗算器６４ａ〜６４ｎ、６５ａ〜６５ｎの各係数が−１／Ｎにそれぞれ設定されている。図４に示すように、タップ数を増やすことにより、直流成分近傍の成分のみを除去し、それ以上の周波数成分を振幅を変更せずに通過させるハイパスフィルタを実現することができる。なお、タップ数が４０９７の場合のカットオフ周波数はｆ／Ｎ＝５００００／４０９７＝１２．２Ｈｚになるため、このようなハイパスフィルタを用いることにより、混合回路の出力信号から直流成分を除去して、１２．２Ｈｚ以上の音声成分を取り出すことが可能になる。
【０００５】
また、ＦＩＲフィルタによって構成されるローパスフィルタも、図３に示したハイパスフィルタと同様の基本構造を有している（例えば、特許文献２参照。）。
【０００６】
入力データから直流成分とそれ以外の成分を分離する場合には、ほぼ同じカットオフ周波数を有するハイパスフィルタとローパスフィルタにこの入力信号を通して、低域成分（直流成分）とそれ以外の成分を別々に抽出することになる。
【特許文献１】特開平５−９０８９８号公報（第３頁、図９）
【特許文献２】特開平５−１５２８９１号公報（第２頁、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上述した特許文献１に開示された構成を有するハイパスフィルタは、Ｎ−１個の遅延素子の他に、Ｎ個の係数乗算器と加算器（２入力の加算器を考えた場合にはＮ−１個）が必要になって、回路規模が大きくなるという問題があった。特に、低いカットオフ周波数と平坦な通過域特性を実現しようとすると、タップ数を非常に大きな値（サンプリング周波数が５０ｋＨｚの上記の例では４０００程度）にする必要があり、回路規模がさらに増大する。また、このような構成を有するハイパスフィルタの処理をＤＳＰ等のプロセッサによる演算処理によって実現することもできるが、Ｎ回の乗算処理が必要になるため、処理内容が複雑化するという問題があった。
【０００８】
また、入力データから直流成分とそれ以外の成分を分離する場合には、同じカットオフ周波数を有するハイパスフィルタとローパスフィルタにこの入力信号を通すことになる。しかし、ＦＩＲフィルタで構成されるハイパスフィルタとローパスフィルタは同じ基本構造を有しているが、係数乗算器の係数が異なるため同じものを共通に使用することはできず、別部品として備える必要があり、回路規模がさらに大きくなるという問題があった。
【０００９】
本発明は、このような点に鑑みて創作されたものであり、その目的は、回路規模の削減および処理内容の簡素化が可能な周波数成分分離フィルタ、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、本発明の周波数成分分離フィルタは、入力データに対して所定個数Ｎの移動平均を計算する移動平均演算手段と、移動平均の計算対象となっている所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から移動平均演算手段による計算によって得られた移動平均値を減算する減算手段とを備え、移動平均演算手段による計算結果を第１の出力として、減算手段による減算結果を第２の出力として取り出している。
【００１１】
また、本発明の周波数成分分離方法は、入力データに対して所定個数Ｎの移動平均を計算する第１のステップと、移動平均の計算対象となっている所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から移動平均の計算結果を減算する第２のステップとを有し、第１のステップにおける計算結果を第１の出力として、第２のステップにおける減算結果を第２の出力として取り出している。
【００１２】
また、本発明の周波数成分分離プログラムは、コンピュータを、入力データに対して所定個数Ｎの移動平均を計算する移動平均演算手段と、移動平均の計算対象となっている所定個数Ｎの入力データの中から中央あるいはその近傍の入力データを取り出して、この入力データの値から移動平均演算手段による計算によって得られた移動平均値を減算する減算手段として機能させ、移動平均演算手段による計算結果を第１の出力として、減算手段による減算結果を第２の出力として取り出している。
【００１３】
入力データに対して移動平均を計算することにより、入力データに含まれる低域成分（直流成分）を抽出することができる。また、この低域成分を入力データから減算することにより、入力データに含まれる直流成分を除去することが可能になる。これにより、入力データに含まれる直流成分とそれ以外の周波数成分の両方を同時に取り出すことが可能になる。特に、移動平均と減算のみが行われているため、移動平均の計算対象に対応するような数の乗算手段（あるいはステップ）が不要になり、回路規模の削減や処理内容の簡素化が可能になる。
【００１４】
また、上述した移動平均演算手段は、所定個数Ｎの入力データの値を累積する累積手段と、累積手段によって累積された値に対して１／Ｎを係数として乗算する係数乗算手段とを有することが望ましい。あるいは、上述した第１のステップは、所定個数Ｎの入力データの値を累積する第３のステップと、第３のステップにおいて累積された値に対して１／Ｎを係数として乗算する第４のステップとを有することが望ましい。これにより、移動平均を計算する際の累積処理による丸め誤差の発生を防止することができ、計算精度の低下を抑えることができる。
【００１５】
また、上述した累積手段は、Ｎ−１個の入力データを入力順に保持して出力する遅延手段と、入力データに累積値を加算する第１の加算手段と、第１の加算手段による加算結果を入力データの入力間隔に相当する時間保持して出力するデータ保持手段と、データ保持手段から出力されるデータから遅延手段の出力データを減算した結果を累積値として第１の加算手段と係数乗算手段のそれぞれに向けて出力する第２の加算手段とを有することが望ましい。あるいは、上述した第３のステップは、Ｎ−１個の入力データを入力順に保持して出力する第５のステップと、入力データに累積値を加算する第６のステップと、第６のステップにおける加算結果を入力データの入力間隔に相当する時間保持して出力する第７のステップと、第７のステップにおいて出力されるデータから第５のステップにおける出力データを減算した結果を累積値として計算する第８のステップとを有することが望ましい。これにより、入力データが入力される毎に、新しい入力データを累積値に加算するとともに最も古い入力データの分を累積値から差し引いて累積値の更新を行うことができ、簡単な回路構成および少ない処理で移動平均を求めることが可能になる。
【００１６】
また、上述した累積手段、第１の加算手段、データ保持手段、第２の加算手段のいずれかの出力を第１の出力に代えて取り出すことが望ましい。あるいは、上述した第３のステップ、第６のステップ、第７のステップ、第８のステップのいずれかにおける処理結果を第１の出力に代えて取り出すことが望ましい。これらの処理結果は、累積結果そのものあるいは累積結果と同等であり、係数（１／Ｎ）を乗算する前に取り出すことにより、入力データに対して所定の利得で増幅した出力を得ることができる。しかも、係数（１／Ｎ）を乗算して下位ビットの情報が欠落する前のデータを取り出すことにより、Ｓ／Ｎ比やダイナミックレンジを向上させることができる。
【００１７】
また、上述した遅延手段は、（Ｎ−１）／２個の入力データを入力順に保持して出力する縦続接続された第１および第２の分割遅延手段を有しており、前段の第１の分割遅延手段から出力されるデータを中央あるいはその近傍の入力データとして減算手段に入力することが望ましい。あるいは、上述した第５のステップは、（Ｎ−１）／２個の入力データを入力順に保持して出力する第９のステップと、この第９のステップにおいて出力される（Ｎ−１）／２個の入力データを入力順に保持して出力する第１０のステップとを有しており、第９のステップにおいて出力されるデータを中央あるいはその近傍の入力データとして第２のステップにおいて使用することが望ましい。これにより、移動平均を求めるために使用した遅延手段の一部（第１の分割遅延手段）を用いることが可能になり、回路および処理の共用によるさらなる回路規模の削減および処理内容の簡素化が可能になる。
【００１８】
また、上述した遅延手段は、半導体メモリによって形成されていることが望ましい。これにより、規模の大きな遅延手段を容易に実現することができる。
【００１９】
また、上述した入力データは、所定のサンプリング周波数ｆに対応する音声データであり、ｆ／Ｎの値が音声の可聴範囲の下限値以下となるようにＮの値が設定されることが望ましい。これにより、移動平均の計算対象となる入力データの個数Ｎを設定することにより、ｆ／Ｎで示されるハイパスフィルタのカットオフ周波数を音声の可聴範囲よりも高くすることが容易となり、音声データに含まれる不要な直流成分を除去することができる。
【００２０】
また、上述した所定個数Ｎは２のべき乗の数であり、係数乗算手段は、ビット位置をシフトさせることで１／Ｎを係数とする乗算を行うことが望ましい。Ｎ＝２m とすると係数１／Ｎ＝１／２m の乗算は、ｍビット分下位にビット位置をシフトさせることにより行うことができ、しかもこの係数が固定の場合には、さらに簡単に配線を工夫してデータを取り出すビット位置をｍビット分上位側にシフトすることにより実現することができる。これにより、実質的に係数乗算手段を用いない周波数成分分離フィルタを構成することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を適用した一実施形態の周波数成分分離フィルタについて詳細に説明する。
【００２２】
図１は、一実施形態の周波数成分分離フィルタの構成を示す図である。図１に示す周波数成分分離フィルタ１００は、２つの遅延回路１１０、１１２と、３つの加算器１２０、１２２、１２４と、１つのＤ型フリップフロップ１３０と、１つの係数乗算器１３２とを含んで構成されている。この周波数成分分離フィルタ１００には、例えば５０ｋＨｚのサンプリング周波数ｆでサンプリングされた１６ビットの音声データが入力されている。
【００２３】
一方の遅延回路１１０は、タップ数が２Ｋ（＝２０４８）に設定されており、周波数成分分離フィルタ１００に入力される１６ビットのデジタルデータＤ１を入力順に２Ｋ個保持した後に出力する。同様に、他方の遅延回路１１２は、タップ数が２Ｋに設定されており、一方の遅延回路１１０から出力されるデジタルデータＤ２を入力順に２Ｋ個保持した後に出力する。これら２つの遅延回路１１０、１１２は、ともに中間タップを有しないため、シフトレジスタあるいはＲＡＭ等の半導体メモリを用いて実現することができる。
【００２４】
加算器１２０は、周波数成分分離フィルタ１００に入力されるデータＤ１と、後段の加算器１２２から出力されるデータＤ３とを加算する。Ｄ型フリップフロップ１３０は、加算器１２０から出力される加算結果としてのデータＤ４を１クロック分保持して出力する。加算器１２２は、Ｄ型フリップフロップ１３０に保持されたデータＤ５から、後段の遅延回路１１２から出力されるデータＤ６を減算した結果を出力する。
【００２５】
係数乗算器１３２は、係数ａが１／（４Ｋ＋１）＝１／４０９７に設定されており、加算器１２２から出力されるデータＤ３をａ倍した結果を出力する。加算器１２４は、前段の遅延回路１１０から出力されるデータＤ２から係数乗算器１３２の出力データＤ７を減算する。
【００２６】
上述した遅延回路１１０、１１２、加算器１２０、１２２、Ｄ型フリップフロップ１３０、係数乗算器１３２が第１のステップの動作を行う移動平均演算手段に、加算器１２４が第２のステップの動作を行う減算手段に、遅延回路１１０、１１２、加算器１２０、１２２、Ｄ型フリップフロップ１３０が第３のステップの動作を行う累積手段に、係数乗算器１３２が第４のステップの動作を行う係数乗算手段にそれぞれ対応する。２つの遅延回路１１０、１１２が第５のステップの動作を行う遅延手段に、一方の遅延回路１１０が第９のステップの動作を行う第１の分割遅延手段に、他方の遅延回路１１２が第１０のステップの動作を行う第２の分割遅延手段に、加算器１２０が第６のステップの動作を行う第１の加算手段に、加算器１２２が第８のステップの動作を行う第２の加算手段に、Ｄ型フリップフロップ１３０が第７のステップの動作を行うデータ保持手段にそれぞれ対応する。
【００２７】
本実施形態の周波数成分分離フィルタ１００はこのような構成を有しており、次に、その動作を説明する。
【００２８】
周波数成分分離フィルタ１００の動作開始時には、２つの遅延回路１１０、１１２およびＤ型フリップフロップ１３０がリセットされる。したがって、以後、周波数成分分離フィルタ１００が動作クロックに同期して動作を開始すると、最初の４Ｋ＋１（＝Ｎ）個のデータＤ１が入力されるまでは、Ｄ型フリップフロップ１３０に保持されたデータＤ５（＝Ｄ３）が加算器１２２を介して加算器１２０に入力されて入力データＤ１に加算されて累積される。
【００２９】
次に、４Ｋ＋２個目のデータＤ１が入力されてこれに対応する累積値がＤ型フリップフロップ１３０に保持されると、このタイミングに同期して後段の遅延回路１１２からは最初のデータＤ１が出力される。したがって、加算器１２２では、それまでの累積値（４Ｋ＋２個分の入力データＤ１の累積値）から最初のデータを差し引いて、２番目の入力データＤ１から４Ｋ＋２個目の入力データまでの４Ｋ＋１個分の累積値を出力する。このようにして、以後、新たなデータＤ１が入力される毎に、累積演算の対象となる４Ｋ＋１個の入力データＤ１を一つずつずらした累積処理が行われる。この累積処理されたデータＤ３は係数乗算器１３２によってａ（＝１／（４Ｋ＋１））倍された後に加算器１２４の一方の入力端に入力される。
【００３０】
また、このような累積処理と並行して、累積演算の対象となった４Ｋ＋１個の入力データＤ１の中央のデータＤ２が遅延回路１１０から取り出される。このデータＤ２は、加算器１２４の他方の入力端に入力される。加算器１２４では、係数乗算器１３２から出力されるデータＤ７を減算した結果を出力する。
【００３１】
ところで、加算器１２４の一方の入力端に入力されるデータＤ７は、４Ｋ＋１個の入力データＤ１を累積した後ａ（＝１／（４Ｋ＋１））倍して移動平均をとったものであるため、入力データＤ１を４Ｋ＋１個分平滑したものであり、入力データＤ１の低域成分（直流成分）を抽出したことになる。したがって、加算器１２４において、データＤ２からこの低域成分を減算することにより、直流成分を取り除いた高域成分のみを第２の出力として取り出すことができる。また、加算器１２４の一方の入力端に接続された係数乗算器１３２からは、入力データから直流成分を抽出して第１の出力として取り出すことができる。
【００３２】
実際に、図３に示した一般的な構成を有するＦＩＲフィルタにおいて、遅延素子６１ａ等の数を４Ｋ個に、係数乗算器６３の係数を（１−１／（４Ｋ＋１））に、係数乗算器６４ａ〜６４ｎの数を２Ｋ個に、係数乗算器６５ａ〜６５ｎの数を２Ｋ個に、それらの係数値ａ1 〜ａn を（−１／（４Ｋ＋１））にそれぞれ設定することにより、本実施形態の周波数成分分離フィルタ１００と等価な構成となる。これからも、本実施形態の周波数成分分離フィルタ１００が、直流成分を除去するハイパスフィルタとして動作し、しかも対称型のＦＩＲフィルタと同じようにリニアな位相特性を有することがわかる。
【００３３】
また、直流成分を抽出する部分（加算器１２４に入力されるデータＤ７を第１の出力として取り出す部分）については、図３に示した一般的な構成を有するＦＩＲフィルタにおいて、遅延素子６１ａ等の数を４Ｋ個に、係数乗算器６３の係数を（−１／（４Ｋ＋１））に、係数乗算器６４ａ〜６４ｎの数を２Ｋ個に、係数乗算器６５ａ〜６５ｎの数を２Ｋ個に、それらの係数値ａ1 〜ａn を（−１／（４Ｋ＋１））にそれぞれ設定することにより、本実施形態の周波数成分分離フィルタ１００と等価な構成となる。これからも、本実施形態の周波数成分分離フィルタ１００が、直流成分を抽出するローパスフィルタとして動作し、しかも対称型のＦＩＲフィルタと同じようにリニアな位相特性を有することがわかる。
【００３４】
図２は、周波数成分分離フィルタ１００の周波数特性をシミュレートした結果を示す図である。図２において、横軸は周波数を、縦軸は振幅値をそれぞれ示している。図２に示すように、本実施形態の周波数成分分離フィルタ１００を用いることにより、十数Ｈｚ以下の直流成分が除去された出力ＯＵＴ１と、十数Ｈｚ以下の直流成分が抽出された出力ＯＵＴ２を得ることができた。
【００３５】
このように、本実施形態の周波数成分分離フィルタ１００では、データに対して移動平均を計算することにより、入力データに含まれる低域成分（直流成分）を抽出することができる。また、この低域成分を入力データから減算することにより、入力データに含まれる直流成分を除去することが可能になる。これにより、入力データに含まれる直流成分とそれ以外の周波数成分の両方を同時に取り出すことが可能になる。特に、移動平均と減算のみが行われているため、移動平均の計算対象に対応するような数の乗算手段（あるいはステップ）が不要になり、回路規模の削減や処理内容の簡素化が可能になる。
【００３６】
また、上述した移動平均演算は、所定個数Ｎの入力データの値を累積するとともに、この累積された値に対して１／Ｎを係数として乗算することにより実現されている。これにより、移動平均を計算する際の累積処理による丸め誤差の発生を防止することができ、計算精度の低下を抑えることができる。特に、この累積処理を行うためには、入力データのビット数よりも１２ビット（累積処理の対象となる入力データの数が４Ｋ個の場合）多いデータを処理することが可能な加算器１２０、１２２、Ｄ型フリップフロップ１３０および係数乗算器１３２を備える必要があるが、これらによる回路規模の増大は遅延回路１１０、１１２の規模等に比べるとわずかであるといえる。
【００３７】
また、遅延回路１１０、１１２をＲＡＭ等の半導体メモリによって構成することにより、規模の大きな遅延回路を容易に実現することができる。
【００３８】
また、本実施形態の周波数成分分離フィルタ１００に入力されるデータは、所定のサンプリング周波数ｆに対応する音声データであり、ｆ／Ｎの値が音声の可聴範囲の下限値以下となるようにＮの値が設定されている。これにより、移動平均の計算対象となる入力データの個数Ｎを設定することにより、ｆ／Ｎで示されるハイパスフィルタのカットオフ周波数を音声の可聴範囲よりも高くすることが容易となり、音声データに含まれる不要な直流成分を除去することができる。
【００３９】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では、ＤＳＰやその他のプロセッサによってプログラム（周波数成分分離プログラム）を実行することにより周波数成分分離フィルタ１００の各構成部の機能を実現するようにしてもよい。
【００４０】
また、上述した実施形態では、係数乗算器１３２から出力されるデータＤ７を、入力データに含まれる直流成分として取り出しているが、図１において示すＡ（加算器１２２の出力）、Ｂ（Ｄ型フリップフロップ１３０の出力）、Ｃ（加算器１２０の出力）のいずれかから累積データあるいはこれと同等のデータを、係数乗算器１３２から出力されるデータＤ７の代わりに取り出すようにしてもよい。係数（１／Ｎ）を乗算する前のデータを取り出すことにより、入力データに対して所定の利得で増幅した出力を得ることができる。しかも、係数（１／Ｎ）を乗算して下位ビットの情報が欠落する前のデータを取り出すことにより、Ｓ／Ｎ比やダイナミックレンジを向上させることができる。
【００４１】
また、上述した実施形態では、音声データが入力される場合について説明したが、周波数成分分離フィルタ１００に入力されるデータは、音声以外のデジタルデータであってもよい。
【００４２】
また、上述した実施形態では、移動計算の対象となっている４Ｋ＋１個のデータの中の中央のデータＤ２を取り出して加算器１２４に入力したが、このデータＤ２は、中央位置からではなくその近傍から取り出すようにしてもよい。理論上は、リニアな位相特性を実現するためには、４Ｋ＋１個の中の中央のデータＤ２を取り出すことが望ましいが、実際にはデータＤ２を取り出す位置が若干中央からずれても位相特性が極端に悪化せずに周波数特性および位相特性をほぼ維持することができる。しかも、前段の遅延回路１１０によって保持されるデータ数と後段の遅延回路１１２によって保持されるデータ数の差を１あるいはその他の奇数に設定することにより、これらの値の合計値を奇数にすることができる。この場合には、係数乗算器１３２の係数ａ＝１／ＮのＮの値を偶数にすることができるため、さらにこのＮを２のべき乗の数にすることにより、係数乗算器１３２を簡単なビットシフト回路によって、あるいはさらに簡単には配線を工夫してデータを取り出すビット位置を上位側にシフトすることにより実現することができる。例えば、Ｎ＝４０９６＝２12とすると、下位の１２ビットの信号線を使用せずに下位から１３ビット目より上位の所定ビット数に対応する信号線のみを加算器１２４の一方端に接続し、これにより係数ａ＝１／２12の乗算処理を行うようにしてもよい。これにより、実質的に係数乗算器を用いない周波数成分分離フィルタ１００を構成することが可能になる。
【図面の簡単な説明】
【００４３】
【図１】一実施形態の周波数成分分離フィルタの構成を示す図である。
【図２】周波数成分分離フィルタの周波数特性をシミュレートした結果を示す図である。
【図３】従来のハイパスフィルタの構成を示す図である。
【図４】ハイパスフィルタのタップ数と周波数特性の関係を示す図である。
【符号の説明】
【００４４】
１００  周波数成分分離フィルタ
１１０、１１２  遅延回路
１２０、１２２、１２４  加算器
１３０  Ｄ型フリップフロップ
１３２  係数乗算器
【図１】
2007201521.tif 000003
【図２】
2007201521.tif 000004
【図３】
2007201521.tif 000005
【図４】
2007201521.tif 000006