Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

tfmoment

信号の時間-周波数分布の結合モーメント

説明

時間-周波数モーメントは、時間とともに周波数が変化する信号 (つまり非定常信号) を特徴付ける効率的な方法を提供します。そのような信号は、ハードウェアに劣化や故障がある機械から発生することがあります。従来のフーリエ解析で時変の周波数動作を捉えることはできません。短時間フーリエ変換 (STFT) や他の時間-周波数解析手法によって生成された時間-周波数分布では時変動作を捉えることができますが、それらの分布をそのまま特徴として扱うと、計算負荷が高く、無関係の望ましくない特徴で特性が形成される可能性があります。それに対し、時間-周波数分布の結果を低次の時間-周波数モーメントに抽出すると、信号の本質的な特徴をはるかに小さいデータ パッケージで捉える方法が提供されます。それらのモーメントを使用することにより、特徴の抽出や比較の計算負荷が大幅に軽減されます。これは、リアルタイムの動作において重要な利点となります[1][2]

Predictive Maintenance Toolbox™ は、時間-周波数モーメントの 3 つの分岐を実装します。

  • 条件付きスペクトル モーメント — tfsmoment

  • 条件付き時間モーメント — tftmoment

  • 時間-周波数の結合モーメント — tfmoment

momentJ = tfmoment(xt,order) は、timetable xt時間-周波数の結合モーメントを 1 つ以上の成分をもつベクトルとして返します。momentJ の各スカラー要素が order で指定した 1 つの次数の結合モーメントを表します。xt のデータは不等間隔サンプルでかまいません。

momentJ = tfmoment(x,fs,order) は、レート Fs でサンプリングされた時系列ベクトル x の時間-周波数の結合モーメントを返します。モーメントは、各スカラー要素が order で指定した 1 つの次数の結合モーメントを表すベクトルとして返されます。この構文では、x は等間隔サンプルでなければなりません。

momentJ = tfmoment(x,ts,order) は、ts (秒単位) で指定された時点にサンプリングされた x の時間-周波数の結合モーメントを返します。

  • ts がスカラーの duration の場合、tfmoment はそれをすべてのサンプルに等間隔に適用します。

  • ts がベクトルの場合、tfmoment はその各要素を x の対応するサンプルに適用します。この構文は不等間隔サンプリングに使用します。

momentJ = tfmoment(p,fp,tp,order) は、パワー スペクトログラムが p である信号の時間-周波数の結合モーメントを返します。fp には、p に格納されたスペクトル推定に対応する周波数が格納されます。tp には、短時間パワー スペクトル推定の計算に使用されるウィンドウ セグメントの中心に対応する時点のベクトルが格納されます。この構文は次の場合に使用します。

  • 使用するパワー スペクトログラムが既にある。

  • tfmoment で適用される既定の pspectrum のオプションを受け入れるのではなく、pspectrum のオプションをカスタマイズする。最初に目的のオプションを指定して pspectrum を使用してから、その出力 ptfmoment の入力として使用します。この方法でパワー スペクトログラムのプロットも可能です。

momentJ = tfmoment(___,Name,Value) は、名前と値のペアの引数を使用して追加のプロパティを指定します。オプションには、モーメントの集中化、周波数範囲の指定、時間範囲の指定があります。

Name,Value は、前述の構文の任意の入力引数の組み合わせで使用できます。

すべて折りたたむ

複数のモーメントの指定を使用して時系列の時間-周波数の結合モーメントを求めます。指定したパワー スペクトログラムの入力を使用して同じモーメントを計算します。

この例は、データ ソースと履歴のより包括的な取り扱いを示す転動体ベアリングの故障診断から応用したものです。

故障したマシンの振動の測定値を含むデータを読み込みます。x_inner1sr_inner1 にデータ ベクトルとサンプル レートが格納されています。

load tfmoment_data.mat x_inner1 sr_inner1

データを調べます。サンプル レートから時間ベクトルを構成し、データをプロットします。その後、動作がより明確にわかるように 0.1 秒のセクションにズームインします。

t_inner1 = (0:length(x_inner1)-1)/sr_inner1; % Construct time vector of [0 1/sr 2/sr ...] matching dimension of x
figure
plot(t_inner1,x_inner1) 
title ('Inner1 Signal')
hold on
xlim([0 0.1]) % Zoom in to an 0.1 s section
hold off

Figure contains an axes object. The axes object with title Inner1 Signal contains an object of type line.

プロットから、経時的な加速度の測定値に周期的なインパルス性の変動があることがわかります。

時間と周波数の両方が 2 次の結合モーメントを求めます。

order = [2,2];
momentJ = tfmoment(x_inner1,sr_inner1,order)
momentJ = 3.6253e+08

結果のモーメントには、[2,2] の時間-周波数のペアを表す 1 つの要素のみが含まれます。

次に、時間と周波数の 4 次モーメントを含めます。次数はペア内で混在させることもできます。時間が 2 次で周波数が 4 次の結合モーメントを含めます。次数行列は 2 列で、1 列目が時間、2 列目が周波数です。計算する次数のペアが各行に格納されます。

order = [2,2;2,4;4,4];
momentJ = tfmoment(x_inner1,t_inner1,order);
momentJ(1)
ans = 3.6253e+08
momentJ(2)
ans = 7.9495e+16
momentJ(3)
ans = 4.0886e+17

モーメントは既存のスペクトログラムを使用して取得することもできます。同じ信号と既定のオプションを使用して計算されたスペクトログラムのデータを読み込みます。既に計算されている 3 行の order の行列を使用して、これを tfmoment に入力します。

load tfmoment_data.mat p_inner1_def f_p_def t_p_def
momentJ = tfmoment(p_inner1_def,f_p_def,t_p_def,order);
momentJ(1)
ans = 3.6261e+08
momentJ(2)
ans = 7.9513e+16
momentJ(3)
ans = 4.0896e+17

結合モーメントにより、時間と周波数の大量のデータが単一のデータ点の小さいセットに抽出されます。これらは、用途に応じてさまざまな方法で使用できる重要で簡潔な特徴を表します。可能性としては、長期的な劣化を評価するための一定期間にわたる健全な領域の範囲との比較やセグメント化されたデータのモーメントの計算などが考えられます。

入力引数

すべて折りたたむ

tfmoment でモーメントを返す時系列信号。単一の列で単一の変数を格納する timetable として指定します。xt には増加する有限の行時間を含めなければなりません。timetable に時間点の欠落や重複がある場合は、欠損または重複する時間および非等間隔の時間をもつ timetable の整理のヒントを使用して修正できます。xt は不等間隔サンプルでかまいませんが、時間間隔の中央値と時間間隔の平均値は以下に従わなければならないという pspectrum の制約があります。

1100<Median time intervalMean time interval<100.

返すモーメント次数。実数の正の整数の n 行 2 列の行列として指定します。

  • 1 列目で時間の次数を指定します。

  • 2 列目で周波数の次数を指定します。

例: momentJ = tfmoment(x,[2,2]) は、x の時間-周波数分布の 2 次結合モーメント (分散) を指定します。

例: momentJ = tfmoment(x,[2,2;4,4]) は、x の時間-周波数分布の時間と周波数の両方について 2 次と 4 次のモーメント次数を指定します。

任意の次数を任意の数だけ指定できますが、低次のモーメントの方が計算負荷が低く、リアルタイムの用途に適しています。時間と周波数にそれぞれ異なる次数を使用することもできます。最初の 4 つのモーメント次数はデータ セットの統計モーメントに次のように対応します。

  1. 平均

  2. 分散

  3. 歪度 (平均に対する非対称性の度合い)

  4. 尖度 (分布における外れ値の裾の長さ — 正規分布の尖度は 3)

例については、時系列の時間-周波数の結合モーメントの測定を参照してください。

tfmoment でモーメントを返す時系列信号。ベクトルとして指定します。

時系列入力の例については、時系列の時間-周波数の結合モーメントの測定を参照してください。

x が等間隔サンプルの場合の x のサンプル レート。ヘルツ単位の正のスカラーとして指定します。

サンプル時間値。次のいずれかとして指定します。

  • duration スカラー — X の連続するサンプル間の時間間隔。

  • ベクトル、duration 配列、または datetime 配列 — x の各要素に対応する時点または持続時間。

ts は不等間隔でかまいませんが、時間間隔の中央値と時間間隔の平均値は以下に従わなければならないという pspectrum の制約があります。

1100<Median time intervalMean time interval<100.

信号のパワー スペクトログラムまたはスペクトル。行列 (スペクトログラム) または列ベクトル (スペクトル) として指定します。p には、時系列信号についての短期の時間局在型のパワー スペクトログラムの推定が格納されます。p を指定した場合、tfmoment は独自のパワー スペクトログラムを生成する代わりに p を使用します。例については、時系列の時間-周波数の結合モーメントの測定を参照してください。

パワー スペクトログラムまたはスペクトル ptfmoment に明示的に与えられる場合の p の周波数。ヘルツ単位のベクトルとして指定します。fp の長さは p の行数と等しくなければなりません。

パワー スペクトログラムまたはスペクトル ptfmoment に明示的に与えられる場合の p の時間情報。次のいずれかとして指定します。

  • 時間点のベクトル。データ型は数値、duration、または datetime のいずれかです。ベクトル tp の長さは p の列数と等しくなければなりません。

  • p の時間間隔を表す duration スカラー。スカラーの形式の tp は、p がパワー スペクトログラム行列の場合にのみ使用できます。

  • p が列ベクトル (パワー スペクトル) である特殊なケースでは、tp をスペクトルの時点を表す数値、duration、または datetime のスカラーにできます。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペア自体は順不同で構いません。

R2021a 以前は、名前と値をそれぞれコンマで区切り、 Name を引用符で囲みます。

例: 'Centralize',false,'FrequencyLimits',[10 100] は、信号の 10 Hz から 100 Hz までの範囲の部分について時間-周波数の結合モーメントを計算します。

モーメントの集中化のオプション。'Centralize' と logical で構成されるコンマ区切りのペアとして指定します。

  • Centralizetrue の場合、tfmoment は条件付き平均 (最初のモーメント) を計算で減算して集中条件付きモーメントを返します。

  • Centralizefalse の場合、tfmoment はデータのオフセットを維持して非集中モーメントを返します。

例: momentJ = tfmoment(x,[2,2],'Centralize',false).

使用する周波数の範囲。'FrequencyLimits' と下限 f1 および上限 f2 を含む 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。単位はヘルツです。この指定により、スペクトル範囲のいずれかの端にあるデータの帯域を除外できます。

時間の範囲。'TimeLimits' と下限 t1 および上限 t2 を含む 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。単位は ts と同じで、データ型は次のとおりです。

  • fs またはスカラーの ts が指定されている場合や ts が single、double、または duration ベクトルの場合は数値または duration

  • tsdatetime ベクトルとして指定されている場合は数値、duration、または datetime

この指定により、より長いデータ セットからデータの時間セクションを抽出できます。

出力引数

すべて折りたたむ

条件付き結合モーメント。ベクトルとして返されます。各スカラー要素が指定した 1 つの時間-周波数の次数のペアの結合モーメントを表します。

momentJ は、入力データが timetable xt、時系列ベクトル x、スペクトログラム データ p のいずれであるかに関係なく常にベクトルです。

詳細

すべて折りたたむ

時間-周波数の結合モーメント

非定常信号の時間-周波数の結合モーメントは、信号スペクトルの時間による変化を特徴付ける一連の時変パラメーターで構成されます。これらは、条件付き時間モーメントと時間-周波数の結合モーメントに関連しています。時間-周波数の結合モーメントは、周波数、与えられた時間、および周辺分布の積分関数です。条件付き時間モーメントは、時間、与えられた周波数、および周辺分布の積分関数です。時間-周波数の結合モーメントの計算は、時間と周波数の両方が変化する 2 重積分です[1][2]

各モーメントが特定の次数に関連付けられており、最初の 4 つの次数は 1) 平均、2) 分散、3) 歪度、4) 尖度の統計プロパティです。

tfmoment は、信号 x の時間-周波数分布の order で指定された次数の時間-周波数の結合モーメントを計算します。この関数で実行される手順は次のとおりです。

  1. 関数 pspectrum を使用して入力のスペクトログラム パワー スペクトル P(t,f) を計算し、それを時間-周波数分布として使用します。使用される構文で既存の P(t,f) が与えられる場合、tfmoment は代わりにそれを使用します。

  2. 信号の時間-周波数の結合モーメント tnωm を推定します。集中化しない場合は次を使用します。

    tnωm=tnωmP(t,ω)dtdω,

    ここで、m は次数、P(t) は周辺分布です。

    集中化された時間-周波数の結合モーメント μt,ωn,m(t) の場合は、関数は次を使用します。

    μt,ωn,m(t)=1P(ω)(tt1ω)n(ωω1t)mP(t,ω)dtdω,

    ここで、t1ωω1t は最初の時間とスペクトルの時間-周波数モーメントです。

参照

[1] Loughlin, P. J. "What Are the Time-Frequency Moments of a Signal?" Advanced Signal Processing Algorithms, Architectures, and Implementations XI, SPIE Proceedings. Vol. 4474, November 2001.

[2] Loughlin, P., F. Cakrak, and L. Cohen. "Conditional Moment Analysis of Transients with Application to Helicopter Fault Data." Mechanical Systems and Signal Processing. Vol 14, Issue 4, 2000, pp. 511–522.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018a で導入