(57)【特許請求の範囲】
【請求項１】
ＩＩＲ型フィルタへの入力信号が入力され、前記入力信号の符号及び絶対値をＩＩＲ型フィルタに関する動作情報として作成する入力信号情報作成手順と、
前記ＩＩＲ型フィルタへの入力信号の符号及び絶対値を前記動作情報として取得する動作情報取得手順と、
予め定められた２以上の丸め処理のなかから、前記動作情報に対応する１つの丸め処理を選択する選択手順と、
前記選択手順で選択した丸め処理を用いて前記ＩＩＲ型フィルタへの入力信号を丸める丸め処理手順と、
を順に有し、
前記選択手順において、
前記入力信号の絶対値が予め定められた閾値よりも小さいときは０への丸め処理を選択し、
前記入力信号の符号が正でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは正の無限大の丸め処理を選択し、
前記入力信号の符号が負でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは負の無限大の丸め処理を選択する、
丸め処理方法。
【請求項２】
請求項１に記載の各手順を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有限長精度の数値データの丸め処理を複数回行う丸め処理方法及びプログラムに関する。
【背景技術】
【０００２】
計算機等で有限長精度の数値演算を行うときに指定のビット位置で丸め処理を行う。丸め処理の方法には、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，．Ｉｎｃ．）７５４等の複数の方法があり、それぞれ特性や処理量が異なる（例えば、特許文献１参照。）。
【０００３】
特許文献１の方法は、演算器から出力された乗算結果の符合に基づいて、正側加算器又は負側加算器を選択し、乗算器から出力された正の乗算結果を正側加算器に出力し、乗算器から出力された負の乗算結果を負側加算器に出力することにより、正負を分けて累加算演算を行う。これにより、演算器のビット幅を広げることなく、桁落ちを防止する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２４１９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタで有限長精度の数値演算を行ったときに、入力が０になっても丸め誤差によって０に収束しなくなる場合がある。例えば、ＩＩＲフィルタを用いたＨＰＦ（Ｈｉｇｈ  Ｐａｓｓ  ｆｉｌｔｅｒ）では、演算で扱うデータのビット数が少ないと、丸めによる誤差の割合が高いデータを次のフィルタ演算で使用することになる。このため、入力が０になっても丸め誤差によって０に収束しなくなる場合がある。
【０００６】
特許文献１の方法は、正側加算器又は負側加算器を用いるため、演算で扱うデータのビット数が少ないと、丸めによる誤差の割合が高いデータを次のフィルタ演算で使用することになる。このため、入力が０になっても丸め誤差によって０に収束しなくなる場合がある。
【０００７】
したがって、本発明は、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束する丸め処理方法及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本願発明の丸め処理方法は、ＩＩＲ型フィルタへの入力信号が入力され、前記入力信号の符号及び絶対値をＩＩＲ型フィルタに関する動作情報として作成する入力信号情報作成手順と、前記ＩＩＲ型フィルタへの入力信号の符号及び絶対値を前記動作情報として取得する動作情報取得手順と、予め定められた２以上の丸め処理のなかから、前記動作情報に対応する１つの丸め処理を選択する選択手順と、前記選択手順で選択した丸め処理を用いて前記ＩＩＲ型フィルタの入力信号を丸める丸め処理手順と、を順に有し、前記選択手順において、前記入力信号の絶対値が予め定められた閾値よりも小さいときは０への丸め処理を選択し、前記入力信号の符号が正でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは正の無限大の丸め処理を選択し、前記入力信号の符号が負でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは負の無限大の丸め処理を選択する。
【０００９】
丸め処理手順を有するため、ＩＩＲ型フィルタへの入力信号を丸めることができる。丸め処理手順の前に動作情報取得手順及び選択手順を有するため、動作情報を用いて入力が０になれば丸め誤差によって０に収束する丸め処理を選択することができる。したがって、本願発明は、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束する丸め処理方法を提供することができる。
【００１２】
上記目的を達成するために、本願発明のプログラムは、本願発明の丸め処理方法を、コンピュータに実行させるためのプログラムである。
本願発明のプログラムにより、入力信号情報作成手順、動作情報取得手順、選択手順及び丸め処理手順を、コンピュータに順に実行させることができる。したがって、本願発明のプログラムは、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束するプログラムを提供することができる。
【００１３】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００１４】
本発明によれば、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束する丸め処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態１に係るＩＩＲフィルタの構成の一例を示す。
【図２】実施形態１に係る丸め処理方法の一例を示す。
【図３】実施形態１に係る丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。
【図４】実施形態２に係るＩＩＲフィルタの構成の一例を示す。
【図５】実施形態２に係る丸め処理方法の一例を示す。
【図６】実施形態２に係る丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。
【発明を実施するための形態】
【００１６】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００１７】
（実施形態１）
図１に、実施形態１に係るＩＩＲフィルタの構成の一例を示す。本実施形態に係るＩＩＲフィルタは、入力信号入力端子１１と、加算器１６と、丸め処理部１２と、遅延部１３−１，１３−２と、係数乗算部１４−１，１４−２と、出力端子１５と、を備え、有限長精度の数値データで数値演算を行う。
【００１８】
例えば、入力信号入力端子１１に１６ｂｉｔの入力信号ＳＩが入力される。加算器１６は、入力信号入力端子１１に入力された入力信号ＳＩと、係数乗算部１４−１からの３２ｂｉｔの信号ＳＦ−１及び係数乗算部１４−２からの３２ｂｉｔの信号ＳＦ−２と、を加算して、３４ｂｉｔの信号ＳＳを出力する。丸め処理部１２は、判定部２２からの命令ＯＭに従って、３４ｂｉｔの信号ＳＳの丸め処理を行い、１６ｂｉｔの出力信号ＳＯを出力する。これにより、出力端子１５から、丸め処理を行った１６ｂｉｔの出力信号ＳＯが出力される。
【００１９】
遅延部１３−１は、予め定められた伝達関数に従って、出力信号ＳＯを遅延させ、信号ＳＤ―１を出力する。係数乗算部１４−１は、遅延部１３−１からの信号ＳＤ−１を、予め定められた係数を用いて乗算し、３２ｂｉｔの信号ＳＦ−１を出力する。遅延部１３−２は、予め定められた伝達関数に従って、信号ＳＤ―１を遅延させ、信号ＳＤ―２を出力する。係数乗算部１４−２は、遅延部１３−２からの信号ＳＤ−２を、予め定められた係数を用いて乗算し、３２ｂｉｔの信号ＳＦ−２を出力する。
【００２０】
ここで、遅延部１３−１及び遅延部１３−２は、例えば、シフトレジスタである。伝達関数は、例えば逆Ｚ変換である。係数乗算部１４−１及び係数乗算部１４−２は、例えば１６ｂｉｔの係数との乗算器である。このように、実施形態１に係るＩＩＲフィルタは、固定小数点演算器を使用してＩＩＲ型フィルタ処理を行う。
【００２１】
さらに、本実施形態に係るＩＩＲフィルタは、判定部２２と、入力信号情報作成部２３と、を備え、入力信号ＳＩを判断材料として複数の丸めアルゴリズムから丸め方を選択する。これにより、演算器が扱うビット数を増加させることなく、小入力信号時の丸め誤差の影響を軽減する。
【００２２】
実施形態１に係るプログラムは、実施形態１に係る丸め処理方法を、コンピュータに実行させるためのプログラムである。図２に、本実施形態に係る丸め処理方法の一例を示す。本実施形態に係る丸め処理方法は、入力信号情報作成手順Ｓ１０４と、動作情報取得手順Ｓ１０１と、選択手順Ｓ１０２と、丸め処理手順Ｓ１０３と、を順に有する。
【００２３】
図３に、丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。丸め処理部１２は、負の無限大への丸め処理部３１−１と、０への丸め処理部３１−２と、正の無限大への丸め処理部３１−３と、切り替えスイッチ３２と、を備える。この場合の丸め処理方法について説明する。
【００２４】
入力信号情報作成手順Ｓ１０４では、ＩＩＲ型フィルタへの入力信号ＳＩが入力され、入力信号情報作成部２３が、入力信号ＳＩの符号及び絶対値を動作情報ＩＭとして作成する。
【００２５】
動作情報取得手順Ｓ１０１では、判定部２２が、入力信号情報作成部２３からＩＩＲ型フィルタに関する動作情報ＩＭを取得する。本実施形態では、動作情報ＩＭは、入力信号ＳＩの符号及び入力信号ＳＩの絶対値である。
【００２６】
選択手順Ｓ１０２では、予め定められた２以上の丸め処理のなかから、動作情報に対応する１つの丸め処理を選択する。例えば、判定部２２は、負の無限大への丸め処理、０への丸め処理及び正の無限大への丸め処理のなかから、動作情報ＩＭに対応する１つの丸め処理を選択する。そして、判定部２２は、選択した丸め処理を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。
【００２７】
入力信号ＳＩの絶対値が予め定められた閾値よりも小さいとき、判定部２２は、０への丸め処理を選択し、０への丸め処理を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。入力信号の符号が正でありかつ入力信号の絶対値が閾値よりも大きいとき、判定部２２は、正の無限大の丸め処理を選択し、正の無限大への丸め処理を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。入力信号の符号が負でありかつ入力信号の絶対値が閾値よりも大きいとき、判定部２２は、負の無限大の丸め処理を選択し、負の無限大への丸め処理を用いて丸め処理を行う旨の命令ＯＭを、丸め処理部１２に出力する。ＩＩＲフィルタを用いてＬＰＦ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ）を構成する場合も同様である。
【００２８】
ここで、判定部２２の閾値は、予め定められた値である。閾値は、例えば、入力信号の最大振幅の一定割合より低い値に定める。最大振幅の一定割合は、例えば１０％である。
【００２９】
判定部２２が入力信号ＳＩの符号及び入力信号ＳＩの絶対値によって丸め処理を選択することで、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。なお、丸め処理は、例えば、ＩＥＥＥ７５４に規定するいずれの丸め処理であってもよい。ＩＥＥＥ７５４に規定する丸め処理は、例えば、最近接丸め（偶数）、最近接丸め（０から遠い方へ）、０への丸め、正の無限大への丸め又は負の無限大への丸めである。
【００３０】
丸め処理手順Ｓ１０３では、選択手順Ｓ１０２で選択した丸め処理を用いてＩＩＲ型フィルタへの入力信号ＳＩを丸める。このとき、丸め処理部１２は、判定部２２からの命令ＯＭに従って丸め処理を行う。例えば、負の無限大への丸め処理部３１−１、０への丸め処理部３１−２及び正の無限大への丸め処理部３１−３は、入力信号ＳＩの丸め処理を行う。
【００３１】
負の無限大への丸め処理を用いて丸め処理を行う旨の命令ＯＭが入力された場合、切り替えスイッチ３２は、負の無限大への丸め処理部３１−１を接続する。これにより、丸め処理部１２は、負の無限大への丸め処理部３１−１の丸め処理を行った処理結果を出力信号ＳＯとして出力する。
０への丸め処理を用いて丸め処理を行う旨の命令ＯＭが入力された場合、切り替えスイッチ３２は、０への丸め処理部３１−２を接続する。これにより、丸め処理部１２は、０への丸め処理部３１−２の丸め処理を行った処理結果を出力信号ＳＯとして出力する。
正の無限大への丸め処理を用いて丸め処理を行う旨の命令ＯＭが入力された場合、切り替えスイッチ３２は、正の無限大への丸め処理部３１−３を接続する。これにより、丸め処理部１２は、正の無限大への丸め処理部３１−３の丸め処理を行った処理結果を出力信号ＳＯとして出力する。
【００３２】
なお、本実施形態では、２次のＩＩＲフィルタの場合について説明したが、１次のＩＩＲフィルタであってもよいし、３次以上のＩＩＲフィルタであってもよい。
【００３３】
以上、実施形態１に係るＩＩＲフィルタは、実施形態１に係る丸め処理方法を実行することで、入力信号ＳＩを判断材料として複数の丸めアルゴリズムから丸め方を選択することにより、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。これにより、一定の精度を保ちながら入力が０になったときでも出力を０とすることができるようになる。したがって、実施形態１に係る丸め処理方法は、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束させることができる。
【００３４】
（実施形態２）
図４に、実施形態２に係るＩＩＲフィルタの構成の一例を示す。本実施形態に係るＩＩＲフィルタは、外部信号入力端子２１をさらに備え、実施形態１の入力信号情報作成部２３に代えて外部信号情報作成部２４を備える。
【００３５】
実施形態２に係るプログラムは、実施形態２に係る丸め処理方法を、コンピュータに実行させるためのプログラムである。図５に、実施形態２に係る丸め処理方法の一例を示す。本実施形態に係る丸め処理方法は、実施形態１の入力信号情報作成手順Ｓ１０４に代えて、外部信号情報作成手順Ｓ１０５を有する。
【００３６】
図６に、丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。丸め処理部１２は、第１の丸め処理を行う第１の丸め処理部３３−１と、第２の丸め処理を行う第２の丸め処理部３３−２と、切り替えスイッチ３２と、を備える。この場合、判定部２２は、第１の丸め処理部及び第２の丸め処理のなかから、動作情報ＩＭに対応する１つの丸め処理を選択する。第１の丸め処理は、０への丸め処理を行う。第２の丸め処理は、正の無限大への丸め処理又は負の無限大への丸め処理を行う。
【００３７】
図５に示す外部信号情報作成手順Ｓ１０５では、外部信号情報作成部２４に外部信号ＳＩ−２が入力される。ここで、外部信号ＳＩ−２は、入力信号ＳＩ以外のＩＩＲ型フィルタに関する信号であり、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の稼働率を示す信号、メモリ使用率を示す信号又は省電力モードであるか否かを示す信号である。そして、外部信号情報作成部２４は、外部信号ＳＩ−２に応じて、第１の丸め処理部及び第２の丸め処理のいずれかを指定する指定情報を動作情報ＩＭ−２として作成する。
【００３８】
例えば、外部信号ＳＩ−２としてＣＰＵの稼働率が外部信号情報作成部２４に入力される。この場合、ＣＰＵの稼働率が一定未満であるとき、外部信号情報作成部２４は、第２の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。一方、ＣＰＵの稼働率が一定以上であるとき、外部信号情報作成部２４は、第１の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。
【００３９】
例えば、外部信号ＳＩ−２としてメモリ使用率が外部信号情報作成部２４に入力される。この場合、メモリ使用率が一定以上であるとき、外部信号情報作成部２４は、第１の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。一方、メモリ使用率が一定未満であるとき、外部信号情報作成部２４は、第２の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。
【００４０】
例えば、外部信号ＳＩ−２として省電力モードであるか否かが外部信号情報作成部２４に入力される。この場合、省電力モードであるとき、外部信号情報作成部２４は、第１の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。一方、省電力モードでない通常モードであるとき、外部信号情報作成部２４は、第２の丸め処理を指定する指定情報を動作情報ＩＭ−２として作成する。
【００４１】
図５に示す動作情報取得手順Ｓ１０１において、判定部２２は、外部信号情報作成部２４から指定情報を動作情報ＩＭとして取得する。本実施形態では、動作情報ＩＭは、第１の丸め処理部及び第２の丸め処理のいずれかを指定する指定情報である。
【００４２】
図５に示す選択手順Ｓ１０２において、判定部２２は、動作情報ＩＭによって指定された丸め処理を選択する。例えば、判定部２２は、第１の丸め処理部及び第２の丸め処理のなかから、動作情報ＩＭに対応する１つの丸め処理を選択する。そして、判定部２２は、選択した丸め処理を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。
【００４３】
例えば、動作情報ＩＭが第１の丸め処理部を指定する指定情報である場合、判定部２２は、第１の丸め処理部を選択し、第１の丸め処理部を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。例えば、動作情報ＩＭが第２の丸め処理部を指定する指定情報である場合、判定部２２は、第２の丸め処理部を選択し、第２の丸め処理部を用いて丸め処理を行う旨の命令ＯＭを丸め処理部１２に出力する。
【００４４】
図５に示す丸め処理手順Ｓ１０３では、選択手順Ｓ１０２で選択した丸め処理を用いてＩＩＲ型フィルタへの入力信号ＳＩを丸める。このとき、丸め処理部１２は、判定部２２からの命令ＯＭに従って丸め処理を行う。例えば、第１の丸め処理部３３−１及び第２の丸め処理部３３−２は、入力信号ＳＩの丸め処理を行う。
【００４５】
第１の丸め処理を行う旨の命令ＯＭが入力された場合、切り替えスイッチ３２は、第１の丸め処理部３３−１を接続する。これにより、丸め処理部１２は、第１の丸め処理を行った処理結果を出力信号ＳＯとして出力する。
第２の丸め処理を行う旨の命令ＯＭが入力された場合、切り替えスイッチ３２は、第２の丸め処理部３３−２を接続する。これにより、丸め処理部１２は、第２の丸め処理を行った処理結果を出力信号ＳＯとして出力する。
【００４６】
なお、本実施形態では、２次のＩＩＲフィルタの場合について説明したが、１次のＩＩＲフィルタであってもよいし、３次以上のＩＩＲフィルタであってもよい。
【００４７】
以上、実施形態２に係るＩＩＲフィルタは、実施形態２に係る丸め処理方法を実行することで、外部信号ＳＩ−２を判断材料として複数の丸めアルゴリズムから丸め方を選択することにより、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。これにより、一定の精度を保ちながら入力が０になったときでも出力を０とすることができるようになる。したがって、実施形態２に係る丸め処理方法は、ＩＩＲフィルタで有限長精度の数値演算を行った場合であっても、入力が０になれば丸め誤差によって０に収束させることができる。
【００４８】
さらに、実施形態２に係るＩＩＲフィルタは、外部信号ＳＩ−２を判断材料としているため、アルゴリズムの選択方法として、全体の処理の重さによって高精度の演算と低処理量の演算とを切り替えることができる。
【産業上の利用可能性】
【００４９】
本発明は、情報通信産業に適用することができる。
【符号の説明】
【００５０】
１１：入力信号入力端子
１２：丸め処理部
１３−１、１３−２：遅延部
１４−１、１４−２：係数乗算部
１５：出力端子
１６：加算器
２１：外部信号入力端子
２２：判定部
２３：入力信号情報作成部
２４：外部信号情報作成部
３１−１：負の無限大への丸め処理部
３１−２：０への丸め処理部
３１−３：正の無限大への丸め処理部
３２：切り替えスイッチ
３３−１：第１の丸め処理部
３３−２：第２の丸め処理部
【図１】
0005687010.tif 000002
【図２】
0005687010.tif 000003
【図３】
0005687010.tif 000004
【図４】
0005687010.tif 000005
【図５】
0005687010.tif 000006
【図６】
0005687010.tif 000007