【0009】
まず
図1を参照して、本発明の理解を容易にするために、関連の複数チャネルフィルタ回路(ディジタルフィルタ回路)について説明する。
図1に示されるように、複数チャネルフィルタ回路(ディジタルフィルタ回路)は、遅延回路1と、乗算回路2と、加算回路3とから構成される。
一般に、複数チャネルフィルタ回路(ディジタルフィルタ回路)が、nチャネル、mタップ係数の複数チャネルフィルタ回路であるとする。ここで、nは2以上の整数であり、mは2以上の整数である。この場合、遅延回路1は(n×m)個の遅延器から構成され、乗算回路2はm個の乗算器から構成される。各乗算器は、遅延器n個間隔に取り出した遅延器の出力とタップ係数とを入力値とする。加算回路3は、各乗算器における乗算結果を加算する。
図1に示した複数チャネルフィルタ回路は、チャネル数nが4に等しく、タップ数mが4に等しい例を示している。すなわち、
図1に示した複数チャネルフィルタ回路は、4チャネル、4タップ係数の複数チャネルフィルタ回路から成る。
この場合、遅延回路1は第1乃至第16の遅延器1−0〜1−15から構成され、乗算回路2は第1乃至4の乗算器2−0〜2−3から構成され、加算回路3は第1乃至第3の加算器3−0〜3−2から構成される。
図1に示されるように、チャネル#0の入力データが、In0−0、In0−1、In0−2、In0−3、・・・からなり、チャネル#1の入力データが、In1−0、In1−1、In1−2、In1−3、・・・からなり、チャネル#2の入力データが、In2−0、In2−1、In2−2、In2−3、・・・からなり、チャネル#3の入力データが、In3−0、In3−1、In3−2、In3−3、・・・からなるとする。
このような場合、図示の4チャネル、4タップ係数の複数チャネルフィルタ回路には、サンプリングレートFsの4本のチャネルが、サンプリングレート(4×Fs)の4時分割フォーマットで入力される。
すなわち、4時分割入力データは、In0−0、In1−0、In2−0、In3−0、In0−1、In1−1、In2−1、In3−1、In0−2、In1−2、In2−2、In3−2、In0−3、In1−3、In2−3、In3−3、・・・となる。
第1乃至第16の遅延器1−0〜1−15の各々は、サンプリングレート(4×Fs)の逆数に実質的に等しい単位遅延Tを供給する。すなわち、T=1/(4×Fs)である。第1乃至第15の遅延器1−0〜1−15は、例えば、それぞれ、所定ビット幅のDフリップフロップから構成され、全体として16段のシフトレジスタを構成する。尚、単位遅延Tは、サンプル間隔とも呼ばれる。
遅延回路1は、第1乃至第4のタップT0、T1,T2,およびT3を持つ。遅延回路1を構成する第1乃至第16の遅延器1−0〜1−15は、第1乃至第4の遅延器グループに分けられる。すなわち、第1乃至第4の遅延器1−0〜1−3は第1の遅延器グループに属し、第5乃至第8の遅延器1−4〜1−7は第2の遅延器グループに属し、第9乃至第12の遅延器1−8〜1−11は第3の遅延器グループに属し、第13乃至第16の遅延器1−12〜1−15は第4の遅延器グループに属する。第1の遅延器グループ(1−0〜1−3)は、第1のタップT0と第2のタップT1との間に配置かれ、第2の遅延器グループ(1−4〜1−7)は、第2のタップT1と第3のタップT2とに間に配置され、第3の遅延器グループ(1−8〜1−11)は、第3のタップT2と第4のタップT3との間に配置かれ、第4の遅延器グループ(1−12〜1−15)は、第4のタップT3と遅延回路1の入力端子とに間に配置されている。
上記4時分割入力データは、上述した順序で遅延回路1の入力端子に供給され、遅延回路1で遅延される。その結果、この遅延回路1で単位遅延Tの16倍に等しい遅延時間16T(=4/Fs)だけ遅延されると、第1乃至第16の遅延器1−0〜1−15の出力端子からは、それぞれ、
図1に示されるような、In0−0、In1−0、In2−0、In3−0、In0−1、In1−1、In2−1、In3−1、In0−2、In1−2、In2−2、In3−2、In0−3、In1−3、In2−3、In3−3が出力される。
乗算回路2において、第1の乗算器2−0の一方の入力端子には、遅延回路1の第1のタップT0の出力信号が供給され、他方の入力端子には、第1のタップ係数C0が供給される。第1の乗算器2−0は、第1のタップT0の出力信号と第1のタップ係数C0とを乗算して、第1の乗算結果を出力する。同様に、第2の乗算器2−1の一方の入力端子には、遅延回路1の第2のタップT1の出力信号が供給され、他方の入力端子には、第2のタップ係数C1が供給される。第2の乗算器2−1は、第2のタップT1の出力信号と第2のタップ係数C1とを乗算して、第2の乗算結果を出力する。第3の乗算器2−2の一方の入力端子には、遅延回路1の第3のタップT2の出力信号が供給され、他方の入力端子には、第3のタップ係数C2が供給される。第3の乗算器2−2は、第3のタップT2の出力信号と第3のタップ係数C2とを乗算して、第3の乗算結果を出力する。第4の乗算器2−3の一方の入力端子には、遅延回路1の第4のタップT3の出力信号が供給され、他方の入力端子には、第4のタップ係数C3が供給される。第4の乗算器2−3は、第4のタップT3の出力信号と第4のタップ係数C3とを乗算して、第4の乗算結果を出力する。
加算回路3において、第1の加算器3−0は、第1の乗算結果と第2の乗算結果とを加算して、第1の加算結果を出力する。第2の加算器3−1は、第3の乗算結果と第4の乗算結果とを加算して、第2の加算結果を出力する。第3の加算器3−2は、第1の加算結果と第2の加算結果とを加算して、第3の加算結果を出力する。この第3の加算結果は、当該4チャネル、4タップ係数の複数チャネルフィルタのフィルタ出力((4×Fs)データフィルタ出力)として出力される。
上述したように、(4×Fs)のレートで動作する第1乃至第16の遅延器1−0〜1−15の4個間隔で遅延器の出力(すなわち、第1乃至第4のタップT0〜T3の出力信号)を引き出し、当該遅延器の出力(第1乃至第4のタップT0〜T3の出力信号)と第1乃至第4のタップ係数C0〜C3とをそれぞれ第1乃至第4の乗算器2−0〜2−3にて(4×Fs)レートのタイミング毎に乗算する。(4×Fs)レートの同タイミングで乗算された出力(第1乃至第4の乗算器2−0〜2−3から出力される第1乃至第4の乗算結果)は加算回路3にて加算され、フィルタ出力となる。
したがって、(4×Fs)レートのうちチャネル#0の処理タイミングでは、遅延回路1から乗算回路2への出力(すなわち、第1乃至第4のタップT0〜T3の出力信号)は、下記の式1で表される。
{In0−0、In0−1、In0−2、In0−3} … 式1
この出力は、後段の乗算回路2と加算回路3で第1乃至第4のタップ係数C0〜C3と積和演算され、チャネル#0の積和出力は、下記の式2で表される。
Out0−0 = C0×In0−0 + C1×In0−1
+ C2×In0−2 + C3×In0−3 … 式2
同様に、チャネル#1、チャネル#2、チャネル#3の積和出力は、それぞれ、下記の式3、式4、及び式5で表される。
Out1−0 = C0×In1−0 + C1×In1−1
+ C2×In1−2 + C3×In1−3 … 式3
Out2−0 = C0×In2−0 + C1×In2−1
+ C2×In2−2 + C3×In2−3 … 式4
Out3−0 = C0×In3−0 + C1×In3−1
+ C2×In3−2 + C3×In3−3 … 式5
このように、(4×Fs)レートの各タイミングで、各チャネルのフィルタ演算結果が時分割で出力される。
上述したように、関連の複数チャネルフィルタ回路(ディジタルフィルタ回路)は、入力データを時分割で入力し、時分割された各タイミングで1つのチャネルの処理を行うため、単一チャネルフィルタ回路をn個並列に構成する場合と比較して、回路規模が特に大きい乗算器の数が(1/n)で実装可能な効率的な構成となっている。
しかしながら、前述したように、関連の複数チャネルフィルタ回路(ディジタルフィルタ回路)の構成では、同一サンプリングレートの複数チャネル処理に限定されるという課題がある。
次に、本発明の実施の形態の構成について図面を参照して説明する。
図2は本発明の一実施形態による複数チャネルフィルタ回路(ディジタルフィルタ回路)の一構成例を示すブロック図である。
図3は本発明の一実施形態による複数チャネルフィルタ回路(ディジタルフィルタ回路)における時分割入力フォーマットの一例を示す図である。
図示の実施形態に係る複数チャネルフィルタ回路(ディジタルフィルタ回路)は、最大合計サンプリングレート(n×Fs)の異なるサンプリングレートの複数チャネルフィルタリング処理を行うmタップ係数のディジタルフィルタ回路である。ここで、nは2以上の整数、mは2以上の整数である。
図示の実施形態に係る複数チャネルフィルタ回路は、
図1に示した関連の複数チャネルフィルタ回路と同様に、(n×m)個の遅延器から成る遅延回路1と、遅延器のn個間隔で取り出した遅延器の出力と係数選択部7(後述する)の出力とを入力値とするm個の乗算器から成る乗算回路2と、各乗算器における乗算結果を加算する加算回路3と、を備える。
遅延回路1は、第1乃至第mのタップT0〜T(m−1)を持ち、各々がn個の遅延器から成る第1乃至第mの遅延器グループに分けられる。乗算器2は、第1乃至第mの乗算器2−0〜2−(m−1)から成る。加算回路3は、後述するように、複数の加算器から成る。
そして、本実施形態に係る複数チャネルフィルタ回路は、更に、処理工程毎データ遅延回路4と、入力選択部5と、係数決定部6と、係数選択部7と、累積加算部8と、出力データフォーマット生成部9と、累積加算制御部10とを備えている。
処理工程毎データ遅延回路4は、サンプリングレートが(k×Fs)(k≦n)であり、そのフィルタリング処理がk個の処理工程領域に分割されたチャネルを、処理工程領域に対応して所要サンプル間隔分遅延させた第1乃至第(m−1)の入力遅延信号を出力する第1乃至第(m−1)の処理工程データ遅延器4−0〜4−(m−2)から成る。
入力選択部5は、処理対象のチャネルのサンプリングレート(k×Fs)(k≦n)に基づいて、(n×m)個の遅延器をk個の処理工程領域に分割し、第1乃至第(m−1)の入力遅延信号と第2乃至第mのタップT1〜T(m−1)の出力とを、それぞれ、第1乃至第(m−1)の遅延器グループへ選択的に供給する。
すなわち、処理工程毎データ遅延回路4と入力選択部5との組合せは、遅延回路1への入力信号を所要サンプル間隔分遅延させた第1乃至第(m−1)の入力遅延信号と第2乃至第mのタップT1〜T(m−1)の出力信号とを選択的に第1乃至第(m−1)の遅延器グループへ入力することにより、サンプリングレート(k×Fs)(k≦n)に基づいて、(n×m)個の遅延器をk個の処理工程領域に分割可能な処理工程分割手段(4,5)として働く。
係数決定部6は、複数チャネルのサンプリングレート構成に基づいて、各処理工程領域のフィルタリング処理に応じた第1乃至第mのタップT0〜T(m−1)用のタップ係数を決定する。係数決定部6は、各々が複数の係数決定器(後述する)を含む第1乃至第mの係数決定器グループから成る。
係数選択部7は、第1乃至第mの係数決定器グループが出力するタップ係数群を、最大合計サンプリングレート(n×Fs)で、それぞれ、第1乃至第mの選択したタップ係数として、第1乃至第mの乗算器2−0〜2−(m−1)へ選択出力する。
すなわち、係数決定部6と係数選択部7との組合せは、第1乃至第mのタップT0〜T(m−1)用にそれぞれ選択された、第1乃至第mの選択したタップ係数を供給するタップ係数供給手段(6,7)として動作する。
乗算回路2において、第1乃至第mの乗算器2−0〜2−(m−1)は、それぞれ、第1乃至mのタップT0〜T(m−1)の出力と第1乃至第mの選択したタップ係数とを乗算して、それぞれ第1乃至第mの乗算結果を出力する。
加算回路3は、第1乃至第mの乗算結果を加算する複数の加算器から成る。
累積加算部8は、各処理工程のk個の乗算もしくは積和演算結果を累積加算する。すなわち、累積加算部8は、第1乃至第mの乗算結果および上記複数の加算器の加算結果をそれぞれ累積加算して、複数の累積加算結果を出力する複数の累積加算器(後述する)から成る。
出力データフォーマット生成部9は、上記複数の累積加算結果および上記加算回路3の出力から、各処理工程のフィルタリング処理結果の出力フォーマットを生成する。
累積加算制御部10は、複数の累積加算器に対し、加算の開始信号、複数の累積加算結果のクリア信号を出力する。
図2に示した複数チャネルフィルタ回路は、
図1に示した従来の複数チャネルフィルタ回路と同様に、最大チャネル数nが4に等しく、タップ数mが4に等しい場合の例を示している。
したがって、遅延回路1は第1乃至第16の遅延器1−0〜1−15から構成され、乗算回路2は第1乃至4の乗算器2−0〜2−3から構成され、加算回路3は第1乃至第3の加算器3−0〜3−2から構成される。
これら遅延回路1、乗算回路2、および加算回路3の接続関係や動作は、
図1を参照して説明したそれらと同様であるので、説明の簡略化のためにそれらの説明については省略する。
処理工程毎データ遅延回路4は、第1乃至第3の処理工程毎データ遅延器4−0、4−1、および4−2から構成されている。入力選択部5は、第1乃至第3の入力選択器5−0,5−1,および5−2から構成されている。
第1の処理工程毎データ遅延器4−0は、3個のDフリップフロップが縦続接続された3段のシフトレジスタから構成されている。第1の処理工程毎データ遅延器4−0は、遅延回路1の入力端子に供給される入力データを3T(3サンプル間隔)だけ遅延させて、遅延させたデータを第1の入力遅延信号として第1の入力選択器5−0の一方の入力端子に供給している。第1の入力選択器5−0の他方の入力端子は、遅延回路1の第2のタップT1に接続されている。第1の入力選択器5−0は、第1の処理工程毎データ遅延器4−0で遅延されたデータ(第1の入力遅延信号)と第2のタップT1の出力信号との一方を選択して、選択した信号を第1の遅延器グループ(1−0〜1−3)へ供給する。
第2の処理工程毎データ遅延器4−1は、2個のDフリップフロップが縦続接続された2段のシフトレジスタから構成されている。第2の処理工程毎データ遅延器4−1は、遅延回路1の入力端子に供給される入力データを2T(2サンプル間隔)だけ遅延させて、遅延させたデータを第2の入力遅延信号として第2の入力選択器5−1の一方の入力端子に供給している。第2の入力選択器5−1の他方の入力端子は、遅延回路1の第3のタップT2に接続されている。第2の入力選択器5−1は、第2の処理工程毎データ遅延器4−1で遅延されたデータ(第2の入力遅延信号)と第3のタップT2の出力信号との一方を選択して、選択した信号を第2の遅延器グループ(1−4〜1−7)へ供給する。
第3の処理工程毎データ遅延器4−2は、1個のDフリップフロップから構成されている。第3の処理工程毎データ遅延器4−2は、遅延回路1の入力端子に供給される入力データを1T(1サンプル間隔)だけ遅延させて、遅延させたデータを第3の入力遅延信号として第3の入力選択器5−2の一方の入力端子に供給している。第3の入力選択器5−2の他方の入力端子は、遅延回路1の第4のタップT3に接続されている。第3の入力選択器5−2は、第3の処理工程毎データ遅延器4−2で遅延されたデータ(第3の入力遅延信号)と第4のタップT3の出力信号との一方を選択して、選択した信号を第3の遅延器グループ(1−8〜1−11)へ供給する。
係数決定部6は、16個の係数決定器から構成されている。すなわち、係数決定部6は、第1乃至第16の係数決定器6−0−0,6−0−1,6−0−2,6−0−3,6−1−0,6−1−1,6−1−2,6−1−3,6−2−0,6−2−1,6−2−2,6−2−3,6−3−0,6−3−1,6−3−1,6−3−2,および6−3−3から構成される。第1乃至第16の係数決定器6−0−0〜6−3−3は、4個ずつ第1乃至第4の係数決定器グループに分けられる。
すなわち、第1乃至第4の係数決定器6−0−0,6−0−1,6−0−2,および6−0−3は第1の係数決定器グループ6−0−X(0≦X≦3)に属し、第5乃至第8の係数決定器6−1−0,6−1−1,6−1−2,および6−1−3は第2の係数決定器グループ6−1−Xに属し、第9乃至12の係数決定器6−2−0,6−2−1,6−2−2,および6−2−3は第3の係数決定器グループ6−2−Xに属し、第13乃至第16の係数決定器6−3−0,6−3−1,6−3−1,6−3−2,および6−3−3は第4の係数決定器グループ6−3−Xに属する。
すなわち、第1の係数決定器グループ(6−0−0〜6−0−3)は、第1のタップT0用のタップ係数を決定するためのものであり、第2の係数決定器グループ(6−1−0〜6−1−3)は、第2のタップT1用のタップ係数を決定するためのものであり、第3の係数決定器グループ(6−2−0〜6−2−3)は、第3のタップT2用のタップ係数を決定するためのものであり、第4の係数決定器グループ(6−3−0〜6−3−3)は、第4のタップT3用のタップ係数を決定するためのものである。
係数選択部7は、第1乃至第4の係数選択器7−0,7−1,7−2,および7−3から構成されている。第1の係数選択器7−0は、第1の係数決定器グループ(6−0−0〜6−0−3)に属する1つの係数決定器を選択して、第1の選択したタップ係数を第1の乗算器2−0へ供給する。第2の係数選択器7−1は、第2の係数決定器グループ(6−1−0〜6−1−3)に属する1つの係数決定器を選択して、第2の選択したタップ係数を第2の乗算器2−1へ供給する。第3の係数選択器7−2は、第3の係数決定器グループ(6−2−0〜6−2−3)に属する1つの係数決定器を選択して、第3の選択したタップ係数を第3の乗算器2−2へ供給する。第4の係数選択器7−3は、第4の係数決定器グループ(6−3−0〜6−3−3)に属する1つの係数決定器を選択して、第4の選択したタップ係数を第4の乗算器2−3へ供給する。
累積加算部8は、第1乃至第8の累積加算器8−0−0,8−0−1,8−0−2,8−0−3,8−1−0,8−1−1,8−1−2,および8−1−3から構成される。
第1の累積加算器8−0−0は、第1の乗算器2−0から出力される第1の乗算結果を累積して、第1の累積加算結果を出力する。第2の累積加算器8−0−1は、第2の乗算器2−1から出力される第2の乗算結果を累積して、第2の累積加算結果を出力する。第3の累積加算器8−0−2は、第3の乗算器2−2から出力される第3の乗算結果を累積加算して、第3の累積加算結果を出力する。第4の累積加算器8−0−3は、第4の乗算器2−3から出力される第4の乗算結果を累積加算して、第4の累積加算結果を出力する。
第5の累積加算器8−1−0は、第1の加算器3−0から出力される第1の加算結果を後述のように累積加算して、第5の累積加算結果を出力する。第6の累積加算器8−1−1は、第1の加算器3−0から出力される第1の加算結果を後述のように累積加算して、第6の累積加算結果を出力する。第7の累積加算器8−1−2は、第2の加算器3−1から出力される第2の加算結果を後述のように累積加算して、第7の累積加算結果を出力する。第8の累積加算器8−1−3は、第2の加算器3−1から出力される第2の加算結果を後述のように累積加算して、第8の累積加算結果を出力する。
出力データフォーマット生成部9は、第1および第2の出力データ選択器9−0および9−1から構成される。第1の出力データ選択器9−0は、第5乃至第8の累積加算器8−1−0〜8−1−3から出力される第5乃至第8の累積加算結果を選択的に出力する。第2の出力データ選択器9−1は、第1乃至第4の累積加算器8−0−0〜8−0−3から出力される第1乃至第4の累積加算結果を選択的に出力する。
図2における入力データは、
図3に示すサンプリングレート(2×Fs)の1チャネルと、サンプリングレートFsの2チャネルが、最大合計サンプリングレート(4×Fs)でチャネル#0、チャネル#1、チャネル#0、チャネル#2、・・・の順に、最大合計サンプリングレート(4×Fs)で動作する遅延回路1に入力される。
詳述すると、サンプリングレート(2×Fs)の1チャネル(チャネル#0)の入力データは、In0−0、In0−1、In0−2、In0−3、In0−4、In0−5、In0−6、In0−7、・・・からなる。サンプリングレートFsの2チャネルのうちの一方(チャネル#1)の入力データは、In1−0、In1−1、In1−2、In1−3、・・・からなり、他方(チャネル#2)の入力データは、In2−0、In2−1、In2−2、In2−3、・・・からなる。
この場合、最大合計サンプリングレート(4×Fs)の時分割入力データは、In0−0、In1−0、In0−1、In2−0、In0−2、In1−1、In0−3、In2−1、In0−4、In1−2、In0−5、In2−2、In0−6、In1−3、In0−7、In2−3、・・・となる。
その際、入力される各チャネルのデータは、各チャネルのサンプリングレート(k×Fs)(k≦4)に応じて、k個の処理工程を担当する遅延回路1上の処理工程領域に、処理工程毎データ遅延回路4にて所要サンプル間隔分遅延された後に入力される。
すなわち、第1乃至第16の遅延器1−0〜1−15は、サンプリングレートFsの入力データの処理工程#0領域として使用される。一方、第1乃至第8の遅延器1−0〜1−7は、サンプリングレート(2×Fs)の入力データの処理工程#0領域として使用され、第9乃至第16の遅延器1−8〜1−15は、サンプリングレート(2×Fs)の入力データの処理工程#1領域として使用される。
フィルタリング処理の処理工程の分割について、4タップ係数のフィルタリング処理を例に挙げて説明する。
入力信号を{In0、In1、In2、In3・・・}、第1乃至第4のタップ係数を{C0、C1、C2、C3}、出力信号を{Out0、Out1、Out2、Out3・・・}とすると、出力信号は、下記の式6で表される。
Out0 = C0×In0+C1×In1+C2×In2+C3×In3
Out1 = C0×In1+C1×In2+C2×In3+C3×In4
Out2 = C0×In2+C1×In3+C2×In4+C3×In5
Out3 = C0×In3+C1×In4+C2×In5+C3×In6
:
… 式6
図4は、本実施形態における入力信号のサンプリングレート(k×Fs)と、処理工程分割数と、各処理工程領域が担当する積和演算と、の間の関係を示す表である。
本実施形態におけるサンプリングレート(2×Fs)の入力信号に対しては、処理工程#0の積和演算処理(Out1、Out3、Out5、・・・)、処理工程#1の積和演算処理(Out0、Out2、Out4、・・・)が、第2の入力選択部5−1を挟んだ第1乃至第16の遅延器1−0〜1−15のそれぞれ前半部(1−0〜1−7)、後半部(1−8〜1−15)の処理工程領域を用いて行われる。
各遅延器1−0〜1−15の動作タイミングにおいて、前段の第9の遅延器1−8の出力がサンプリングレート(2×Fs)の入力データである場合には、第2の入力選択器5−1は、第2の処理工程毎データ遅延器4−1の出力を選択して後段(1−0〜1−7)に出力する。前段の第9の遅延器1−8の出力がサンプリングレートFsの入力データである場合には、第2の入力選択器5−1は、前段の処理工程#1領域の第9の遅延器1−8の出力(すなわち、第3のタップT2の出力)を選択して後段に出力する。
第2の処理工程毎データ遅延器4−1は、サンプリングレート(2×Fs)の入力データの処理工程#1領域(1−8〜1−15)よりも2サンプル間隔遅延した入力データ(第2の入力遅延信号)を、処理工程#0領域(1−0〜1−7)に出力し、両処理工程領域において同タイミングで処理工程の異なる積和演算を実行できるようにする。
また、サンプリングレートFsの入力信号に対しては、処理工程#0の積和演算処理(Out0、Out1、Out2、・・・)が、第1乃至第15の遅延器1−0〜1−15の全体に亘る処理工程#0領域を用いて、各チャネル時分割に行われる。
なお、第1および第3の入力選択器5−0、5−2は、第2の入力選択器5−1と共にサンプリングレート(4×Fs)のチャネルが1チャネル入力された場合に、第1乃至第16の遅延器1−0〜1−15上を4個の処理工程領域に分け、各処理工程領域への入力データの選択を行う。また、第1および第3の処理工程毎データ遅延器4−0、4−2は、第2の処理工程毎データ遅延器4−1と共にサンプリングレート(4×Fs)のチャネルが1チャネル入力された場合に、第1、第3、および第2の入力選択部5−0、5−2、5−1に入力するデータを、3サンプル間隔(3T)、1サンプル間隔(1T)、2サンプル間隔(2T)だけ遅延させる。
このように、第1乃至第16の遅延器1−0〜1−15上の領域を、入力信号のサンプリングレートに応じた処理工程数に分割して、処理工程毎の積和演算処理を行うので、回路構成上のタップ係数の数はkの取りうる全ての値の公倍数であることが望ましい。本実施形態の構成では、k=1、2、4の場合を考慮に入れているので、タップ係数の数としては4の倍数であることが望ましい。
前記のように入力されてくる異なるサンプリングレートの複数のチャネルに応じた処理工程毎の積和演算処理を行うため、係数決定部6は複数チャネルのレート構成に基づいたタップ係数を決定し、出力する。
図5は、本実施形態の入力データのレート構成((2×Fs)入力データ×1+Fs入力データ×2)における各係数決定部6の出力係数である。
なお、
図5は前記レート構成に特化した出力係数テーブルであるが、係数決定器6−0−0〜6−3−3は、最大合計サンプリングレートが(4×Fs)になるチャネルのレート構成パターン数分の出力係数を保持しておき、チャネルのレート構成に基づいて選択出力する。
係数選択部7は、係数決定部6が出力する係数を、第1乃至第16の遅延器1−0〜1−15と同じ(4×Fs)のレートで、係数決定器6−x−0、6−x−1、6−x−2、6−x−3、6−x−0、・・・の順に順次出力を選択する。
加算回路3において、第1の加算器3−0は、第1の乗算器2−0の第1の乗算結果と、第2の乗算器2−1の第2の乗算結果とを加算し、第1の加算結果を出力する。第2の加算器3−1は、第3の乗算器2−2の第3の乗算結果と、第4の乗算器2−3の第4の乗算結果とを加算して、第2の加算結果を出力する。第3の加算器3−2は、第1の加算器3−0の第1の加算結果と、第2の加算器3−1の第2加算結果とを更に加算して、第3の加算結果を出力する。
第5および第7の累積加算器8−1−0、8−1−2は、サンプリングレート(2×Fs)のチャネルに対する第1および第2の加算器3−0、3−1の第1および第2の加算結果に対し、4時分割フォーマット中当該チャネルが占めるタイミング分の累積加算を、当該チャネルの処理タイミングに合わせて行う。
なお、第6および第8の累積加算器8−1−1、8−1−3は、サンプリングレート(2×Fs)のチャネルが2チャネル入力された場合の2チャネル目のデータに対する累積加算器である。また、第1乃至第4の累積加算器8−0−0〜8−0−3は、サンプリングレート(4×Fs)のチャネルが1チャネル入力された場合の処理工程毎乗算結果に対する累積加算器である。
累積加算制御部10は、各累積加算器8−0−0〜8−1−3に対し、加算の開始信号、累積加算結果のクリア信号を出力する。
出力データフォーマット生成部9において、第1の出力データ選択器9−0は、サンプリングレート(2×Fs)のチャネルに対する処理工程#0、処理工程#1の累積加算結果を入力し、出力フォーマットを生成して出力する。すなわち、第1の出力データ選択器9−0は、第5乃至第8の累積加算器8−1−0、8−1−1、8−1−2、および8−1−3から出力される第5乃至第8の累積加算結果を選択的に出力する。
なお、サンプリングレートFsの入力データに対するフィルタ演算結果は、第3の加算器3−2より時分割で出力される。
また、第2の出力データ選択器9−1は、サンプリングレート(4×Fs)のチャネルが入力された場合に、処理工程毎の累積加算結果を入力し、出力フォーマットを生成して出力する。すなわち、第2の出力データ選択器9−1は、第1乃至第4の累積加算器8−0−0、8−0−1、8−0−2、および8−0−3から出力される第1乃至第4の累積加算結果を選択的に出力する。
図2のブロック図中に、本実施形態のサンプリングレート(2×Fs)の1チャネルと、サンプリングレートFsの2チャネルが入力された場合の第1乃至第16の遅延器1−0〜1−15の出力が処理タイミングに沿って表示されている。
第1の乗算器2−0は、第1の乗算結果として、{C0×In0−3}、{C0×In1−0}、{C1×In0−4}、および{C0×In2−0}をこの順番に出力する。第2の乗算器2−1は、第2の乗算結果として、{C2×In0−5}、{C1×In1−1}、{C3×In0−6}、および{C1×In2−1}をこの順番に出力する。第3の乗算器2−2は、第3の乗算結果として、{C0×In0−4}、{C2×In1−2}、{C1×In0−5}、および{C2×In2−2}をこの順番に出力する。第4の乗算器2−3は、第4の乗算結果として、{C2×In0−6}、{C3×In1−3}、{C3×In0−7}、および{C3×In2−3}をこの順番に出力する。
第1の加算器3−0は、第1の加算結果として、{(C0×In0−3)+(C2×In0−5)}、{(C0×In1−0)+(C1×In1−1)}、{(C1×In0−4)+(C3×In0−6)}、および{(C0×In2−0)+(C1×In2−1)}をこの順番に出力する。第2の加算器3−1は、第2の加算結果として、{(C0×In0−4)+(C2×In0−6)}、{(C2×In1−2)+(C3×In1−3)}、{(C1×In0−5)+(C3×In0−7)}、および{(C2×In2−2)+(C3×In2−3)}をこの順番に出力する。第3の加算器3−2は、第3の加算結果として、{−}、{(C0×In1−0)+(C1×In1−1)+(C2×In1−2)+(C3×In1−3)}、{−}、{(C0×In2−0)+(C1×In2−1)+(C2×In2−2)+(C3×In2−3)}をこの順番に出力する。
第5の累積加算器8−1−0は、第5の累積加算結果として、{(C0×In0−3)+(C2×In0−5)}、{−}、{(C0×In0−3)+(C2×In0−5)+(C1×In0−4)+(C3×In0−6)}、および{−}をこの順番に出力する。第7の累積加算器8−1−2は、第7の累積加算結果として、{(C0×In0−4)+(C2×In0−6)}、{−}、{(C0×In0−4)+(C2×In0−6)+(C1×In0−5)+(C3×In0−7)}、および{−}をこの順番に出力する。
このように、異なるサンプリングレートの複数チャネル入力データに対し、各チャネルのサンプリングレートに応じて分割した処理工程を、遅延回路1上の各処理工程領域にて行うことで、最大合計サンプリングレート(4×Fs)の複数チャネルフィルタ処理が可能になる。
具体的には、{サンプリングレート(4×Fs)の入力データが1チャネル}、{サンプリングレート(2×Fs)の入力データが2チャネル}、{サンプリングレート(2×Fs)の入力データが1チャネル+サンプリングレートFsの入力データが2チャネル}、および{サンプリングレートFsの入力データが4チャネル}等のサンプリングレート構成の複数チャネルフィルタ処理が、本実施形態の構成により可能になる。なお、{サンプリングレートFsの入力データが4チャネル}は、従来の複数チャネルフィルタ処理に相当する。
本実施形態では簡単のため4タップ係数の場合を例に挙げて説明したが、一般に通信分野で用いられる急峻もしくは狭帯域のフィルタで要求されるタップ数は数十〜百数十タップと大きくなる。この場合、遅延回路1、乗算回路2、加算回路3の個数は、従来の複数チャネルフィルタ回路と変わらない。また、本発明の実施形態の構成で新たに追加される、処理工程毎データ遅延回路4、入力選択部5、累積加算部8、出力データフォーマット生成部9、および累積加算制御部10の個数は、タップ数が大きくなったとしても、本実施形態の
図2に示した個数から増加することはなく、増加するのは、比較的回路規模の小さい選択回路から構成される係数決定部6、および係数選択部7のみである。
次に、本実施形態に係るディジタルフィルタ回路の効果について説明する。
以上説明した通り、本発明の実施形態に係るディジタルフィルタ回路によれば、従来技術のディジタルフィルタ回路に最小限の回路を追加するだけで、最大合計サンプリングレート(n×Fs)の異なるサンプリングレートの複数の入力データ列に対して、1つの回路でフィルタリング処理を行うことができる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
例えば、上記実施形態では、n=4の場合を記述したが、それに限られるものではなく、引き出しタップ間の遅延回路1、係数決定部6、累積加算部8を増やした構成にすることで、n>4の場合にも対応可能である。
なお、
図2の実施形態では、遅延回路1と後段の係数選択部7、乗算回路2、加算回路3が同一レートで動作する構成を記述したが、各処理工程領域内で遅延回路1のタップ出力を遅延回路1の動作レートのL倍のレートで選択出力し、係数選択部7、乗算回路2、加算回路3をL倍のレートで動作させた後に新たな累積加算器において前述のL倍のレートで選択した遅延器出力に対応した積和演算結果を累積加算することで、上記実施形態と同様のフィルタリング処理を行うことが可能であり、かつ乗算器の数を(1/L)に削減することが出来る。
また、
図2の実施形態では、フィルタ出力を入力サンプリングレート毎に個別に出力データフォーマット生成部9から出力するように記述したが、それに限られるものではなく、各サンプリングレートの入力データに対応するフィルタ出力を統合した時分割フォーマットに再生成するようにしてもよい。
また、
図2の実施形態では、複数チャネルを構成する入力データのサンプリングレートをFsの2のべき乗倍(1倍、2倍、4倍)の場合の構成を記述したが、これに限られたものではなく、例えば3分割した処理工程領域を遅延回路1上に確保するための入力選択部5を更に追加することにより、サンプリングレート(3×Fs)を含んだ最大合計サンプリングレート(4×Fs)までの複数チャネル、すなわちFsの逓倍のサンプリングレートのチャネルに関するフィルタリング処理が可能になる。
更に、
図2の実施形態の構成では、各チャネルのフィルタ処理毎に係数決定部6にて個別の係数を設定可能であるため、例えば同じサンプリングレートの入力データに対して、異なるフィルタ特性、より具体的には異なるタップ係数を与えることも可能である。その際に所要タップ数が大きい方に合わせて遅延回路1を構成し、タップ数が少ない特性のチャネルに関してはタップ係数の両端を零で埋めて係数決定部6に保持しておくことが望ましい。