(57)【要約】【課題】平均値算出装置、平均値算出方法およびプログラムを提供すること。【解決手段】ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出する累積値算出部と、累積値算出部により算出されたｎ番目の累積値を記憶する記憶部と、記憶部に記憶されたｎ番目の累積値を累積係数で乗じ、サンプル値のｎ番目の平均値を算出する平均値算出部と、累積係数を、入力されたサンプル数に応じて可変的に設定する累積係数設定部１４８とを備えたことを特徴とする。【選択図】図１
2008176744.tif 000002
【特許請求の範囲】
【請求項１】
ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および前記累積係数に応じた値が乗算された乗算値と、を加算してｎ番目の累積値を算出する累積値算出部と；
前記累積値算出部により算出された前記ｎ番目の累積値を記憶する記憶部と；
前記記憶部に記憶された前記ｎ番目の累積値を前記累積係数で乗じ、サンプル値のｎ番目の平均値を算出する平均値算出部と；
前記累積係数を、入力されたサンプル数に応じて可変的に設定する累積係数設定部と；
を備えたことを特徴とする、平均値算出装置。
【請求項２】
前記累積値算出部は、ｎ番目に入力されたサンプルのサンプル値をｘｎ（ｎは自然数）とし、前記累積係数をａ（０＜ａ＜１）とした次式
ｙｎ＝（１−ａ）ｙｎ−１＋ｘｎ
で表される演算に基づいてｎ番目の累積値ｙｎを算出することを特徴とする、請求項１に記載の平均値算出装置。
【請求項３】
前記累積係数設定部は、前記累積係数を前記入力されたサンプル数が増大するにつれて小さな値に設定することを特徴とする、請求項１に記載の平均値算出装置。
【請求項４】
前記累積係数は、２を所定の累積指数で負べき乗した値であることを特徴とする、請求項３に記載の平均値算出装置。
【請求項５】
前記累積係数設定部は、前記累積指数を、前記入力されたサンプル数の対数と略比例するような値に設定することを特徴とする、請求項４に記載の平均値算出装置。
【請求項６】
前記入力されたサンプル数を計数する計数部を備え、
前記累積係数設定部は、前記累積指数を、前記計数部が計数した前記入力されたサンプル数を表すビット値の最上位ビット位置に応じた値に設定することを特徴とする、請求項５に記載の平均値算出装置。
【請求項７】
前記累積係数設定部は、前記累積係数を所定の閾値以上の値に設定することを特徴とする、請求項１に記載の平均値算出装置。
【請求項８】
前記累積値算出部は、前記累積係数設定部が前記累積係数を小さな値に変更設定する直前における前記ｎ番目の累積値の算出を、前記記憶部に記憶されたｎ−１番目の累積値と前記累積係数の減分に応じた値との乗算値を前記式におけるｙｎ−１として行なうことを特徴とする、請求項２に記載の平均値算出装置。
【請求項９】
ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および前記累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出するステップと；
前記算出された前記ｎ番目の累積値を前記累積係数で乗じ、サンプル値のｎ番目の平均値を算出するステップと；
入力されたサンプル数が前記累積係数の変更条件を満たすか否かを判断するステップと；
前記入力されたサンプル数が前記累積係数の変更条件を満たすと判断された場合、累積係数を変更設定するステップと；  
を含むことを特徴とする、平均値算出方法。
【請求項１０】
コンピュータに、
ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および前記累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出するステップと；
前記算出された前記ｎ番目の累積値を前記累積係数で乗じ、サンプル値のｎ番目の平均値を算出するステップと；
入力されたサンプル数が前記累積係数の変更条件を満たすか否かを判断するステップと；
前記入力されたサンプル数が前記累積係数の変更条件を満たすと判断された場合、累積係数を変更設定するステップと；
を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、平均値算出装置、平均値算出方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ＡＧＣ（Ａｕｔｏｍａｔｉｃ  Ｇａｉｎ  Ｃｏｎｔｒｏｌ）回路における振幅推定や、信号のオフセットの推定などのために、入力された値の平均値を算出する平均値算出装置が用いられている。かかる平均値算出装置において実行される従来の平均値算出方法は、区分平均法と、移動平均法とに大別される。
【０００３】
区分平均法は、事前に定められた区間幅のサンプル値を積算し、積算した値を各区間に含まれるサンプル数で除して平均値を算出する方法である。
【０００４】
また、移動平均法は、特許文献１や非特許文献１に記載されているように、過去に入力された所定数のサンプル値を保持しておき、新たなサンプル値が入力されると、新たなサンプル値と保持している過去のサンプル値に基づいて平均値を算出する方法である。
【０００５】
【特許文献１】特開昭６３−１８７３６６号公報
【非特許文献１】「時系列解析入門」Ｐ１０〜、岩波書店、北川源四郎、２００５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、区分平均法は、事前に定められた区間ごとにしか平均値を更新できない。上記区間を短くすれば高い頻度で平均値を更新できるが、区間を短くすると平均値出力に与える入力変動による影響が増大してしまう。
【０００７】
また、移動平均法を実行するためには、過去に入力された所定数のサンプル値を保持するためのレジスタと、各レジスタに保持されたサンプル値を加算するためのアダーツリーが必要である。すなわち、移動平均法を実行する平均値算出回路は、レジスタやアダーツリーなど比較的多量のハードウェアを備えなければならないという問題があった。特許文献１に記載の移動平均法によれば、アダーの規模は大幅に緩和されるが、平均値の算出に用いるサンプル数に応じた数のレジスタが必要となるため、上記同様に比較的多量のハードウェアを要するという問題があった。
【０００８】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ハードウェア量を抑制しつつ、サンプル値の入力に追従して平均値を出力することが可能な、新規かつ改良された平均値算出装置、平均値算出方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある観点によれば、ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出する累積値算出部と、累積値算出部により算出されたｎ番目の累積値を記憶する記憶部と、記憶部に記憶されたｎ番目の累積値を累積係数で乗じ、サンプル値のｎ番目の平均値を算出する平均値算出部と、累積係数を、入力されたサンプル数に応じて可変的に設定する累積係数設定部とを備えたことを特徴とする、平均値算出装置が提供される。具体的には、累積値算出部は、ｎ番目に入力されたサンプルのサンプル値をｘｎ（ｎは自然数）とし、累積係数をａ（０＜ａ＜１）とした次式
ｙｎ＝（１−ａ）ｙｎ−１＋ｘｎ
で表される演算に基づいてｎ番目の累積値ｙｎを算出してもよい。
【００１０】
かかる構成においては、累積係数設定部が累積係数を平均値算出装置に入力されたサンプル数に応じて可変的に設定する。ここで、累積係数は、平均値算出部が算出する平均値の入力変動による影響の大きさや、平均値算出部が算出する平均値が実際の平均値付近に到達するまでの時間を左右する。そこで、累積係数設定部は、累積係数を平均値算出装置に入力されたサンプル数に応じて可変的に設定することで、平均値算出部が好適に平均値を算出するように調整することができる。
【００１１】
累積係数設定部は、累積係数を入力されたサンプル数が増大するにつれて小さな値に設定してもよい。ここで、累積係数が小さな値であるほど、平均値算出部が算出する平均値が実際の平均値付近に到達するまでの時間が長期化する一方、平均値算出部が算出する平均値は入力変動による影響を受け難くなる。したがって、上記のように累積係数設定部が平均値算出装置に入力されたサンプル数の増加に応じて累積係数を減少させることにより、平均値算出部が算出する平均値を早期に実際の平均値付近に到達させ、実際の平均値付近に到達した後は、入力変動の影響が抑制された安定的な平均値の出力を得ることが可能となる。
【００１２】
累積係数は、２を所定の累積指数で負べき乗した値であってもよい。かかる構成においては、任意の値と累積係数の乗算、または任意の値の累積係数による除算を、該任意の値のビット位置をシフトさせることで実現することができる。その結果、平均値算出装置のハードウェア構成を、累積係数を任意に設定する場合と比して簡素化できる。
【００１３】
累積係数設定部は、累積指数を、入力されたサンプル数の対数と略比例するような値に設定してもよい。具体例としては、平均値算出装置に入力されたサンプル数を計数する計数部を設け、累積係数設定部は、累積指数を、計数部が計数した入力されたサンプル数を表すビット値の最上位ビット位置に応じた値に設定してもよい。かかる構成によれば、累積係数設定部が単に計数部のカウント値の最上位ビットを参照して累積指数および累積係数を設定することができる。
【００１４】
累積係数設定部は、累積係数を所定の閾値以上の値に設定してもよい。ここで、累積値は累積係数が小さくなるにつれて増大する値である。したがって、累積係数を無制限に小さく設定できるとすれば、累積値を記憶する記憶部や、累積値を用いた演算を行なう累積値算出部や平均値算出部などのビット幅の上限値が定まらず、平均値算出装置の設計が困難となる。そこで、上記のように累積係数を所定の閾値以上の値に設定することにより、記憶部や平均値算出部に要求されるビット幅が特定されるため、平均値算出装置の設計を容易に行なうことが可能となる。
【００１５】
累積値算出部は、累積係数設定部が累積係数を小さな値に変更設定する直前におけるｎ番目の累積値の算出を、記憶部に記憶されたｎ−１番目の累積値と累積係数の減分に応じた値との乗算値を上記式におけるｙｎ−１として行なってもよい。ここで、累積係数が小さな値に変更設定された場合に、平均値算出部が変更設定の前後において連続的な値の平均値を算出するためには、記憶部が記憶する累積値が変更設定直後に累積係数の減分に応じた量だけ増加している必要がある。そこで、上記のように、累積係数設定部が累積係数を小さな値に変更設定する直前の上記式におけるｙｎ−１を、記憶部に記憶された累積値と累積係数の減分に応じた値との乗算値とすることにより、累積値算出部が算出する累積値を増大させ、記憶部に累積係数の減分に応じて増大された累積値を記憶させることができる。その結果、平均値算出部は、累積係数の変更設定の前後においてもほぼ連続的な値の平均値を算出することが可能となる。
【００１６】
また、上記課題を解決するために、本発明の別の観点によれば、ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出するステップと、算出されたｎ番目の累積値を累積係数で乗じ、サンプル値のｎ番目の平均値を算出するステップと、入力されたサンプル数が累積係数の変更条件を満たすか否かを判断するステップと、入力されたサンプル数が累積係数の変更条件を満たすと判断された場合、累積係数を変更設定するステップと、を含むことを特徴とする、平均値算出方法が提供される。
【００１７】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータに、ｎ番目に入力されたサンプルのサンプル値と、ｎ−１番目以前に入力された１または２以上のサンプルのサンプル値が所定の累積係数に従って累積された累積値および累積係数に応じた値の乗算値と、を加算してｎ番目の累積値を算出するステップと、算出されたｎ番目の累積値を累積係数で乗じ、サンプル値のｎ番目の平均値を算出するステップと、入力されたサンプル数が累積係数の変更条件を満たすか否かを判断するステップと、入力されたサンプル数が累積係数の変更条件を満たすと判断された場合、累積係数を変更設定するステップとを実行させるための、プログラムが提供される。
【発明の効果】
【００１８】
以上説明したように本発明にかかる平均値算出装置、平均値算出方法およびプログラムによれば、ハードウェア量を抑制しつつ、サンプル値の入力に追従して平均値を出力することができる。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２０】
また、本明細書においては、図５および図６を参照して本発明に関連する平均値算出方法を説明した後、図１を参照して本実施形態にかかる平均値算出装置１０の構成を説明し、図２を参照して本実施形態にかかる平均値算出装置１０が奏する効果の一例を説明し、図３を参照して本実施形態にかかる平均値算出方法を説明し、図４を参照して本実施形態にかかる平均値算出回路１０が算出する平均値について説明する。
【００２１】
〔関連技術〕
本発明に関連する平均値算出方法として、例えば、区分平均法と、移動平均法とがあげられる。区分平均法は、事前に定められた区間幅のサンプル値を積算し、積算した値を各区間に含まれるサンプル数で除して平均値を算出する方法である。また、移動平均法は、過去に入力された所定数のサンプル値を保持しておき、新たなサンプル値が入力されと、新たなサンプル値と保持している過去のサンプル値に基づいて平均値を算出する方法である。以下、このような区分平均法および移動平均法について詳細に説明する。
【００２２】
区分平均法は、数式１のように表される。
【数１】
2008176744.tif 000003
【００２３】
数式１において、ｍｐ（ｎ）は区分平均法によるｎ番目の平均値であり、ｂは一区間に含まれるサンプル数であり、ｘｉはｉ番目のサンプル値を示している。すなわち、区分平均法は、ｂ個のサンプルのサンプル値ごとに平均値を算出する方法である。ここで、ｂを２のべき乗の値に設定すると、図５に示すように、数式１の右辺の分母を除算する割算器を単純なシフタで構成することができる。
【００２４】
図５は、区分平均法を実現するための回路構成例を示した説明図である。図５に示した回路構成には、加算器８２と、レジスタ８４と、制御部８６と、シフタ８８と、が含まれる。レジスタ８４は、以前に入力されたサンプル値の累積値を保持している。加算器８２は、入力されたサンプル値とレジスタ８４が保持している累積値とを加算して累積値を更新する。そして、加算器８２により更新された累積値がレジスタ８４により保持される。
【００２５】
制御部８６は、入力されたサンプル数をカウントし、カウント値が数式１に示したｂ個に達した場合には、シフタ８８がレジスタ８４の保持している累積値を読み込むよう指示する。また、制御部８６は、シフタ８８に指示を出した後に、レジスタ８４が保持する累積値をリセットする。シフタ８８は、レジスタ８４から読み込んだ累積値のビットをシフトすることにより平均値を算出する。
【００２６】
このような区分平均法は、カウンタや加算器などの構成により実現できるため簡素である。しかし、区分平均法は、サンプルがｂ個入力されるまで平均値を更新することができない。したがって、ｂの値を大きくすると平均値の更新間隔が長期化してしまう。一方、ｂの値を小さくすると算出する平均値に対する入力変動の影響が大きくなってしまうため、適切なｂの値を選択することが困難な場合があった。
【００２７】
また、移動平均法は、数式２のように表される。
【数２】
2008176744.tif 000004
【００２８】
数式２において、ｍｍ（ｎ）は移動平均法により算出されたｎ番目の平均値であり、ｂは平均値の算出に用いるサンプル数である。すなわち、移動平均法は、サンプルが入力される度に、入力されたサンプルを含む直近ｂ個のサンプルのサンプル値の平均値を算出する方法である。かかる移動平均法を実現する回路構成は、図６に示すように区分平均法と大きく異なる。
【００２９】
図６は、移動平均法を実現するための回路構成例を示した説明図である。図６に示した回路構成には、レジスタ９１〜レジスタ９５と、アダーツリー９６と、シフタ９７とが含まれる。
【００３０】
レジスタ９１〜レジスタ９５の各々は、以前に入力されたサンプル値を保持する。新たなサンプルがレジスタ９１に入力されると、レジスタ９１〜レジスタ９５の各々は、保持していたサンプル値を次段のレジスタに出力し、レジスタ９１は入力されたサンプル値を、レジスタ９２〜９５は前段のレジスタから入力されたサンプル値を保持する。
【００３１】
アダーツリー９６は複数の加算器から構成される。アダーツリー９６は、レジスタ９１〜９５が保持するサンプル値を加算し、レジスタ９１〜９５が保持するサンプル値の総和をシフタ９７に出力する。シフタ９７は、アダーツリー９６から入力されたサンプル値の総和のビット位置を、レジスタ９１〜レジスタ９５の数に応じてシフトさせてサンプル値の平均値を算出する。
【００３２】
このような移動平均法は、数式２におけるｂの値を大きく設定しても、算出する平均値を入力サンプル毎に滑らかに追従させることができる。一方、移動平均法を実行するには図６に示したように、レジスタ９１〜９５やアダーツリー９６などのハードウェアが比較的多量に必要となる。
【００３３】
そこで、上記のような区分平均法および移動平均法における問題を一着眼点にし、本実施形態にかかる平均値算出方法が創出されるに至った。本実施形態にかかる平均値算出方法によれば、ハードウェア量を抑制しつつ、サンプル値の入力に追従して平均値を出力することができる。以下、本実施形態にかかる平均値算出方法の理論について説明する。
【００３４】
〔平均値算出方法の理論〕
本実施形態にかかる平均値算出方法の理論を、以下に順を追って説明する。サンプル列ｘｉ（ｉ＝１、２、３、・・・）のｎ番目のサンプルまでの平均値ｍｎは、数式３のように表される。
【数３】
2008176744.tif 000005
【００３５】
数式３を漸化式で表すと、数式４〜６のように表される。
【数４】
2008176744.tif 000006
【数５】
2008176744.tif 000007
【数６】
2008176744.tif 000008
【００３６】
数式４〜数式６において、ｙ０は累積値の初期値を、ｙｎはサンプル列のｎ番目までのサンプル値の累積値を示す。なお、数式４〜数式６は、完全積分型の平均値回路として具現される。しかし、数式６により算出される平均値は、実際の平均値そのものが時間変動する場合に対応することができない。一方、本実施形態にかかる平均値算出方法は、数式７に示す不完全積分方式の漸化式を基礎とするため、実際の平均値そのものの時間変動にも対応可能である。
【数７】
2008176744.tif 000009
【００３７】
数式７において、λは、０＜λ＜１、の範囲をとる値であり、忘却係数λと称する場合もある。自己回帰型で表される数式７は、過去のサンプル値の累積値に忘却係数λに基づく重み付けをして、新たなサンプル値を加算していくことを示している。
【００３８】
なお、かかる忘却係数λは、数式８〜数式１０に示すように、フィルタ分野における時定数に相当する。
【数８】
2008176744.tif 000010
【数９】
2008176744.tif 000011
【数１０】
2008176744.tif 000012
【００３９】
数式８は、数式７の時間領域から周波数領域へのｚ変換を表しており、数式９および１０は、数式８を整理した結果を表している。数式１０に示したように、数式７からはＬＰＦ（ローパスフィルタ）型の伝達関数が得られ、忘却係数λがＬＰＦにおける時定数に該当することが分かる。
【００４０】
周波数領域の議論から時間領域の議論に戻り、数式７において、サンプル値Ｘｎが全てｍである場合、ｎを無限大とすると、平均の収束値ｍおよび累積値の収束値ｙは数式１１および１２のように表される。
【数１１】
2008176744.tif 000013
【数１２】
2008176744.tif 000014
【００４１】
数式１２において、三角の矢印は、左辺を右辺で定義することを示す。数式１２を整理すると、数式１３が導かれる。
【数１３】
2008176744.tif 000015
【００４２】
数式１３を参照すると、忘却係数λは１以下の値をとるため、サンプル数ｎを無限大にした場合であっても、サンプル数ｎを無限大にした場合の累積値ｙが有限の値に収束することを確認できる。すなわち、かかる不完全積分方式に基づく平均値算出方法は、区分平均法や移動平均法のように、平均値の算出に用いるサンプルを区切ることなく、累積値ｙｎを有限の値に収束させることができる。
【００４３】
ここで、ハードウェア構成の簡素化の観点から、忘却係数λを数式１４で表される値にすることが有効である。
【数１４】
2008176744.tif 000016
【００４４】
忘却係数λが数式１４のように表されるとすると、不完全積分方式に基づく平均値算出方法は、数式１５〜１７の漸化式型の数式により表される。
【数１５】
2008176744.tif 000017
【数１６】
2008176744.tif 000018
【数１７】
2008176744.tif 000019
【００４５】
忘却係数λを数式１４のように２のべき乗を用いて表現できる値に設定すると、数式１６に示したように、直前の累積値に、直前の累積値を２の負べき乗した値（数式１７より、推定された平均値ｍｎに等しい値である。）を減算し、入力されたサンプル値を加算して現在の累積値を求めることができる。ここで、２のべき乗は、バレルシフタなどを用いて実現することができるため、忘却係数λを任意の値とする場合に比べてハードウェア構成を簡素化できる。
【００４６】
なお、数式１５においては、ｙｎの初期値であるｙ０の値を０とする条件を示している。しかし、ｙ０が平均値ｍｎに与える影響は、入力されるサンプル数ｎの値が大きくなるにしたがって少なくなる。そのため、必ずしも数式１５に示した条件を用いる必要は無い。むしろ、入力されるサンプルの平均値があらかじめ見当付いている場合は、見当付いている平均値を初期値ｙ０とした方が平均値ｍｎの収束を早くすることができる。
【００４７】
また、本明細書においては、１から忘却係数λを減じた値、すなわち数式１４、１６および１７に含まれる２のべき乗の値を、累積係数ａとも称する。また、本明細書においては、２のべき乗の指数として示したｋを、累積指数ｋとも称する。累積係数を用いると、数式７は以下の数式１８のように表される。
【数１８】
2008176744.tif 000020
【００４８】
このような累積係数ａが大きいほど（すなわち、忘却係数λおよび累積指数ｋが小さいほど）算出される平均値は実際の平均値付近に早期に到達するが、入力変動の影響を受け易い。一方、累積係数ａが小さいほど（すなわち、忘却係数λおよび累積指数ｋが大きいほど）算出される平均値が実際の平均値付近に到達する時間を要するが、入力変動による影響が抑制された安定的な平均値を算出することができる。
【００４９】
そこで、上記のような累積係数ａが小さい場合および大きい場合の利点を同時に実現するために、本実施形態にかかる平均値算出方法においては、平均値の算出を実行する際、累積係数ａを小さい値に設定しておき、入力サンプル数の増加に伴い累積係数ａの値を増加させることとした。その結果、算出する平均値を早期に実際の平均値付近に到達させ、その後は入力変動の影響を抑制して安定的に平均値を算出することができる。以下、このような平均値算出方法を実現するための平均値算出装置について説明する。
【００５０】
〔平均値算出装置〕
図１は、本実施形態にかかる平均値算出装置１０の構成例を示した説明図である。平均値算出装置１０は、３入力アダー１１０と、レジスタ１２０と、第一のシフタ１３０と、制御部１４０と、第二のシフタ１５０と、を備える。
【００５１】
３入力アダー１１０は、ｎ番目に平均値算出装置１０に入力された現在のサンプル値ｘｎの加算、レジスタ１２０が保持、あるいは記憶するｎ−１番目の以前の累積値ｙｎ−１の加算、および第一のシフタ１３０からの出力の減算、を行ないｎ番目の現在の累積値ｙｎを算出する累積値算出部としての機能を有する。すなわち、３入力アダー１１０は、数式１６に示した演算を行なう。ここで、レジスタ１２０が保持する累積値は、以前に入力された１または２以上のサンプル値と、上記累積係数ａ（または忘却係数λ）に基づいて蓄積された値である。また、第一のシフタ１３０からの出力は、後述するが、レジスタ１２０が保持する累積値を累積係数ａで乗じた値である。したがって、３入力アダー１１０の機能を、ｎ番目に入力されたサンプル値ｘｎと、レジスタ１２０が保持するｎ−１番目の累積値および１から累積係数ａを減じた値（忘却係数λ）を乗算した乗算値と、を加算してｎ番目の累積値を算出する、と表現することもできる。
【００５２】
なお、３入力アダー１１０は、数式１６に示した演算を行なうための累積値算出部の一例に過ぎず、例えば、累積値算出部は、入力されたサンプル値ｘｎと、累積値ｙｎ−１を加算する加算器と、加算結果から第一のシフタ１３０からの出力を減じる減算器と、を含むようにしてもよい。
【００５３】
レジスタ１２０は、３入力アダー１１０が算出した累積値を保持する記憶部としての機能を有する。
【００５４】
本実施形態にかかる平均値算出装置１０は、入力されたサンプルの個々の値を保持せず、累積値としてレジスタ１２０に保持させる。その結果、図６に示したような移動平均法を具現する場合に要する複数のレジスタ９１〜９５や、入力されたサンプルの個々の値を加算するアダーツリー９６が不要となるため、ハードウェア量を抑制することができる。  
【００５５】
第一のシフタ１３０は、レジスタ１２０が保持する累積値を入力され、入力された累積値を累積係数ａで乗じた値を算出する。累積係数ａが２のべき乗で表される場合、第一のシフタ１３０は、レジスタ１２０から入力された累積値のビット位置を、累積指数ｋの値分シフトさせ、累積値を累積係数ａで乗じた値を算出することができる。また、第一のシフタ１３０は、算出した値を３入力アダー１１０に入力すると共に、算出した値を平均値として外部に出力する平均値算出部としての機能を有する。すなわち、第一のシフタ１３０は、数式１７に示した処理を行なう。
【００５６】
ここで、第一のシフタ１３０が計算に用いる累積係数ａが小さいほど算出される平均値は実際の平均値付近に早期に到達するが、入力変動の影響を受け易い。一方、累積係数ａが大きいほど算出される平均値が実際の平均値付近に到達する時間を要するが、入力変動による影響が抑制された安定的な平均値を算出することができる。
【００５７】
本実施形態にかかる平均値算出装置１０は、平均値算出装置１０に入力されたサンプル数に応じて累積係数ａを可変的に設定する制御部１４０を備え、制御部１４０の制御により、算出する平均値を早期に実際の平均値付近に到達させ、その後は入力変動の影響を抑制して安定的に平均値を算出することができる。
【００５８】
このような制御部１４０は、カウンタ１４４および累積係数設定部１４８を備える。カウンタ１４４は、平均値算出装置１０に入力されたサンプル数を計数する計数部としての機能を有する。図１においては、カウンタ１４４が平均値算出装置１０に入力されたサンプル数を計数する構成を示しているが、カウンタ１４４が計数する対象はこれに限られず、例えば、３入力アダー１１０が累積値の算出を行なった回数、レジスタ１２０が保持する累積値が更新された回数、第一のシフタ１３０が平均値を算出して出力した回数であってもよい。
【００５９】
累積係数設定部１４８は、カウンタ１４４のカウント値に基づいて累積係数ａの変更条件を満たすか否かを判断し、変更条件を満たすと判断した場合に累積係数ａを変更設定する。なお、忘却係数ａまたは累積指数ｋの値が設定されれば累積係数ａを特定できるため、累積係数設定部１４８が忘却係数ａまたは累積指数ｋの値を設定することと、累積係数ａを設定することは等価であるものとして扱うことができる。
【００６０】
ここで、数式１６においては、概略、２に累積指数ｋを乗じたオーダーのデータ量が用いられる。そこで、累積係数設定部１４８は、かかるデータ量とカウンタ１４４のカウント値とが概ね比例の関係になるように累積係数ａを設定することができる。この場合、累積係数設定部１４８は、累積指数ｋをカウンタ１４４のカウント値の対数に比例して増加させることとなる。なお、「−ｋ」を累積指数と称する場合には、「−ｋ」をカウンタ１４４のカウント値の対数に比例して減少させることとなる。
【００６１】
上記のような累積係数ａまたは累積指数ｋの設定は、累積係数設定部１４８が、例えば、カウンタ１４４のカウント値の最上位のビット位置に応じて行なうことができる。具体的には、累積係数設定部１４８は、カウンタ１４４のカウント値の最上位のビット位置が１ビット、３ビットなど任意のビット数左にずれる度に累積指数ｋを１増加させてもよい。かかる構成によれば、平均値算出装置１０に入力されたサンプル数の対数を計算する過程が不要となるため、平均値算出装置１０の構成の簡素化を図ることができる。
【００６２】
なお、上記では累積係数設定部１４８がカウンタ１４４のカウント値の最上位のビット位置に応じて累積指数ｋの値を設定する場合を説明したが、累積係数ａまたは累積指数ｋの設定方法はこれに限定されない。例えば、平均値算出措置１０にサンプルが入力される度にカウント値をカウントダウンするカウントダウンレジスタを設け、カウントダウンレジスタが０になったことをトリガーに累積係数ａまたは累積指数ｋを変更設定し、カウントダウンレジスタの直前のカウントダウンスタート値の２倍の値をカウントダウンスタート値としてカウントダウンレジスタがカウントダウンを続行するようにしてもよい。
【００６３】
または、累積係数設定部１４８は、カウントダウンレジスタが所定回０になったときにのみカウントダウンスタート値を増加させてもよい。かかる構成によれば、累積係数ａの減少速度および累積指数ｋの増加速度を抑制することができる。なお、カウントダウンスタート値の増加分を必ずしも直前のカウントダウンスタート値とする必要はく、直前のカウントダウンスタート値に所定数加算した値、または所定数乗算した値であってもよい。また、平均値算出装置１０にサンプルが入力される度にカウント値をカウントアップするカウントアップレジスタを設けることでも、上述した方法と実質的に同一な方法を実現できる。
【００６４】
または、累積係数設定部１４８は、第一のシフタ１３０が出力する平均値の履歴を参照して累積係数ａまたは累積指数ｋを変更設定するようにしてもよい。例えば、累積係数設定部１４８は、出力される平均値の変動の程度が累積係数ａまたは累積指数ｋの値に応じた許容範囲内となるたびに累積係数ａまたは累積指数ｋを変更設定してもよい。
【００６５】
また、累積係数ａに下限値を設け、累積係数設定部１４８が該下限値を下回らない範囲で累積係数ａを設定するようにしてもよい。すなわち、累積係数設定部１４８には累積指数ｋの上限値が設けられ、累積係数設定部１４８が該上限値を超えない範囲で累積指数ｋを設定するようにしてもよい。かかる構成によれば、平均値算出装置１０の設計時に、レジスタ１２０の容量や、３入力アダー１１０に要するビット幅の上限値を特定することができる。したがって、累積係数ａおよび累積指数ｋがとりうる値に制限を設けることにより、ハードウェア設計を容易に行なうことが可能となる。
【００６６】
以上説明したように、本実施形態にかかる平均値算出装置１０は、平均値算出装置１０に入力されたサンプル数に応じて累積係数ａを可変的に設定する制御部１４０を備えるため、算出する平均値を早期に実際の平均値付近に到達させ、その後は入力変動の影響を抑制して安定的に平均値を算出することができる。
【００６７】
しかし、制御部１４０が平均値算出装置１０に入力されたサンプル数に応じて単に累積係数ａを変更設定するのみでは、累積係数ａの変更設定の前後に出力する平均値が不連続となるという問題がある。かかる問題を図２を参照して説明する。
【００６８】
図２は、平均値算出装置１０の入出力の関係を表したタイミングチャートである。詳細には、図２は、入力されるサンプル値が常に「１」であり、第一のシフタ１３０が処理に用いる累積指数ｋが、制御部１４０からの制御信号により、タイミングｔ１において「３」から「４」に変更された場合の出力の比較例、および本実施形態による出力例を示している。なお、図２に示した第一のシフタの制御信号および第二のシフタの制御信号の各々は、各シフタに入力された値を左シフト、または右シフトさせるビット量を制御部１４０が指示する信号である。したがって、第一のシフタの制御信号は、累積指数ｋの値を指示する制御信号と捉えることができる。
【００６９】
図２の比較例として示した出力を参照すると、累積指数ｋが変更されるタイミングｔ１の以前は正常に平均値「１」が出力されている。しかし、累積指数ｋが変更されたタイミングｔ１以降は、サンプル値「１」が入力され続けているにも拘らず、本来の平均値と異なる「０．５３１」、「０．５６１」などの値が出力されてしまう。
【００７０】
これは、累積指数ｋが増加されると第一のシフタ１３０がレジスタ１２０から入力される累積値を右シフトさせる量（累積値の除算量）も増加するが、累積指数ｋが増加された直後にレジスタ１２０から第一のシフタ１３０へ入力される累積値が累積指数の増加に対応していないことに起因する。
【００７１】
具体的には、レジスタ１２０が保持する累積値は、常にサンプル値「１」が入力される場合、２を累積指数ｋでべき乗した値に収束する。例えば、累積指数ｋが「３」であれば、レジスタ１２０が保持する累積値は「８」に収束し、累積指数ｋが「４」であれば、レジスタ１２０が保持する累積値は「１６」に収束する。しかし、タイミングｔ１において単に累積指数ｋを「３」から「４」に増加させるだけでは、タイミングｔ１直後にレジスタ１２０が保持する累積値が収束値「１６」とならず、その結果、第一のシフタ１３０の出力もタイミングｔ１の前後で不連続になってしまうという問題がある。
【００７２】
そこで、本実施形態においては上記問題を解決すべく、第二のシフタ１５０を設ける構成を採用した。かかる第二のシフタ１５０は、累積指数ｋを増加させるタイミングｔ１の直前のみ、制御部１４０の制御に基づいて、レジスタ１２０が保持する累積値のビット位置を累積指数ｋの増加分に応じてシフトさせる。例えば、第二のシフタ１５０は、累積指数ｋが１増加する場合にはレジスタ１２０が保持する累積値のビット位置を１ビット左シフトさせることができる。図２においては、第二のシフタ１５０を累積指数ｋを増加させるタイミングｔ１の直前のみ機能させる様子を、「１」を付して示している。
【００７３】
すなわち、３入力アダー１１０は、累積指数ｋを増加させるタイミングｔ１の直前、レジスタ１２０が保持する累積値の２倍の値から、レジスタ１２０が保持する累積値を累積係数ａ（累積指数ｋは３）で乗じた値を減算し、新たに入力されたサンプル値を加算する。
【００７４】
したがって、レジスタ１２０は、累積指数ｋが「３」から「４」に増加されたタイミングｔ１の直後から、累積指数ｋが「４」である場合の累積値の収束値を保持することができる。その結果、本実施形態にかかる平均値算出回路１０は、累積指数ｋが増加変更の前後であっても、図２の出力例に示したように、連続的で正常な平均値「１」を出力することができる。
【００７５】
なお、制御部１４０は、第二のシフタ１５０がレジスタ１２０の保持する累積値を左シフトさせる量を、累積指数ｋの増分、すなわち累積係数の減分に応じた量に設定することができる。例えば、制御部１４０は、累積指数ｋの増分に、第二のシフタ１５０がレジスタ１２０が保持する累積値を左シフトさせる量を比例させるようにしてもよい。すなわち、制御部１４０は、累積係数ａの減分と、第二のシフタ１５０がレジスタ１２０の保持する累積値に乗算する値と、を反比例させてもよい。
【００７６】
具体的には、制御部１４０は、累積指数ｋを「２」増加させる場合に、第二のシフタ１５０がレジスタ１２０の保持する累積値を「２ビット」左シフトさせるようにしてもよい。また、制御部１４０は、累積係数ａを１／２にする場合に、第二のシフタ１５０がレジスタ１２０の保持する累積値に「２」を乗じるようにしてもよい。
【００７７】
以上、本実施形態にかかる平均値算出装置１０の構成について説明した。続いて、図３を参照して本実施形態にかかる平均値算出方法を説明する。
【００７８】
〔平均値算出方法〕
図３は、本実施形態にかかる平均値算出装置１０における平均値算出方法の流れを示したフローチャートである。まず、平均値算出装置１０は累積値ｙｎの値を０に設定する（Ｓ２００）。その後、平均値算出装置１０は、ｎ番目のサンプルｘｎが入力されると（Ｓ２０２）、３入力アダー１１０が数式１６と等価な演算によりｎ番目の累積値ｙｎを算出する（Ｓ２０４）。続いて、レジスタ１２０は、３入力アダー１１０により算出されたｎ番目の累積値ｙｎを記憶する（Ｓ２０８）。
【００７９】
次いで、第一のシフタ１３０が、レジスタ１２０に記憶されたｎ番目の累積値ｙｎと、設定されている累積係数ａの値に基づいてｎ番目の平均値ｍｎを算出する（Ｓ２１２）。その後、制御部１４０は、平均値算出装置１０に入力されたサンプル数ｎが、累積係数ａの更新条件を満たしたか否かを判断する（Ｓ２１６）。累積係数ａの更新条件を満たしていないと判断された場合、ｎの値をインクリメントしてＳ２００の処理に戻る（Ｓ２２０）。
【００８０】
一方、Ｓ２１６において累積係数ａの更新条件を満たしていると判断された場合、ｎ番目の累積値ｙｎに、累積係数ａを減少させようとする分に応じた値を乗算し、該乗算値をｎ番目の累積値ｙｎと置き換える（Ｓ２２４）。具体的には、制御部１４０は、第二のシフタ１５０を機能させ、第二のシフタ１５０にレジスタ１２０が記憶している累積値ｙｎを左シフトさせることにより累積値ｙｎの値を増加させる。図２に示した例では、制御部１４０は、タイミングｔ１の直前に第二のシフタ１５０を機能させることにより、レジスタ１２０が記憶している累積値ｙｎの値「８」を、１ビット左シフトして「１６」に増加させている。そして、平均値算出装置１０はｎの値をインクリメントする（Ｓ２２８）。その後、新たなサンプルｘｎが入力されると（Ｓ２３２）、３入力アダー１１０は数式１６と等価な演算によりｎ番目の累積値ｙｎを算出する（Ｓ２３６）。次いで、制御部１４０が累積係数ａの値を更新（減少）させ、Ｓ２１２の処理に進む（Ｓ２４０）。
【００８１】
以上、本実施形態にかかる平均値算出装置１０における平均値算出方法について説明した。次に、本実施形態にかかる平均値算出装置１０により算出される平均値について図４を用いて説明する。
【００８２】
図４は、本実施形態にかかる平均値算出装置１０による平均値の算出結果例を示した説明図である。詳細には、図４は、０から１の間で発生させた乱数を順次本実施形態にかかる平均値算出装置１０に入力し、平均値算出装置１０が入力された乱数に基づいて算出した平均値の変化の様子を、比較例と対比的に示している。また、図４において、太線は本実施形態にかかる平均値算出装置１０による平均値算出結果を示し、灰色線は累積指数ｋを「６」で固定した場合の平均値算出結果の比較例を示し、細線は累積指数ｋを「９」で固定した場合の平均値算出結果の比較例を示している。また、横軸は入力されたサンプル数を示し、縦軸は算出された平均値を示している。
【００８３】
図４の累積指数ｋの値が「６」である比較例を参照すると、実際の平均値である０．５付近に１０の２乗のオーダーで到達し、その後に算出する平均値の変動は大きいことが分かる。一方、累積指数ｋの値が「９」である比較例を参照すると、実際の平均値である０．５付近に１０の３乗のオーダーで到達し、その後に安定的に平均値を算出することが分かる。
【００８４】
これに対し、本実施形態にかかる平均値算出装置１０においては、入力サンプル数が０〜１０の２乗のオーダーまでである間は累積指数ｋ＝６とし、入力サンプル数が１０の２乗のオーダーから１０の３乗のオーダーまでである間は累積指数ｋ＝７とし、入力サンプル数が１０の３乗のオーダーに達した後は累積指数ｋ＝８とした。
【００８５】
その結果、本実施形態にかかる平均値算出装置１０によれば、図４の太線に示したように、実際の平均値である０．５付近に１０の２乗のオーダーで到達し、かつ、その後に安定的に平均値を算出することができる。すなわち、本実施形態にかかる平均値算出装置１０によれば、実際の平均値付近に出力を早期に到達させ、さらに、その後に安定性の高い出力を維持することが可能である。
【００８６】
以上説明したように、本実施形態にかかる平均値算出装置１０は、ハードウェア量を抑制しつつ、平均値算出装置１０にサンプル値が入力される度にサンプル値の平均値を算出することができる。すなわち、本実施形態にかかる平均値算出装置１０は、実時間でサンプル値の平均値を算出することができる。また、平均値算出装置１０は、平均値算出装置１０に入力されたサンプル数に応じて累積係数ａを減少させることができる。したがって、平均値算出装置１０は、動作初期においては早期に算出する平均値を実際の平均値付近に到達させ、その後は適度に安定した平均値を算出することができる。
【００８７】
また、本実施形態においては、累積係数ａを、２を所定の累積指数ｋでべき乗した値とした。かかる構成においては、任意の値と累積係数ａの乗算、または任意の値の累積係数ａによる除算を、任意の値のビット位置をシフトさせることで実現することができる。その結果、平均値算出装置１０のハードウェア構成を、累積係数ａを任意に設定する場合と比して簡素化できる。
【００８８】
また、３入力アダー１１０は、累積係数設定部１４８が累積係数ａを小さな値に変更設定する直前におけるｎ番目の累積値の算出を、レジスタ１２０に記憶されたｎ−１番目の累積値と累積係数ａの減分に応じた値との乗算値を数式１６におけるｙｎ−１として行なうことができる。ここで、累積係数ａが小さな値に変更設定された場合に、第一のシフタ１３０が変更設定の前後において連続的な値の平均値を算出するためには、レジスタ１２０が保持する累積値が変更設定直後に累積係数ａの減分に応じた量だけ増加している必要がある。そこで、上記のように、累積係数設定部１４８が累積係数ａを小さな値に変更設定する直前の数式１６におけるｙｎ−１を、第二のシフタ１５０の動作に基づいてレジスタ１２０に保持された累積値と累積係数の減分に応じた値との乗算値とすることにより、３入力アダー１１０が算出する累積値を増大させ、レジスタ１２０に累積係数ａの減分に応じて増大された累積値を保持させることができる。その結果、第一のシフタ１３０は、累積係数ａの変更設定の前後においてもほぼ連続的な値の平均値を算出することが可能となる。
【００８９】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００９０】
例えば、上記実施形態では、平均値算出装置１０が、平均値算出装置１０に入力されたサンプル数に応じて累積係数ａを可変的に設定する場合を説明したが、入力されたサンプルのサンプル値の分散に応じて累積係数ａを可変的に設定するようにしてもよい。かかる構成によれば、サンプル値の変動量が大きければ累積係数ａの値を減少させ安定的な平均値を得るようにしたり、サンプル値の変動量が小さければ累積係数ａの値を増加させ使用するハードウェア量の抑制を図ることができる。
【００９１】
また、上記実施形態では、累積係数ａの値がサンプルの入力、あるいは時間の経過と共に減少される場合を説明したが、累積係数ａは単調減少に限らず、必要や目的に応じて増加される場合があってもよい。なお、累積係数は、２のべき乗に限られず、４のべき乗であっても、８のべき乗であってもよい。
【００９２】
また、本明細書の平均値算出装置１０の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むとしてもよい。
【００９３】
また、上述のような平均値算出方法をコンピュータに行わせるプログラムおよびそのプログラムを記憶したＥＥＰＲＯＭ、ＥＰＲＰＭなどの不揮発性メモリや、ハードディスクおよび円盤型磁性体ディスクなどの磁気ディスクや、ＣＤ−Ｒ／ＲＷ、ＤＶＤ−Ｒ／ＲＷ／＋Ｒ／＋ＲＷ／ＲＡＭおよびＢＤ（Ｂｌｕ−Ｒａｙ  Ｄｉｓｃ（登録商標））―Ｒ／ＢＤ−ＲＥなどの光ディスクや、ＭＯディスクなどの記憶媒体も提供される。また、本実施形態にかかる平均値算出装置１０を備えたＡＧＣ回路などの信号処理回路も提供される。
【００９４】
また、サンプル値を二乗した値を本実施形態にかかる平均値算出装置１０に入力すれば、ＲＭＳ（Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅ）回路が実現できることは、当業者にとって明らかである。同様に、適切な前処理が行なわれたサンプル列を本実施形態にかかる平均値算出装置１０に入力すれば、一般的な期待値計算回路を実現することもできる。
【図面の簡単な説明】
【００９５】
【図１】本発明の一実施形態にかかる平均値算出装置の構成例を示した説明図である。
【図２】同実施形態にかかる平均値算出装置の入出力の関係を表したタイミングチャートである。
【図３】同実施形態にかかる平均値算出装置における平均値算出方法の流れを示したフローチャートである。
【図４】同実施形態にかかる平均値算出装置による平均値の算出結果例を示した説明図である。
【図５】区分平均法を実現するための回路構成例を示した説明図である。
【図６】移動平均法を実現するための回路構成例を示した説明図である。
【符号の説明】
【００９６】
１０        平均値算出装置
１１０      ３入力アダー
１２０      レジスタ
１３０      第一のシフタ
１４０      制御部
１４４      カウンタ
１４８      累積係数設定部
１５０      第二のシフタ
【図１】
2008176744.tif 000021
【図２】
2008176744.tif 000022
【図３】
2008176744.tif 000023
【図５】
2008176744.tif 000024
【図６】
2008176744.tif 000025
【図４】
2008176744.tif 000026