(57)【要約】【課題】船内騒音から推進用エンジンの回転数を高精度に推定する。【解決手段】実施形態の船舶エンジン回転数推定装置１は、船内騒音を録音した録音データから取得された音フレームデータをフーリエ変換して音フレームスペクトルを生成するフーリエ変換部５４と、連続する所定個数の音フレームスペクトルから平均音フレームスペクトルを生成する平均化処理部５６と、音量フィルタおよび平均音フレームスペクトルの音量に基づいて推進用エンジン１１０の動作周波数帯を推定し、平均音フレームスペクトルのうち動作周波数帯を通過する通過スペクトルを取得する音量フィルタ処理部５７と、通過スペクトルに含まれる１つまたは複数のピークを抽出するピーク抽出部５８と、抽出されたピークの数が１つの場合、当該ピークの周波数に基づいて推進用エンジン１１０の回転数を算出する回転数算出部５９と、を備える。【選択図】図３
2019074373.tif 000002
【特許請求の範囲】
【請求項１】
船舶の推進用エンジンの回転数を推定する船舶エンジン回転数推定装置であって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するデータ取得部と、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するフーリエ変換部と、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成する平均化処理部と、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得する音量フィルタ処理部と、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出する第１のピーク抽出部と、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出する回転数算出部と、
を備えることを特徴とする船舶エンジン回転数推定装置。
【請求項２】
前記推進用エンジンのシリンダ数、サイクル数および定格回転数に基づいて、前記推進用エンジンの定格回転数時の基本周波数を算出し、前記基本周波数に基づいて解析対象周波数の上限を設定する周波数上限設定部と、
前記所定個数の前記音フレームスペクトルの平均を取る前に、前記音フレームスペクトルの前記上限以上の周波数成分を除去するスペクトル除去部と、
をさらに備えることを特徴とする請求項１に記載の船舶エンジン回転数推定装置。
【請求項３】
前記データ取得時間は、前記音フレームデータの前記時間幅よりも短いことを特徴とする請求項１または２に記載の船舶エンジン回転数推定装置。
【請求項４】
前記音フレームスペクトルの前記所定個数は、３個以上であることを特徴とする請求項１〜３のいずれかに記載の船舶エンジン回転数推定装置。
【請求項５】
前記平均音フレームスペクトルの移動平均スペクトルを求め、前記平均音フレームスペクトルから前記移動平均スペクトルを差し引くことにより音フレーム差分スペクトルを生成する移動平均処理部と、
前記音フレーム差分スペクトルから複数のピークを第２のピーク群として抽出する第２のピーク抽出部と、
前記第１のピーク群に複数のピークが含まれる場合、前記第１のピーク群および前記第２のピーク群に基づいて、前記第１のピーク群から、前記推進用エンジンの基本周波数の整数倍および半整数倍のピークを抽出する倍周波処理部と、をさらに備え、
前記倍周波処理部により抽出されたピークの数が１つの場合、前記回転数算出部は、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出することを特徴とする請求項１〜４のいずれかに記載の船舶エンジン回転数推定装置。
【請求項６】
前記移動平均処理部は、前記音フレーム差分スペクトルのうち、所定のバイアス線以下の部分を削除することを特徴とする請求項５に記載の船舶エンジン回転数推定装置。
【請求項７】
前記倍周波処理部は、
前記第１のピーク群に含まれる各ピークの周波数の逆数を要素とする第１の行列と、前記第２のピーク群に含まれる各ピークの周波数を要素とする第２の行列との積を計算し、
前記計算で得られた行列の各要素が前記基本周波数の整数倍および半整数倍の倍音バンドパスフィルタのバンド幅にあるか否かを判定することにより第３の行列が作成され、前記第３の行列に基づいて前記推進用エンジンの基本周波数の整数倍および半整数倍のピークを抽出することを特徴とする請求項５または６に記載の船舶エンジン回転数推定装置。
【請求項８】
前記倍周波処理部により複数のピークが抽出された場合、各ピークの周波数ごとに、前記所定個数の音フレームスペクトルのピークパワーの変動を示す変動係数を算出し、前記各ピークの周波数に対して算出された複数の変動係数に基づいて前記推進用エンジンの基本周波数を決定する変動係数フィルタ処理部をさらに備え、
前記回転数算出部は、前記変動係数フィルタ処理部により決定されたピークの周波数に基づいて、前記推進用エンジンの回転数を算出することを特徴とする請求項５〜７のいずれかに記載の船舶エンジン回転数推定装置。
【請求項９】
前記変動係数フィルタ処理部は、前記変動係数を算出する前に、前記所定個数の音フレームスペクトルのピークパワーの平均値を求め、前記平均値からの乖離幅に基づいて前記所定個数のピークパワーのうち一部を前記変動係数の計算対象から除去することを特徴とする請求項８に記載の船舶エンジン回転数推定装置。
【請求項１０】
船舶の推進用エンジンの回転数を推定する船舶エンジン回転数推定方法であって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するステップと、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するステップと、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成するステップと、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得するステップと、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出するステップと、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出するステップと、
を備えることを特徴とする船舶エンジン回転数推定方法。
【請求項１１】
船舶の推進用エンジンの回転数を推定するための船舶エンジン回転数推定プログラムであって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するステップと、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するステップと、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成するステップと、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得するステップと、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出するステップと、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出するステップと、
をコンピュータに実行させる船舶エンジン回転数推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、船舶の推進用エンジンの回転数を推定するための船舶エンジン回転数推定装置、船舶エンジン回転数推定方法および船舶エンジン回転数推定プログラムに関する。
【背景技術】
【０００２】
従来、自動車の分野では、携帯端末で車内の音響信号を集音し，その音響信号の分析結果からエンジン回転数を抽出し、アクセル開度を推定する方法が開示されている（特許文献１）。
【０００３】
一方、船舶の分野では、大型船については通常、推進用エンジン（「主機エンジン」とも呼ばれる。）の回転数をモニタリングする装置が設けられている。これに対し、小型船（例えば１９トン以下または２４メートル未満の船舶）では、このようなモニタリング装置が設けられていない場合があり、推進用エンジンの回転数を把握することができない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１７５２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
船舶についても自動車の場合と同様にして船内の音を集音し分析することにより、推進用エンジンの回転数を推定することが考えられる。しかしながら、船舶の場合、自動車の場合と異なり、推進用エンジンの動作音（以下、「エンジン音」ともいう。）以外に様々な騒音が存在する。例えば、船内の各種設備（舵板、無線通信等）が発する音や、発電機を駆動するための発電用エンジンの動作音、船外の音（波、風等）などの様々な音が含まれる。このため、集音したデータから推進用エンジンの動作音を抽出することは容易ではない。
【０００６】
船内騒音から推進用エンジンの動作音を抽出できたとしても、エンジン音のスペクトル（パワースペクトル）には、複数のピークが含まれる。具体的には、図２０に示すように、エンジン音のパワースペクトルは、１倍（基本周波数）、２倍、３倍・・・の整数倍のピークを有するのに加えて、１．５倍、２．５倍、３．５倍・・・の半整数倍のピークも有する。図２０の例では１．５倍のピークが最大となっていることから分かるように、基本周波数のピークが最大であるとは限らない。また、パワースペクトルは、エンジンの種類によって異なる。さらに、同じエンジンであっても、船の種類（例えば船体の形状）、船の状態（例えば漁具等の船荷の積載量）によってパワースペクトルが異なる。したがって、エンジン音のパワースペクトルを取得できたとしても、直ちに推進用エンジンの回転数を推定することは容易ではない。
【０００７】
本発明は、上記の技術的認識に基づいてなされたものであり、その目的は、船内騒音から推進用エンジンの回転数を高精度に推定することが可能な船舶エンジン回転数推定装置、船舶エンジン回転数推定方法および船舶エンジン回転数推定プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る船舶エンジン回転数推定装置は、
船舶の推進用エンジンの回転数を推定する船舶エンジン回転数推定装置であって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するデータ取得部と、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するフーリエ変換部と、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成する平均化処理部と、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得する音量フィルタ処理部と、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出する第１のピーク抽出部と、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出する回転数算出部と、
を備えることを特徴とする。
【０００９】
また、前記船舶エンジン回転数推定装置において、
前記推進用エンジンのシリンダ数、サイクル数および定格回転数に基づいて、前記推進用エンジンの定格回転数時の基本周波数を算出し、前記基本周波数に基づいて解析対象周波数の上限を設定する周波数上限設定部と、
前記所定個数の前記音フレームスペクトルの平均を取る前に、前記音フレームスペクトルの前記上限以上の周波数成分を除去するスペクトル除去部と、
をさらに備えてもよい。
【００１０】
また、前記船舶エンジン回転数推定装置において、
前記データ取得時間は、前記音フレームデータの前記時間幅よりも短いようにしてもよい。
【００１１】
また、前記船舶エンジン回転数推定装置において、
前記音フレームスペクトルの前記所定個数は、３個以上であってもよい。
【００１２】
また、前記船舶エンジン回転数推定装置において、
前記平均音フレームスペクトルの移動平均スペクトルを求め、前記平均音フレームスペクトルから前記移動平均スペクトルを差し引くことにより音フレーム差分スペクトルを生成する移動平均処理部と、
前記音フレーム差分スペクトルから複数のピークを第２のピーク群として抽出する第２のピーク抽出部と、
前記第１のピーク群に複数のピークが含まれる場合、前記第１のピーク群および前記第２のピーク群に基づいて、前記第１のピーク群から、前記推進用エンジンの基本周波数の整数倍および半整数倍のピークを抽出する倍周波処理部と、をさらに備え、
前記倍周波処理部により抽出されたピークの数が１つの場合、前記回転数算出部は、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出してもよい。
【００１３】
また、前記船舶エンジン回転数推定装置において、
前記移動平均処理部は、前記音フレーム差分スペクトルのうち、所定のバイアス線以下の部分を削除してもよい。
【００１４】
また、前記船舶エンジン回転数推定装置において、
前記倍周波処理部は、
前記第１のピーク群に含まれる各ピークの周波数の逆数を要素とする第１の行列と、前記第２のピーク群に含まれる各ピークの周波数を要素とする第２の行列との積を計算し、
前記計算で得られた行列の各要素が前記基本周波数の整数倍および半整数倍の倍音バンドパスフィルタのバンド幅にあるか否かを判定することにより第３の行列が作成され、前記第３の行列に基づいて前記推進用エンジンの基本周波数の整数倍および半整数倍のピークを抽出するようにしてもよい。
【００１５】
また、前記船舶エンジン回転数推定装置において、
前記倍周波処理部により複数のピークが抽出された場合、各ピークの周波数ごとに、前記所定個数の音フレームスペクトルのピークパワーの変動を示す変動係数を算出し、前記各ピークの周波数に対して算出された複数の変動係数に基づいて前記推進用エンジンの基本周波数を決定する変動係数フィルタ処理部をさらに備え、
前記回転数算出部は、前記変動係数フィルタ処理部により決定されたピークの周波数に基づいて、前記推進用エンジンの回転数を算出するようにしてもよい。
【００１６】
また、前記船舶エンジン回転数推定装置において、
前記変動係数フィルタ処理部は、前記変動係数を算出する前に、前記所定個数の音フレームスペクトルのピークパワーの平均値を求め、前記平均値からの乖離幅に基づいて前記所定個数のピークパワーのうち一部を前記変動係数の計算対象から除去するようにしてもよい。
【００１７】
本発明に係る船舶エンジン回転数推定方法は、
船舶の推進用エンジンの回転数を推定する船舶エンジン回転数推定方法であって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するステップと、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するステップと、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成するステップと、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得するステップと、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出するステップと、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出するステップと、
を備えることを特徴とする。
【００１８】
本発明に係る船舶エンジン回転数推定プログラムは、
船舶の推進用エンジンの回転数を推定するための船舶エンジン回転数推定プログラムであって、
前記推進用エンジンのエンジン音を含む船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得するステップと、
前記音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成するステップと、
連続する所定個数の前記音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成するステップと、
前記推進用エンジンの回転数と前記船内騒音の音量との間の関係を示す音量プロフィールに基づいて作成された音量フィルタ、および前記平均音フレームスペクトルの音量に基づいて前記推進用エンジンの動作周波数帯を推定し、前記平均音フレームスペクトルのうち前記動作周波数帯を通過する通過スペクトルを取得するステップと、
前記通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出するステップと、
前記第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、前記推進用エンジンの回転数を算出するステップと、
をコンピュータに実行させる。
【発明の効果】
【００１９】
本発明によれば、船内騒音から推進用エンジンの回転数を高精度に推定することができる。
【図面の簡単な説明】
【００２０】
【図１】一例に係る船舶１００の概略的構成を示す図である。
【図２】実施形態に係る船舶エンジン回転数推定装置１の概略的構成を示す図である。
【図３】第１の実施形態に係る制御部５０の概略的構成を示す図である。
【図４Ａ】事前に測定された船内騒音の音量プロフィールを示すグラフの一例である。
【図４Ｂ】音量プロフィールにリミッタ線を設定する方法を説明するためのグラフの一例である。
【図４Ｃ】作成された音量フィルタを示すグラフの一例である。
【図５】変形例に係る音量フィルタの作成方法を説明するためのグラフである。
【図６】船内騒音の録音データから音フレームデータを取得する方法を説明するための図である。
【図７】平均音フレームスペクトルを示すグラフの一例である。
【図８】平均音フレームスペクトルを音量フィルタに通して通過スペクトルを取得する方法を説明するための図である。
【図９】事前準備の処理フローを説明するためのフローチャートである。
【図１０】第１の実施形態に係る船舶エンジン回転数推定方法を説明するためのフローチャートである。
【図１１】複数のピークを有する通過スペクトルを示すグラフの一例である。
【図１２】第２の実施形態に係る制御部５０Ａの概略的構成を示す図である。
【図１３】平均音フレームスペクトルと、当該平均音フレームスペクトルを移動平均処理したスペクトルとを示すグラフの一例である。
【図１４】音フレーム差分スペクトルと、閾値（バイアス線）とを示すグラフの一例である。
【図１５】バイアス線によりカットされたスペクトルを示すグラフの一例である。
【図１６】（ａ）は行列Ｘの各要素を示し、（ｂ）は行列Ｙの各要素の一例を示す図である。
【図１７】５個の音フレームスペクトルについて、参照値（周波数ｆｐ）に合致する周波数のパワー値Ｐｆｐｊ（ｊ＝１，２，・・・，５）を示す図である。
【図１８】変動係数を算出する前に、抽出されたパワー値の一部を除去する処理を説明するための図である。
【図１９】第２の実施形態に係る船舶エンジン回転数推定方法を説明するためのフローチャートである。
【図２０】推進用エンジンのエンジン音のパワースペクトルの一例である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る実施形態について図面を参照しながら説明する。
【００２２】
（第１の実施形態）
まず、図１を参照して、一例に係る船舶１００の概略的構成について説明する。図１に示すように、船舶１００には、プロペラ１４０を回転させる推進用エンジン１１０、および発電機１３０を回転させる発電用エンジン１２０が設けられている。なお、発電用エンジン１２０および発電機１３０は必須の構成ではない。例えば、バッテリにより船内の電気設備（冷暖房、照明、ウィンチ等）を駆動する場合、発電用エンジン１２０および発電機１３０は船舶１００に設けられなくてもよい。
【００２３】
図１に示すように、船舶１００には、船舶エンジン回転数推定装置１が設けられている。この船舶エンジン回転数推定装置１は、後ほど詳しく説明するように、船舶１００の推進用エンジン１１０の回転数を推定するように構成されている。船舶エンジン回転数推定装置１は、船舶１００に設置された情報処理装置（パソコン等）であってもよいし、あるいは、船員が携帯する情報処理端末（スマートフォン、タブレット端末等）であってもよい。
【００２４】
船舶１００は、本実施形態では、全長が２４メートル未満、または総トン数が１９トン以下の小型船である。なお、船舶エンジン回転数推定装置１は、小型船にのみ適用されるものではなく、中型船や大型船の推進用エンジンの回転数を推定するために用いられてもよい。
【００２５】
＜船舶エンジン回転数推定装置＞
次に、図２を参照して、船舶エンジン回転数推定装置１の概略的構成について説明する。
【００２６】
図２に示すように、船舶エンジン回転数推定装置１は、音入力部１０と、情報入力部２０と、情報出力部３０と、記憶部４０と、制御部５０とを有している。なお、船舶エンジン回転数推定装置１は、インターネット等の通信ネットワークを介して他の情報処理装置との間で情報を送受信するための通信部（図示せず）を有してもよい。また、船舶エンジン回転数推定装置１は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）等の位置検出手段や、加速度センサを有してもよい。
【００２７】
以下、船舶エンジン回転数推定装置１の各構成について説明する。
【００２８】
音入力部１０は、船舶エンジン回転数推定装置１の周囲の音を入力する装置である。この音入力部１０は、例えば、スマートフォン等の情報処理端末に搭載されたマイクから構成される。
【００２９】
音入力部１０は、船舶エンジン回転数推定装置１の周囲の音として、船内騒音を入力する。「船内騒音」は、推進用エンジン１１０のエンジン音を含む、船舶１００内の騒音である。船内騒音には、例えば、推進用エンジン１１０のエンジン音のほか、船内の各種設備（舵板、無線機器、航海計器等）の発する音、船外の音（風、波の音など）や、発電用エンジン１２０の動作音などが含まれる。
【００３０】
音入力部１０が入力した船内騒音は、デジタル信号に変換された後、録音データとして記憶部４０に保存される。なお、船内騒音の録音データは、船舶エンジン回転数推定装置１に通信接続された外部記憶装置（図示せず）に保存されてもよい。
【００３１】
エンジン音を詳細に解析するためには、船内騒音を録音する時の周波数分解能をできるだけ小さくすることが好ましい。一方、周波数分解能を小さくするほど、サンプリング時間が長くなり、リアルタイム性を損なうことになる。本実施形態では、サンプリング周波数Ｆｓとして、オーディオ録音に使われる４４．１ｋＨｚを用いる。この場合、サンプリング点数Ｎｓを２バイトとすると、周波数分解能ΔＦは、０．６７２９［Ｈｚ］（＝４４，１００／６５，５３６）となる。したがって、船内騒音のサンプリング時間（１／ΔＦ）は、約１．５秒となる。本実施形態では、後述のように、録音データの取得間隔（データ取得時間）を音フレームデータの時間幅（約１．５秒）よりも短くすることで、リアルタイム性を確保している。
【００３２】
情報入力部２０は、ユーザが船舶エンジン回転数推定装置１に情報を入力するためのインターフェースであり、例えば、タッチパネル、キーボード、マウス、ボタン等である。なお、音入力部１０が情報入力部として機能してもよい。ユーザは、情報入力部２０を介して、推進用エンジン１１０の定格回転数、シリンダ数およびサイクル数等、推進用エンジン１１０の回転数の推定に必要となる値を入力する。
【００３３】
情報出力部３０は、ユーザへ各種情報（例えば推定された回転数）を出力するインターフェースであり、例えば映像を表示するディスプレイ（液晶ディスプレイ、有機ＥＬディスプレイ等）である。
【００３４】
なお、情報出力部３０は、情報を音声で出力するスピーカであってもよい。また、情報入力部２０がタッチパネルの場合には、情報入力部２０が情報出力部３０を兼ねてもよい。
【００３５】
また、情報出力部３０は、船舶エンジン回転数推定装置１の外部に接続される映像表示手段や音声出力手段に、映像信号や音声信号を出力するものであってもよいし、外部に接続される印刷装置（プリンタ）にデータを出力するものであってもよいし、あるいは、船舶エンジン回転数推定装置１の内部もしくは外部の記憶装置にデータを出力して記憶させるものであってもよい。
【００３６】
記憶部４０は、ハードディスクまたは半導体メモリなどから構成される記憶装置である。この記憶部４０は、制御部５０による情報処理に必要なデータが記憶されるとともに、制御部５０が生成する情報を記憶する。
【００３７】
制御部５０は、船舶エンジン回転数推定装置１の動作を制御するものであり、ハードウェアとしてはＣＰＵ（中央処理装置）等のプロセッサにより構成される。
【００３８】
次に、図３を参照して、制御部５０について詳しく説明する。
【００３９】
制御部５０は、周波数上限設定部５１と、音量フィルタ作成部５２と、データ取得部５３と、フーリエ変換部５４と、スペクトル除去部５５と、平均化処理部５６と、音量フィルタ処理部５７と、ピーク抽出部（第１のピーク抽出部）５８と、回転数算出部５９とを有している。制御部５０の各部は、船舶エンジン回転数推定装置１内のプロセッサが所定のプログラム（例えば、スマートフォンのアプリ）を実行することにより実現される。なお、これらの機能部のうち、少なくともいずれか１つが船舶エンジン回転数推定装置１内のハードウェアによって実現されてもよい。
【００４０】
以下、制御部５０の各部について詳しく説明する。
【００４１】
周波数上限設定部５１は、情報入力部２０を介して、推進用エンジン１１０の定格回転数、シリンダ数およびサイクル数の値を取得する。なお、周波数上限設定部５１は、記憶部４０に予め記憶されたパラメータ値（定格回転数、シリンダ数およびサイクル数のうち少なくともいずれか一つの値）を記憶部４０から読み出してもよい。
【００４２】
周波数上限設定部５１は、推進用エンジン１１０のシリンダ数、サイクル数および定格回転数に基づいて、推進用エンジン１１０の定格回転数時の基本周波数を算出する。具体的には、式（１）を用いて、定格回転数時のエンジン音の基本周波数を算出する。
【数１】
2019074373.tif 000003
【００４３】
ここで、Ｆｒａｔｅｄ：定格回転数時のエンジン音の基本周波数、Ｎｒａｔｅｄ：定格回転数［ｒｐｍ］、Ｃ：推進用エンジン１１０のシリンダ数、Ｓ：推進用エンジン１１０のサイクル数（ストローク）である。
【００４４】
周波数上限設定部５１は、算出された定格回転時の基本周波数に基づいて、解析対象周波数の上限（「カットオフ周波数」ともいう。）を設定する。定格回転時の基本周波数のρｋ倍の値までを解析対象とする場合、周波数上限設定部５１は、式（２）および式（３）を用いてカットオフ周波数を算出し設定する。設定されたカットオフ周波数は、スペクトル除去部５５により利用される（詳しくは後述する）。
【数２】
2019074373.tif 000004
【数３】
2019074373.tif 000005
【００４５】
ここで、Ｆｌｉｍ：カットオフ周波数、α：マージンである。
【００４６】
例えば、ｋ＝３，ρ３＝２とした場合、定格回転数時の基本周波数の２倍にマージンαを加えた周波数までを解析対象とすることになる。なお、マージンαは、予め規定された値であってもよいし、ユーザが情報入力部２０を介して設定した値であってもよい。
【００４７】
音量フィルタ作成部５２は、音量プロフィールに基づいて音量フィルタ（Ｓｏｕｎｄ  Ｖｏｌｕｍｅ  Ｆｉｌｔｅｒ：ＳＶＦ）を作成する。音量プロフィールは、推進用エンジンおよび船舶に固有のものであり、推進用エンジン１１０の回転数と、船内騒音の音量との間の関係を示す。ここで、「音量」とは、船内騒音のパワースペクトルに対し、カットオフ周波数以下のパワー（周波数成分）を周波数方向に積算した値（積分値）のことである。なお、カットオフ周波数が設定されない場合、音量は全周波数についてパワースペクトルの値を積分した値である。
【００４８】
ここで、音量プロフィールの取得方法について説明する。まず、推進用エンジン１１０のアイドリング運転状態から定格速度運転状態まで、複数の回転数について船内騒音を録音する。この際、一つの回転数につき、船内騒音を複数回録音する。そして、各録音データをフーリエ変換してパワースペクトルを生成する。そして、各パワースペクトルについて音量を算出する。図４Ａのグラフ中の縦棒は、音量のばらつきを示している。なお、図４Ａにおいて、グラフの横軸は、推進用エンジン１１０の回転数を示しており、“１００％”の回転数が定格回転数を示している（後述の図４Ｂおよび図５（ａ），（ｂ）についても同様。）。
【００４９】
次に、各回転数の音量データに基づいて、近似曲線を求める。この近似曲線が音量プロフィールを示している。図４Ａ中の実線の曲線は、音量プロフィールの一例を示している。多くの船舶では、自動車のトランスミッションのような可変速機構を有しないため（つまり、１速のみ）、このような音量プロフィールを取得することが可能である。
【００５０】
ところで、音量は、推進用エンジン１１０の回転数が高くなるにつれて増大する。推進用エンジン１１０単体であれば、音量と回転数の関係は、比較的単純な数式で表現することができる。しかし、推進用エンジンが船舶に搭載された状態では、音量は船舶１００の流体抵抗等の影響も受けるため、回転数に対して複雑に変化することになる。例えば、図４Ａに示す音量プロフィールの近似曲線は、符号Ｈで示すコブを有するが、このコブは当該回転数（船速）において船体の流体抵抗が大きいことに起因して現れている。小型船の場合、船速（エンジン回転数）を上げていくと、数回のハンプ（船体抵抗の増減）を経た後に滑走状態となる。
【００５１】
音量フィルタ作成部５２は、取得した音量プロフィールに基づいて、以下のようにして音量フィルタを作成する。
【００５２】
まず、音量フィルタ作成部５２は、図４Ａに示すように、乖離幅ΔＶｒａｔｅｄを求める。この乖離幅ΔＶｒａｔｅｄは、所定の回転数における平均音量の値から最も乖離した音量値の乖離幅のことである。図４Ａの例では、所定の回転数は定格回転数である。定格回転数における乖離幅は他の回転数における乖離幅よりも大きくなることが多い。このため、定格回転数における乖離幅を用いることで、回転数の推定精度を高めることができる。なお、音量フィルタ作成部５２は、定格回転数以外の回転数における乖離幅を求めてもよい。
【００５３】
次に、音量フィルタ作成部５２は、図４Ｂに示すように、音量プロフィールに±ΔＶｒａｔｅｄ分の幅を上下に持たせたリミッタ線ＵＬ，ＬＬを設定する。図４Ｂにおいて、リミッタ線ＵＬは上側のリミッタ線であり、リミッタ線ＬＬは、下側のリミッタ線である。
【００５４】
その後、音量フィルタ作成部５２は、図４Ｃに示すように、リミッタ線ＵＬ，ＬＬを示すグラフの横軸（Ｘ軸）を周波数に変換することにより音量フィルタを作成する。このようにして作成された音量フィルタは、記憶部４０に記憶される。
【００５５】
なお、音量フィルタの作成方法は上記に限られず、より簡易な方法を採ることも可能である。変形例に係る音量フィルタの作成方法について、図５を参照して説明する。この変形例では、アイドリング速度Ｎｉｄｌｅ時の平均音量Ｖａ−ｉｄｌｅと、定格速度Ｎｒａｔｅｄ運転時の平均音量Ｖａ−ｒａｔｅｄの２点の情報から、音量プロフィールの近似概略線を作成する。音量プロフィールを示す線は、曲線であってもよいし、直線であってもよい。
【００５６】
具体的には、まず、図５（ａ）に示すように、音量フィルタ作成部５２は、アイドリング速度Ｎｉｄｌｅ時の平均音量Ｖａ−ｉｄｌｅを示す点Ａと、定格速度Ｎｒａｔｅｄ運転時の平均音量Ｖａ−ｒａｔｅｄを示す点Ｂとの２点を通る曲線Ｃ（音量プロフィール）を求める。曲線Ｃは、例えば、指数曲線または二次曲線である。
【００５７】
次に、図５（ｂ）に示すように、音量フィルタ作成部５２は、乖離幅ΔＶｒａｔｅｄを求める。この乖離幅ΔＶｒａｔｅｄは、所定の回転数における平均音量の値から最も乖離した音量値の乖離幅である。ここでは、所定の回転数を定格回転数としている。その後、音量フィルタ作成部５２は、図５（ｂ）に示すように、音量プロフィールに±ΔＶｒａｔｅｄ分の幅を上下に持たせたリミッタ線ＵＬ，ＬＬを設定する。そして、図５（ｃ）に示すように、音量フィルタ作成部５２は、リミッタ線ＵＬ，ＬＬのグラフの横軸（Ｘ軸）を周波数に変換することにより音量フィルタを作成する。
【００５８】
本変形例によれば、アイドリング運転時と定格運転時の２点の情報のみから音量フィルタを作成するため、回転数の推定精度は低下するものの、簡易に音量フィルタを得ることができる。
【００５９】
データ取得部５３は、船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得する。データ取得部５３は、録音データから切り出した音フレームデータを記憶部４０に記憶させる。
【００６０】
データ取得時間は、音フレームデータの時間幅よりも短いことが好ましい。換言すれば、データ取得部５３は、図６に示すように、互いに重複するように音フレームデータを取得してもよい。これにより、音フレームデータの時間幅（すなわち、周波数分解能）を確保しつつ、リアルタイム性を確保することができる。
【００６１】
本実施形態では、データ取得部５３は、図６に示すように、録音データＳＲＤから、０．７〜０．８秒ごとに、長さが約１．５秒の音フレームデータＳＦ１〜ＳＦ７を取得する。図６において、直近に取得された音フレームデータがＳＦ７であり、その一つ前に取得されたデータがＳＦ６である。
【００６２】
フーリエ変換部５４は、音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成する。より詳しくは、フーリエ変換部５４は、データ取得部５３によって音フレームデータが取得されるたびに、高速フーリエ変換により当該音フレームデータの音フレームスペクトルを生成する。
【００６３】
なお、フーリエ変換部５４は、生成された音フレームスペクトルのデータを記憶部４０に記憶させてもよい。記憶された音フレームスペクトルは、例えば、第２の実施形態で説明する変動係数フィルタ処理において使用される。
【００６４】
スペクトル除去部５５は、後述の平均化処理部５６が複数の音フレームスペクトルの平均を取る前に、データ取得部５３により取得された音フレームスペクトルのカットオフ周波数（Ｆｌｉｍ）以上の周波数成分を除去する。これにより、これ以降のデータ処理に伴う計算量を低減することができる。さらに、エンジン音に関係の無い周波数成分が除去されるので、推進用エンジン１１０の回転数の推定精度を向上させることができる。ただし、スペクトル除去部５５は必須の構成ではない。
【００６５】
なお、スペクトル除去部５５は、カットオフ周波数以上の周波数成分が除去された音フレームスペクトルのデータを記憶部４０に記憶させてもよい。記憶された音フレームスペクトルは、例えば、第２の実施形態で説明する変動係数フィルタ処理において使用される。また、スペクトル除去部５５は、発電用エンジン１２０の動作周波数を除去してもよい。発電用エンジン１２０は一定の回転数で回転するため、動作周波数も一定であり既知である。
【００６６】
平均化処理部５６は、連続する所定個数の音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成する。本実施形態では、平均化処理部５６は、直近から５個の音フレームスペクトルを用いて平均化処理を行う。図７は、算術平均をとった場合の平均音フレームスペクトルの一例を示している。図７に示すように、平均音フレームスペクトルには、基本周波数のピークを含む複数のピークが含まれる。なお、本実施形態では、平均音フレームスペクトルはカットオフ周波数以上の周波数成分を有しない。
【００６７】
推進用エンジン１１０の回転数の推定精度を向上させる観点から、平均をとる音フレームスペクトルの数（所定個数）は多いほど好ましいが、少なくとも２個であればよい。なお、後述の変動係数フィルタ処理を行う観点からは、所定個数は３個以上であることが好ましい。本実施形態では、５個の音フレームスペクトルの平均を取ることにより平均音フレームスペクトルを生成する。したがって、図６からも分かるように、平均音フレームスペクトルは、約４．５秒前から現在までの録音データを利用して生成される。
【００６８】
なお、スペクトル除去部５５が設けられていない場合、平均化処理部５６は、フーリエ変換部５４により生成された音フレームスペクトルをそのまま平均化する。また、平均化処理部５６は、算術平均に限らず、幾何平均などの他の平均化処理により平均音フレームスペクトルを生成してもよい。
【００６９】
音量フィルタ処理部５７は、音量フィルタ作成部５２により作成された音量フィルタと、平均音フレームスペクトルの音量とに基づいて、推進用エンジン１１０の動作周波数帯を推定する。図８において、「通過帯」と表記された帯域は動作周波数帯を示し、実測音量線ＳＬは平均化処理部５６により生成された平均音フレームスペクトルの音量（すなわち、パワースペクトルの積分値）を示している。図８に示すように、通過帯の下限周波数は実測音量線ＳＬと上側のリミッタ線ＵＬとの交点の周波数であり、通過帯の上限周波数は実測音量線ＳＬと下側のリミッタ線ＬＬとの交点の周波数である。
【００７０】
なお、平均音フレームスペクトルの音量は、音量フィルタ処理部５７が、平均化処理部５６により生成された平均音フレームスペクトルに基づいて算出する。これに限らず、平均化処理部５６など、制御部５０の他の機能部が平均音フレームスペクトルの音量を算出してもよい。
【００７１】
動作周波数帯を推定した後、音量フィルタ処理部５７は、平均音フレームスペクトルのうち、推定された動作周波数帯を通過する通過スペクトルを取得する。この通過スペクトルは、１つまたは複数のピークを有し、推進用エンジン１１０の基本周波数のピークを含む。
【００７２】
ピーク抽出部５８は、通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出する。通過スペクトルは、動作周波数帯において、周波数方向に等間隔に並ぶ数値（パワーレベル）の集合である。ピーク抽出部５８は、この集合からピーク（局所的な最大値）の周波数を抽出する。すなわち、第１のピーク群のデータは、各ピークの周波数値の集合である。
【００７３】
回転数算出部５９は、ピーク抽出部５８により抽出された第１のピーク群に含まれるピークの数が１つの場合、当該ピークの周波数に基づいて、推進用エンジン１１０の回転数を算出する。具体的には、式（４）を用いて、推進用エンジン１１０の回転数を算出する。
【数４】
2019074373.tif 000006
【００７４】
ここで、Ｎ：推進用エンジン１１０の回転数［ｒｐｍ］、Ｃ：シリンダ数、Ｓ：サイクル数（ストローク）、Ｆ：抽出されたピークの周波数である。
【００７５】
＜船舶エンジン回転数推定方法＞
第１の実施形態に係る船舶エンジン回転数推定装置１の処理動作を、図９および図１０のフローチャートに沿って説明する。図９は、事前準備に係る処理フローを示し、図１０は、推進用エンジン１１０の回転数推定に係る処理フローを示している。
【００７６】
まず、図９を参照して、事前準備に係る処理フローについて説明する。
【００７７】
周波数上限設定部５１は、前述したようにして、推進用エンジン１１０の定格回転数時の基本周波数を算出し、算出した基本周波数に基づいてカットオフ周波数（Ｆｌｉｍ）を設定する（ステップＳ１）。
【００７８】
次に、音量フィルタ作成部５２は、前述したようにして、音量プロフィールに基づいて音量フィルタを作成する（ステップＳ２）。
【００７９】
なお、ステップＳ１とステップＳ２の順番を入れ替えてもよい。
【００８０】
次に、図１０を参照して推進用エンジン１１０の回転数推定に係る処理フローについて説明する。
【００８１】
まず、データ取得部５３は、船内騒音を録音した録音データから、所定のデータ取得時間ごとに、所定の時間幅を有する音フレームデータを取得する（ステップＳ１１）。
【００８２】
次に、フーリエ変換部５４は、ステップＳ１１で取得された音フレームデータをフーリエ変換することにより、音フレームスペクトルを生成する（ステップＳ１２）。
【００８３】
次に、スペクトル除去部５５は、ステップＳ１２で取得された音フレームスペクトルのカットオフ周波数（Ｆｌｉｍ）以上の周波数成分を除去する（ステップＳ１３）。
【００８４】
次に、平均化処理部５６は、連続する所定個数の音フレームスペクトルの平均を取ることにより、平均音フレームスペクトルを生成する（ステップＳ１４）。
【００８５】
次に、音量フィルタ処理部５７は、ステップＳ２で作成された音量フィルタと、ステップＳ１４で生成された平均音フレームスペクトルの音量とに基づいて、推進用エンジン１１０の動作周波数帯を推定し、平均音フレームスペクトルのうち、推定された動作周波数帯を通過する通過スペクトルを取得する（ステップＳ１５）。
【００８６】
次に、ピーク抽出部５８は、ステップＳ１５で取得された通過スペクトルに含まれる１つまたは複数のピークを第１のピーク群として抽出する（ステップＳ１６）。
【００８７】
次に、制御部５０は、ステップＳ１６で抽出された第１のピーク群に含まれるピークの数が１つであるか否かを判定する（ステップＳ１７）。そして、第１のピーク群に含まれるピークの数が１つである場合（Ｓ１７：Ｙｅｓ）、回転数算出部５９は、当該ピーク（特定されたピーク）の周波数に基づいて、推進用エンジン１１０の回転数を算出する（ステップＳ１８）。特定されたピークの周波数がエンジン音の基本周波数であるため、推進用エンジン１１０の回転数を算出することができる。
【００８８】
一方、第１のピーク群に含まれるピークの数が複数である場合（Ｓ１７：Ｎｏ）、絞り込み処理を行う（ステップＳ２０）。この処理内容は、第２の実施形態で説明する。
【００８９】
以上説明したように、第１の実施形態では、音量フィルタ処理部５７が、予め作成された音量フィルタと、平均音フレームスペクトルの音量とに基づいて、推進用エンジン１１０の動作周波数帯を推定し、音量フィルタ処理部５７が、平均音フレームスペクトルのうち、推定された動作周波数帯を通過する通過スペクトルを取得し、回転数算出部５９が、通過スペクトルのピークの周波数に基づいて推進用エンジン１１０の回転数を算出する。このように、第１の実施形態によれば、事前学習された船舶に固有の音量フィルタを用いることで、船内騒音から推進用エンジン１１０の回転数を高精度に推定することができる。
【００９０】
（第２の実施形態）
次に、本発明に係る第２の実施形態について説明する。本実施形態では、図１１に示すように、通過スペクトルから抽出された第１のピーク群が複数のピークを含む場合に、ピークの絞り込み処理を行い、基本周波数のピークを特定する。以下、第１の実施形態との相違点を中心に第２の実施形態について説明する。船舶エンジン回転数推定装置１のうち制御部５０以外の構成要素については、第１の実施形態と同様であるので詳しい説明を省略する。
【００９１】
図１２を参照して、第２の実施形態に係る制御部５０Ａについて説明する。
【００９２】
制御部５０Ａは、制御部５０の各部（周波数上限設定部５１ないし回転数算出部５９）に加えて、移動平均処理部６１と、ピーク抽出部（第２のピーク抽出部）６２と、倍周波処理部６３と、変動係数フィルタ処理部６４とを有している。なお、図１２において、制御部５０と共通する構成は図示していない。制御部５０Ａの各部は、船舶エンジン回転数推定装置１内のプロセッサが所定のプログラム（例えば、スマートフォンのアプリ）を実行することにより実現される。なお、これらの機能部のうち、少なくともいずれか１つが船舶エンジン回転数推定装置１内のハードウェアによって実現されてもよい。
【００９３】
以下、制御部５０Ａで新たに追加された各部について詳細に説明する。
【００９４】
移動平均処理部６１は、平均化処理部５６により生成された平均音フレームスペクトルの移動平均スペクトルを求める。そして、移動平均処理部６１は、平均音フレームスペクトルから、求めた移動平均スペクトルを差し引くことにより音フレーム差分スペクトルを生成する。図１３は、平均音フレームスペクトル（算術平均）を破線で示し、移動平均スペクトルを実線で示している。図１４は、音フレーム差分スペクトルを実線で示している。
【００９５】
さらに、移動平均処理部６１は、音フレーム差分スペクトルのうち、所定のバイアス線以下の部分を除去する。図１４では、バイアス線を一点鎖線で示している。本実施形態では、バイアス線は、推進用エンジン１１０のアイドリング運転時の音量に基づいて設定される。このように、バイアス線で音フレーム差分スペクトルの足切りを行うことにより、図１５に示すように、比較的高い複数のピークを有するパワースペクトルを得ることができる。なお、バイアス線による音フレーム差分スペクトルの一部除去は必須ではない。また、他の方法によりバイアス線を設定してもよい。
【００９６】
ピーク抽出部６２は、移動平均処理部６１により生成された音フレーム差分スペクトルから、複数のピークを第２のピーク群として抽出する。音フレーム差分スペクトルは、周波数方向に等間隔に並ぶ数値（パワーレベル）の集合である。ピーク抽出部６２は、この集合からピーク（局所的な最大値）の周波数を抽出する。
【００９７】
ピーク抽出部６２により抽出された第２のピーク群は、推進用エンジン１１０の基本周波数の整数倍および半整数倍（すなわち、１．０倍，１．５倍，２．０倍・・・）の周波数のピークを含む。
【００９８】
倍周波処理部６３は、第１の実施形態で説明したピーク抽出部５８により抽出された第１のピーク群に複数のピークが含まれる場合、第１のピーク群および第２のピーク群に基づいて、第１のピーク群から、推進用エンジン１１０の基本周波数の整数倍および半整数倍のピークを抽出する。
【００９９】
すなわち、倍周波処理部６３は、第１のピーク群に含まれる複数のピーク（基本周波数の候補）と、第２のピーク群に含まれる複数のピーク（基本周波数とその整数倍および半整数倍のピークを含む。）とを比較して、第１のピーク群に含まれる複数のピークを基本周波数の整数倍および半整数倍の周波数を有するピーク群に絞り込む。
【０１００】
ここで、倍周波処理部６３による倍周波処理について詳しく説明する。
【０１０１】
まず、第１のピーク群のデータ（各ピークの周波数値の集合）から行列Ｆを作成する。この行列Ｆは、１行ｎ列の行列であり、式（５）で表される。
【数５】
2019074373.tif 000007
【０１０２】
ここで、ｆ１，ｆ２，・・・，ｆｎは、第１のピーク群に含まれるピークの周波数値であり、ｎは第１のピーク群に含まれるピークの数である。
【０１０３】
例えば、行列Ｆは、Ｆ＝(72.7, 76.0, 78.7, 81.4, 82.8, 86.8, 88.8)である。
【０１０４】
次に、行列Ｆの要素の逆数の要素を有する行列Ａを作成する。この行列Ａは、ｎ行１列の行列であり、式（６）で表される。
【数６】
2019074373.tif 000008
【０１０５】
次に、第２のピーク群のデータ（各ピークの周波数値の集合）から行列Ｂを作成する。この行列Ｂは、１行ｍ列の行列であり、式（７）で表される。
【数７】
2019074373.tif 000009
【０１０６】
ここで、ｂ１，ｂ２，・・・，ｂｍは、第２のピーク群に含まれるピークの周波数値であり、ｍは第２のピーク群に含まれるピークの数である。
【０１０７】
例えば、行列Ｂは、Ｂ＝(57.9, 61.2, 72.7, 86.8, 88.8, 101.6, 103.0, 115.7, 129.9, 131.9, 135.9, 144.7, 159.5, 173.6, 175.6, 188.4)である。
【０１０８】
次に、行列Ａと行列Ｂの積を計算し、行列Ｘとする。この行列Ｘは、式（８）に示すように、ｎ行ｍ列の行列である。
【数８】
2019074373.tif 000010
【０１０９】
次に、行列Ｘに対して、ρｋ倍音フィルタ（倍音バンドパスフィルタ）を用意する。許容誤差±ｅ％とした場合における、ρｋ倍音フィルタのバンド幅（通過帯）は、式（９）で表される。
【数９】
2019074373.tif 000011
【０１１０】
ρｋ倍音フィルタとして、ｋ（＝２ρｋ−１）個のバンドパスフィルタが用意される。例えば、定格回転数時の基本周波数の２倍の周波数までを解析対象としていた場合（すなわち、ρ３＝２の場合）、３個の倍音バンドパスフィルタ（１．０倍、１，５倍、２．０倍のフィルタ）を用意する。なお、式（９）の中辺は行列Ｘの（ｎ，ｍ）成分を示しているが、これは一例であり、後述のように中辺には行列Ｘの各成分が入り、ρｋ倍音フィルタを通過するか否かが判定される。
【０１１１】
式（９）より、１．０倍のフィルタのバンド幅は、０．９５≦ｂｍ/ｆｎ≦１．０５である。同様に、１．５倍のフィルタのバンド幅は、１．４２５≦ｂｍ/ｆｎ≦１．５７５であり、２．０倍のフィルタのバンド幅は、１．９０≦ｂｍ/ｆｎ≦２．１０である。
【０１１２】
次に、用意した倍音バンドパスフィルタの各々に行列Ｘを通す。具体的には、行列Ｘの各要素の値が、各倍音バンドパスフィルタのバンド幅に入るか否かをそれぞれ判定する。そして、いずれかの倍音バンドパスフィルタを通過した要素の数値はそのままにし、一方、いずれの倍音バンドパスフィルタのバンド幅も通過しない要素は０とすることにより、行列Ｙを作成する。図１６（ａ）は行列Ｘの各要素を示し、図１６（ｂ）は行列Ｙの各要素の一例を示している。図１６（ｂ）において、いずれの倍音バンドパスフィルタのバンド幅も通過しない要素が０になっている。
【０１１３】
次に、行列Ｙを行ごとにｎ個の行列Ｙ１，Ｙ２，・・・，Ｙｎに分解する。分解された各行列は、１行ｍ列の行列である。図１６（ｂ）の例では、行列Ｙ２＝（ｂ１/ｆ２，０，０，・・・，０）である
次に、行列Ｙｐ（ｐ＝１，２，・・・ｎ）において、第１列から第ｍ列までの各要素を合計し、その合計値が所定の閾値ｔを下回った場合、その行列Ｙｐを廃棄する（すなわち、計算処理対象の処理外とする）。
【０１１４】
なお、閾値ｔは、例えば、次の式（１０）および式（１１）で与えられる。これらの式を用いることにより、計算処理の軽量化と精度の向上を図ることができる。
【数１０】
2019074373.tif 000012
【数１１】
2019074373.tif 000013
【０１１５】
例えば、ρ３＝２，ｅ＝５の場合、ｔ＝２．３７５である。
【０１１６】
一方、第１列から第ｍ列までの各要素の合計値が閾値ｔ以上になった場合は、式（１２）に示すように、その行列Ｙｐに対して行列Ｆの要素ｆｐ（スカラー値）を乗じる。式（１２）の例では、２つの要素ｂ１とｂｍが基本周波数の候補として抽出されている。
【数１２】
2019074373.tif 000014
【０１１７】
行列Ｙ１から行列Ｙｎについて上記の計算処理を行い、０ではない要素が１つだけに絞られた場合、その値が推進用エンジン１１０の基本周波数として特定される。
【０１１８】
上記の倍周波処理により、第１のピーク群に含まれる複数のピークから、基本周波数の整数倍および半整数倍のピークが抽出される。例えば、定格回転数時における基本周波数の２倍の周波数までを解析対象とした場合（すなわち、ｋ＝３，ρ３＝２の場合）、第１のピーク群に含まれる複数のピークのうち、基本周波数の１．０倍、１．５倍または２．０倍のピークに相当するものが抽出される。
【０１１９】
上記のように、倍周波処理部６３は、第１のピーク群に含まれる各ピークの周波数の逆数を要素とする第１の行列ＡＴと、第２のピーク群に含まれる各ピークの周波数を要素とする第２の行列Ｂとの積を計算し、この計算で得られた行列Ｘの各要素ｂｍ／ｆｎが、倍音バンドパスフィルタごとに設定された所定の数値範囲（通過帯）内にあるか否かを判定することにより、１行ｍ列の行列Ｙｐ（ｐ＝１，２，・・・，ｎ）を作成する。そして、要素の和が閾値ｔ以上となる行列Ｙｐに対してスカラー値ｆｐを乗じる。これにより、推進用エンジン１１０の基本周波数の整数倍および半整数倍のピークを抽出する。倍周波処理により、ただ一つのピークが抽出された場合には、そのピークが推進用エンジン１１０の基本周波数として特定される。
【０１２０】
すなわち、上記の倍周波処理により第１のピーク群に含まれるピークの数が１つに絞れた場合、回転数算出部５９は、第１の実施形態で説明したように式（４）を用いて、当該ピークの周波数に基づいて、推進用エンジン１１０の回転数を算出する。
【０１２１】
次に、変動係数フィルタ処理部６４について説明する。
【０１２２】
変動係数フィルタ処理部６４は、倍周波処理により一つのピークに絞れなかった場合に変動係数フィルタ処理を行って基本周波数を特定する。変動係数フィルタ処理では、記憶部４０に記憶された所定個数の音フレームスペクトルを参照し、ピークのパワー（レベル）変動が大きいものを基本周波数の候補から除外する。
【０１２３】
より詳しくは、変動係数フィルタ処理部６４は、倍周波処理部６３により複数のピークが抽出された場合、各ピークの周波数ごとに、所定個数（本実施形態では５個）の音フレームスペクトルのピークパワーの変動を示す変動係数（後述のＣＶｆｐ）を算出する。そして、各ピークの周波数に対して算出された複数の変動係数に基づいて、推進用エンジン１１０の基本周波数を決定する。
【０１２４】
変動係数フィルタ処理について、以下に詳しく説明する。
【０１２５】
変動係数フィルタ処理部６４は、倍周波処理部６３により作成された行列Ｙｐに残った０以外の要素（基本周波数候補の周波数）を、音フレームスペクトルに含まれるピーク周波数の参照値とする。そして、所定個数の音フレームスペクトルの各々から、参照値に合致する周波数のパワーを抽出する。図１７は、５個の音フレームスペクトルについて、参照値（周波数ｆｐ）に合致する周波数のパワー値Ｐｆｐｊ（ｊ＝１，２，３，４，５）を示している。なお、ここで使用される音フレームスペクトルは、例えば、フーリエ変換部５４またはスペクトル除去部５５により記憶部４０に記憶されたものである。
【０１２６】
変動係数フィルタ処理部６４は、前述の参照値と、音フレームスペクトルから抽出したパワー値を用いて、変動係数ＣＶｆｐを算出する。この変動係数ＣＶｆｐは、周波数ｆｐにおけるパワーの変動を表す。
【０１２７】
まず、変動係数フィルタ処理部６４は、式（１３）を用いて、周波数ｆｐのパワーの平均値を算出する。
【数１３】
2019074373.tif 000015
【０１２８】
ここで、Ｊ：音フレームスペクトルの所定個数、Ｐｆｐj：ｊ個目（ｊ＝１，２，・・・，Ｊ）の周波数ｆｐにおけるパワーである。なお、本実施形態ではＪ＝５である。
【０１２９】
次に、変動係数フィルタ処理部６４は、周波数ｆｐにおけるパワーの変動を表す変動係数ＣＶｆｐを式（１４）により算出する。
【数１４】
2019074373.tif 000016
【０１３０】
そして、変動係数フィルタ処理部６４は、最終的な評価尺度ＣＶｐを式（１５）により算出する。
【数１５】
2019074373.tif 000017
【０１３１】
ここで、ＣＶρｆｐは、基本周波数候補ｆｐのρ倍の周波数の変動係数を表している。例えば、ｆｐより１／２オクターブ高い周波数（すなわちｆｐの１．５倍の周波数）の変動係数をＣＶ１．５ｆｐと表し、ｆｐより１オクターブ高い周波数（すなわちｆｐの２．０倍の周波数）の変動係数をＣＶ２．０ｆｐと表す。関数ｍｉｎは引数のうち最も小さい値を返す関数である。
【０１３２】
変動係数フィルタ処理部６４は、評価尺度ＣＶｐが最小である基本周波数候補ｆｐを推進用エンジン１１０の基本周波数として決定する。
【０１３３】
上記のようにして変動係数フィルタ処理により基本周波数が決定されると、回転数算出部５９は、第１の実施形態で説明した式（４）を用いて、変動係数フィルタ処理部６４により決定されたピークの周波数（基本周波数）に基づいて、推進用エンジン１１０の回転数を算出する。
【０１３４】
なお、基本周波数候補の周波数ｆｐが発電用エンジン１２０の基本周波数に近い場合は、うなり現象が生じることにより、上記の変動係数フィルタ処理に悪影響を及ぼすおそれがある。すなわち、発電用エンジン１２０の基本周波数の周辺の周波数領域において、抽出されるパワー値が大きく変動し、その結果、変動係数の値が大きくなり、推進用エンジン１１０の基本周波数を正確に決定することが困難になる。
【０１３５】
そこで、参照値に合致する周波数のパワーのうち、当該周波数のパワー平均値からの乖離幅が大きいものは、変動係数ＣＶｆｐの計算対象から除外し、その後に変動係数ＣＶｆｐを計算することが好ましい。例えば、変動係数ＣＶｆｐを計算する前に、抽出されたパワー値のうち最大のものと最小のものを計算対象から除外してもよい。この場合、式（１４）中のＪは、２個のパワー値が除外されるため、Ｊ−２となる。図１８（ａ）は音フレームスペクトルから抽出された５個のパワー値を示し、図１８（ｂ）は最大のパワー値（ｊ＝２）と最小のパワー値（ｊ＝３）を除外した３個のパワー値を示している。この例では、ｊ＝１，４，５のパワー値を用いて変動係数を算出する。
【０１３６】
上記のように、変動係数フィルタ処理部６４は、変動係数ＣＶｆｐを算出する前に、所定個数の音フレームスペクトルのピークパワーの平均値を求め、この平均値からの乖離幅に基づいて所定個数のピークパワーのうち一部を変動係数ＣＶｆｐの計算対象から除去する。平均値からの乖離幅が大きいパワー値（最大値、最小値など）を除外してから変動係数ＣＶｆｐを計算することで、推進用エンジン１１０と発電用エンジン１２０の騒音間でうなりが生じている場合であっても、発電用エンジン１２０の騒音の影響を抑制し、推進用エンジン１１０の基本周波数を精度良く決定することができる。
【０１３７】
＜船舶エンジン回転数推定方法＞
第２の実施形態に係る船舶エンジン回転数推定装置１の処理動作（絞り込み処理）を、図１９のフローチャートに沿って説明する。
【０１３８】
まず、移動平均処理部６１は、平均音フレームスペクトルの移動平均スペクトルを求め、平均音フレームスペクトルから移動平均スペクトルを差し引くことにより音フレーム差分スペクトルを生成する（ステップＳ２１）。
【０１３９】
次に、ピーク抽出部６２は、ステップＳ２１で生成された音フレーム差分スペクトルから、複数のピークを第２のピーク群として抽出する（ステップＳ２２）。
【０１４０】
次に、倍周波処理部６３は、ステップＳ１６で抽出された第１のピーク群、およびステップＳ２２で抽出された第２のピーク群に基づいて、第１のピーク群から、推進用エンジン１１０の基本周波数の整数倍および半整数倍のピークを抽出する（ステップＳ２３）。
【０１４１】
次に、次に、制御部５０Ａは、ステップＳ２３で抽出されたピークの数が１つであるか否かを判定する（ステップＳ２４）。そして、ピーク数が１つである場合（Ｓ２４：Ｙｅｓ）、ステップＳ１８に戻り、回転数算出部５９は、当該ピーク（特定されたピーク）の周波数に基づいて、推進用エンジン１１０の回転数を算出する。
【０１４２】
一方、ピーク数が複数である場合（Ｓ２４：Ｎｏ）、変動係数フィルタ処理部６４が変動係数フィルタ処理を行う（ステップＳ２５）。変動係数フィルタ処理により、基本周波数が特定される。ステップＳ２５の後、ステップＳ１８に戻り、変動係数フィルタ処理により特定された基本周波数に基づいて推進用エンジン１１０の回転数が算出される。
【０１４３】
以上説明したように、第２の実施形態では、倍周波処理や変動係数フィルタ処理を行うことにより、第１の実施形態で説明した通過スペクトルに含まれる複数の周波数成分から基本周波数を特定する。倍周波処理では、推進用エンジンのエンジン音のパワースペクトルが基本周波数の整数倍および半整数倍の周波数成分を有するという知見を利用して基本周波数の候補を絞り込む。変動係数フィルタ処理では、基本周波数の音は定常的に発生しているのに対し、それ以外の音（波、風、船内設備の発生音など）は発生したり止んだりするという特性を利用して基本周波数の候補を絞り込む。また、発電用エンジン１２０の動作周波数が推進用エンジン１１０のそれに近く、うなりが発生している状況であっても、うなりの周波数成分はレベル変動が比較的大きいため、変動係数フィルタ処理によって除去することが可能である。
【０１４４】
よって、第２の実施形態によれば、第１のピーク群に複数のピークが含まれる場合であっても、基本周波数のピークを特定し、推進用エンジン１１０の回転数を高精度に推定することができる。
【０１４５】
以上説明したように、本発明によれば、船内騒音から推進用エンジンの回転数を精度良く推定することができる。これにより、例えば、船舶の速度と推定された回転数とに基づいて推進用エンジンの異常を検知することが可能になる。
【０１４６】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。
【０１４７】
上述した実施形態で説明した船舶エンジン回転数推定装置１の制御部５０，５０Ａの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、制御部５０，５０Ａの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１４８】
また、制御部５０，５０Ａの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【０１４９】
また、互いに通信接続された複数の情報処理装置によって、船舶エンジン回転数推定装置１を構成してもよい。例えば、船舶エンジン回転数推定装置１と通信接続された情報処理装置が、船舶エンジン回転数推定装置１のデータ処理機能の少なくとも一部を有するようにしてもよい。
【符号の説明】
【０１５０】
１  船舶エンジン回転数推定装置
１０  音入力部
２０  情報入力部
３０  情報出力部
４０  記憶部
５０  制御部
５１  周波数上限設定部
５２  音量フィルタ作成部
５３  データ取得部
５４  フーリエ変換部
５５  スペクトル除去部
５６  平均化処理部
５７  音量フィルタ処理部
５８  ピーク抽出部
５９  回転数算出部
６１  移動平均処理部
６２  ピーク抽出部
６３  倍周波処理部
６４  変動係数フィルタ処理部
１００  船舶
１１０  推進用エンジン
１２０  発電用エンジン
１３０  発電機
１４０  プロペラ
Ｆｌｉｍ  カットオフ周波数
ＬＬ，ＵＬ  リミッタ線
ＳＬ  実測音量線
ＳＦ１〜ＳＦ７  音フレームデータ
【図１】
2019074373.tif 000018
【図２】
2019074373.tif 000019
【図３】
2019074373.tif 000020
【図４Ａ】
2019074373.tif 000021
【図４Ｂ】
2019074373.tif 000022
【図４Ｃ】
2019074373.tif 000023
【図５】
2019074373.tif 000024
【図６】
2019074373.tif 000025
【図７】
2019074373.tif 000026
【図８】
2019074373.tif 000027
【図９】
2019074373.tif 000028
【図１０】
2019074373.tif 000029
【図１１】
2019074373.tif 000030
【図１２】
2019074373.tif 000031
【図１３】
2019074373.tif 000032
【図１４】
2019074373.tif 000033
【図１５】
2019074373.tif 000034
【図１６】
2019074373.tif 000035
【図１７】
2019074373.tif 000036
【図１８】
2019074373.tif 000037
【図１９】
2019074373.tif 000038
【図２０】
2019074373.tif 000039