JP5687010B2 - 丸め処理方法及びプログラム - Google Patents

丸め処理方法及びプログラム Download PDF

Info

Publication number
JP5687010B2
JP5687010B2 JP2010189899A JP2010189899A JP5687010B2 JP 5687010 B2 JP5687010 B2 JP 5687010B2 JP 2010189899 A JP2010189899 A JP 2010189899A JP 2010189899 A JP2010189899 A JP 2010189899A JP 5687010 B2 JP5687010 B2 JP 5687010B2
Authority
JP
Japan
Prior art keywords
rounding
input signal
unit
iir filter
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010189899A
Other languages
English (en)
Other versions
JP2012049819A (ja
Inventor
村中 雅之
雅之 村中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Radio Co Ltd
Original Assignee
Japan Radio Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Japan Radio Co Ltd filed Critical Japan Radio Co Ltd
Priority to JP2010189899A priority Critical patent/JP5687010B2/ja
Publication of JP2012049819A publication Critical patent/JP2012049819A/ja
Application granted granted Critical
Publication of JP5687010B2 publication Critical patent/JP5687010B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、有限長精度の数値データの丸め処理を複数回行う丸め処理方法及びプログラムに関する。
計算機等で有限長精度の数値演算を行うときに指定のビット位置で丸め処理を行う。丸め処理の方法には、IEEE(Institute of Electrical and Electronics Engineers,.Inc.)754等の複数の方法があり、それぞれ特性や処理量が異なる(例えば、特許文献1参照。)。
特許文献1の方法は、演算器から出力された乗算結果の符合に基づいて、正側加算器又は負側加算器を選択し、乗算器から出力された正の乗算結果を正側加算器に出力し、乗算器から出力された負の乗算結果を負側加算器に出力することにより、正負を分けて累加算演算を行う。これにより、演算器のビット幅を広げることなく、桁落ちを防止する。
特開2003−241958号公報
IIR(Infinite Impulse Response)フィルタで有限長精度の数値演算を行ったときに、入力が0になっても丸め誤差によって0に収束しなくなる場合がある。例えば、IIRフィルタを用いたHPF(High Pass filter)では、演算で扱うデータのビット数が少ないと、丸めによる誤差の割合が高いデータを次のフィルタ演算で使用することになる。このため、入力が0になっても丸め誤差によって0に収束しなくなる場合がある。
特許文献1の方法は、正側加算器又は負側加算器を用いるため、演算で扱うデータのビット数が少ないと、丸めによる誤差の割合が高いデータを次のフィルタ演算で使用することになる。このため、入力が0になっても丸め誤差によって0に収束しなくなる場合がある。
したがって、本発明は、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束する丸め処理方法及びプログラムの提供を目的とする。
上記目的を達成するために、本願発明の丸め処理方法は、IIR型フィルタへの入力信号が入力され、前記入力信号の符号及び絶対値をIIR型フィルタに関する動作情報として作成する入力信号情報作成手順と、前記IIR型フィルタへの入力信号の符号及び絶対値を前記動作情報として取得する動作情報取得手順と、予め定められた2以上の丸め処理のなかから、前記動作情報に対応する1つの丸め処理を選択する選択手順と、前記選択手順で選択した丸め処理を用いて前記IIR型フィルタの入力信号を丸める丸め処理手順と、を順に有し、前記選択手順において、前記入力信号の絶対値が予め定められた閾値よりも小さいときは0への丸め処理を選択し、前記入力信号の符号が正でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは正の無限大の丸め処理を選択し、前記入力信号の符号が負でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは負の無限大の丸め処理を選択する
丸め処理手順を有するため、IIR型フィルタへの入力信号を丸めることができる。丸め処理手順の前に動作情報取得手順及び選択手順を有するため、動作情報を用いて入力が0になれば丸め誤差によって0に収束する丸め処理を選択することができる。したがって、本願発明は、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束する丸め処理方法を提供することができる。
上記目的を達成するために、本願発明のプログラムは、本願発明の丸め処理方法を、コンピュータに実行させるためのプログラムである。
本願発明のプログラムにより、入力信号情報作成手順、動作情報取得手順、選択手順及び丸め処理手順を、コンピュータに順に実行させることができる。したがって、本願発明のプログラムは、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束するプログラムを提供することができる。
なお、上記各発明は、可能な限り組み合わせることができる。
本発明によれば、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束する丸め処理方法及びプログラムを提供することができる。
実施形態1に係るIIRフィルタの構成の一例を示す。 実施形態1に係る丸め処理方法の一例を示す。 実施形態1に係る丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。 実施形態2に係るIIRフィルタの構成の一例を示す。 実施形態2に係る丸め処理方法の一例を示す。 実施形態2に係る丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
(実施形態1)
図1に、実施形態1に係るIIRフィルタの構成の一例を示す。本実施形態に係るIIRフィルタは、入力信号入力端子11と、加算器16と、丸め処理部12と、遅延部13−1,13−2と、係数乗算部14−1,14−2と、出力端子15と、を備え、有限長精度の数値データで数値演算を行う。
例えば、入力信号入力端子11に16bitの入力信号Sが入力される。加算器16は、入力信号入力端子11に入力された入力信号Sと、係数乗算部14−1からの32bitの信号S−1及び係数乗算部14−2からの32bitの信号S−2と、を加算して、34bitの信号Sを出力する。丸め処理部12は、判定部22からの命令Oに従って、34bitの信号Sの丸め処理を行い、16bitの出力信号Sを出力する。これにより、出力端子15から、丸め処理を行った16bitの出力信号Sが出力される。
遅延部13−1は、予め定められた伝達関数に従って、出力信号Sを遅延させ、信号S―1を出力する。係数乗算部14−1は、遅延部13−1からの信号S−1を、予め定められた係数を用いて乗算し、32bitの信号S−1を出力する。遅延部13−2は、予め定められた伝達関数に従って、信号S―1を遅延させ、信号S―2を出力する。係数乗算部14−2は、遅延部13−2からの信号S−2を、予め定められた係数を用いて乗算し、32bitの信号S−2を出力する。
ここで、遅延部13−1及び遅延部13−2は、例えば、シフトレジスタである。伝達関数は、例えば逆Z変換である。係数乗算部14−1及び係数乗算部14−2は、例えば16bitの係数との乗算器である。このように、実施形態1に係るIIRフィルタは、固定小数点演算器を使用してIIR型フィルタ処理を行う。
さらに、本実施形態に係るIIRフィルタは、判定部22と、入力信号情報作成部23と、を備え、入力信号Sを判断材料として複数の丸めアルゴリズムから丸め方を選択する。これにより、演算器が扱うビット数を増加させることなく、小入力信号時の丸め誤差の影響を軽減する。
実施形態1に係るプログラムは、実施形態1に係る丸め処理方法を、コンピュータに実行させるためのプログラムである。図2に、本実施形態に係る丸め処理方法の一例を示す。本実施形態に係る丸め処理方法は、入力信号情報作成手順S104と、動作情報取得手順S101と、選択手順S102と、丸め処理手順S103と、を順に有する。
図3に、丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。丸め処理部12は、負の無限大への丸め処理部31−1と、0への丸め処理部31−2と、正の無限大への丸め処理部31−3と、切り替えスイッチ32と、を備える。この場合の丸め処理方法について説明する。
入力信号情報作成手順S104では、IIR型フィルタへの入力信号Sが入力され、入力信号情報作成部23が、入力信号Sの符号及び絶対値を動作情報Iとして作成する。
動作情報取得手順S101では、判定部22が、入力信号情報作成部23からIIR型フィルタに関する動作情報Iを取得する。本実施形態では、動作情報Iは、入力信号Sの符号及び入力信号Sの絶対値である。
選択手順S102では、予め定められた2以上の丸め処理のなかから、動作情報に対応する1つの丸め処理を選択する。例えば、判定部22は、負の無限大への丸め処理、0への丸め処理及び正の無限大への丸め処理のなかから、動作情報Iに対応する1つの丸め処理を選択する。そして、判定部22は、選択した丸め処理を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。
入力信号Sの絶対値が予め定められた閾値よりも小さいとき、判定部22は、0への丸め処理を選択し、0への丸め処理を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。入力信号の符号が正でありかつ入力信号の絶対値が閾値よりも大きいとき、判定部22は、正の無限大の丸め処理を選択し、正の無限大への丸め処理を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。入力信号の符号が負でありかつ入力信号の絶対値が閾値よりも大きいとき、判定部22は、負の無限大の丸め処理を選択し、負の無限大への丸め処理を用いて丸め処理を行う旨の命令Oを、丸め処理部12に出力する。IIRフィルタを用いてLPF(Low Pass Filter)を構成する場合も同様である。
ここで、判定部22の閾値は、予め定められた値である。閾値は、例えば、入力信号の最大振幅の一定割合より低い値に定める。最大振幅の一定割合は、例えば10%である。
判定部22が入力信号Sの符号及び入力信号Sの絶対値によって丸め処理を選択することで、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。なお、丸め処理は、例えば、IEEE754に規定するいずれの丸め処理であってもよい。IEEE754に規定する丸め処理は、例えば、最近接丸め(偶数)、最近接丸め(0から遠い方へ)、0への丸め、正の無限大への丸め又は負の無限大への丸めである。
丸め処理手順S103では、選択手順S102で選択した丸め処理を用いてIIR型フィルタへの入力信号Sを丸める。このとき、丸め処理部12は、判定部22からの命令Oに従って丸め処理を行う。例えば、負の無限大への丸め処理部31−1、0への丸め処理部31−2及び正の無限大への丸め処理部31−3は、入力信号Sの丸め処理を行う。
負の無限大への丸め処理を用いて丸め処理を行う旨の命令Oが入力された場合、切り替えスイッチ32は、負の無限大への丸め処理部31−1を接続する。これにより、丸め処理部12は、負の無限大への丸め処理部31−1の丸め処理を行った処理結果を出力信号Sとして出力する。
0への丸め処理を用いて丸め処理を行う旨の命令Oが入力された場合、切り替えスイッチ32は、0への丸め処理部31−2を接続する。これにより、丸め処理部12は、0への丸め処理部31−2の丸め処理を行った処理結果を出力信号Sとして出力する。
正の無限大への丸め処理を用いて丸め処理を行う旨の命令Oが入力された場合、切り替えスイッチ32は、正の無限大への丸め処理部31−3を接続する。これにより、丸め処理部12は、正の無限大への丸め処理部31−3の丸め処理を行った処理結果を出力信号Sとして出力する。
なお、本実施形態では、2次のIIRフィルタの場合について説明したが、1次のIIRフィルタであってもよいし、3次以上のIIRフィルタであってもよい。
以上、実施形態1に係るIIRフィルタは、実施形態1に係る丸め処理方法を実行することで、入力信号Sを判断材料として複数の丸めアルゴリズムから丸め方を選択することにより、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。これにより、一定の精度を保ちながら入力が0になったときでも出力を0とすることができるようになる。したがって、実施形態1に係る丸め処理方法は、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束させることができる。
(実施形態2)
図4に、実施形態2に係るIIRフィルタの構成の一例を示す。本実施形態に係るIIRフィルタは、外部信号入力端子21をさらに備え、実施形態1の入力信号情報作成部23に代えて外部信号情報作成部24を備える。
実施形態2に係るプログラムは、実施形態2に係る丸め処理方法を、コンピュータに実行させるためのプログラムである。図5に、実施形態2に係る丸め処理方法の一例を示す。本実施形態に係る丸め処理方法は、実施形態1の入力信号情報作成手順S104に代えて、外部信号情報作成手順S105を有する。
図6に、丸め処理部、入力信号情報作成部及び判定部の拡大図を示す。丸め処理部12は、第1の丸め処理を行う第1の丸め処理部33−1と、第2の丸め処理を行う第2の丸め処理部33−2と、切り替えスイッチ32と、を備える。この場合、判定部22は、第1の丸め処理部及び第2の丸め処理のなかから、動作情報Iに対応する1つの丸め処理を選択する。第1の丸め処理は、0への丸め処理を行う。第2の丸め処理は、正の無限大への丸め処理又は負の無限大への丸め処理を行う。
図5に示す外部信号情報作成手順S105では、外部信号情報作成部24に外部信号S−2が入力される。ここで、外部信号S−2は、入力信号S以外のIIR型フィルタに関する信号であり、例えば、CPU(Central Processing Unit)の稼働率を示す信号、メモリ使用率を示す信号又は省電力モードであるか否かを示す信号である。そして、外部信号情報作成部24は、外部信号S−2に応じて、第1の丸め処理部及び第2の丸め処理のいずれかを指定する指定情報を動作情報I−2として作成する。
例えば、外部信号S−2としてCPUの稼働率が外部信号情報作成部24に入力される。この場合、CPUの稼働率が一定未満であるとき、外部信号情報作成部24は、第2の丸め処理を指定する指定情報を動作情報I−2として作成する。一方、CPUの稼働率が一定以上であるとき、外部信号情報作成部24は、第1の丸め処理を指定する指定情報を動作情報I−2として作成する。
例えば、外部信号S−2としてメモリ使用率が外部信号情報作成部24に入力される。この場合、メモリ使用率が一定以上であるとき、外部信号情報作成部24は、第1の丸め処理を指定する指定情報を動作情報I−2として作成する。一方、メモリ使用率が一定未満であるとき、外部信号情報作成部24は、第2の丸め処理を指定する指定情報を動作情報I−2として作成する。
例えば、外部信号S−2として省電力モードであるか否かが外部信号情報作成部24に入力される。この場合、省電力モードであるとき、外部信号情報作成部24は、第1の丸め処理を指定する指定情報を動作情報I−2として作成する。一方、省電力モードでない通常モードであるとき、外部信号情報作成部24は、第2の丸め処理を指定する指定情報を動作情報I−2として作成する。
図5に示す動作情報取得手順S101において、判定部22は、外部信号情報作成部24から指定情報を動作情報Iとして取得する。本実施形態では、動作情報Iは、第1の丸め処理部及び第2の丸め処理のいずれかを指定する指定情報である。
図5に示す選択手順S102において、判定部22は、動作情報Iによって指定された丸め処理を選択する。例えば、判定部22は、第1の丸め処理部及び第2の丸め処理のなかから、動作情報Iに対応する1つの丸め処理を選択する。そして、判定部22は、選択した丸め処理を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。
例えば、動作情報Iが第1の丸め処理部を指定する指定情報である場合、判定部22は、第1の丸め処理部を選択し、第1の丸め処理部を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。例えば、動作情報Iが第2の丸め処理部を指定する指定情報である場合、判定部22は、第2の丸め処理部を選択し、第2の丸め処理部を用いて丸め処理を行う旨の命令Oを丸め処理部12に出力する。
図5に示す丸め処理手順S103では、選択手順S102で選択した丸め処理を用いてIIR型フィルタへの入力信号Sを丸める。このとき、丸め処理部12は、判定部22からの命令Oに従って丸め処理を行う。例えば、第1の丸め処理部33−1及び第2の丸め処理部33−2は、入力信号Sの丸め処理を行う。
第1の丸め処理を行う旨の命令Oが入力された場合、切り替えスイッチ32は、第1の丸め処理部33−1を接続する。これにより、丸め処理部12は、第1の丸め処理を行った処理結果を出力信号Sとして出力する。
第2の丸め処理を行う旨の命令Oが入力された場合、切り替えスイッチ32は、第2の丸め処理部33−2を接続する。これにより、丸め処理部12は、第2の丸め処理を行った処理結果を出力信号Sとして出力する。
なお、本実施形態では、2次のIIRフィルタの場合について説明したが、1次のIIRフィルタであってもよいし、3次以上のIIRフィルタであってもよい。
以上、実施形態2に係るIIRフィルタは、実施形態2に係る丸め処理方法を実行することで、外部信号S−2を判断材料として複数の丸めアルゴリズムから丸め方を選択することにより、誤差の影響の大きい場合は安定する方に演算結果を収束させることができる。これにより、一定の精度を保ちながら入力が0になったときでも出力を0とすることができるようになる。したがって、実施形態2に係る丸め処理方法は、IIRフィルタで有限長精度の数値演算を行った場合であっても、入力が0になれば丸め誤差によって0に収束させることができる。
さらに、実施形態2に係るIIRフィルタは、外部信号S−2を判断材料としているため、アルゴリズムの選択方法として、全体の処理の重さによって高精度の演算と低処理量の演算とを切り替えることができる。
本発明は、情報通信産業に適用することができる。
11:入力信号入力端子
12:丸め処理部
13−1、13−2:遅延部
14−1、14−2:係数乗算部
15:出力端子
16:加算器
21:外部信号入力端子
22:判定部
23:入力信号情報作成部
24:外部信号情報作成部
31−1:負の無限大への丸め処理部
31−2:0への丸め処理部
31−3:正の無限大への丸め処理部
32:切り替えスイッチ
33−1:第1の丸め処理部
33−2:第2の丸め処理部

Claims (2)

  1. IIR型フィルタへの入力信号が入力され、前記入力信号の符号及び絶対値をIIR型フィルタに関する動作情報として作成する入力信号情報作成手順と、
    前記IIR型フィルタへの入力信号の符号及び絶対値を前記動作情報として取得する動作情報取得手順と、
    予め定められた2以上の丸め処理のなかから、前記動作情報に対応する1つの丸め処理を選択する選択手順と、
    前記選択手順で選択した丸め処理を用いて前記IIR型フィルタへの入力信号を丸める丸め処理手順と、
    を順に有し、
    前記選択手順において、
    前記入力信号の絶対値が予め定められた閾値よりも小さいときは0への丸め処理を選択し、
    前記入力信号の符号が正でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは正の無限大の丸め処理を選択し、
    前記入力信号の符号が負でありかつ前記入力信号の絶対値が前記閾値よりも大きいときは負の無限大の丸め処理を選択する、
    丸め処理方法。
  2. 請求項1に記載の各手順を、コンピュータに実行させるためのプログラム。
JP2010189899A 2010-08-26 2010-08-26 丸め処理方法及びプログラム Active JP5687010B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010189899A JP5687010B2 (ja) 2010-08-26 2010-08-26 丸め処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010189899A JP5687010B2 (ja) 2010-08-26 2010-08-26 丸め処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012049819A JP2012049819A (ja) 2012-03-08
JP5687010B2 true JP5687010B2 (ja) 2015-03-18

Family

ID=45904185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010189899A Active JP5687010B2 (ja) 2010-08-26 2010-08-26 丸め処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5687010B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5970308A (ja) * 1982-10-15 1984-04-20 Matsushita Electric Ind Co Ltd デイジタルフイルタ
JPH0732347B2 (ja) * 1985-06-28 1995-04-10 松下電器産業株式会社 巡回形デイジタルフイルタ
JP2538633B2 (ja) * 1988-03-15 1996-09-25 富士通株式会社 適応フィルタ
JP3785629B2 (ja) * 1996-08-26 2006-06-14 オンキヨー株式会社 信号補正装置、信号補正方法、信号補正装置の係数調整装置および係数調整方法
JPH10173487A (ja) * 1996-12-11 1998-06-26 Matsushita Electric Ind Co Ltd ディジタルフィルタ
JP2010141780A (ja) * 2008-12-15 2010-06-24 Audio Technica Corp Iirフィルタ設計方法

Also Published As

Publication number Publication date
JP2012049819A (ja) 2012-03-08

Similar Documents

Publication Publication Date Title
Sarbishei et al. Analytical optimization of bit-widths in fixed-point LTI systems
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
US20170169132A1 (en) Accelerated lookup table based function evaluation
WO1999066423A1 (fr) Dispositif pour calcul de donnees
KR100865219B1 (ko) 집적 회로 디지털 필터의 디자인과 구현을 위한 시스템 및방법
JP4757328B2 (ja) 逆正接演算装置及び逆正接演算プログラム
JP5687010B2 (ja) 丸め処理方法及びプログラム
JP2019523503A (ja) 区分線形近似のためのシステムおよび方法
JP6604393B2 (ja) ベクトルプロセッサ、演算実行方法、プログラム
CN108595148B (zh) 除法函数实现方法、电路、芯片以及系统
JP2008102715A (ja) 演算装置
CN112286490B (zh) 一种循环迭代乘加运算的硬件架构及方法
JP5305392B2 (ja) Iqデータの二乗和ルート計算手段
JP2008158855A (ja) 相関演算器及び相関演算方法
JP3736745B2 (ja) データ演算処理装置及びデータ演算処理プログラム
Liu et al. A pipelined sign-error LMS adaptive filter architecture with low computational complexity
JP6949268B2 (ja) 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム
JP2011180966A (ja) 積和演算器
JP2007503036A (ja) モジュラ乗算を行うための方法、および2nビットの数を使用してユークリッド乗算を行うための方法
JP2009267606A (ja) 演算器
JP5317429B2 (ja) 固有方程式の求解装置、求解プログラム
JP5994460B2 (ja) 二乗和ルート演算装置
JP6399974B2 (ja) 保護リレー装置
JP3659408B2 (ja) データ演算処理装置及びデータ演算処理プログラム
JPS63157269A (ja) 演算回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150121

R150 Certificate of patent or registration of utility model

Ref document number: 5687010

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150