(57)【要約】例えば、所定の特性を有する対称型の数値列をフィルタ係数として持つＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出し、当該算出したフィルタ係数のｙビットのデータに対して下位数ビットを切り捨てる丸め処理を行うことによってｘビット（ｘ＜ｙ）のフィルタ係数を求めるようにすることにより、従来のような窓掛けを行うことなく不要なフィルタ係数を大幅に削減することができるようにするとともに、周波数特性に窓掛けによる打ち切り誤差が生じないようにして、所望の周波数特性を有するデジタルフィルタを小さな回路規模で高精度に実現できるようにする。【特許請求の範囲】
【請求項１】
数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、または、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出する第１のステップと、
上記第１のステップで算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす第２のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項２】
上記第１のステップで算出したｙビットのフィルタ係数に対して上記第２のステップで上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数を２ｘ倍することによってフィルタ係数を整数化する第３のステップを更に有することを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項３】
上記第１のステップで算出したｙビットのフィルタ係数に対して上記第２のステップで上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する第３のステップを更に有することを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項４】
上記第２のステップでは、上記第１のステップで算出したｙビットのフィルタ係数を２ｘ倍して小数点以下を丸める処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項５】
上記第２のステップでは、上記第１のステップで算出したｙビットのフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項６】
上記第２のステップでは、上記第１のステップで算出したｙビットのフィルタ係数のデータ値が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項７】
上記基本のフィルタ係数は、“−１，ｍ，−１”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成ることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項８】
上記基本のフィルタ係数は、“１，ｍ，１”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成ることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項９】
上記１以上の基本フィルタは、略同じ中心周波数を有する基本ハイパスフィルタと基本ローパスフィルタとを含むことを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項１０】
上記基本のフィルタ係数を構成する数値列の各数値の間にゼロ値を数個ずつ挿入することにより、上記基本フィルタの通過域のバンド幅を狭くするようにしたことを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項１１】
上記基本フィルタをＹＦで表した場合、
ａ＊ＹＦＭ１−ｂ＊ＹＦＭ２
ただし、ＹＦに対する乗算は上記基本フィルタの縦続接続を表し、ａ，ｂ，Ｍ１，Ｍ２は上記基本フィルタの縦続接続数を表す係数であり、ａ＞ｂ、Ｍ１＜Ｍ２
の関係が成り立つように上記基本フィルタを縦続接続することにより、上記基本フィルタの通過域のバンド幅を広くするようにしたことを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項１２】
上記第１のステップと上記第２のステップとの間に第４のステップおよび第５のステップを有し、
上記第４のステップでは、上記第１のステップで算出した上記第１のフィルタ係数により表される第１の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる第２の周波数振幅特性を実現する対称型の第２のフィルタ係数を算出し、
上記第５のステップでは、上記第１のフィルタ係数を有する第１のフィルタと上記第２のフィルタ係数を有する第２のフィルタとを縦続接続した場合に得られる第３のフィルタ係数を算出し、
上記第２のステップでは、上記第５のステップで算出した上記第３のフィルタ係数のｙビットのデータに対して下位数ビットを丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）のフィルタ係数を求めることを特徴とする請求の範囲第１項に記載のデジタルフィルタの設計方法。
【請求項１３】
サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタに対して周波数シフトの演算を行うことにより、互いに隣接するフィルタ群が振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタを生成する第１のステップと。
上記基本フィルタおよび上記周波数シフトフィルタを含む複数のフィルタのうち、任意の１以上のフィルタを抽出してそのフィルタ係数を加算することによって新たなフィルタ係数を求める第２のステップと、
上記第２のステップで算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす第３のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項１４】
上記第２のステップで算出したｙビットのフィルタ係数に対して上記第３のステップで上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数を２ｘ倍することによってフィルタ係数を整数化する第４のステップを更に有することを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１５】
上記第２のステップで算出したｙビットのフィルタ係数に対して上記第３のステップで上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する第４のステップを更に有することを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１６】
上記第３のステップでは、上記第２のステップで算出したｙビットのフィルタ係数を２ｘ倍して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１７】
上記第３のステップでは、上記第２のステップで算出したｙビットのフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１８】
上記第３のステップでは、上記第２のステップで算出したｙビットのフィルタ係数のデータ値が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１９】
数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、および、当該算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項２０】
上記演算手段は、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出したｙビットのフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数を２ｘ倍することによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２１】
上記演算手段は、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出したｙビットのフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２２】
上記演算手段は、上記フィルタ係数のｙビットのデータを２ｘ倍して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２３】
上記演算手段は、上記フィルタ係数のｙビットのデータをＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２４】
上記演算手段は、上記フィルタ係数のｙビットのデータ値が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２５】
上記基本のフィルタ係数は、“−１，ｍ，−１”の比率より成る数値列に対して、演算前の元データとそれより所定遅延量だけ前の前データとを加算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成ることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２６】
上記基本のフィルタ係数は、“１，ｍ，１”の比率より成る数値列に対して、演算前の元データからそれより所定遅延量だけ前の前データを減算し振幅調整して出力する移動平均演算をｎ回繰り返し行うことによって求められる数値列から成ることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２７】
上記演算手段は、上記基本のフィルタ係数を構成する数値列の各数値の間にゼロ値を数個ずつ挿入する手段を備えることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２８】
上記基本フィルタをＹＦで表した場合、上記演算手段は、
ａ＊ＹＦＭ１−ｂ＊ＹＦＭ２
ただし、ＹＦに対する乗算は上記基本フィルタの縦続接続を表し、ａ，ｂ，Ｍ１，Ｍ２は上記基本フィルタの縦続接続数を表す係数であり、ａ＞ｂ、Ｍ１＜Ｍ２
の関係が成り立つように演算を行う手段を備えることを特徴とする請求の範囲第１９項に記載のデジタルフィルタの設計装置。
【請求項２９】
数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合に得られる対称型の第１のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、上記第１のフィルタ係数により表される第１の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる第２の周波数振幅特性を実現する対称型の第２のフィルタ係数を求める演算、上記第１のフィルタ係数を有する第１のフィルタと上記第２のフィルタ係数を有する第２のフィルタとを縦続接続した場合に得られる第３のフィルタ係数を求める演算、および、上記第３のフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項３０】
上記演算手段は、ｙビットの上記第３のフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数を２ｘ倍することによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３１】
上記演算手段は、ｙビットの上記第３のフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３２】
上記演算手段は、上記フィルタ係数のｙビットのデータを２ｘ倍して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３３】
上記演算手段は、上記フィルタ係数のｙビットのデータをＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３４】
上記演算手段は、上記フィルタ係数のｙビットのデータ値が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３５】
サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタのフィルタ係数と、互いに隣接するフィルタ群が振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群のテーブルデータを記憶する係数テーブル記憶手段と、
上記係数テーブル記憶手段に記憶されているフィルタ係数群のうち、指定された１以上のフィルタのフィルタ係数を加算することによって新たなフィルタ係数を算出する演算、および、当該算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項３６】
上記演算手段は、上記指定された１以上のフィルタのフィルタ係数を加算することによって新たなフィルタ係数を算出する演算を行う際に、上記指定された１以上のフィルタのフィルタ係数に対してそれぞれ任意の重み付けを行うことを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項３７】
上記演算手段は、上記新たなフィルタ係数を算出する演算によって求めたｙビットのフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数を２ｘ倍することによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項３８】
上記演算手段は、上記新たなフィルタ係数を算出する演算によって求めたｙビットのフィルタ係数に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項３９】
上記演算手段は、上記フィルタ係数のｙビットのデータを２ｘ倍して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項４０】
上記演算手段は、上記フィルタ係数のｙビットのデータをＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項４１】
上記演算手段は、上記フィルタ係数のｙビットのデータ値が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項４２】
請求の範囲第１項〜第１８項の何れか１項に記載されたデジタルフィルタの設計方法に関する処理手順をコンピュータに実行させるためのデジタルフィルタ設計用プログラム。
【請求項４３】
請求の範囲第１９項〜第４１項の何れか１項に記載の各手段としてコンピュータを機能させるためのデジタルフィルタ設計用プログラム。
【請求項４４】
請求の範囲第１項〜第１８項の何れか１項に記載の設計方法、あるいは、請求の範囲第１９項〜第４１項の何れか１項に記載の設計装置を用いて算出された数値列をフィルタ係数として持つＦＩＲ型のデジタルフィルタ。
【請求項４５】
複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第１項〜第１８項の何れか１項に記載の設計方法、あるいは、請求の範囲第１９項〜第４１項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項４６】
複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第２項、第４項、第１４項もしくは第１６項の何れか１項に記載の設計方法、または、請求の範囲第２０項、第２２項、第３０項、第３２項、第３７項もしくは第３９項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算し、その加算結果を１／２ｘ倍して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項４７】
複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第３項、第５項、第１５項もしくは第１７項の何れか１項に記載の設計方法、または、請求の範囲第２１項、第２３項、第３１項、第３３項、第３８項もしくは第４０項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算し、その加算結果を１／Ｎ倍して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項４８】
複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第６項もしくは第１８項の何れか１項に記載の設計方法、または、請求の範囲第２４項、第３４項もしくは第４１項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算し、その加算結果を１／２ｘ＋Ｘ倍して出力するように構成したことを特徴とするデジタルフィルタ。
【発明の詳細な説明】
【技術分野】  本発明はデジタルフィルタの設計方法および装置、デジタルフィルタ設計用プログラム、デジタルフィルタに関し、特に、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれ数倍した後、それらの乗算結果を加算して出力するタイプのＦＩＲフィルタおよびその設計法に関するものである。
【背景技術】  様々な技術分野で提供されている種々の電子機器においては、その内部で何らかのデジタル信号処理を行っているのが通常である。デジタル信号処理の最も重要な基本操作に、各種の信号や雑音が混在している入力信号の中から、必要なある周波数帯域の信号のみを取り出すフィルタリング処理がある。このために、デジタル信号処理を行う電子機器では、デジタルフィルタが用いられることが多い。
デジタルフィルタとしては、ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：無限長インパルス応答）フィルタやＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限長インパルス応答）フィルタが多く用いられる。このうちＦＩＲフィルタは、次のような利点を持つ。第１に、ＦＩＲフィルタの伝達関数の極はｚ平面の原点のみにあるため、回路は常に安定である。第２に、フィルタ係数が対称型であれば、完全に正確な直線位相特性を実現することが可能である。
このＦＩＲフィルタは、有限時間長で表されるインパルス応答がそのままフィルタ係数となっている。したがって、ＦＩＲフィルタを設計するということは、希望の周波数特性が得られるようにフィルタ係数を決定するということである。従来、ＦＩＲフィルタを設計する際には、目標とする周波数特性に基づきフィルタ係数を算出し、これに窓掛けを行って有限個の係数群を得る。そして、得られた係数群をＦＦＴ（高速フーリエ変換）することによって周波数特性に変換し、これが目標の特性を満足しているか否かを確認する方法で設計していた。
目標とする周波数特性からフィルタ係数を算出する際には、例えば、サンプリング周波数とカットオフ周波数との比率をもとに、窓関数やチェビシェフ近似式を用いた畳み込み演算等を行っていた。これにより求められる係数の数は膨大となり、その係数を全て使用すると、フィルタ回路のタップ数や乗算器は非常に多くなってしまい、現実的でない。そのため、窓掛けによってフィルタ係数の数を実用上耐えうる程度に減らす必要があった。
しかしながら、従来の設計法で得られるＦＩＲフィルタの周波数特性は、窓関数や近似式に依存するので、これらをうまく設定しないと、目標とする良好な周波数特性を得ることができない。ところが、窓関数や近似式を適当に設定することは、一般に困難である。また、フィルタ係数の数を減らすために窓掛けをすると、周波数特性に打ち切り誤差が発生してしまう。そのため、従来のフィルタ設計法で所望の周波数特性を実現するのは非常に困難という問題があった。
また、所望の周波数特性をできるだけ精密に実現するＦＩＲフィルタを設計するためには、窓掛けによって減らせるフィルタ係数の数に限界がある。そのため、設計されたＦＩＲフィルタのタップ数は非常に多くなり、しかもそのフィルタ係数値は非常に複雑でランダムな値となる。そのため、そのタップ数およびフィルタ係数値を実現するためには大規模な回路構成（加算器、乗算器）が必要になるという問題もあった。
また、従来のフィルタ設計法で所望の周波数特性を得るためには、仮に求めたフィルタ係数をＦＦＴしてその周波数特性を確認しながらの試行錯誤が必要となる。したがって、従来は熟練した技術者が時間と手間をかけて設計する必要があり、所望特性のＦＩＲフィルタを容易には設計できないという問題もあった。
なお、タップ付き遅延線の各タップ間（各フィルタ係数間）に１以上のゼロ値を挿入することによってフィルタ帯域を調整する方法が知られている（例えば、特表平６−５０３４５０号公報参照）。また、複数のＦＩＲフィルタを縦続接続することによって急峻な周波数特性を実現する方法も知られている（例えば、特開平５−２４３９０８号公報参照）。しかしながら、これら何れの方法を用いても、ただ単にフィルタの通過帯域を狭くすることができるのみで、任意形状の周波数特性を少ないタップ数で精密に実現することはできなかった。
【発明の開示】
本発明はこのような問題を解決するために成されたものであり、所望の周波数特性を小さな回路規模で高精度に実現することが可能なＦＩＲデジタルフィルタおよびその設計法を提供することを目的とする。
また、本発明は、所望の周波数特性を有するＦＩＲデジタルフィルタを簡易的に設計できるようにすることを目的とする。
上記課題を解決するために、本発明では、例えば、所定の特性を有する対称型の数値列をフィルタ係数として持つＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出し、当該算出したフィルタ係数のデータに対して下位数ビットを丸める処理を行うことによってフィルタ係数のビット数を減らすようにしている。
本発明の他の態様では、算出したフィルタ係数を所定倍して小数点以下を丸める処理を行うことによってフィルタ係数を整数化するようにしている。
上記のように構成した本発明によれば、フィルタ係数の下位数ビットを丸める処理によって不要なフィルタ係数を大幅に削減することができる。これにより、すなわち、設計されるデジタルフィルタに必要なタップ数は非常にわずかで済み、かつ、各タップ出力に対して必要なフィルタ係数の種類も非常に少なくて済む。したがって、回路素子数（特に乗算器）を大幅に削減して回路規模を削減することができる。
また、丸め処理によってフィルタ係数の数を大幅に減らせるので、フィルタ係数の数を減らすために従来のような窓掛けを不要とすることができる。本発明の場合、ビット数を減らす丸め処理によって所定の閾値より小さい値のフィルタ係数を破棄しても、周波数特性を決定付ける主要なフィルタ係数は殆ど残り、周波数特性に悪影響を与えることは殆どない。また、窓掛けを行うことなくデジタルフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることがなく、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。すなわち、デジタルフィルタの希望する周波数特性を高精度に実現することができる。
さらに、任意の基本フィルタを組み合わせて縦続接続するなどの簡易な操作だけで、所望の周波数特性を有するデジタルフィルタを設計することができるので、熟練した技術者でなくてもフィルタの設計を極めて簡単に行うことができる。
また、本発明の他の特徴によれば、フィルタ係数の数値を整数化して単純化することができる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を更に簡素化することができる。
【図面の簡単な説明】  図１は、基本ローパスフィルタＬ４ａｎのフィルタ係数を示す図である。
図２は、基本ローパスフィルタＬ４ａ４の周波数特性を示す図である。
図３は、基本ローパスフィルタＬ４ａｎの周波数−ゲイン特性を示す図である。
図４は、基本ローパスフィルタＬａｎのフィルタ係数を示す図である。
図５は、基本ローパスフィルタＬａ４の周波数特性を示す図である。
図６は、基本ローパスフィルタＬａｎの周波数−ゲイン特性を示す図である。
図７は、基本ハイパスフィルタＨ４ｓｎのフィルタ係数を示す図である。
図８は、基本ハイパスフィルタＨ４ｓ４の周波数特性を示す図である。
図９は、基本ハイパスフィルタＨ４ｓｎの周波数−ゲイン特性を示す図である。
図１０は、基本ハイパスフィルタＨｓｎのフィルタ係数を示す図である。
図１１は、基本ハイパスフィルタＨｓ４の周波数特性を示す図である。
図１２は、基本ハイパスフィルタＨｓｎの周波数−ゲイン特性を示す図である。
図１３は、基本バンドパスフィルタＢ４ｓｎのフィルタ係数を示す図である。
図１４は、基本バンドパスフィルタＢ４ｓ４の周波数特性を示す図である。
図１５は、基本バンドパスフィルタＢ４ｓｎの周波数−ゲイン特性を示す図である。
図１６は、基本バンドパスフィルタＢｓｎのフィルタ係数を示す図である。
図１７は、基本バンドパスフィルタＢｓ４の周波数特性を示す図である。
図１８は、基本バンドパスフィルタＢｓｎの周波数−ゲイン特性を示す図である。
図１９は、基本ハイパスフィルタＨｍｓｎにおいてｍをパラメータとした周波数−ゲイン特性を示す図である。
図２０は、パラメータｍに対するパラメータｎの最適値を示す図である。
図２１は、パラメータｍとそれに対するパラメータｎの最適値との関係およびパラメータｍとそれに対するパラメータｘとの関係を示す図である。
図２２は、基本ハイパスフィルタＨｍｓｎのインパルス応答を示す図である。
図２３は、基本ローパスフィルタＬ４ａ４，Ｌ４ａ４（１）の周波数−ゲイン特性を示す図である。
図２４は、基本フィルタを縦続接続した場合のフィルタ係数の演算内容を説明するための図である。
図２５は、基本ローパスフィルタ（Ｌ４ａ４）Ｍの周波数−ゲイン特性を示す図である。
図２６は、基本ハイパスフィルタ（Ｈ４ｓ４）Ｍの周波数−ゲイン特性を示す図である。
図２７は、基本フィルタの縦続接続によるバンドパスフィルタの設計法を模式的に示す図である。
図２８は、基本フィルタの縦続接続によるバンドパスフィルタの具体的な設計例を示す図である。
図２９は、基本フィルタの縦続接続によるバンドパスフィルタの具体的な設計例を示す図である。
図３０は、異種の基本フィルタの縦続接続によってバンド幅を狭める手段を模式的に示す図である。
図３１は、同種の基本フィルタの縦続接続によってバンド幅を広げる手段を模式的に示す図である。
図３２は、バンド幅を微調整する手段を模式的に示す図である。
図３３は、１６ビットの演算精度で実際に算出したフィルタ係数値（丸め処理前のもの）をグラフ化した図である。
図３４は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数特性を示す図である。
図３５は、図３３のフィルタ係数に対して１０ビットの丸め処理を行った結果として残った４１タップ（ゼロ値を含めた段数は４６段）分のフィルタ係数値とそれを整数化した係数値とを示す図である。
図３６は、１６ビットの演算精度でフィルタ係数を算出した後、それを１０ビットに丸めて更に整数化した場合の周波数−ゲイン特性を示す図である。
図３７は、第２の実施形態によるデジタルフィルタの設計方法の手順を示すフローチャートである。
図３８は、第２の実施形態によるデジタルフィルタの設計方法の概念を説明するための周波数特性図である。
図３９は、オリジナルバンドパスフィルタの周波数−ゲイン特性およびこのオリジナルバンドパスフィルタに対して１〜３個の調整フィルタを縦続接続した場合に得られる周波数−ゲイン特性を示す図である。
図４０は、第２の実施形態による調整フィルタを縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。
図４１は、オリジナルバンドパスフィルタに対して、α＝１．５の調整フィルタを３段縦続接続するとともに、最終段にα＝１の調整フィルタを更に縦続接続した場合に得られる周波数特性を示す図である。
図４２は、オリジナルローパスフィルタの周波数−ゲイン特性およびこのオリジナルローパスフィルタに対して１〜５個の調整フィルタを縦続接続した場合に得られる周波数−ゲイン特性を示す図である。
図４３は、第３の実施形態によるデジタルフィルタの設計方法の手順を示すフローチャートである。
図４４は、第３の実施形態による基本フィルタの生成方法の手順を示すフローチャートである。
図４５は、第３の実施形態による基本フィルタの周波数−ゲイン特性を示す図である。
図４６は、第３の実施形態による基本フィルタおよびこれから生成した複数の周波数シフトフィルタの周波数−ゲイン特性を示す図である。
図４７は、第３の実施形態のフィルタ設計法により生成されるデジタルフィルタの周波数−ゲイン特性の一例を示す図である。
図４８は、窓フィルタによる基本フィルタの切り出しを説明するための周波数−ゲイン特性図である。
図４９は、第３の実施形態によるデジタルフィルタの設計装置の構成例を示すブロック図である。
図５０は、第１の実施形態によるデジタルフィルタの構成例を示すブロック図である。
図５１は、第２の実施形態によるデジタルフィルタの構成例を示すブロック図である。
図５２は、第３の実施形態によるデジタルフィルタの構成例を示すブロック図である。
【発明を実施するための最良の形態】（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。本実施形態では、特定のインパルス応答を有する数種類の基本フィルタを定義し、それらを任意に縦続接続する形で所望の周波数特性を有するＦＩＲフィルタを実現する。基本フィルタは、基本ローパスフィルタ、基本ハイパスフィルタ、基本バンドパスフィルタ（櫛型フィルタを含む）の３種類に大きく分類される。以下、これらの基本フィルタについて説明する。
＜基本ローパスフィルタＬｍａｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本ローパスフィルタＬｍａｎのフィルタ係数は、“−１，ｍ，−１”の数値列を出発点として、演算前の元データとそれより所定遅延量だけ前の前データとを順次加算していく移動平均演算によって求める。
図１は、基本ローパスフィルタＬ４ａｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図１において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−１）番目のデータを指す。
例えば、基本ローパスフィルタＬ４ａ１の上から１番目の数値“−１”は元データ“−１”と前データ“０”とを加算することによって得られ、２番目の数値“３”は元データ“４”と前データ“−１”とを加算することによって得られる。また、３番目の数値“３”は元データ“−１”と前データ“４”とを加算することによって得られ、４番目の数値“−１”は元データ“０”と前データ“−１”とを加算することによって得られる。
図１に示す基本ローパスフィルタＬ４ａｎの何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている（例えば基本ローパスフィルタＬ４ａ４の場合、−１＋９＋９＋（−１）＝１６，０＋１６＋０＝１６）。
上記“−１，ｍ，−１”の数値列は、大元の数値列“−１，Ｎ”を基本として生成する。この数値列“−１，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“−１，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“−１，Ｎ”の畳み込みにより、フィルタ係数は“−Ｎ，Ｎ２＋１，−Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図１の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“−１，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“−３．７３２，１４．９２８，−３．７３２”となる。この数値列は、−１：４：−１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√−３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化（正規化）する。すなわち、実際に使用するフィルタ係数の数値列は、“−１／２，２，−１／２”となる。この実際に使用する数値列“−１／２，２，−１／２”は、元の数値列“−１，４，−１”をｚ倍（ｚ−１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ローパスフィルタＬｍａｎのフィルタ係数は、何れもその数値列の総和が“１”で、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持つ。
図２は、基本ローパスフィルタＬ４ａ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性（周波数−ゲイン特性および周波数−位相特性）を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図２から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタＬ４ａ４では、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図３は、基本ローパスフィルタＬ４ａｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図３より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタＬ４ａｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図４は、基本単位フィルタの数値列“−１，Ｎ”でＮ＝０とした場合の基本ローパスフィルタＬａｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，１，０”となる。したがって、基本ローパスフィルタＬａｎのフィルタ係数は、“１”を出発点として、元データと前データとを順次加算していく移動平均演算によって求められる。
図４に示す基本ローパスフィルタＬａｎの何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が同符号で互いに等しくなるという性質を持っている（例えば基本ローパスフィルタＬａ４の場合、１＋６＋１＝８，４＋４＝８）。
図５は、基本ローパスフィルタＬａ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図５から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図２に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ローパスフィルタＬａ４においても、オーバーシュートやリンギングも存在しない良好なローパスフィルタの周波数特性を得ることができる。
図６は、基本ローパスフィルタＬａｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図６より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ローパスフィルタＬａｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
＜基本ハイパスフィルタＨｍｓｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本ハイパスフィルタＨｍｓｎのフィルタ係数は、“１，ｍ，１”の数値列を出発点として、演算前の元データからそれより所定遅延量だけ前の前データを順次減算していく移動平均演算によって求める。
図７は、基本ハイパスフィルタＨ４ｓｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図７において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−１）番目のデータを指す。
例えば、基本ハイパスフィルタＨ４ｓ１の上から１番目の数値“１”は元データ“１”から前データ“０”を減算することによって得られ、２番目の数値“３”は元データ“４”から前データ“１”を減算することによって得られる。また、３番目の数値“−３”は元データ“１”から前データ“４”を減算することによって得られ、４番目の数値“−１”は元データ“０”から前データ“１”を減算することによって得られる。
図７に示す基本ハイパスフィルタＨ４ｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本ハイパスフィルタＨ４ｓ４の場合、１＋（−９）＋（−９）＋１＝−１６，０＋１６＋０＝１６）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“１，ｍ，１”の数値列は、大元の数値列“１，Ｎ”を基本として生成する。この数値列“１，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“１，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“１，Ｎ”の畳み込みにより、フィルタ係数は“Ｎ，Ｎ２＋１，Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図７の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“１，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“３．７３２，１４．９２８，３．７３２”となる。この数値列は、１：４：１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“１／２，２，１／２”となる。この実際に使用する数値列“１／２，２，１／２”も、元の数値列“１，４，１”をｚ倍（ｚ＝１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本ハイパスフィルタＨｍｓｎのフィルタ係数は、何れもその数値列の総和が“０”で、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図８は、基本ハイパスフィルタＨ４ｓ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図８から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタＨ４ｓ４では、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図９は、基本ハイパスフィルタＨ４ｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図９より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタＨ４ｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図１０は、基本単位フィルタの数値列“１，Ｎ”でＮ＝０とした場合の基本ハイパスフィルタＨｓｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，１，０”となる。したがって、基本ハイパスフィルタＨｓｎのフィルタ係数は、“１”を出発点として、元データから前データを順次減算していく移動平均演算によって求められる。
図１０に示す基本ハイパスフィルタＨｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本ハイパスフィルタＨｓ４の場合、１＋６＋１＝８，−４＋（−４）＝−８）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の１つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図１１は、基本ハイパスフィルタＨｓ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図１１から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図８に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本ハイパスフィルタＨｓ４においても、オーバーシュートやリンギングも存在しない良好なハイパスフィルタの周波数特性を得ることができる。
図１２は、基本ハイパスフィルタＨｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１２より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本ハイパスフィルタＨｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
＜基本バンドパスフィルタＢｍｓｎ（ｍ，ｎは変数で、ｎは自然数）＞
基本バンドパスフィルタＢｍｓｎのフィルタ係数は、“１，０，ｍ，０，１”の数値列を出発点として、元データから２つ前の前データを順次減算していく移動平均演算によって求める。
図１３は、基本バンドパスフィルタＢ４ｓｎ（ｍ＝４とした場合）のフィルタ係数を示す図である。図１３において、移動平均演算によってｎ列目の上からｊ番目のフィルタ係数を求める際に、元データとは、（ｎ−１）列目の上からｊ番目のデータを指す。また、前データとは、（ｎ−１）列目の上から（ｊ−２）番目のデータを指す。
例えば、基本バンドパスフィルタＢ４ｓ１の上から１番目の数値“１”は元データ“１”から前データ“０”を減算することによって得られ、３番目の数値“３”は元データ“４”から前データ“１”を減算することによって得られる。また、５番目の数値“−３”は元データ“１”から前データ“４”を減算することによって得られ、７番目の数値“−１”は元データ“０”から前データ“１”を減算することによって得られる。
図１３に示す基本バンドパスフィルタＢ４ｓｎにおいて、ｎが偶数とのきは何れのフィルタ係数も、その数値列は対称型であり、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本バンドパスフィルタＢ４ｓ４の場合、１＋（−９）＋（−９）＋１＝−１６，０＋１６＋０＝１６）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
上記“１，０，ｍ，０，１”の数値列は、大元の数値列“１，０，Ｎ”を基本として生成する。この数値列“１，０，Ｎ”をフィルタ係数とする基本単位フィルタは、１〜２個（Ｎ＝０の場合は１個、それ以外の場合は２個）のタップを有する。なお、Ｎの値は必ずしも整数である必要はない。
この数値列“１，０，Ｎ”をフィルタ係数として持つ基本単位フィルタは非対称型なので、対称型とするために、これを偶数段縦続接続して使用する必要がある。例えば２段縦続接続した場合、数値列“１，０，Ｎ”の畳み込みにより、フィルタ係数は“Ｎ，０，Ｎ２＋１，０，Ｎ”となる。ここで、（Ｎ２＋１）／Ｎ＝ｍとすると、ｍを整数としたとき、Ｎ＝（ｍ＋（ｍ２−４）１／２）／２となる。
図１３の例のようにｍ＝４とした場合、Ｎ＝２＋√３である。すなわち、基本単位フィルタの係数は“１，０，３．７３２”となる（ここでは、小数点以下を３桁まで表示している）。また、この基本単位フィルタを２段縦続接続した場合のフィルタ係数は、“３．７３２，０，１４．９２８，０，３．７３２”となる。この数値列は、１：０：４：０：１の関係になっている。
この数値列を実際にフィルタ係数として使用する場合は、数値列の各値を２Ｎ（＝２＊（２＋√３）＝７．４６４）で割ることにより、フィルタ係数の数値列をＦＦＴ変換した場合の振幅が“１”となるようにして、ゲインを“１”に基準化する。すなわち、実際に使用するフィルタ係数の数値列は、“１／２，０，２，０，１／２”となる。この実際に使用する数値列“１／２，０，２，０，１／２”も、元の数値列“１，０，４，０，１”をｚ倍（ｚ＝１／（ｍ−２））したものに相当する。
このように基準化した数値列をフィルタ係数として使用した場合、基本バンドパスフィルタＢｍｓｎのフィルタ係数は、何れもその数値列の総和が“０”で、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持つ。
図１４は、基本バンドパスフィルタＢ４ｓ４（ｍ＝４，ｎ＝４とした場合）のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを３２倍して示している。一方、周波数は“１”で基準化している。
この図１４から分かるように、周波数−ゲイン特性は通過域がほぼ平坦で、遮断域の傾斜がなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタＢ４ｓ４では、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図１５は、基本バンドパスフィルタＢ４ｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１５より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタＢ４ｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
図１６は、基本単位フィルタの数値列“１，０，Ｎ”でＮ＝０とした場合の基本バンドパスフィルタＢｓｎのフィルタ係数を示す図である。Ｎ＝０の場合、基本単位フィルタを２段縦続接続したときのフィルタ係数は“０，０，１，０，０”となる。したがって、基本バンドパスフィルタＢｓｎのフィルタ係数は、“１”を出発点として、元データから２つ前の前データを順次減算していく移動平均演算によって求められる。
図１６に示す基本バンドパスフィルタＢｓｎにおいて、ｎが偶数のときは何れのフィルタ係数も、その数値列は対称型であり、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている（例えば基本バンドパスフィルタＢｓ４の場合、１＋６＋１＝８，−４＋（−４）＝−８）。ｎが奇数のときは、その数値列は絶対値が対称型となっており、前半の数値列と後半の数値列とは逆符号になる。また、数値列の３つ飛びの合計値が逆符号で互いに等しくなるという性質を持っている。
図１７は、基本バンドパスフィルタＢｓ４のフィルタ係数の数値列をＦＦＴ変換して得られる周波数特性を示す図である。ここではゲインを直線目盛りで表し、基準化されたゲインを１６倍して示している。一方、周波数は“１”で基準化している。
この図１７から分かるように、周波数−ゲイン特性でほぼ平坦な通過域は図１４に比べて狭くなるが、遮断域の傾斜はなだらかな特性が得られている。また、周波数−位相特性ではほぼ直線的な特性も得られている。このように、基本バンドパスフィルタＢｓ４においても、オーバーシュートやリンギングも存在しない良好なバンドパスフィルタの周波数特性を得ることができる。
図１８は、基本バンドパスフィルタＢｓｎのｎをパラメータとした周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図１８より、ｎの値が大きくなるほど遮断域の傾斜が急峻になることが分かる。この基本バンドパスフィルタＢｓｎは、ｎ≧５のときは比較的急峻な周波数特性の用途に適し、ｎ＜５のときは比較的緩やかな周波数特性の用途に適すると言える。
なお、以上では、図４、図１０および図１６において、“１”を出発点として移動平均演算を行う例について説明したが、“−１”を出発点としても良い。“−１”を出発点とした場合は、位相特性がπだけシフトするだけで、周波数特性は同一で変化はない。
＜パラメータ値ｍ，ｎの特性に与える影響＞
まず、移動平均演算の段数ｎを変えた場合の影響について説明する。例えば図３に示したように、基本ローパスフィルタＬｍａｎにおいて、ｎの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅は狭くなる。また、ｎの値が小さいときは、周波数特性の頂部は両端が盛り上がる。ｎの値が大きくなるに従って頂部は徐々に平坦に近づき、ｎ＝４で完全に平坦になる。ｎの値がそれより大きくなると、今度は頂部の両端が中央値より低くなっていく。このような傾向は、基本ハイパスフィルタＨｍｓｎ、基本バンドパスフィルタＢｍｓｎについても同様に言える（図９、図１５参照）。
一方、基本単位フィルタの係数値をＮ＝０として構成した基本ローパスフィルタＬａｎ、基本ハイパスフィルタＨｓｎおよび基本バンドパスフィルタＢｓｎに関しては、図６、図１２、図１８に示したように、ｎの値が何れの場合も頂部の両端は中央値より低くなる。ｎの値を大きくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることは、Ｎ≠０である基本ローパスフィルタＬｍａｎ、基本ハイパスフィルタＨｍｓｎおよび基本バンドパスフィルタＢｍｓｎの場合と同様である。
次に、ｍの値を変えた場合の影響について説明する。図１９は、基本ハイパスフィルタＨｍｓｎにおいてｍをパラメータとした周波数−ゲイン特性を示す図である。この図１９より、ｍの値を小さくすると遮断域の傾斜が急峻になり、通過域のバンド幅が狭くなることが分かる。ここでは図示を省略するが、基本ローパスフィルタＬｍａｎおよび基本バンドパスフィルタＢｍｓｎについても同様のことが言える。
この図１９は、パラメータｍに対するパラメータｎの最適値（周波数特性の頂部が平坦になるｎの値）も同時に示している。すなわち、ｍ＝４のときの最適値はｎ＝４、ｍ＝３．５のときの最適値はｎ＝６、ｍ＝３のときの最適値はｎ＝８、ｍ＝２．５のときの最適値はｎ＝１６である。図２０は、これを分かりやすくグラフ化したものである。この図２０から分かるように、パラメータｍに対するパラメータｎの最適値は、ｍの値が小さくなるにつれて大きくなる。
このことを、図２１を用いて更に詳細に説明する。図２１は、パラメータｍとそれに対するパラメータｎの最適値との関係を表形式によって示す図である。なお、この図２１では、パラメータｍに対するパラメータｚの関係も併せて示している。
上述のように、パラメータｍに対するパラメータｎの最適値は、ｍの値が小さくなるにつれて大きくなる。ここで、ｍ＝２になるとフィルタ特性が大きく変わってしまい、良好な周波数特性が得られなくなる。逆に言うと、ｍ＞２の条件であれば、タップ間に挿入する遅延量を増やさなくても、通過域におけるバンド幅の狭い良好なフィルタ特性を得ることができる。一方、パラメータｍの値が大きくなるにつれてパラメータｎの最適値は小さくなり、ｍ＝１０のときにｎ＝１となる。つまり、ｍ＝１０のときは、移動平均演算の段数は１段で良い。このことから、パラメータｍは、２＜ｍ≦１０の条件で使用するのが好ましい。
また、パラメータｎの値は、図２１に示す最適値を中心として前後の或る範囲で選択した任意の値を用いることにより、図３、図９、図１５のように周波数特性の調整をすることができる。
図２２は、図１９に示した４種類の基本ハイパスフィルタＨｍｓｎのインパルス応答を示す図である。この図２２に示すような波形を有するインパルス応答は、横軸に沿った標本位置が一定の間にあるときにのみ“０”以外の有限な値を有し、それ以外の領域では値が全て“０”となる関数、つまり所定の標本位置において値が“０”に収束する関数である。
このように、関数の値が局所的な領域で“０”以外の有限の値を有し、それ以外の領域で“０”となる場合を「有限台」と称する。ここでは図示を省略するが、基本ハイパスフィルタＨｓｎ、基本ローパスフィルタＬｍａｎ，Ｌａｎおよび基本バンドパスフィルタＢｍｓｎ，Ｂｓｎについても同様に、インパルス応答は有限台となる。
このような有限台のインパルス応答では、“０”以外の有限の値を有する局所的な領域内のデータだけが意味を持つ。この領域外のデータについては、本来これを考慮すべきであるのに無視している訳ではなく、理論的に考慮する必要がないため、打ち切り誤差は発生しない。したがって、図１、図４、図７、図１０、図１３、図１６に示した数値列をフィルタ係数として用いれば、窓掛けによって係数の打ち切りを行う必要もなく、良好なフィルタ特性を得ることができる。
＜フィルタ係数間のゼロ値の調整＞
基本フィルタのフィルタ係数を構成する数値列の各数値間のゼロ値（各タップ間の遅延量に相当）を変えることによって、基本フィルタの通過域のバンド幅を調整することが可能である。すなわち、上述の基本ローパスフィルタＬｍａｎ，Ｌａｎ、基本ハイパスフィルタＨｍｓｎ，Ｈｓｎ、基本バンドパスフィルタＢｍｓｎ，Ｂｓｎでは、各タップ間の遅延量は１クロック分であったが、これを（ｋ＋１）クロック分とすると（各フィルタ係数の間に“０”をｋ個ずつ挿入すると）、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／（ｋ＋１）となり、通過域のバンド幅は狭くなる。
以下、例えば基本ローパスフィルタＬｍａｎにおいて各フィルタ係数の間に“０”をｋ個ずつ挿入する場合をＬｍａｎ（ｋ）と表記することにする。ただし、ｋ＝０の場合は（０）を省略して表記する。
図２３は、基本ローパスフィルタＬ４ａ４および、その各フィルタ係数の間に“０”を１つずつ挿入することによって生成した基本ローパスフィルタＬ４ａ４（１）の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。この図２３から分かるように、フィルタ係数の間に挿入する“０”の数をｋ個とすると、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／（ｋ＋１）となり、通過域のバンド幅を狭くすることが可能である。
＜同種の基本フィルタの縦続接続＞
同種の基本フィルタを縦続接続することにより、各基本フィルタの係数どうしが乗算・加算されて新しいフィルタ係数が作り出される。以下では、例えば基本ローパスフィルタＬｍａｎの縦続接続数をＭとするとき、これを（Ｌｍａｎ）Ｍと記述することにする。
ここで、基本フィルタを縦続接続した場合におけるフィルタ係数の演算内容について説明する。図２４は、縦続接続によるフィルタ係数の演算内容を説明するための図である。この図２４に示すように、２つの基本フィルタを縦続接続した場合には、一方のフィルタ係数を構成する（２ｉ＋１）個（２ｉ＋１は、一方のフィルタ係数を構成する全数値列の個数を表す）の数値列｛Ｈ１−ｉ，Ｈ１−（ｉ−１），Ｈ１−（ｉ−２），・・・，Ｈ−１，Ｈ１０，Ｈ１１，・・・，Ｈ１ｉ−２，Ｈ１ｉ−１，Ｈ１ｉ｝と、他方のフィルタ係数を構成する（２ｉ＋１）個の数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝との畳み込み演算を行うことによって、新たなフィルタ係数の数値列を求める。
この畳み込み演算では、他方のフィルタ係数については、｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝の全ての数値列を常に固定的に乗加算の対象とする。一方、一方のフィルタ係数については、｛Ｈ１−ｉ，Ｈ１−（ｉ−１），Ｈ１−（ｉ−２），・・・，Ｈ１−１，Ｈ１０，Ｈ１１，・・・，Ｈ１ｉ−２，Ｈ１ｉ−１，Ｈ１ｉ｝の数値列の前後に０列があるものと仮定し、この０値も含めて（２ｉ＋１）個の数値列を畳み込み演算の対象とする。このとき、新たなフィルタ係数のｐ番目の数値を求める際には、一方のフィルタ係数のｐ番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列を乗加算の対象とする。
例えば、新たなフィルタ係数の１番目の数値を求める際には、他方のフィルタ係数の全ての数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝（符号３１で示す点線で囲った配列）と、一方のフィルタ係数の１番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列｛０，０，・・・，０，Ｈ１−ｉ｝（符号３２で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（Ｈ１−ｉ×Ｈ２−ｉ）となる。
また、新たなフィルタ係数の２番目の数値を求める際には、他方のフィルタ係数の全ての数値列｛Ｈ２−ｉ，Ｈ２−（ｉ−１），Ｈ２−（ｉ−２），・・・，Ｈ２−１，Ｈ２０，Ｈ２１，・・・，Ｈ２ｉ−２，Ｈ２ｉ−１，Ｈ２ｉ｝（符号３１で示す点線で囲った配列）と、一方のフィルタ係数の２番目の数値を含めてそれより前にある（２ｉ＋１）個の数値列｛０，０，・・・，０，Ｈ１−ｉ，Ｈ１−（ｉ−１）｝（符号３３で示す点線で囲った配列）とを対象として、配列の対応する要素の積を合計する演算を行う。すなわち、この場合の演算結果は、（Ｈ１−ｉ×Ｈ２−ｉ＋Ｈ１−（ｉ−１）×Ｈ２−（ｉ−１）となる。以下同様にして、新たなフィルタ係数を構成する（２×（２ｉ＋１）−１）個の数値列を求める。
図２５は、基本ローパスフィルタＬ４ａ４，（Ｌ４ａ４）２，（Ｌ４ａ４）４，（Ｌ４ａ４）８の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。基本ローパスフィルタＬ４ａ４が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続接続数Ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばＭ＝８の場合、振幅が０．５となる位置のクロックは０．１２５となる。
上記図２５から分かるように、基本ローパスフィルタＬ４ａ４は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ローパスフィルタフィルタ（Ｌ４ａ４）Ｍの周波数−ゲイン特性は、縦続接続数Ｍが多くなるほど通過帯域幅が狭くなり、低周波域においても極めて深くストレートに落ち込む特性が得られる。
図２６は、基本ハイパスフィルタＨ４ｓ４，（Ｈ４ｓ４）２，（Ｈ４ｓ４）４，（Ｈ４ｓ４）８の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで表し、（ｂ）はゲインを対数目盛りで表している。る。基本ハイパスフィルタＨ４ｓ４が１個のみの場合、振幅が０．５となる位置のクロックは０．２５である。これに対して縦続接続数Ｍが多くなると、フィルタの通過帯域幅が狭くなる。例えばＭ＝８の場合、振幅が０．５となる位置のクロックは０．３７５となる。
上記図２６から分かるように、基本ハイパスフィルタＨ４ｓ４は、周波数特性のカットオフ周波数部分の傾斜が急峻であるという特徴を持つ。また、基本ハイパスフィルタフィルタ（Ｈ４ｓ４）Ｍの周波数−ゲイン特性は、縦続接続数Ｍが多くなるほど通過帯域幅が狭くなり、高周波域においても極めて深くストレートに落ち込む特性が得られる。
＜異種の基本フィルタの縦続接続＞
異種の基本フィルタを縦続接続した場合も、各基本フィルタの係数どうしが畳み込み演算により乗算・加算されて新しいフィルタ係数が作り出される。この場合は、異種の基本フィルタを任意に組み合わせることによって、各基本フィルタの特性どうしが相殺し合い、所望の周波数帯域を抜き取ることができる。これにより、所望特性のローパスフィルタやハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタ、コムフィルタなどを簡単に設計することができる。
例えば、上述した基本ローパスフィルタＬ４ａ４（ｋ）と基本ハイパスフィルタＨ４ｓ４（ｋ）とを組み合わせることによって、所望の周波数帯域を通過域とするバンドパスフィルタを設計する例について説明する。
バンドパスフィルタの中心周波数Ｆｃまたは信号のサンプリング周波数Ｆｓの何れかを自由に決定できるときは、周波数抜き取りの条件を最適化することにより、フィルタの構成をより簡素化することができる。今、バンドパスフィルタの中心周波数Ｆｃと信号のサンプリング周波数Ｆｓとの関係が、
Ｆｓ＝Ｆｃ＊（４＋２ｑ）  （ｑ＝０，１，２，・・・）
であるとする。
この場合において、Ｆｃ＝４５０ＫＨｚのとき、Ｆｓ＝１．８ＭＨｚ，２．７ＭＨｚ，３．６ＭＨｚ，・・・である。このような設定の場合には、基本ハイパスフィルタＨ４ｓ４（５＋３ｑ）と基本ローパスフィルタＬ４ａ４（３＋２ｑ）とを縦続接続するだけで、バンドパスフィルタを設計することができる。これらの基本ハイパスフィルタＨ４ｓ４（５＋３ｑ）、基本ローパスフィルタＬ４ａ４（３＋２ｑ）は共に、中心周波数Ｆｃが４５０ＫＨｚとなる通過域を有している。
例えば、ｑ＝０（Ｆｓ＝４Ｆｃ）の場合、基本ハイパスフィルタＨ４ｓ４（５）と基本ローパスフィルタＬ４ａ４（３）との縦続接続によりバンドパスフィルタを設計することができる。また、ｑ＝１（Ｆｓ＝６Ｆｃ）の場合、基本ハイパスフィルタＨ４ｓ４（８）と基本ローパスフィルタＬ４ａ４（５）との縦続接続によりバンドパスフィルタを設計することができる。
図２７は、上述したバンドパスフィルタの設計法を模式的に示す図であり、（ａ）はｑ＝０の場合、（ｂ）はｑ＝１の場合を示している。例えば図２７（ａ）において、基本ハイパスフィルタＨ４ｓ４（５）と基本ローパスフィルタＬ４ａ４（３）とを縦続接続すると、それぞれの通過域＃１，＃２で互いに重なった部分のみを通過域＃３として取り出すことができる。
図２７（ｂ）においても同様に、基本ハイパスフィルタＨ４ｓ４（８）と基本ローパスフィルタＬ４ａ４（５）とを縦続接続すると、それぞれの通過域＃１，＃２で互いに重なった部分のみを通過域＃３として取り出すことができる。ｑ＞０の場合は、求めるバンドパスフィルタの中心周波数Ｆｃ以外にも通過域が生じるので、これをローパスフィルタ（ＬＰＦ１）＃４によって抜き取る。
バンドパスフィルタのバンド幅は、基本ハイパスフィルタ（Ｈ４ｓ４（ｋ））Ｍあるいは基本ローパスフィルタ（Ｌ４ａ４（ｋ））Ｍの縦続接続の段数（Ｍの数）によって調整することが可能である。図２７（ｂ）に示す例では、基本ハイパスフィルタＨ４ｓ４（８）および基本ローパスフィルタＬ４ａ４（５）の双方ともＭ＝１としているが、これらを何れもＭ＝８とした場合の周波数特性を、図２８および図２９に示す。
図２８は、基本ハイパスフィルタ（Ｈ４ｓ４（８））８および基本ローパスフィルタ（Ｌ４ａ４（５））８の周波数特性を重ねて示したものであり、これらのフィルタを縦続接続することにより、互いに重なった部分のみを取り出すことができる。また、図２９は、ＬＰＦ１あるいはＬＰＦ２による通過域の抜き取りを示したものであり、図２８のように取り出した３つのバンドパスに対してＬＰＦ１あるいはＬＰＦ２をかけることにより、両端の通過域のみを取り出すことができる。
次に、異種の基本フィルタの縦続接続によって通過域のバンド幅を狭く調整するための手段について説明する。図２５および図２６を用いて説明したように、バンド幅を狭くするためには同種の基本フィルタの縦続段数を増やせば良いが、これには限界がある。ここでは、より効率的にバンド幅を狭くできる方法について説明する。図３０は、その方法を模式的に示す図である。
図３０（ａ）は図２７（ｂ）と同じものである。これより狭いバンド幅を得たい場合は、図３０（ｂ）に示すように、基本ハイパスフィルタＨ４ｓ４（８）の代わりに、例えば基本ハイパスフィルタＨ４ｓ４（１４）を用いる。基本ハイパスフィルタＨ４ｓ４（１４）は、基本ハイパスフィルタＨ４ｓ４（８）と同様に中心周波数Ｆｃが４５０ＫＨｚとなる通過域を有しており、しかも、バンド幅が基本ハイパスフィルタＨ４ｓ４（８）の９／１５＝３／５となっている。
したがって、この基本ハイパスフィルタＨ４ｓ４（１４）を用いることにより、フィルタの縦続段数を増やすことなく、バンド幅を効率的に狭めることができる。また、基本ハイパスフィルタＨ４ｓ４（１４）は、各フィルタ係数の間に挿入する“０”の数を増やしただけなので、係数として実際に取り出すタップ数は全く増えず、回路規模が大きくなることもない。なお、ここでは基本ハイパスフィルタＨ４ｓ４（１４）を用いる例について説明したが、同じ中心周波数Ｆｃ＝４５０ＫＨｚに通過域を有する基本フィルタであれば、同様に用いることが可能である。
次に、同種の基本フィルタの縦続接続によって通過域のバンド幅を広く調整するための手段について説明する。図３１は、傾斜を含めたバンド幅の調整手法を説明するための周波数−ゲイン特性図である。ここでは、調整前の基本フィルタの周波数特性をＹＦで表すものとする。上述したように、＃１に示す基本フィルタＹＦを２個縦続接続すると、＃２に示すように、傾斜が急峻になってバンド幅が狭くなる（−６ｄＢのクロック位置が低周波側に移動する）。
そして、ゲインの中心値（＝０．５）を軸として、＃２に示す基本フィルタＹＦ２の周波数−ゲイン特性を反転させる（＃３）。これは、ディレイを合わせて基準ゲイン値“１”のユニットパルス（中心値が１で、その他が全て０のフィルタ係数に相当）から基本フィルタＹＦ２のフィルタ係数を引くことによって求められる（１−ＹＦ２）。ここでは、これを反転基本フィルタと呼ぶことにする。
さらに、＃３に示す反転基本フィルタを２個縦続接続する。これにより得られる周波数−ゲイン特性の傾斜は、＃４に示すように更に急峻になり、バンド幅も更に狭くなる（−６ｄＢのクロック位置が高周波側に移動する）。ここでは、縦続接続する反転基本フィルタの個数を＃２の場合と同じ２個としているが、これより多くすることにより、高周波側への移動量を、先ほどの低周波側への移動量より大きくすることができる。
最後に、ゲインの中心値（＝０．５）を軸として、＃４に示す周波数−ゲイン特性を反転させる（＃５）。これは、ディレイを合わせて基準ゲイン値“１”のユニットパルスから＃４のフィルタ係数を引くことによって求められる（１−（１−ＹＦ２）２）。元データ＃１の周波数特性と調整後データ＃５の周波数特性とを比較して見ると、調整後データ＃５の周波数特性は元データ＃１より傾斜が急峻になるとともに、バンド幅が広くなっている。
調整後データ＃５の式を展開すると、以下のようになる。
１−（１−ＹＦ２）２
＝１−１＋２ＹＦ２−ＹＦ４
＝２ＹＦ２−ＹＦ４  ・・・（式１）
この式１は、＃１の基本フィルタおよび＃３の反転基本フィルタをそれぞれ２個縦続接続した場合に得られる式であるが、縦続接続する段数はこれに限られない。ただし、バンド幅を広げるためには、＃１の縦続段数より＃３の縦続段数の方を多くするのが好ましい。この場合、上述した式１は、次の式２のように一般化できる。
ａ＊ＹＦＭ１−ｂ＊ＹＦＭ２  ・・・（式２）
ただし、ａ，ｂは係数（ａ＞ｂ）、Ｍ１＜Ｍ２であり、＊は縦続接続を表す。
次に、バンド幅の周波数を微調整するための手段について説明する。図３２は、周波数の微調整手法を説明するための周波数−ゲイン特性図である。図３２に示すように、基本ハイパスフィルタＨ４ｓ４（８）の比較的広い通過域の中で、通過域が互いにオーバーラップするようにハイパスフィルタ（ＨＰＦ）とローパスフィルタ（ＬＰＦ）とを設計する。そして、これらの各フィルタＨ４ｓ４（８），ＨＰＦ，ＬＰＦを縦続接続することにより、それぞれの通過域の重なった部分（斜線部分）が通過域となるバンドパスフィルタを得ることができる。
このとき、ハイパスフィルタＨＰＦおよびローパスフィルタＬＰＦの何れか一方、あるいはその両方に対して、図２５および図２６、あるいは図３０で示したような通過域を狭める操作、または、図３１で示したような通過域を広げる操作をすることにより、バンドパスフィルタのバンド幅を任意に微調整することができる。
図３２（ａ）では、ローパスフィルタＬＰＦに対して通過域を広げる操作をすることにより、バンドパスフィルタの片側のみを高周波側にシフトする例を示している。また、図３２（ｂ）では、ハイパスフィルタＨＰＦに対して通過域を広げる操作をするとともに、ローパスフィルタＬＰＦに対して通過域を狭める操作をすることにより、バンド幅を変えずにバンドパスフィルタの両側を低周波側にシフトする例を示している。
＜フィルタ係数の丸め処理＞
以上のような基本フィルタの縦続接続、バンド幅の調整等によって求められた数値列が、所望の周波数特性を実現するためのフィルタ係数となる。図３３は、１６ビットの演算精度で実際に算出したフィルタ係数値（丸め処理前のもの）をグラフ化した図である。また、図３４は、フィルタ係数を丸め処理する前におけるデジタルフィルタの周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで示し、（ｂ）はゲインを対数目盛りで示している。
図３３に示すように、本実施形態の設計法によって得られるフィルタ係数の値は、中央（係数Ｈ０）で最大となる。また、各フィルタ係数の値の差は、従来のフィルタ設計法で得られるフィルタ係数のそれに比べて極めて大きくなる。すなわち、本実施形態の設計法によって得られる各フィルタ係数の分布は、中央付近の局所的な領域で値が大きくなり、他の領域では値が小さくなるとともに、中央付近のフィルタ係数値と周辺のフィルタ係数値との差が極めて大きくなるといった尖鋭度の高い分布となる。そのため、所定の閾値より小さい値のフィルタ係数を丸め処理によって破棄しても、周波数特性を決定付ける主要なフィルタ係数は殆ど残り、周波数特性に悪影響を与えることは殆どない。また、周波数特性の帯域外減衰量はフィルタ係数のビット数によって制約を受けるが、図３４に示すように、本実施形態のフィルタ設計法によって得られる周波数特性は非常に深い減衰を持っているので、ビット数を多少減らしても、所望の減衰量は確保できる。
したがって、丸め処理によって不要なフィルタ係数を大幅に削減することができる。例えば、フィルタ係数の下位数ビットを切り捨てることでビット数を減らすことにより、その下位数ビットだけで表される最大値よりも小さい値のフィルタ係数を全て“０”に丸めて破棄することができる。よって、フィルタ係数の数を減らすために従来のような窓掛けは必ずしも必要でない。なお、上述したように、縦続接続されている基本フィルタのインパルス応答は有限台の関数となる。そのため、この基本フィルタをもとに設計されるフィルタ係数の数は、従来に比べてそもそも少なく、丸め処理をすることなくそのまま使用することも可能である。しかし、よりタップ数を少なくするために、ビット数を減らす丸め処理を行うのが好ましい。
この点は、従来のフィルタ設計法と大きく異なる本実施形態の特徴点である。すなわち、従来のフィルタ設計法では、求められる各フィルタ係数の分布で尖鋭度がそれほど大きくならないため、フィルタ係数の値で丸め処理をすると、周波数特性を決定付ける主要なフィルタ係数も破棄されてしまうことが多い。また、非常に深い帯域外減衰量を持った周波数特性を得ることも困難なため、フィルタ係数のビット数を減らすと必要な帯域外減衰量を確保できなくなってしまう。よって、従来はビット数を減らす丸め処理を行うことができず、窓掛けによってフィルタ係数の数を減らさざるを得なかった。そのため、周波数特性に打ち切り誤差が発生し、所望の周波数特性を得ることが極めて困難であった。
これに対して、本実施形態では窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることはない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
図３５は、例えば１６ビットの演算精度で算出した図３３のようなフィルタ係数に対して１０ビットの丸め処理（１６ビットから成るフィルタ係数の下位１０ビット以下に対して、切り捨て、切り上げまたは四捨五入を行うことによって１０ビットのデータとする処理）を行った結果として残った４１タップ（ゼロ値を含めた段数は４６段）分のフィルタ係数値とそれを整数化した係数値とを示す図である。上述のような基本フィルタの縦続接続によって求まるフィルタ係数の値は小数であり、１０ビットの丸め処理によってその桁数を減らすことができるが、ランダムな値の集合である。この数値列をそのままフィルタ係数として用いても良いが、デジタルフィルタを実装する際に使用する乗算器の数をより少なくするために、フィルタ係数の数値を更に丸めて単純化するようにしても良い。そのために本実施形態では、１０ビットで丸めたフィルタ係数の数値列を２１０倍して、係数値を整数化する。なお、ここでは１６ビットから成るフィルタ係数の下位１０ビット以下を丸めた後、１０ビットに丸められたフィルタ係数を更に２１０倍して整数化する例について説明したが、１６ビットから成るフィルタ係数を直接２１０倍し、その結果得られる値の小数点以下を丸める（切り捨て、切り上げまたは四捨五入など）ことにより、整数化された１０ビットのフィルタ係数を直接求めるようにしても良い。
このような整数化の丸め演算を行うと、デジタルフィルタは、図５０に示すように、複数の遅延器（Ｄ型フリップフロップ）１から成るタップ付き遅延線の各タップからの出力信号に対して整数のフィルタ係数を複数の係数器２で個別に乗算し、それぞれの乗算出力を複数の加算器３で全て加算した後に、１つのシフト演算器４でまとめて１／２１０倍するように構成することが可能となる。しかも、整数のフィルタ係数は、２ｉ＋２ｊ＋・・・（ｉ，ｊは任意の整数）のように２進数の足し算で表現できる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を簡素化することができる。
図３６は、１６ビットの演算精度でフィルタ係数を算出した後、それを１０ビットに丸めて（例えば、１０ビット以下の桁数を切り捨てて）、その結果を更に整数化した場合の周波数−ゲイン特性を示す図であり、（ａ）はゲインを直線目盛りで示し、（ｂ）はゲインを対数目盛りで示している。
図３６からよく分かるように、本実施形態ではフィルタ設計の際に窓掛けを行っていないので、周波数−ゲイン特性における平坦部のリップルが極めて小さく、±０．３ｄＢの範囲内に充分収まっている。また、丸め処理後の帯域外減衰量は約４４ｄＢとなっているが、この帯域外減衰量は実装しようとするハードウェアで対応可能なビット数によって制約される。したがって、ハードウェア規模の制約がなければ、丸め処理後のビット数を大きくしてより減衰の深い帯域外減衰特性を得ることができる。
なお、ここでは丸め処理の例として、フィルタ係数のデータに対して下位数ビットを切り捨てることによってｙビットのデータをｘビットに丸める処理について説明したが、この例に限定されない。例えば、各フィルタ係数の値を所定の閾値と比較し、閾値より小さいフィルタ係数を破棄するようにしても良い。この場合、残されるフィルタ係数は元のｙビットのままであるから、これを整数化する際には２ｙ倍する。
また、整数化演算の他の例として、フィルタ係数の数値列をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める（切り捨て、切り上げ、四捨五入など）ようにしても良い。このようなＮ倍の丸め演算を行った場合、デジタルフィルタは、図５１に示すように、複数の遅延器（Ｄ型フリップフロップ）１から成るタップ付き遅延線の各タップからの出力信号に対して整数のフィルタ係数を複数の係数器２で個別に乗算し、それぞれの乗算出力を複数の加算器３で全て加算した後に、１つの乗算器５でまとめて１／Ｎ倍するように構成することが可能となる。しかも、整数のフィルタ係数は、２ｉ＋２ｊ＋・・・（ｉ，ｊは任意の整数）のように２進数の足し算で表現できる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を簡素化することができる。
また、数値列を２ｘ倍（ｘは整数）する場合はフィルタ係数に対してビット単位の丸めを実施することができるのに対し、数値列をＮ倍する場合はフィルタ係数に対してビット間の丸めを実施することができる。ビット単位の丸め処理とは、例えば係数値を２ｘ倍して小数点以下を切り捨てる場合には、２ｘ〜２ｘ＋１の範囲に属する数値は全て２ｘに丸めるといったように、係数値を１／２ｘの整数倍とする処理を言う。また、ビット間の丸め処理とは、例えば係数値をＮ倍（例えば、２ｘ−１＜Ｎ＜２ｘ）して小数点以下を切り捨てる場合には、Ｎ〜Ｎ＋１の範囲に属する数値は全てＮに丸めるといったように、係数値を１／Ｎの整数倍とする処理を言う。Ｎ倍の丸め演算を行うことにより、整数化されるフィルタ係数の値を、２のべき乗以外の任意の値に調整することが可能である。このようにすれば、デジタルフィルタで使用するフィルタ係数の数（タップの数）を微妙に調整することができる。
その他、整数化を伴う丸め演算の例として、ｙビットのフィルタ係数のデータ値が１／２ｘより小さいものは全てゼロとし、当該データ値が１／２ｘ以上のものについては、当該データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める（切り捨て、切り上げ、四捨五入など）ようにしても良い。このような丸め処理を行った場合、デジタルフィルタは、図５２に示すように、複数の遅延器（Ｄ型フリップフロップ）１から成るタップ付き遅延線の各タップからの出力信号に対して整数のフィルタ係数を複数の係数器２で個別に乗算し、それぞれの乗算出力を複数の加算器３で全て加算した後に、１つのシフト演算器６でまとめて１／２ｘ＋Ｘ倍するように構成することが可能となる。しかも、整数のフィルタ係数は、２ｉ＋２ｊ＋・・・（ｉ，ｊは任意の整数）のように２進数の足し算で表現できる。これにより、乗算器の代わりにビットシフト回路で係数器を構成し、実装するデジタルフィルタの構成を簡素化することができる。
また、データ値が１／２ｘより小さいものは全てゼロとして切り捨てることによってフィルタ係数の数（タップ数）を大幅に削減できると同時に、ｘビットに比べてビット数が多い（ｘ＋Ｘ）ビットの精度の良いフィルタ係数を求めることができるので、より良好な周波数特性を得ることもできる。
＜フィルタ設計装置の実装例＞
以上に説明した本実施形態によるデジタルフィルタの設計方法を実現するための装置は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態のフィルタ設計装置は、実際にはコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
例えば、各種の基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関ナるフィルタ係数をデータとしてＲＡＭやＲＯＭ、ハードディスク等の記憶装置に記憶しておく。そして、ユーザが基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関する任意の組み合わせと接続順、各フィルタ係数間に挿入するゼロ値の数ｋ、基本フィルタの同種縦続接続数Ｍなどを指示すると、ＣＰＵが、上記記憶装置に記憶されているフィルタ係数のデータを用いて、指示された内容に対応するフィルタ係数を上述した演算により求めるようにすることが可能である。この場合、記憶装置が本発明の基本フィルタ係数記憶手段に相当し、ＣＰＵが本発明の演算手段に相当する。
ユーザが各基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関する組み合わせと接続順、ゼロ値の挿入数ｋ、縦続接続数Ｍなどを指示する際のユーザインタフェースは、任意に構成することが可能である。例えば、基本フィルタのタイプ（Ｌｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎの何れか）を画面表示された一覧表からキーボードやマウスの操作によって選択できるようにするとともに、パラメータｍ，ｎ，ｋ，Ｍの値をキーボードやマウスの操作によって入力できるようにする。そして、タイプの選択とパラメータの入力とを１つずつ順に行っていったときの入力順を基本フィルタの接続順として入力する。ＣＰＵは、このようにして入力された情報を取得し、その入力情報により指示された内容に対応するフィルタ係数を上述した演算により求める。
また、各種の基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎをアイコン化してディスプレイ画面上に表示するようにし（各アイコンに対応してフィルタ係数をデータとして記憶装置に記憶している）、ユーザがこれらのアイコンをキーボードやマウスの操作によりディスプレイ画面上で任意に組み合わせて配置する。また、その他の必要なパラメータはキーボードやマウスの操作によって入力する。そして、ＣＰＵがアイコンの配列や入力パラメータに対応するフィルタ係数を自動的に演算して求めるようにしても良い。
また、パーソナルコンピュータ等にインストールされている表計算ソフトの関数機能などを利用して、基本フィルタを求める際の移動平均演算、基本フィルタを縦続接続するときの畳み込み演算などを行うようにすることも可能である。この場合の演算は、実際には、表計算ソフトがインストールされているパーソナルコンピュータ等のＣＰＵ、ＲＯＭ、ＲＡＭなどによって行われる。
また、求めたフィルタ係数を自動的にＦＦＴ変換し、その結果を周波数−ゲイン特性図としてディスプレイ画面に表示するようにしても良い。このようにすれば、設計したフィルタの周波数特性を視覚的に確認することができ、フィルタ設計をより容易に行うことができる。
＜デジタルフィルタの実装例＞
実際にデジタルフィルタを電子機器内や半導体ＩＣに実装する場合には、以上のようなフィルタ設計装置によって最終的に求められた数値列をフィルタ係数として持つＦＩＲフィルタを構成すればよい。すなわち、図５０〜図５２に示したように、単に複数のＤ型フリップフロップ１と複数の係数器２と複数の加算器３と１つのビットシフト回路４，６または乗算器５とにより１つのデジタルフィルタを構成し、以上のような手順で求めた最終的なフィルタ係数を、当該デジタルフィルタ内の複数の係数器２に設定する形で構成する。
その場合、求められたフィルタ係数の数は１０ビットの丸め処理によって大幅に削減されており、かつ、２１０倍による整数化処理によって単純な整数に変換されている。したがって、タップ数は非常に少なく、しかも基本的に係数器２の部分に乗算器は不要でビットシフト回路にて対応可能であり、所望の周波数特性を小さな回路規模で高精度に実現することができる。
なお、フィルタ設計の際に用いた基本フィルタをそれぞれハードウェアとして構成し、それらをハードウェアとして接続することによってデジタルフィルタを実装するようにしても良い。
以上詳しく説明したように、第１の実施形態によれば、１以上の基本フィルタを任意に組み合わせて縦続接続する形でフィルタ係数を算出し、更に丸め処理によって不要なフィルタ係数を大幅に削除するようにしたので、従来のＦＩＲフィルタに比べてタップ数を大幅に削減することができる。また、フィルタ係数を整数化することにより、各タップ出力にある係数器はビットシフト回路で構成できるので、乗算器が不要となり、構成の殆どはＤ型フリップフロップおよび加減算器となる。したがって、回路素子数を大幅に削減して回路規模を小さくすることができるとともに、消費電力の低減、演算負荷の軽減等を図ることができる。
しかも、丸め処理によってフィルタ係数の数を大幅に減らせるので、フィルタ係数の数を減らすために従来のような窓掛けを不要とすることができる。窓掛けを行うことなくデジタルフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることがない。したがって、デジタルフィルタの希望する周波数特性を高精度に実現することができる。
また、基本フィルタの組み合わせだけでデジタルフィルタを構成することが可能であり、設計は実際の周波数軸での周波数特性を合成する作業となる。したがって、フィルタ設計が単純で考えやすく、熟練した技術者でなくても、フィルタ設計を極めて簡単に感覚的に行うことができる。
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。図３７は、第２の実施形態によるデジタルフィルタの設計方法の手順を示すフローチャートである。また、図３８は、第２の実施形態によるデジタルフィルタの設計方法の概念を説明するための周波数特性図である。
図３７において、まず、数値列が対称型の第１のフィルタ係数を生成する（ステップＳ１）。この第１のフィルタ係数の生成法については特に限定しない。フィルタ係数の数値列が対称型になっていれば、近似式や窓関数を用いる従来の設計法を用いても良い。また、所望の周波数特性を表す複数の振幅値を入力し、当該入力した数値列を逆フーリエ変換した後、得られた数値列に対して窓掛けを行うことによって第１のフィルタ係数を求めるようにしても良い。また、第１の実施形態で説明した設計法を用いても良い。好ましくは、第１の実施形態（丸め処理を除く）で説明した設計法を用いて第１のフィルタ係数を生成する。
図３８中に符号Ａで示す周波数特性は、ステップＳ１で生成した第１のフィルタ係数によって実現されるオリジナルフィルタの周波数−ゲイン特性の一例を示している。
次に、第１のフィルタ係数により表される周波数−ゲイン特性（図３８中のＡ）において極大値をとる位置に接点を有し、当該接点において極小値をとる周波数−ゲイン特性（図３８中のＢ）を実現する対称型の第２のフィルタ係数を求める（ステップＳ２）。周波数−ゲイン特性がこのような特徴を有していれば、第２のフィルタ係数をどのような方法を用いて生成しても良いが、例えば次のような演算によって求めることができる。
すなわち、オリジナルフィルタを構成する第１のフィルタ係数の数値列を｛Ｈ−ｉ，Ｈ−（ｉ−１），・・・，Ｈ−１，Ｈ０，Ｈ１，・・・，Ｈｉ−１，Ｈｉ｝（Ｈ０が中央値で、当該中央値を境として対称型となっている。Ｈ−ｉ＝Ｈｉ，Ｈ−（ｉ−１）＝Ｈｉ−１），・・・，Ｈ−１＝Ｈ１）とした場合に、第２のフィルタ係数は、｛−αＨ−ｉ，−αＨ−（ｉ−１），・・・，−αＨ−１，−αＨ０＋（１＋α），−αＨ１，・・・，−αＨｉ−１，−αＨｉ｝（αは任意の正数）なる演算によって求める。つまり、中央値以外の係数は全て−α倍し、中央値だけは−α倍して更に（１＋α）を加算することによって、第２のフィルタ係数を求める。以下、この第２のフィルタ係数を有するフィルタを「調整フィルタ」と呼ぶ。
このようにして第２のフィルタ係数を求めたら、第１のフィルタ係数を有するオリジナルフィルタと、第２のフィルタ係数を有する調整フィルタとを縦続接続した場合に得られる第３のフィルタ係数を求める演算を行う（ステップＳ３）。オリジナルフィルタと調整フィルタとを縦続接続することにより、第１のフィルタ係数と第２のフィルタ係数とが乗算・加算されて新しいフィルタ係数が作り出される。縦続接続の演算内容は第１の実施形態で述べた通りである。
そして、これによって生成された第３のフィルタ係数に対して、ビット数を減らす丸め処理によって不要なフィルタ係数を大幅に削減するとともに、整数化によってフィルタ係数を簡素化する（ステップＳ４）。
なお、ここでも第１の実施形態と同様に、フィルタ係数のビット数を減らす処理と係数値を整数化する処理とを別に行う必要は必ずしもなく、係数値を直接２ｘ倍またはＮ倍し、その結果得られる値の小数点以下を丸める（切り捨て、切り上げまたは四捨五入など）ことによって、フィルタ係数のビット数を減らす処理と係数値を整数化する処理とを１つの丸め演算によって同時に行うようにしても良い。また、ｙビットの係数値が１／２ｘより小さいものは全てゼロとし、係数値が１／２ｘ以上のものについては、係数値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めるようにしても良い。
第２の実施形態においても、フィルタ係数の数を減らすために従来のような窓掛けは必ずしも必要でない。窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることがない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
なお、ここでは、オリジナルフィルタに対して１個の調整フィルタを縦続接続する場合を例にとって説明したが、複数の調整フィルタを縦続接続するようにしても良い。この場合は、図３７中に点線の矢印で示すように、ステップＳ３で生成した第３のフィルタ係数を新たに第１のフィルタ係数とみなしてステップＳ２に戻る。そして、当該新たな第１のフィルタ係数（オリジナルフィルタに単一パルスを入力した場合に１段目の調整フィルタから出力される数値列に相当）に基づいて、第２のフィルタ係数を再び求める（新しい調整フィルタを生成する）。
さらに、こうして生成した新たな第１のフィルタ係数と新たな第２のフィルタ係数とを畳み込み演算することによって、新しい調整フィルタを更に縦続接続した場合に得られる新たな第３のフィルタ係数を演算する。このような演算を、縦続接続したい調整フィルタの数だけ繰り返し行った後、最終段階のステップＳ３で生成された第３のフィルタ係数に対して、ステップＳ４の丸め処理を実行する。
図３９は、オリジナルフィルタ（バンドパスフィルタ）の周波数−ゲイン特性およびこのオリジナルフィルタに対して１〜３個の調整フィルタを縦続接続した場合に得られる周波数−ゲイン特性を示す図である。図３９において、４１はオリジナルフィルタの周波数−ゲイン特性、４２は調整フィルタを１個縦続接続した場合に得られる周波数−ゲイン特性、４３は調整フィルタを２個縦続接続した場合に得られる周波数−ゲイン特性、４４は調整フィルタを３個縦続接続した場合に得られる周波数−ゲイン特性をそれぞれ示す。
この図３９に示すように、オリジナルフィルタに対して本実施形態の調整フィルタを縦続接続することにより、フィルタの通過帯域幅を広げ、かつ、阻止域の傾斜を急峻にすることができる。縦続接続する調整フィルタの数を多くすることにより、通過帯域幅がより広くて傾斜もより急峻なフィルタ特性を得ることができる。
なお、この図３９は、第１のフィルタ係数から第２のフィルタ係数を求める際のパラメータαの値を１．５とした場合の周波数特性を示している。図３９に示されるように、α≠１とした場合には、周波数特性の頂部に若干のオーバーシュートやリンギングが生じる。ただし、α＝１とした場合には、周波数特性の頂部にオーバーシュートやリンギングが生じることはなく、平坦な特性となる。
図４０は、本実施形態の調整フィルタを縦続接続した場合に得られる周波数特性の変化の原理を説明するための図である。なお、この図４０は基本原理を説明するためのものであり、図３９に示した周波数特性の波形と一致するものではない。この図４０は、α＝１とした場合の原理を示している。
図４０（ａ）は、オリジナルフィルタに対して１個目の調整フィルタを縦続接続した場合における周波数−ゲイン特性の変化を示す。図４０（ａ）において、Ａはオリジナルフィルタの周波数−ゲイン特性、Ｂは当該オリジナルフィルタが有する第１のフィルタ係数から生成した第２のフィルタ係数を有する１個目の調整フィルタの周波数−ゲイン特性、Ｃはオリジナルフィルタと１個目の調整フィルタとを縦続接続した場合に得られる周波数−ゲイン特性を示す。
すなわち、オリジナルフィルタに対して調整フィルタを１個縦続接続した場合の新たな周波数−ゲイン特性Ｃは、オリジナルフィルタの周波数−ゲイン特性Ａと、調整フィルタの周波数−ゲイン特性Ｂとを掛け合わせた形となる。２個目の調整フィルタを更に縦続接続する場合には、このように生成された周波数−ゲイン特性Ｃに対応する第３のフィルタ係数を新たに第１のフィルタ係数として用い、２個目の調整フィルタに関する新たな第２のフィルタ係数を求める。
図４０（ｂ）は、２個目の調整フィルタを更に縦続接続した場合における周波数−ゲイン特性の変化を示す。図４０（ｂ）において、Ａ’は１個目の調整フィルタを縦続接続した場合の周波数−ゲイン特性であり、図４０（ａ）の手順で求められた周波数−ゲイン特性Ｃと同じものである。Ｂ’は当該周波数−ゲイン特性Ａ’に対応する新たな第１のフィルタ係数から生成した新たな第２のフィルタ係数を有する２個目の調整フィルタの周波数−ゲイン特性である。Ｃ’は２個目の調整フィルタを更に縦続接続した場合に得られる新たな周波数−ゲイン特性であり、２つの周波数−ゲイン特性Ａ’，Ｂ’を掛け合わせた形のものとなっている。
ここでは図示しないが、３個目の調整フィルタを更に縦続接続する場合には、図４０（ｂ）の手順で生成された新たな周波数−ゲイン特性Ｃ’に対応するフィルタ係数を再び第１のフィルタ係数として用い、３個目の調整フィルタに関する新たな第２のフィルタ係数を求める。そして、上述と同様の手順に従って新たな周波数−ゲイン特性を得る。
このように、オリジナルフィルタに対して複数の調整フィルタを縦続接続することにより、フィルタの通過帯域幅を広げるとともに、阻止域の傾斜を急峻にしていくことができる。α＝１とした場合には、オリジナルフィルタの周波数−ゲイン特性と調整フィルタの周波数−ゲイン特性とは、振幅が“１”のラインを境として線対称となる。したがって、調整フィルタを何個接続しても、掛け合わされた新たなフィルタの周波数−ゲイン特性が振幅“１”のラインを超えることはなく、オーバーシュートやリンギングは発生しない。このことから、αの値は“１”とするのが好ましい。
一方、αの値を１より大きくすると、多少のオーバーシュートやリンギングは発生するが、１個当たりの調整フィルタの接続で広げられる通過帯域幅の割合を大きくすることができる。したがって、少ない数の調整フィルタで通過帯域幅を効率的に広げたい場合には、αの値を大きくするのが良い。この場合において、α≠１として第２のフィルタ係数を求めた調整フィルタを複数段縦続接続した後、最終段にα＝１の調整フィルタを接続することによって、通過帯域幅を効率的に広げるとともに、オーバーシュートやリンギングのない良好な周波数特性を得ることができる。
図４１は、オリジナルフィルタに対して、α＝１．５の調整フィルタを３段縦続接続するとともに、最終段にα＝１の調整フィルタを更に縦続接続した場合に得られる周波数特性を示す図である。この図４１から分かるように、最終段にα＝１の調整フィルタを接続すれば、通過帯域幅が広く、阻止域の傾斜が急峻で、かつ、頂部が平坦な良好な周波数特性を得ることができる。また、フィルタ係数は対称型なので、位相の直線性も確保できる。また、α＜１としてαの値を調整することにより、通過周波数帯域幅を微調整することが可能である。
なお、以上ではバンドパスフィルタの設計例について説明したが、ローパスフィルタやハイパスフィルタなども同様の手順で設計することができる。図４２は、オリジナルのローパスフィルタの周波数−ゲイン特性およびこのオリジナルローパスフィルタに対して１〜５個の調整フィルタを縦続接続した場合に得られる周波数−ゲイン特性を示す図である。この図４２は、α＝１とした場合の周波数特性を示している。
図４２において、５１はオリジナルローパスフィルタの周波数−ゲイン特性、５２〜５６はそれぞれ調整フィルタを１個〜５個縦続接続した場合に得られる周波数−ゲイン特性を示す。この図４２に示すように、ローパスフィルタの場合も図３９のバンドパスフィルタと同様に、調整フィルタを縦続接続することによってフィルタの通過帯域幅を広げ、かつ、阻止域の傾斜を急峻にすることができる。また、縦続接続する調整フィルタの数を多くすることにより、通過帯域幅がより広くて傾斜もより急峻なフィルタ特性を得ることができる。
以上に説明した第２の実施形態によるフィルタ設計法を実現するための装置も、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態のフィルタ設計装置は、実際にはコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
第１のフィルタ係数を求めることは、第１の実施形態と同様に構成することができる。すなわち、各種の基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関するフィルタ係数をデータとして記憶装置に記憶しておく。そして、ユーザが基本フィルタＬｍａｎ，Ｌａｎ，Ｈｍｓｎ，Ｈｓｎ，Ｂｍｓｎ，Ｂｓｎに関する任意の組み合わせと接続順、各フィルタ係数間に挿入するゼロ値の数ｋ、基本フィルタの同種縦続接続数Ｍなどを指示すると、ＣＰＵが、上記記憶装置に記憶されているフィルタ係数のデータを用いて、指示された内容に対応するフィルタ係数を上述した演算により求める。
また、第１のフィルタ係数から調整フィルタの第２のフィルタ係数を求めることは、ＣＰＵが数値列の中央値以外の係数を全て−α倍し、中央値だけは−α倍して更に（１＋α）を加算することによって行うことが可能である。また、第１のフィルタ係数と第２のフィルタ係数から縦続接続による第３のフィルタ係数を求めることも、ＣＰＵが上述した図２４のような演算をすることによって行うことが可能である。さらに、フィルタ係数の丸め処理もＣＰＵによって自動的に行うことが可能である。
また、パーソナルコンピュータ等にインストールされている表計算ソフトの関数機能などを利用して、第１のフィルタ係数を求める演算、第２のフィルタ係数を求める演算、第３のフィルタ係数を求める演算、第３のフィルタ係数を丸め処理する演算を行うようにすることも可能である。この場合の演算は、実際には、表計算ソフトがインストールされているパーソナルコンピュータ等のＣＰＵ、ＲＯＭ、ＲＡＭなどによって行われる。
また、求めたフィルタ係数を自動的にＦＦＴ変換し、その結果を周波数−ゲイン特性図としてディスプレイ画面に表示するようにしても良い。このようにすれば、設計したフィルタの周波数特性を視覚的に確認することができ、フィルタ設計をより容易に行うことができる。
実際にデジタルフィルタを電子機器内や半導体ＩＣに実装する場合には、図５０〜図５２に示したように、以上のようなフィルタ設計装置によって最終的に求められた数値列をフィルタ係数として持つＦＩＲフィルタを構成すればよい。この場合も、求められたフィルタ係数の数は丸め処理によって大幅に削減されており、かつ、単純な整数に変換されている。したがって、基本的に乗算器は不要でビットシフト回路にて対応可能であり、所望の周波数特性を小さな回路規模で高精度に実現することができる。
なお、オリジナルフィルタと調整フィルタとをそれぞれハードウェアとして構成し、それらをハードウェアとして接続することによってデジタルフィルタを実装するようにしても良い。
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。図４３および図４４は、第３の実施形態によるデジタルフィルタの設計方法の手順を示すフローチャートである。また、図４５〜図４８は、第３の実施形態によるデジタルフィルタの設計方法の概念を説明するための周波数特性図である。
図４３は、第３の実施形態によるデジタルフィルタ設計方法の全体的な処理の流れを示すフローチャートである。図４３において、まず、フィルタ係数の数値列が対称型の基本フィルタを生成する（ステップＳ１１）。この基本フィルタは、フィルタリングの処理対象とする信号のサンプリング周波数ｆｓの１／β（βは１以上の整数）の通過帯域幅を有する周波数−ゲイン特性を有するものである。図４５に、基本フィルタの周波数−ゲイン特性を示す。この図４５は、サンプリング周波数ｆｓの半分を１２８等分した帯域幅を持つ基本フィルタの周波数−ゲイン特性を示したものである。
次に、図４５のような周波数−ゲイン特性を有する基本フィルタに対して周波数シフトの演算を行うことによって、互いに隣接するフィルタ群が振幅１／２の部分で重なり合うように基本フィルタの周波数−ゲイン特性が所定周波数ずつシフトされた複数の周波数シフトフィルタを生成する（ステップＳ１２）。この周波数シフトは、次のような演算で行うことができる。
基本フィルタのフィルタ係数列を｛Ｈ−ｉ０，Ｈ−（ｉ−１）０，Ｈ−（ｉ−２）０，・・・，Ｈ−１０，Ｈ００，Ｈ１０，・・・，Ｈｉ−２０，Ｈｉ−１０，Ｈｉ０｝（係数Ｈ００を中心として対称型となっている）、基本フィルタから数えてγ個目の周波数シフトフィルタ（基本フィルタの周波数−ゲイン特性を「所定周波数×γ」だけ周波数シフトしたもの）のフィルタ係数列を｛Ｈ−ｉγ，Ｈ−（ｉ−１）γ，Ｈ−（ｉ−２）γ，・・・，Ｈ−１γ，Ｈ０γ，Ｈ１γ，・・・，Ｈｉ−２γ，Ｈｉ−１γ，Ｈｉγ｝とした場合、γ個目の周波数シフトフィルタにおける係数番号ｊ（ｊ＝−ｉ，−（ｉ−１），−（ｉ−２），・・・，−１，０，１，・・・，ｉ−２，ｉ−１，ｉ）の係数Ｈｊγは、
Ｈｊγ＝Ｈｊ０＊２ｃｏｓ（２πγｊ／（β／２））
によって求められる。
例えばγ個目の周波数シフトフィルタにおける係数番号が−ｉの係数Ｈ−ｉγは、
Ｈ−ｉγ＝Ｈ−ｉ０＊２ｃｏｓ（２πγ＊（−ｉ）／（β／２））
によって求められる。また、係数番号が−（ｉ−１）の係数Ｈ−（ｉ−１）γは、
Ｈ−（ｉ−１）γ＝Ｈ−（ｉ−１）０＊２ｃｏｓ（２πγ＊（−（ｉ−１）／（β／２））
によって求められる。他の係数｛Ｈ−（ｉ−２）γ，・・・，Ｈ−１γ，Ｈ０γ，Ｈ１γ，・・・，Ｈｉ−２γ，Ｈｉ−１γ，Ｈｉγ｝も同様の演算によって求められる。
図４６に、このステップＳ１２で生成される複数の周波数シフトフィルタが有する周波数−ゲイン特性を示す（点線は基本フィルタの周波数−ゲイン特性）。上記ステップＳ１１およびステップ３１２の処理により、フィルタ群が振幅１／２の部分で重なり合うような周波数−ゲイン特性を有する複数のフィルタのフィルタ係数群が得られる。周波数シフトによって生成するフィルタの個数は任意であるが、基本フィルタの帯域幅がサンプリング周波数ｆｓの半分を１２８分割したものであるときは、一例として、基本フィルタと周波数シフトフィルタとを含めて合計１２８個とする。ここで生成するフィルタの個数によって決まる周波数範囲が、最終生成物たるデジタルフィルタの設計エリアとなる。
そして、上記ステップＳ１１およびステップＳ１２で生成された複数のフィルタの中から任意の１以上のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することにより、新たなフィルタ係数を求める（ステップＳ１３）。例えば、基本フィルタから数えてγ個目の周波数シフトフィルタと（γ＋１）個目の周波数シフトフィルタとを加算する場合、求めるフィルタ係数は、
｛Ｈ−ｉγ＋Ｈ−ｉγ＋１，Ｈ−（ｉ−１）γ＋Ｈ−（ｉ−１）γ＋１，Ｈ−（ｉ−２）γ＋Ｈ−（ｉ−２）γ＋１，・・・，Ｈ−１γ＋Ｈ−１γ＋１，Ｈ０γ＋Ｈ０γ＋１，Ｈ１γ＋Ｈ１γ＋１，・・・，Ｈｉ−２γ＋Ｈｉ−２γ＋１，Ｈｉ−１γ＋Ｈｉ−１γ＋１，Ｈｉγ＋Ｈｉγ＋１｝となる。
図４７は、このステップＳ１３で生成されるデジタルフィルタが有する周波数−ゲイン特性の一例を示す図である。なお、この図４７において、周波数軸のスケールは図４５、図４６と比べて大幅に圧縮している。この図４７に示す周波数−ゲイン特性は、γ＝０〜３１およびγ＝３３〜３８に相当する複数のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することによって生成したデジタルフィルタの周波数特性を示したものである。
上述のように、互いに隣接するフィルタは、振幅１／２の部分でちょうど重なり合うように作られているので、それらのフィルタ係数を加算すると、振幅はちょうど“１”となる。その結果、得られるフィルタの通過域の頂部が平坦化される。したがって、γ＝０〜３１に相当する３２個のフィルタの係数を加算すると、それら３２個のフィルタの頂部が平坦化され、（ｆｓ／２／１２８）×３２のバンド幅を有する通過域が得られる。また、γ＝３２に相当するフィルタは加算の対象となっていないので、その部分にはトラップが生じる。さらに、γ＝３３〜３８に相当する６個のフィルタの係数を加算すると、それら６個のフィルタの頂部が平坦化され、（ｆｓ／２／１２８）×６のバンド幅を有する通過域が得られる。以上により、γ＝０〜３８の部分に通過域を有し、かつ、γ＝３２の部分にトラップを有する特殊形状のローパスフィルタを得ることができる。
次に、ステップＳ１３で生成されたフィルタ係数に対して、ビット数を減らす丸め処理によって不要なフィルタ係数を大幅に削減するとともに、整数化によってフィルタ係数を簡素化する（ステップＳ１４）。
なお、ここでも第１の実施形態と同様に、フィルタ係数のビット数を減らす処理と係数値を整数化する処理とを別に行う必要は必ずしもなく、係数値を直接２ｘ倍またはＮ倍し、その結果得られる値の小数点以下を丸める（切り捨て、切り上げまたは四捨五入など）ことによって、フィルタ係数のビット数を減らす処理と係数値を整数化する処理とを１つの丸め演算によって同時に行うようにしても良い。また、ｙビットの係数値が１／２ｘより小さいものは全てゼロとし、係数値が１／２ｘ以上のものについては、係数値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めるようにしても良い。
第３の実施形態においても、フィルタ係数の数を減らすために従来のような窓掛けは必ずしも必要でない。窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることがない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
次に、上記ステップ３１１における基本フィルタの生成法について詳しく説明する。本発明では、この基本フィルタの生成法については特に限定しない。フィルタ係数の数値列が対称型になっていれば、様々な生成法を適用することが可能である。例えば、近似式や窓関数を用いる従来の設計法を用いても良い。また、所望の周波数特性を表す複数の振幅値を逆フーリエ変換する設計法を用いても良い。また、第１の実施形態で説明した設計法（丸め処理を除く）を用いても良い。
図４４は、基本フィルタの生成処理の一例を示すフローチャートである。図４４において、まず、対称型の基本的な数値列をフィルタ係数として持つ第１の実施形態のような基本フィルタに対し、数値列の間に複数の“０”を挿入することによってフィルタ帯域を調整する（ステップＳ２１）。例えば、基本ローパスフィルタＬ４ａ４のフィルタ係数を構成する数値列｛−１，０，９，１６，９，０，−１｝の間に“０”を１個ずつ挿入する。
図２３に示したように、数値列が｛−１，０，９，１６，９，０，−１｝から成るフィルタ係数の基本ローパスフィルタＬ４ａ４は、中心周波数の両側に通過域を１つずつ有するローパスフィルタ特性を実現するものである。このような基本ローパスフィルタＬ４ａ４のフィルタ係数間に“０”を１個ずつ挿入すると、その周波数−ゲイン特性の周波数軸（周波数方向に対する周期）は１／２となり、通過域の数が２倍に増える。同様にして、フィルタ係数間に挿入する“０”の数をｋ個とすると、その周波数−ゲイン特性の周波数軸は１／（ｋ＋１）となる。
したがって、挿入する“０”の数を１２７個とすることにより、サンプリング周波数ｆｓの半分を１２８等分した帯域幅を通過域として持つローパスフィルタの周波数−ゲイン特性が得られる。ただし、このままでは中心周波数より低い帯域内に１２８個の通過域が存在する連続波の周波数特性となっているので、この連続波から図４５のような基本フィルタを構成する単独波の周波数特性を切り出す必要がある。この切り出しを行うのが、以下に説明するステップＳ２２，Ｓ２３の処理である。
単独波の切り出しを行う際には、まず、図４８に示すような窓フィルタＷＦを生成する（ステップＳ２２）。この窓フィルタＷＦは、図４５のような基本フィルタとして抽出すべき単独波の通過域のみと共通の通過域を有するものである。そして、このような窓フィルタＷＦと基本ローパスフィルタＬ４ａ４（１２７）とを縦続接続することにより、図４５のような基本フィルタを抽出する（ステップＳ２３）。この窓フィルタＷＦと基本ローパスフィルタＬ４ａ４（１２７）との縦続接続は、図２４で説明したようなフィルタ係数の演算によって行うことができる。
本発明では、窓フィルタＷＦの生成法も特に限定せず、様々な生成法を適用することが可能である。一例としては、窓フィルタＷＦの周波数特性を表す複数の振幅値を入力し、当該入力した数値列を逆フーリエ変換するという方法がある。周知のように、ある数値列に対してフーリエ変換（ＦＦＴ）の処理を行うと、その数値列に対応した周波数−ゲイン特性の波形が得られる。したがって、所望の周波数−ゲイン特性の波形を表す数値列を入力してそれを逆ＦＦＴし、その実数項を抽出すれば、当該周波数−ゲイン特性を実現するのに必要な元の数値列が得られる。この数値列が、求める窓フィルタＷＦのフィルタ係数に相当する。
なお、理想的なフィルタを構成するには、本来、フィルタ係数を無限個必要とし、フィルタのタップ数も無限個にする必要がある。したがって、所望の周波数特性との誤差を小さくするためには、フィルタ係数の数に対応する入力データの数を、周波数誤差が必要な範囲内に入る程度まで多くするのが好ましい。ただし、窓フィルタＷＦに関しては、その通過域の中に基本フィルタだけの通過域が全て含まれていれば良く、それ以上の精度は要求されない。したがって、数値列の入力データ数（窓フィルタＷＦのフィルタ係数の数）はそれほど多くしなくも良い。
窓フィルタＷＦの周波数特性を表す振幅値の入力は、個々のサンプル点の数値を直接入力しても良いし、周波数−ゲイン特性を表すための２次元入力座標上において、所望の周波数特性の波形を描画し、描画された波形をそれに対応する数値列に置換入力するようにしても良い。後者の入力手法を用いれば、所望の周波数−ゲインをイメージとして確認しながらデータ入力を行うことができるので、所望の周波数特性を表すデータの入力を直感的に行いやすくすることができる。
後者の入力手法を実現する手段は幾つか考えられる。例えば、コンピュータのディスプレイ画面上に周波数−ゲイン特性を表す２次元平面を表示して、その２次元平面上に所望の周波数特性の波形をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等により描画し、それを数値データ化するという方法が考えられる。また、コンピュータ画面上のＧＵＩの代わりに、ディジタイザやプロッタ等のポインティングデバイスを用いても良い。ここに挙げている手法は単なる例に過ぎず、これ以外の手法により数値列を入力するようにしても良い。また、ここでは所望の周波数−ゲイン特性を数値列として入力しているが、当該周波数−ゲイン特性の波形を表す関数として入力するようにしても良い。
なお、窓フィルタＷＦを用いることなく、基本フィルタの周波数特性を表す振幅値を入力して逆ＦＦＴすることにより、基本フィルタのフィルタ係数を直接求めることも可能である。ただし、逆ＦＦＴ演算によって理想的な基本フィルタを構成するため（所望の周波数特性との誤差を小さくするため）には、フィルタ係数の数に対応する入力データの数を非常に多くする必要がる。この場合、基本フィルタを構成するフィルタ係数の数が膨大になり、これを利用して生成される最終生成物としてのフィルタ係数の数も膨大になってしまう。したがって、フィルタ係数の数をできるだけ少なくすることを希望する場合には、上述のように窓フィルタＷＦを用いて基本フィルタを生成するのが好ましい。
上述したように、基本フィルタのフィルタ係数を求めたら、周波数シフトの演算によって複数の周波数シフトフィルタのフィルタ係数を更に求める。そして、基本フィルタおよび複数の周波数シフトフィルタの中から任意の１以上のフィルタを取り出して、それらのフィルタ係数を対応する係数番号どうしで加算することにより、新たなフィルタ係数を求める。抽出するフィルタを任意に変えることにより、任意の周波数特性を有するデジタルフィルタを生成することができる。
また、以上のようにして求めたフィルタ係数の数値列に対して、ビット数を減らす丸め処理によって不要なフィルタ係数を大幅に削減するとともに、整数化によってフィルタ係数を簡素化することができる。よって、フィルタ係数の数を減らすために従来のような窓掛けは必要ない。窓掛けを行うことなくフィルタの設計ができるので、周波数特性に打ち切り誤差が生じることがない。したがって、遮断特性の極めて大きな改善が可能となり、位相特性も直線で優れたフィルタ特性を得ることができる。
図４７では一部にトラップを有するローパスフィルタの生成例を示したが、これ以外にも、任意の周波数帯域に通過域を有するローパスフィルタやハイパスフィルタ、バンドパスフィルタ、バンドエリミネーションフィルタを生成することが可能である。さらに、櫛型フィルタやその他の特殊な周波数特性を有するデジタルフィルタも簡単に生成することができる。また、基本フィルタを生成するときに分割数（βの数）を大きくしておけば、基本フィルタおよび個々の周波数シフトフィルタの阻止域の傾斜が大きくなるとともに、フィルタ設計エリアに対する分解能も高くなるので、希望の周波数特性に精密に合致したデジタルフィルタを生成することができる。
以上に説明した第３の実施形態によるフィルタ設計法を実現するための装置も、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態のフィルタ設計装置は、実際にはコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどで構成され、ＲＡＭやＲＯＭあるいはハードディスク等に記憶されたプログラムが動作することによって実現できる。
例えば、パーソナルコンピュータ等にインストールされている表計算ソフトの関数機能などを利用して、基本フィルタを求める演算、周波数シフトフィルタを求める演算、基本フィルタと複数の周波数シフトフィルタの中から任意に選択されたもののフィルタ係数を加算する演算を行うようにすることも可能である。この場合の演算は、実際には、表計算ソフトがインストールされているパーソナルコンピュータ等のＣＰＵ、ＲＯＭ、ＲＡＭなどによって行われる。
また、基本フィルタのフィルタ係数と、複数の周波数シフトフィルタのフィルタ係数とをあらかじめ計算して記憶装置に記憶しておき、ユーザによってキーボードやマウスの操作により選択されたものをＣＰＵが抽出して演算するようにしても良い。図４９は、その場合のデジタルフィルタ設計装置の構成例を示すブロック図である。
図４９において、６１はフィルタ係数テーブルであり、上述した基本フィルタのフィルタ係数と、複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群（フィルタ設計エリアを構成する全周波数帯域のフィルタ係数群）のテーブルデータを記憶している。図中、横軸の数字はフィルタの番号を示している。すなわち、０番の列は基本フィルタのフィルタ係数を記憶しており、１番以降の列は周波数シフトフィルタのフィルタ係数を記憶している。６２はコントローラであり、装置全体の制御を行う。
６３は操作部であり、基本フィルタおよび複数の周波数シフトフィルタの中から任意の１以上のフィルタを選択するためのものである。この操作部１３は、例えばキーボードやマウスなどの入力デバイスにより構成される。６４は表示部であり、任意の１以上のフィルタを選択する際の選択画面を表示する。この選択画面は、フィルタ係数テーブル６１の列番号を表示して何れかを選択させるものであっても良いし、図４６のような周波数特性の波形を表示して何れかを選択させるものであっても良い。
６５は演算部であり、基本フィルタおよび複数の周波数シフトフィルタの中から操作部１３によって選択されたフィルタのフィルタ係数（コントローラ１２がフィルタ係数テーブル１１から読み出す）を対応する係数番号どうしで加算することにより、デジタルフィルタのフィルタ係数を求める。この演算部６５は、このようにして求めたフィルタ係数のデータに対して下位数ビットを切り捨てることによってｙビットのデータをｘビットに丸める処理や、ｘビットの係数値を２ｘ倍して小数点以下を丸める処理も行う。
このように構成したデジタルフィルタ設計装置では、基本フィルタおよび複数の周波数シフトフィルタのフィルタ係数をあらかじめ求めてテーブルデータ化しておくことにより、ユーザが操作部６３を操作して選択したフィルタのフィルタ係数を単に足し算するだけの極めて簡単な演算だけで、所望のデジタルフィルタを設計することができる。
実際にデジタルフィルタを電子機器内や半導体ＩＣに実装する場合には、図５０〜図５２に示したように、以上のようなフィルタ設計装置によって最終的に求められた数値列をフィルタ係数として持つＦＩＲフィルタを構成すればよい。この場合、求められたフィルタ係数の数は丸め処理によって大幅に削減されるとともに、単純な整数に変換されている。したがって、基本的に乗算器は不要でビットシフト回路にて対応可能であり、所望の周波数特性を小さな回路規模で高精度に実現することができる。
なお、基本フィルタと周波数シフトフィルタとをそれぞれハードウェアとして構成し、それらをハードウェアとして接続することによってデジタルフィルタを実装するようにしても良い。
上記のように構成した第３の実施形態によれば、基本フィルタおよびこれから生成した複数の周波数シフトフィルタの中から所望の１以上のフィルタを選択してそのフィルタ係数を加算するだけの極めて簡易な処理で、任意形状の周波数−ゲイン特性を有するデジタルフィルタを精密に設計することができる。さらに、丸め処理によって不要なフィルタ係数を大幅に削減することができるとともに、フィルタ係数を簡素化することができる。これにより、所望の周波数特性を高精度に実現するデジタルフィルタを極めて小さい回路規模で構成することができる。
なお、上記第３の実施形態では、基本ユニットフィルタのフィルタ係数の数値列として｛−１，０，９，１６，９，０，−１｝を用いる例について説明したが、本発明はこれに限定されない。数値列が対称型になっていれば、本発明に適用することが可能である。
また、上記第３の実施形態では、基本フィルタとしてローパスフィルタを用い、これを高周波側に周波数シフトする例について説明したが、本発明はこれに限定されない。基本フィルタとしてハイパスフィルタを用い、これを低周波側に周波数シフトするようにしても良いし、基本フィルタとしてバンドパスフィルタを用い、これを高周波側および低周波側に周波数シフトするようにしても良い。
また、上記第３の実施形態において、演算部６３は、操作部１３によって選択された１以上のフィルタのフィルタ係数（コントローラ１２がフィルタ係数テーブル１１から読み出したもの）を加算することによって新たなフィルタ係数を算出する演算を行う際に、当該選択された１以上のフィルタのフィルタ係数に対してそれぞれ任意の重み付けを行うようにしても良い。このようにすれば、特定の周波数帯域のみを強調したり減衰させたりした任意形状の周波数−ゲイン特性を有するデジタルフィルタを極めて簡易に設計することができる。また、この特性を利用したグラフィックイコライザ等も簡単に設計することができる。
その他、上記第１〜第３の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】  本発明は、複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号をそれぞれフィルタ係数により数倍した後、それらの乗算結果を加算して出力するタイプのＦＩＲデジタルフィルタに有用である。
【図１】
2005078925.tif 000002
【図２】
2005078925.tif 000003
【図３】
2005078925.tif 000004
【図４】
2005078925.tif 000005
【図５】
2005078925.tif 000006
【図６】
2005078925.tif 000007
【図７】
2005078925.tif 000008
【図８】
2005078925.tif 000009
【図９】
2005078925.tif 000010
【図１０】
2005078925.tif 000011
【図１１】
2005078925.tif 000012
【図１２】
2005078925.tif 000013
【図１３】
2005078925.tif 000014
【図１４】
2005078925.tif 000015
【図１５】
2005078925.tif 000016
【図１６】
2005078925.tif 000017
【図１７】
2005078925.tif 000018
【図１８】
2005078925.tif 000019
【図１９】
2005078925.tif 000020
【図２０】
2005078925.tif 000021
【図２１】
2005078925.tif 000022
【図２２】
2005078925.tif 000023
【図２３】
2005078925.tif 000024
【図２４】
2005078925.tif 000025
【図２５】
2005078925.tif 000026
【図２６】
2005078925.tif 000027
【図２７】
2005078925.tif 000028
【図２８】
2005078925.tif 000029
【図２９】
2005078925.tif 000030
【図３０】
2005078925.tif 000031
【図３１】
2005078925.tif 000032
【図３２】
2005078925.tif 000033
【図３３】
2005078925.tif 000034
【図３４】
2005078925.tif 000035
【図３５】
2005078925.tif 000036
【図３６】
2005078925.tif 000037
【図３７】
2005078925.tif 000038
【図３８】
2005078925.tif 000039
【図３９】
2005078925.tif 000040
【図４０】
2005078925.tif 000041
【図４１】
2005078925.tif 000042
【図４２】
2005078925.tif 000043
【図４３】
2005078925.tif 000044
【図４４】
2005078925.tif 000045
【図４５】
2005078925.tif 000046
【図４６】
2005078925.tif 000047
【図４７】
2005078925.tif 000048
【図４８】
2005078925.tif 000049
【図４９】
2005078925.tif 000050
【図５０】
2005078925.tif 000051
【図５１】
2005078925.tif 000052
【図５２】
2005078925.tif 000053
【手続補正書】
【提出日】平成17年11月7日(2005.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】（削除）
【請求項２】（削除）
【請求項３】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、または、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出する第１のステップと、
上記第１のステップで算出したｙビットのフィルタ係数のデータ（絶対値が０以上１以下のデータ）に対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数をｘビット（ｘ＜ｙ）に減らす第２のステップと、
上記第２のステップで求められたｘビットのフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する第３のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項４】（削除）
【請求項５】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、または、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出する第１のステップと、
上記第１のステップで算出したｙビットのフィルタ係数のデータ（絶対値が０以上１以下のデータ）をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求める第２のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項６】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、または、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を算出する第１のステップと、
上記第１のステップで算出したｙビットのフィルタ係数のデータ値（絶対値が０以上１以下のデータ）が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求める第２のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項７】（削除）
【請求項８】（削除）
【請求項９】（削除）
【請求項１０】（削除）
【請求項１１】（削除）
【請求項１２】上記第１のステップと上記第２のステップとの間に第４のステップおよび第５のステップを有し、
上記第４のステップでは、上記第１のステップで算出した上記第１のフィルタ係数により表される第１の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる第２の周波数振幅特性を実現する対称型の第２のフィルタ係数を算出し、
上記第５のステップでは、上記第１のフィルタ係数を有する第１のフィルタと上記第２のフィルタ係数を有する第２のフィルタとを縦続接続した場合に得られる第３のフィルタ係数を算出し、
上記第２のステップでは、上記第５のステップで算出した上記第３のフィルタ係数のｙビットのデータに対して下位数ビットを丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）のフィルタ係数を求めるように成され、
上記第４のステップでは、上記第１のフィルタ係数の数値列が｛Ｈｍ，Ｈｍ−１，・・・，Ｈ１，Ｈ０，Ｈ−１，・・・，Ｈ−（ｍ−１），Ｈ−ｍ｝で表される場合に、上記第２のフィルタ係数を｛−ｋＨｍ，−ｋＨｍ−１・・・，−ｋＨ１，−ｋＨ０＋（１＋ｋ），−ｋＨ−１，・・・，−ｋＨ−（ｍ−１），−ｋＨ−ｍ｝（ｋは任意の正数）なる演算によって求めることを特徴とする請求の範囲第３項に記載のデジタルフィルタの設計方法。
【請求項１３】サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタに対して周波数シフトの演算を行うことにより、互いに隣接するフィルタ群が振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタを生成する第１のステップと、
上記基本フィルタおよび上記周波数シフトフィルタを含む複数のフィルタのうち、任意の１つのフィルタを抽出し、または、任意の２以上のフィルタを抽出してその各フィルタの同一のタップ位置に対応するフィルタ係数どうしを加算することによって新たなフィルタ係数を求める第２のステップと、
上記第２のステップで算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす第３のステップとを有することを特徴とするデジタルフィルタの設計方法。
【請求項１４】（削除）
【請求項１５】上記第２のステップで算出したｙビットのフィルタ係数のデータ（絶対値が０以上１以下のデータ）に対して上記第３のステップで上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する第４のステップを更に有することを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１６】（削除）
【請求項１７】上記第３のステップでは、上記第２のステップで算出したｙビットのフィルタ係数のデータ（絶対値が０以上１以下のデータ）をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１８】上記第３のステップでは、上記第２のステップで算出したｙビットのフィルタ係数のデータ値（絶対値が０以上１以下のデータ）が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第１３項に記載のデジタルフィルタの設計方法。
【請求項１９】（削除）
【請求項２０】（削除）
【請求項２１】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦絖接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、当該算出したフィルタ係数のｙビットのデータ（絶対値が０以上１以下のデータ）に対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数をｘビット（ｘ＜ｙ）に減らす演算、および、当該算出したｘビットのフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項２２】（削除）
【請求項２３】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、および、当該算出したフィルタ係数のｙビットのデータ（絶対値が０以上１以下のデータ）をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求める演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項２４】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、および、当該算出したフィルタ係数のｙビットのデータ値（絶対値が０以上１以下のデータ）が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求める演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項２５】（削除）
【請求項２６】（削除）
【請求項２７】（削除）
【請求項２８】（削除）
【請求項２９】数値列が対称型であり、当該数値列の合計値が非ゼロで、当該数値列の１つ飛びの合計値が同符号で互いに等しくなるように値が設定された基本のフィルタ係数、および、数値列が対称型であり、当該数値列の合計値がゼロで、当該数値列の１つ飛びの合計値が逆符号で互いに等しくなるように値が設定された基本のフィルタ係数に関するデータを記憶する基本フィルタ係数記憶手段と、
上記基本のフィルタ係数を有するＦＩＲ型の１以上の基本フィルタを任意に組み合わせて縦続接続した場合に得られる対称型の第１のフィルタ係数を、上記基本フィルタ係数記憶手段に記憶されたデータを用いて算出する演算、上記第１のフィルタ係数により表される第１の周波数振幅特性において極大値をとる位置に接点を有し、当該接点において極小値をとる第２の周波数振幅特性を実現する対称型の第２のフィルタ係数を求める演算、上記第１のフィルタ係数を有する第１のフィルタと上記第２のフィルタ係数を有する第２のフィルタとを縦続接続した場合に得られる第３のフィルタ係数を求める演算、および、上記第３のフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす演算を行う演算手段とを備え、
上記演算手段は、上記第１のフィルタ係数の数値列が｛Ｈｍ，Ｈｍ−１，・・・，Ｈ１，Ｈ０，Ｈ−１，・・・，Ｈ−（ｍ−１），Ｈ−ｍ）で表される場合に、上記第２のフィルタ係数を｛−ｋＨｍ，−ｋＨｍ−１，・・・，−ｋＨ１，−ｋＨ０＋（１＋ｋ），−ｋＨ−１，・・・，−ｋＨ−（ｍ−１），−ｋＨ−ｍ｝（ｋは任意の正数）なる演算によって求めることを特徴とするデジタルフィルタの設計装置。
【請求項３０】（削除）
【請求項３１】上記演算手段は、ｙビットの上記第３のフィルタ係数のデータ（絶対値が０以上１以下のデータ）に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３２】（削除）
【請求項３３】上記演算手段は、上記フィルタ係数のｙビットのデータ（絶対値が０以上１以下のデータ）をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３４】上記演算手段は、上記フィルタ係数のｙビットのデータ値（絶対値が０以上１以下のデータ）が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第２９項に記載のデジタルフィルタの設計装置。
【請求項３５】サンプリング周波数の整数分の１の通過帯域幅を有する周波数振幅特性を実現する基本フィルタのフィルタ係数と、互いに隣接するフィルタ群が振幅１／２の部分で重なり合うように上記基本フィルタの周波数振幅特性が所定周波数ずつシフトされた周波数振幅特性を実現する複数の周波数シフトフィルタのフィルタ係数とを含むフィルタ係数群のテーブルデータを記憶する係数テーブル記憶手段と、
上記係数テーブル記憶手段に記憶されているフィルタ係数群のうち、指定された１つのフィルタのフィルタ係数を抽出し、または、指定された２以上のフィルタの同一のタップ位置に対応するフィルタ係数どうしを加算することによって新たなフィルタ係数を算出する演算、および、当該算出したフィルタ係数のデータに対して下位数ビットを丸める丸め処理を行うことによってフィルタ係数のビット数を減らす演算を行う演算手段とを備えたことを特徴とするデジタルフィルタの設計装置。
【請求項３６】上記演算手段は、上記指定された２以上のフィルタのフィルタ係数を加算することによって新たなフィルタ係数を算出する演算を行う際に、上記指定された２以上のフィルタのフィルタ係数に対してそれぞれ任意の重み付けを行うことを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項３７】（削除）
【請求項３８】上記演算手段は、上記新たなフィルタ係数を算出する演算によって求めたｙビットのフィルタ係数のデータ（絶対値が０以上１以下のデータ）に対して上記丸め処理を行うことによって求められたｘビット（ｘ＜ｙ）のフィルタ係数をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める第２の丸め処理を行うことによってフィルタ係数を整数化する手段を更に備えることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項３９】（削除）
【請求項４０】上記演算手段は、上記フィルタ係数のｙビットのデータ（絶対値が０以上１以下のデータ）をＮ倍（Ｎは２のべき乗以外の値）して小数点以下を丸める丸め処理を行うことによってｘビット（ｘ＜ｙ）の整数化されたフィルタ係数を求めることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項４１】上記演算手段は、上記フィルタ係数のｙビットのデータ値（絶対値が０以上１以下のデータ）が１／２ｘより小さいものは全てゼロとし、上記データ値が１／２ｘ以上のものについては、上記データ値を２ｘ＋Ｘ倍（ｘ＋Ｘ＜ｙ）して小数点以下を丸める処理を行うことによって（ｘ＋Ｘ）ビットの整数化されたフィルタ係数を求めることを特徴とする請求の範囲第３５項に記載のデジタルフィルタの設計装置。
【請求項４２】請求の範囲第３項、第５項または第６項の何れか１項に記載されたデジタルフィルタの設計方法に関する処理手順をコンピュータに実行させるためのデジタルフィルタ設計用プログラム。
【請求項４３】請求の範囲第２１項、第２３項、第２４項、第２９項または第３５項の何れか１項に記載の各手段としてコンピュータを機能させるためのデジタルフィルタ設計用プログラム。
【請求項４４】請求の範囲第３項、第５項または第６項の何れか１項に記載の設計方法、あるいは、請求の範囲第２１項、第２３項、第２４項、第２９項または第３５項の何れか１項に記載の設計装置を用いて算出された数値列をフィルタ係数として持つＦＩＲ型のデジタルフィルタ。
【請求項４５】複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第３項、第５項または第６項の何れか１項に記載の設計方法、あるいは、請求の範囲第２１項、第２３項、第２４項、第２９項または第３５項の何れか１項に記載の設計裝置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項４６】（削除）
【請求項４７】複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第３項もしくは第５項の何れか１項に記載の設計方法、または、請求の範囲第２１項もしくは第２３項の何れか１項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算し、その加算結果を１／Ｎ倍して出力するように構成したことを特徴とするデジタルフィルタ。
【請求項４８】複数の遅延器から成るタップ付き遅延線を備え、各タップの出力信号を、請求の範囲第６項に記載の設計方法、または、請求の範囲第２４項に記載の設計装置を用いて求められたフィルタ係数によりそれぞれ数倍した後、それらの乗算結果を加算し、その加算結果を１／２ｘ＋Ｘ倍して出力するように構成したことを特徴とするデジタルフィルタ。
【国際調査報告】
2005078925.tif 000054
2005078925.tif 000055
2005078925.tif 000056
2005078925.tif 000057