(57)【要約】【課題】データに対してＮ倍のアップサンプリングを行うアップサンプリングフィルタで、使用する乗算器の数を削減する。【解決手段】２つ以上のデータ生成手段Ｃがデータの時系列値について予め設定された態様で異なる時刻の時系列値の和のデータ或いは差のデータを２種類以上生成し、データ選択手段１、Ｂがそれぞれ生成される１種類のデータを選択し、２つ以上の係数記憶手段Ｄがフィルタ係数に基づいて予め設定された２種類以上の係数を記憶し、係数選択手段２がそれぞれ記憶された１種類の係数を選択し、乗算手段Ｅが選択されたデータと係数を乗算し、総和手段３、４が乗算結果を総和し、出力候補値生成手段５〜８が予め設定された態様で総和結果に基づいて２種類以上の出力候補値を生成し、出力値選択手段９、１０が１種類の出力候補値を出力値として選択する。【選択図】  図５
2010148034.tif 000002
【特許請求の範囲】
【請求項１】
データに対してＮ倍のアップサンプリングを行うアップサンプリングフィルタにおいて、
前記データの時系列値について、予め設定された態様で、異なる時刻の時系列値の和のデータ或いは差のデータを２種類以上生成する２つ以上のデータ生成手段と、
前記データ生成手段のそれぞれについて生成されるデータの中から１種類のデータを選択するデータ選択手段と、
前記２つ以上のデータ生成手段に対応して設けられ、フィルタ係数に基づいて予め設定された２種類以上の係数を記憶する２つ以上の係数記憶手段と、
前記係数記憶手段のそれぞれについて記憶された係数の中から１種類の係数を選択する係数選択手段と、
前記データ生成手段及び前記係数記憶手段の組み合わせ毎に、前記データ選択手段により選択されたデータと前記係数選択手段により選択された係数とを乗算する乗算手段と、
前記乗算手段により得られた乗算結果を総和する総和手段と、
予め設定された態様で、前記総和手段により得られた総和結果に基づいて２種類以上の出力候補値を生成する出力候補値生成手段と、
前記出力候補値生成手段により生成された出力候補値の中から１種類の出力候補値を出力値として選択する出力値選択手段と、を備え、
前記データ選択手段と前記係数選択手段と前記出力値選択手段は、アップサンプル後のサンプル毎のフィルタ係数がフィルタタップ番号に関して昇順と降順とで等しくなる異なる２つのサンプルについて、対応するデータの和と対応するフィルタ係数の和とを乗算して加算し、対応するデータの差と対応するフィルタ係数の差とを乗算して加算し、これら２つの加算結果を加算したものに基づく値を一方のサンプルの出力値とし、これら２つの加算結果を減算したものに基づく値を他方のサンプルの出力値とし、また、アップサンプル後のフィルタ係数がフィルタタップ番号に関して中心に対して対称となるサンプルについて、フィルタ係数が同一となるデータの和とそのフィルタ係数とを乗算するとともに前記中心に対応したデータがある場合には当該データとそのフィルタ係数とを乗算してこれらの乗算結果を総和したものを当該サンプルの出力値とするように、選択を実行する、
ことを特徴とするアップサンプリングフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アップサンプリングフィルタに関し、特に、使用する乗算器の数を削減したアップサンプリングフィルタに関する。
【背景技術】
【０００２】
従来技術に係るＮ倍のアップサンプリングフィルタ（タップ数：Ｌ）の実装方法について説明する。ここでは、例として、Ｎ＝４、Ｌ＝１７、すなわち４倍のオーバサンプリングで、フィルタタップ数が１７である場合を考える。入力データレートをＦｓとすると、出力データレートは４Ｆｓとなる。
図９には、従来技術に係るアップサンプリングフィルタの回路の一構成例を示してある。
本例の従来技術に係るアップサンプリングフィルタの回路において行われる動作の一例を示す。
【０００３】
直列に接続された１７個のフリップフロップＦ（０）〜Ｆ（１６）のうちの１番目のフリップフロップＦ（０）に、アップサンプル前のデータｘｎを入力する（図９の処理１）。オーバサンプリングを行うためにデータ間に０データを挿入してある。ここでは、４倍オーバサンプリングであるため、データ間に３つの０を挿入したデータを用意する。
これら１７個のフリップフロップＦ（０）〜Ｆ（１６）により、タップ数（本例では、１７個）分のデータを４Ｆｓのレートで保持する（図９の処理２）。なお、本処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓのレート）で動作する。
【０００４】
各フリップフロップＦ（０）〜Ｆ（１６）からの出力に対応したフィルタ係数を記憶する１７個の記憶部Ｇ（０）〜Ｇ（１６）と、各フリップフロップＦ（０）〜Ｆ（１６）からの出力に対応した１７個の乗算器Ｈ（０）〜Ｈ（１６）により、各フリップフロップＦ（０）〜Ｆ（１６）からの出力データに対して用意したフィルタ係数を乗算する（図９の処理３）。
加算器１０１により、１７個の乗算器Ｈ（０）〜Ｈ（１６）からの出力の和を求め（図９の処理４）、この和のデータを出力する（図９の処理５）。
そして、１サンプルずつ進ませて、（図９の処理１）〜（図９の処理５）の処理を繰り返して行う。
【０００５】
図９に示されるアップサンプリングフィルタの回路構成では、１つの出力データの生成に必要な乗算回数はＬ（本例では、１７）回であり、この回路ではＬ個の乗算器を同時に動作させる必要がある。しかしながら、乗算を行うデータは０が内挿されており、その部分の乗算は省くことが可能である。
【０００６】
図１０には、この点を考慮したアップサンプリングフィルタの実装方法として、従来技術に係るアップサンプリングフィルタの回路の他の一構成例を示してある。図９の場合と同様に、４倍のオーバサンプリングで、フィルタタップ数が１７であるとする。
本例の従来技術に係るアップサンプリングフィルタの回路において行われる動作の一例を示す。
【０００７】
直列に接続された５個のフリップフロップＩ（０）〜Ｉ（４）のうちの１番目のフリップフロップＩ（０）に、アップサンプル前のデータｘｎを入力する（図１０の処理１）。
５個のフリップフロップＩ（０）〜Ｉ（４）により、｛タップ数／４｝（本例では、繰り上げて、５）分のデータをＦｓのレートで保持する（図１０の処理２）。
各フリップフロップＩ（０）〜Ｉ（４）からの出力に対応したフィルタ係数が５個の記憶部Ｊ（０）〜Ｊ（４）に記憶されており、４Ｆｓのレートで動作するセレクタ１１１によりそれぞれのデータに乗算するフィルタ係数を選択する（図１０の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓのレート）で動作する。
【０００８】
各フリップフロップＩ（０）〜Ｉ（４）からの出力に対応した５個の乗算器Ｋ（０）〜Ｋ（４）により、各フリップフロップＩ（０）〜Ｉ（４）からの出力データに対して、セレクタ１１１により選択されたフィルタ係数を乗算する（図１０の処理４）。
加算器１１２により、５個の乗算器Ｋ（０）〜Ｋ（４）からの出力の和を求め（図１０の処理５）、この和のデータを出力する（図１０の処理６）。
そして、選択するフィルタ係数を変更しながら、（図１０の処理３）〜（図１０の処理６）の処理を繰り返して行い、０〜３サンプルのデータを出力する。その後、アップサンプル前のデータを１つ進ませて、（図１０の処理１）〜（図１０の処理６）の処理を繰り返して行う。
【０００９】
【特許文献１】特開２００１−０７７６６９号公報
【特許文献２】特開２０００−０４０９４２号公報
【特許文献３】特開平０４−２６６２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記した図１０に示される方法では、回路上で必要な乗算回数をＬ／Ｎ（本例では、繰り上げて、５）に減らすことができる。
しかしながら、それでもフィルタは多くの乗算を必要とする。乗算は回路上では専用の乗算器を用いることが多いが、用意されている乗算器の数が設計上の制約となるため、なるべく使用する乗算器の数を減らすことが望ましい。
【００１１】
アップサンプリングフィルタは通信分野などで頻繁に用いられる。特に、無線通信機器などにおいては、装置を小型にするために、使用リソースを小さく収めることが求められる。リソースでは、特に、乗算器の数がデバイス上の制約になることが多い。
【００１２】
本発明は、このような従来の事情に鑑み為されたもので、Ｎ倍のアップサンプリングに用いる内挿フィルタについて、使用する乗算器の数を、例えば従来の半分（或いは、ほぼ半分）に、削減した回路を実現することができるアップサンプリングフィルタを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明では、データに対してＮ倍のアップサンプリングを行うアップサンプリングフィルタにおいて、次のような構成とした。
すなわち、２つ以上のデータ生成手段が、それぞれ、前記データの時系列値について、予め設定された態様で、異なる時刻の時系列値の和のデータ或いは差のデータを２種類以上生成する。データ選択手段が、前記データ生成手段のそれぞれについて、生成されるデータの中から１種類のデータを選択する。
２つ以上の係数記憶手段が、それぞれ、前記２つ以上のデータ生成手段に対応して設けられ、フィルタ係数に基づいて予め設定された２種類以上の係数を記憶する。係数選択手段が、前記係数記憶手段のそれぞれについて、記憶された係数の中から１種類の係数を選択する。
乗算手段が、前記データ生成手段及び前記係数記憶手段の組み合わせ毎に、前記データ選択手段により選択されたデータと前記係数選択手段により選択された係数とを乗算する。総和手段が、前記乗算手段により得られた乗算結果を総和する。
出力候補値生成手段が、予め設定された態様で、前記総和手段により得られた総和結果に基づいて２種類以上の出力候補値を生成する。出力値選択手段が、前記出力候補値生成手段により生成された出力候補値の中から１種類の出力候補値を出力値として選択する。
【００１４】
そして、前記データ選択手段と前記係数選択手段と前記出力値選択手段は、アップサンプル後のサンプル毎のフィルタ係数がフィルタタップ番号に関して昇順と降順とで等しくなる異なる２つのサンプルについて、対応するデータの和と対応するフィルタ係数の和とを乗算して加算し、対応するデータの差と対応するフィルタ係数の差とを乗算して加算し、これら２つの加算結果を加算したものに基づく値を一方のサンプルの出力値とし、これら２つの加算結果を減算したものに基づく値を他方のサンプルの出力値とし、また、アップサンプル後のフィルタ係数がフィルタタップ番号に関して中心に対して対称となるサンプルについて、フィルタ係数が同一となるデータの和とそのフィルタ係数とを乗算するとともに前記中心に対応したデータがある場合には当該データとそのフィルタ係数とを乗算してこれらの乗算結果を総和したものを当該サンプルの出力値とするように、選択を実行する。
【００１５】
ここで、後述する実施例で参照される図５〜図８との対応を分かり易くするために、かっこ“（）”内に具体例を示したものを記載しておく。
すなわち、前記データ選択手段と前記係数選択手段と前記出力値選択手段は、アップサンプル後のサンプル毎のフィルタ係数がフィルタタップ番号に関して昇順と降順とで等しくなる異なる２つのサンプル（図７及び図８に関するサンプル１、３）について、対応するデータの和（ｘ０＋ｘ３とｘ１＋ｘ２）と対応するフィルタ係数の和（Ｃ１＋Ｃ３とＣ５＋Ｃ７）とを乗算して加算（総和）し、対応するデータの差（ｘ０−ｘ３とｘ１−ｘ２）と対応するフィルタ係数の差（Ｃ１−Ｃ３とＣ５−Ｃ７）とを乗算して加算（総和）し、これら２つの加算結果（総和結果）を加算したものに基づく値（ｙ１）を一方のサンプル（サンプル１）の出力値とし、これら２つの加算結果を減算したものに基づく値（ｙ３）を他方のサンプル（サンプル３）の出力値とし、また、アップサンプル後のフィルタ係数がフィルタタップ番号に関して中心に対して対称となるサンプル（図５及び図６に関するサンプル０、２）について、フィルタ係数が同一となるデータの和（図５の場合にはｘ０＋ｘ４とｘ１＋ｘ３、図６の場合にはｘ０＋ｘ３とｘ１＋ｘ２）とそのフィルタ係数（図５の場合にはＣ０とＣ４、図６の場合にはＣ２とＣ６）とを乗算するとともに前記中心に対応したデータがある場合（図５の場合）には当該データ（ｘ２）とそのフィルタ係数（Ｃ８）とを乗算してこれらの乗算結果を総和したものを当該サンプルの出力値（図５の場合にはｙ０、図６の場合にはｙ２）とするように、選択を実行する。
【００１６】
従って、Ｎ倍のアップサンプリングに用いるフィルタについて、使用する乗算器の数を、例えば従来の半分（或いは、ほぼ半分）に、削減した回路を実現することができる。
なお、好ましい構成例としては、更に、フィルタ係数をデータのＮ倍のレートで変更しながら動作させることにより、乗算器の数を１／Ｎ（或いは、ほぼ１／Ｎ）に削減した回路の構成を用いる。
【００１７】
ここで、アップサンプリングの倍数Ｎとしては、種々な値が用いられてもよい。
また、係数記憶手段としては、例えば、メモリを用いて構成することができる。
また、係数記憶手段に記憶される係数としては、例えば、フィルタ係数そのままや、２つのフィルタ係数の和や差を用いることができる。
【発明の効果】
【００１８】
以上説明したように、本発明に係るアップサンプリングフィルタによると、例えば、Ｎ倍のアップサンプリングに用いるフィルタについて、使用する乗算器の数を削減した回路を実現することができる。
【発明を実施するための最良の形態】
【００１９】
本発明に係る実施例を図面を参照して説明する。
図１には、本発明の一実施例に係るＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタからなるアップサンプリングフィルタの回路の構成例を示してある。本例では、Ｎ倍のアップサンプリングフィルタであり、タップ数がＬである場合について説明する。入力データレートをＦｓとすると、出力データレートはＮ×Ｆｓとなる。
【００２０】
本例のアップサンプリングフィルタは、Ｍ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）と、｛（Ｍ／２）＋１｝個の保持部Ｂ（１）〜Ｂ（Ｍ／２＋１）と、｛３×（Ｍ／２）｝個の加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）〜Ｃ（Ｍ／２−１）、Ｃ（Ｍ／２−２）、Ｃ（Ｍ／２−３）と、セレクタ１と、｛（Ｍ／２）＋１｝個の記憶部Ｄ（１）〜Ｄ（Ｍ／２＋１）と、｛（Ｍ／２）＋１｝個の乗算器Ｅ（１）〜Ｅ（Ｍ／２＋１）と、セレクタ２と、２個の加算器３、４と、２個のフリップフロップ５、６と、２個の加算器７、８と、セレクタ９と、出力部１０を備えている。
ここで、Ｍ＝Ｌ／Ｎである。
【００２１】
本例のアップサンプリングフィルタにおいて行われる動作の概略的な一例を示す。
直列に接続されたＭ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）のうちの１番目のフリップフロップＡ（０）に、アップサンプル前のデータｘｎを入力する（図１の処理１）。
Ｍ個のフリップフロップＡ（０）〜Ａ（Ｍ−１）により、フィルタ処理に必要な分（本例では、Ｍ＝Ｌ／Ｎ）のデータをＦｓのレートで保持する（図１の処理２）。
【００２２】
保持部Ｂ（１）〜Ｂ（Ｍ／２＋１）及び加算器Ｃ（１−１）〜Ｃ（Ｍ／２−３）により、適当な２データ（後述するフィルタ係数との乗算に対応）について加減算し、若しくは１データをそのまま通過させる（図１の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレートで動作する。
セレクタ１により、上記した（図１の処理３）の処理が施されたデータの中からそれぞれ１つを選択する（図１の処理４）。
各記憶部Ｄ（１）〜Ｄ（Ｍ／２＋１）はそれぞれフィルタ係数に関する係数を記憶しており、セレクタ２により、用意しておいた係数の中から１つ（或いは、０）を選択する（図１の処理５）。
【００２３】
セレクタ１により選択されたデータとセレクタ２により選択された係数を、対応する乗算器Ｅ（１）〜Ｅ（Ｍ／２＋１）により、乗算する（図１の処理６）。
加算器３、４により、この乗算結果の出力の和を求める（図１の処理７）。
直列に接続された２個のフリップフロップ５、６により、この和の結果を保持する（図１の処理８）。
そして、（図１の処理３）〜（図１の処理７）の処理を、選択するデータや選択する係数を変えて繰り返して行う。
【００２４】
フリップフロップ５、６により保持されたデータを、加算器７、８により加減算し、若しくは１データをそのまま通過させ、出力部１０に入力する（図１の処理９）。
セレクタ９により、上記した（図１の処理９）の処理が施されたデータの中から１つを選択する（図１の処理１０）。
この選択された出力結果がＮ倍にオーバサンプリングされたデータとなり、出力部１０から出力される（図１の処理１１）。
そして、セレクタ９により選択するデータを変更しながら繰り返して、Ｎ個のデータ（０〜Ｎ−１サンプル）を出力する。その後、アップサンプル前のデータを１つ進ませて、（図１の処理１）〜（図１の処理１１）の処理を繰り返して行う。
【００２５】
以下で、具体例として、４倍のオーバサンプリングで、タップ数が１７である場合に、本例のアップサンプリングフィルタにおいて行われる動作の例を示す。
ここで、Ｍ＝Ｌ／Ｎ（本例では、繰り上げて、Ｍ＝５とする）である。また、本例では、（Ｍ／２）は繰り下げて２を用いる。
また、フィルタ係数をＣｎ（０≦ｎ＜１７）とする。
【００２６】
図２には、タップ数が１７である場合におけるフィルタ係数の一例を示してあり、また、４倍アップサンプル時における該当サンプルを示してある。
図３には、タップ数が１７である場合におけるフィルタ係数のグラフの一例を示してある。
本方式で用いるフィルタ係数は、中心（本例では、Ｃ８）について対称である。４倍オーバサンプリングの場合には、例えば従来技術に係る図１０に示されるように、フィルタ係数をデータの４倍のレートで変更しながら動作させることにより乗算器の数を削減することができる。
【００２７】
本方式においても、まず、その処理に適するようにフィルタ係数をサンプル毎（本例では、０〜３）に分類する。
図４には、分類後のフィルタ係数として、サンプル毎のフィルタ係数の一例を示してある。
ここで、０サンプルと２サンプルに注目すると、これらは中心について対称となる。従って、同じ値の係数を乗算する２つの入力データを乗算前に加算することにより、半分の乗算回数にすることができる。
【００２８】
また、１サンプルと３サンプルの係数では、タップ番号の昇順と降順で同じデータ列となる。
４倍オーバサンプリングを行うフィルタであるため、同じ入力データ（レート：Ｆｓ）からサンプル０〜３（レート：４Ｆｓ）を出力する。入力データをｘｎとするとサンプル１、３におけるフィルタ出力ｙ１、ｙ３は図４から、次の（式１）〜（式６）で表わされる。
【００２９】
ｙ１＝Ｃ１ｘ０＋Ｃ５ｘ１＋Ｃ７ｘ２＋Ｃ３ｘ３  ・・（式１）
ｙ３＝Ｃ３ｘ０＋Ｃ７ｘ１＋Ｃ５ｘ２＋Ｃ１ｘ３  ・・（式２）
ここで、
Ａ＝（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）
・・（式３）
Ｂ＝（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）
・・（式４）
とすると、
ｙ１＝（Ａ＋Ｂ）／２    ・・（式５）
ｙ２＝（Ａ−Ｂ）／２    ・・（式６）
となる。
【００３０】
Ａ、Ｂの算出に用いる乗算数はそれぞれ２となる。従って、０サンプルと２サンプルの場合と同様に、必要な乗算器の数を半分とすることが可能である。
このように、サンプルによって処理を変更することで、乗算器の数を半分とした動作が可能となる。
以下で、各サンプルにおける動作の例を示す。
【００３１】
図５には、サンプル０について、本例のアップサンプリングフィルタにより行われる動作の一例を示してある。
サンプル０では、タップ係数は中心において対称であるため、先にデータを加算してから乗算を行う。具体的には、ｘ０＋ｘ４、ｘ１＋ｘ３を求めて、ｘ２は中心であるためそのままとする。それぞれの値に適当なフィルタ係数（Ｃ０、Ｃ４、Ｃ８）を乗算して総和を求めることで出力が得られる。
【００３２】
直列に接続された５個のフリップフロップＡ（０）〜Ａ（４）のうちの１番目のフリップフロップＡ（０）に、アップサンプル前のデータｘｎを入力する（図５の処理１）。
５個のフリップフロップＡ（０）〜Ａ（４）により、フィルタ処理に必要な分（本例では、５個）のデータをＦｓのレートで保持する（図５の処理２）。
加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）及び加算器Ｃ（２−１）、Ｃ（２−２）、Ｃ（２−３）や保持部Ｂ（１）〜Ｂ（３）では、適当な２データ（本例では、ｘ０とｘ４、ｘ１とｘ３）について加減算を行い、１データ（本例では、ｘ２）をそのまま通過させる（図５の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓ）で動作する。
【００３３】
具体的には、加算器Ｃ（１−１）は（ｘ０＋ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−２）は（ｘ０−ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−３）は（ｘ０＋ｘ４）を求めて保持部Ｂ（１）へ出力する。また、加算器Ｃ（２−１）は（ｘ１＋ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−２）は（ｘ１−ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−３）は（ｘ１＋ｘ３）を求めて保持部Ｂ（２）へ出力する。また、ｘ２が保持部Ｂ（３）に入力される。
【００３４】
セレクタ１により、（図５の処理３）の処理を施したデータである各保持部Ｂ（１）〜Ｂ（３）のデータの中からそれぞれ１つを選択する（図５の処理４）。本例では、保持部Ｂ（１）からｘ０＋ｘ４を選択し、保持部Ｂ（２）からｘ１＋ｘ３を選択し、保持部Ｂ（３）からｘ２を選択する。
各記憶部Ｄ（１）〜Ｄ（３）にはそれぞれ必要となる１つ以上のフィルタ係数に関する係数が記憶されており、セレクタ２により、用意しておいた係数の中からそれぞれ１つを選択する（図５の処理５）。本例では、記憶部Ｄ（１）からフィルタ係数Ｃ０を選択し、記憶部Ｄ（２）からフィルタ係数Ｃ４を選択し、記憶部Ｄ（３）からフィルタ係数Ｃ８を選択する。
【００３５】
乗算器Ｅ（１）〜Ｅ（３）により、選択されたデータと選択された係数を乗算する（図５の処理６）。本例では、乗算器Ｅ（１）によりＣ０（ｘ０＋ｘ４）を求め、乗算器Ｅ（２）によりＣ４（ｘ１＋ｘ３）を求め、乗算器Ｅ（３）によりＣ８ｘ２を求める。
加算器３、４により、全ての乗算器Ｅ（１）〜Ｅ（３）からの出力の和を求める（図５の処理７）。これにより、Ｃ０（ｘ０＋ｘ４）＋Ｃ４（ｘ１＋ｘ３）＋Ｃ８ｘ２が求められる。
【００３６】
直列に接続された２個のフリップフロップ５、６により、加算器４による加算結果のデータを保持する（図５の処理８）。
加算器４による加算結果のデータをそのまま通過させて出力部１０に入力し、また、この加算結果のデータとその時間差を有するデータとを加算器７により加算した結果を出力部１０に入力し、また、この加算結果のデータからその時間差を有するデータを加算器８により減算（例えば、位相を反転して加算）した結果を出力部１０に入力する（図５の処理９）。
【００３７】
セレクタ９により、（図５の処理９）の処理を施した出力部１０のデータの中から１つを選択する。本例では、加算器４による加算結果のデータをそのまま通過させたデータを選択する（図５の処理１０）。これにより、出力部１０から、０サンプルのフィルタ結果ｙ０＝Ｃ０（ｘ０＋ｘ４）＋Ｃ４（ｘ１＋ｘ３）＋Ｃ８ｘ２を出力する（図５の処理１１）。
【００３８】
次に、サンプル２では、サンプル０と同様にタップ係数は中心において対称であり、偶数タップとなるために加算を行わないデータが無いことを除いては、サンプル０の場合と同じ処理を行う。
図６には、サンプル２について、本例のアップサンプリングフィルタにより行われる動作の一例を示してある。
【００３９】
直列に接続された５個のフリップフロップＡ（０）〜Ａ（４）のうちの１番目のフリップフロップＡ（０）に、アップサンプル前のデータｘｎを入力する（図６の処理１）。
５個のフリップフロップＡ（０）〜Ａ（４）により、フィルタ処理に必要な分（本例では、５個）のデータをＦｓのレートで保持する（図６の処理２）。
加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）及び加算器Ｃ（２−１）、Ｃ（２−２）、Ｃ（２−３）や保持部Ｂ（１）〜Ｂ（３）では、適当な２データ（本例では、ｘ０とｘ３、ｘ１とｘ２）について加減算を行う（図６の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓ）で動作する。
【００４０】
具体的には、加算器Ｃ（１−１）は（ｘ０＋ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−２）は（ｘ０−ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−３）は（ｘ０＋ｘ４）を求めて保持部Ｂ（１）へ出力する。また、加算器Ｃ（２−１）は（ｘ１＋ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−２）は（ｘ１−ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−３）は（ｘ１＋ｘ３）を求めて保持部Ｂ（２）へ出力する。また、ｘ２が保持部Ｂ（３）に入力される。
【００４１】
セレクタ１により、（図６の処理３）の処理を施したデータである各保持部Ｂ（１）〜Ｂ（３）のデータの中からそれぞれ１つ（或いは、０）を選択する（図６の処理４）。本例では、保持部Ｂ（１）からｘ０＋ｘ３を選択し、保持部Ｂ（２）からｘ１＋ｘ２を選択し、保持部Ｂ（３）からは選択しない。
各記憶部Ｄ（１）〜Ｄ（３）にはそれぞれ必要となる１つ以上のフィルタ係数に関する係数が記憶されており、セレクタ２により、用意しておいた係数の中からそれぞれ１つを選択する（図６の処理５）。本例では、記憶部Ｄ（１）からフィルタ係数Ｃ２を選択し、記憶部Ｄ（２）からフィルタ係数Ｃ６を選択し、記憶部Ｄ（３）からはフィルタ係数を選択しない（本例では、０を出力する）。
【００４２】
乗算器Ｅ（１）〜Ｅ（３）により、選択されたデータと選択された係数を乗算する（図６の処理６）。本例では、乗算器Ｅ（１）によりＣ２（ｘ０＋ｘ３）を求め、乗算器Ｅ（２）によりＣ６（ｘ１＋ｘ２）を求め、乗算器Ｅ（３）では０が求められる。
加算器３、４により、全ての乗算器Ｅ（１）〜Ｅ（３）からの出力の和を求める（図６の処理７）。これにより、Ｃ２（ｘ０＋ｘ３）＋Ｃ６（ｘ１＋ｘ２）が求められる。
【００４３】
直列に接続された２個のフリップフロップ５、６により、加算器４による加算結果のデータを保持する（図６の処理８）。
加算器４による加算結果のデータをそのまま通過させて出力部１０に入力し、また、この加算結果のデータとその時間差を有するデータとを加算器７により加算した結果を出力部１０に入力し、また、この加算結果のデータからその時間差を有するデータを加算器８により減算（例えば、位相を反転して加算）した結果を出力部１０に入力する（図６の処理９）。
【００４４】
セレクタ９により、（図６の処理９）の処理を施した出力部１０のデータの中から１つを選択する。本例では、加算器４による加算結果のデータをそのまま通過させたデータを選択する（図６の処理１０）。これにより、出力部１０から、２サンプルのフィルタ結果ｙ２＝Ｃ２（ｘ０＋ｘ３）＋Ｃ６（ｘ１＋ｘ２）を出力する（図６の処理１１）。
【００４５】
次に、サンプル１、３について説明する。サンプル１では、サンプル３との関係を用いて算出する。
図７には、サンプル１、３について、本例のアップサンプリングフィルタにより行われる動作の一例（前半部）を示してある。
直列に接続された５個のフリップフロップＡ（０）〜Ａ（４）のうちの１番目のフリップフロップＡ（０）に、アップサンプル前のデータｘｎを入力する（図７の処理１）。
５個のフリップフロップＡ（０）〜Ａ（４）により、フィルタ処理に必要な分（本例では、５個）のデータをＦｓのレートで保持する（図７の処理２）。
加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）及び加算器Ｃ（２−１）、Ｃ（２−２）、Ｃ（２−３）や保持部Ｂ（１）〜Ｂ（３）では、適当な２データ（本例では、ｘ０とｘ３、ｘ１とｘ２）について加減算を行う（図７の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓ）で動作する。
【００４６】
具体的には、加算器Ｃ（１−１）は（ｘ０＋ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−２）は（ｘ０−ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−３）は（ｘ０＋ｘ４）を求めて保持部Ｂ（１）へ出力する。また、加算器Ｃ（２−１）は（ｘ１＋ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−２）は（ｘ１−ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−３）は（ｘ１＋ｘ３）を求めて保持部Ｂ（２）へ出力する。また、ｘ２が保持部Ｂ（３）に入力される。
【００４７】
セレクタ１により、（図７の処理３）の処理を施したデータである各保持部Ｂ（１）〜Ｂ（３）のデータの中からそれぞれ１つ（或いは、０）を選択する（図７の処理４）。本例では、保持部Ｂ（１）からｘ０＋ｘ３を選択し、保持部Ｂ（２）からｘ１＋ｘ２を選択する。
各記憶部Ｄ（１）〜Ｄ（３）にはそれぞれ必要となる１つ以上のフィルタ係数に関する係数が記憶されており、セレクタ２により、用意しておいた係数の中からそれぞれ１つを選択する（図７の処理５）。本例では、記憶部Ｄ（１）からフィルタ係数Ｃ１＋Ｃ３を選択し、記憶部Ｄ（２）からフィルタ係数Ｃ５＋Ｃ７を選択し、記憶部Ｄ（３）からはフィルタ係数を選択しない（本例では、０を出力する）。
【００４８】
乗算器Ｅ（１）〜Ｅ（３）により、選択されたデータと選択された係数を乗算する（図７の処理６）。本例では、乗算器Ｅ（１）により（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）を求め、乗算器Ｅ（２）により（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）を求め、乗算器Ｅ（３）では０が求められる。
加算器３、４により、全ての乗算器Ｅ（１）〜Ｅ（３）からの出力の和を求める（図７の処理７）。これにより、（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）が求められる。
直列に接続された２個のフリップフロップ５、６により、加算器４による加算結果のデータを保持する（図７の処理８）。
【００４９】
図８には、サンプル１、３について、本例のアップサンプリングフィルタにより行われる動作の一例（後半部）を示してある。上記した図７に示される処理の後に引き続いて行われる動作について説明する。
直列に接続された５個のフリップフロップＡ（０）〜Ａ（４）のうちの１番目のフリップフロップＡ（０）に、アップサンプル前のデータｘｎを入力する（図８の処理１）。
５個のフリップフロップＡ（０）〜Ａ（４）により、フィルタ処理に必要な分（本例では、５個）のデータをＦｓのレートで保持する（図８の処理２）。
加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）及び加算器Ｃ（２−１）、Ｃ（２−２）、Ｃ（２−３）や保持部Ｂ（１）〜Ｂ（３）では、適当な２データ（本例では、ｘ０とｘ３、ｘ１とｘ２）について加減算を行う（図８の処理３）。なお、以降の処理は全て、Ｎ×Ｆｓのレート（本例では、４Ｆｓ）で動作する。
【００５０】
具体的には、加算器Ｃ（１−１）は（ｘ０＋ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−２）は（ｘ０−ｘ３）を求めて保持部Ｂ（１）へ出力し、加算器Ｃ（１−３）は（ｘ０＋ｘ４）を求めて保持部Ｂ（１）へ出力する。また、加算器Ｃ（２−１）は（ｘ１＋ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−２）は（ｘ１−ｘ２）を求めて保持部Ｂ（２）へ出力し、加算器Ｃ（２−３）は（ｘ１＋ｘ３）を求めて保持部Ｂ（２）へ出力する。また、ｘ２が保持部Ｂ（３）に入力される。
【００５１】
セレクタ１により、（図８の処理３）の処理を施したデータである各保持部Ｂ（１）〜Ｂ（３）のデータの中からそれぞれ１つ（或いは、０）を選択する（図８の処理４）。本例では、保持部Ｂ（１）からｘ０−ｘ３を選択し、保持部Ｂ（２）からｘ１−ｘ２を選択する。
各記憶部Ｄ（１）〜Ｄ（３）にはそれぞれ必要となる１つ以上のフィルタ係数に関する係数が記憶されており、セレクタ２により、用意しておいた係数の中からそれぞれ１つを選択する（図８の処理５）。本例では、記憶部Ｄ（１）からフィルタ係数Ｃ１−Ｃ３を選択し、記憶部Ｄ（２）からフィルタ係数Ｃ５−Ｃ７を選択し、記憶部Ｄ（３）からはフィルタ係数を選択しない（本例では、０を出力する）。
【００５２】
乗算器Ｅ（１）〜Ｅ（３）により、選択されたデータと選択された係数を乗算する（図８の処理６）。本例では、乗算器Ｅ（１）により（Ｃ１−Ｃ３）（ｘ０−ｘ３）を求め、乗算器Ｅ（２）により（Ｃ５−Ｃ７）（ｘ１−ｘ２）を求め、乗算器Ｅ（３）では０が求められる。
加算器３、４により、全ての乗算器Ｅ（１）〜Ｅ（３）からの出力の和を求める（図８の処理７）。これにより、（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）が求められる。
直列に接続された２個のフリップフロップ５、６により、加算器４による加算結果のデータを保持する（図８の処理８）。
【００５３】
加算器４による加算結果のデータ｛（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）｝をそのまま通過させて出力部１０に入力し、また、この加算結果のデータ｛（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）｝とその時間差を有するデータ｛（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）｝とを加算器７により加算した結果を出力部１０に入力し、また、この加算結果のデータ｛（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）｝をその時間差を有するデータ｛（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）｝から加算器８により減算（例えば、位相を反転して加算）した結果を出力部１０に入力する（図８の処理９）。
【００５４】
セレクタ９により、（図７の処理９）の処理を施した出力部１０のデータの中から１つを選択する。本例のサンプル１の場合には、加算器７による加算結果である｛（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）｝＋｛（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）｝のデータを選択する（図８の処理１０）。これにより、出力部１０から、１サンプルのフィルタ結果ｙ１＝Ｃ１ｘ０＋Ｃ５ｘ１＋Ｃ７ｘ２＋Ｃ３ｘ３を出力する（図８の処理１１）。なお、ｙ１＝（加算結果）／２である。
【００５５】
また、セレクタ９による選択動作など（上記した図８の処理１０、１１）を変更することで、３サンプルの場合における出力を得ることができる。
具体的には、セレクタ９により、（図８の処理９）の処理を施した出力部１０のデータの中から１つを選択する。本例のサンプル３の場合には、加算器８による加算結果（減算結果）である｛（Ｃ１＋Ｃ３）（ｘ０＋ｘ３）＋（Ｃ５＋Ｃ７）（ｘ１＋ｘ２）｝−｛（Ｃ１−Ｃ３）（ｘ０−ｘ３）＋（Ｃ５−Ｃ７）（ｘ１−ｘ２）｝のデータを選択する（図８の処理１２）。これにより、出力部１０から、３サンプルのフィルタ結果ｙ３＝Ｃ３ｘ０＋Ｃ７ｘ１＋Ｃ５ｘ２＋Ｃ１ｘ３を出力する（図８の処理１３）。なお、ｙ３＝（減算結果）／２である。
【００５６】
以上のように、本例のアップサンプリングフィルタでは、Ｎ倍アップサンプリングを行うＦＩＲフィルタにおいて、乗算器の数を１／Ｎ（或いは、ほぼ１／Ｎ）に減らした回路を用いるとともに、フィルタ係数の対称性を用いて更に半分（或いは、ほぼ半分）に乗算器の数を減らす構成とした。
また、本例のアップサンプリングフィルタでは、アップサンプル後のサンプル毎にフィルタ係数を分類し、昇順と降順でフィルタ係数が等しくなる係数列の和及び差を求め、また、データについても該当部分の和及び差を求め、これらを乗算して加減算（加算や減算）することにより、フィルタ出力（ここで、第１のフィルタ出力と言う）を行う。
【００５７】
また、本例のアップサンプリングフィルタでは、フィルタ係数が中心について対称となるサンプルについて、データの該当部分の和を求め、これらを乗算して加算することにより、フィルタ出力（ここで、第２のフィルタ出力と言う）を行う。
また、本例のアップサンプリングフィルタでは、前記した第１のフィルタ出力を行うモードと前記した第２のフィルタ出力を行うモードを切り替えることが可能な選択部を有し、この切り替えを動作させることにより、全入力データに対するフィルタ出力を行う。
【００５８】
このように、本例では、アップサンプリングフィルタの実装回路において、使用する乗算器の数を少なくすることができ、例えば、従来と比べて、回路を小規模にし、装置をより小型にすることが可能である。
【００５９】
なお、図５〜図８を例とすると、本例のアップサンプリングフィルタでは、３個の加算器Ｃ（１−１）、Ｃ（１−２）、Ｃ（１−３）の機能により１つのデータ生成手段が構成されており、３個の加算器Ｃ（２−１）、Ｃ（２−２）、Ｃ（２−３）の機能により他の１つのデータ生成手段が構成されており、第１のセレクタ１や保持部Ｂ（１）〜Ｂ（３）の機能によりデータ選択手段が構成されており、複数の記憶部Ｄ（１）〜Ｄ（３）の機能により複数の係数記憶手段が構成されており、第２のセレクタ２の機能により係数選択手段が構成されており、乗算器Ｅ（１）〜Ｅ（３）の機能により乗算手段が構成されており、加算器３、４の機能により総和手段が構成されており、フリップフロップ５、６や加算器７、８の機能及び加算器４からの出力をそのまま出力部１０に入力する機能により出力候補値生成手段が構成されており、第３のセレクタ９や出力部１０の機能により出力値選択手段が構成されている。
【００６０】
ここで、本発明に係るシステムや装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記録する記録媒体などとして提供することも可能であり、また、種々なシステムや装置として提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
また、本発明に係るシステムや装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記録媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを当該記録媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施例に係るアップサンプリングフィルタの回路の構成例を示す図である。
【図２】タップ数が１７である場合におけるフィルタ係数の一例を示す図である。
【図３】タップ数が１７である場合におけるフィルタ係数のグラフの一例を示す図である。
【図４】サンプル毎のフィルタ係数の一例を示す図である。
【図５】サンプル０についてアップサンプリングフィルタにより行われる動作の一例を示す図である。
【図６】サンプル２についてアップサンプリングフィルタにより行われる動作の一例を示す図である。
【図７】サンプル１、３についてアップサンプリングフィルタにより行われる動作の一例を示す図である。
【図８】サンプル１、３についてアップサンプリングフィルタにより行われる動作の一例を示す図である。
【図９】従来技術に係るアップサンプリングフィルタの回路の一構成例を示す図である。
【図１０】従来技術に係るアップサンプリングフィルタの回路の他の一構成例を示す図である。
【符号の説明】
【００６２】
１、２、９、１１１・・セレクタ、  ３、４、７、８、１０１、１１２、Ｃ・・加算器、  ５、６、Ａ、Ｆ、Ｉ・・フリップフロップ、  １０・・出力部、  Ｂ・・保持部、  Ｄ、Ｇ、Ｊ・・記憶部、  Ｅ、Ｈ、Ｋ・・乗算器、
【図１】
2010148034.tif 000003
【図２】
2010148034.tif 000004
【図３】
2010148034.tif 000005
【図４】
2010148034.tif 000006
【図５】
2010148034.tif 000007
【図６】
2010148034.tif 000008
【図７】
2010148034.tif 000009
【図８】
2010148034.tif 000010
【図９】
2010148034.tif 000011
【図１０】
2010148034.tif 000012