emd
経験的モド分解
説明
emd (___)
では,同じ图内で元の信号,IMF,残差信号をサブプロットとしてプロットします。
例
経験的モド分解の実行と信号のヒルベルトスペクトルの可視化
周波数にはっきりした変化が含まれる正弦波で構成される非定常連続信号を読み込み,可視化します。ジャックハンマの振動と花火の音は,非定常連続信号の例です。信号はfs
のレトでサンプリングされています。
负载(“sinusoidalSignalExampleData.mat”,“X”,“fs”t =(0:长度(X)-1)/fs;情节(t, X)包含(“时间(s)”)
混合信号には異なる振幅と周波数値をも正弦波が含まれます。
ヒルベルトスペクトルプロットを作成するには,信号の固有モド関数(imf)が必要です。経験的モド分解を実行して,imfと信号の残差を計算します。信号が滑らかではないため,”pchip
を内挿法として指定します。
[国际货币基金组织、残余信息]= emd (X,“插值”,“pchip”);
コマンドウィンドウ内に生成されたテーブルは,生成された各IMFのふるい分け反復の数,相対許容誤差,およびふるい分け停止基準を示します。この情報は信息
にも含まれます。名前と値のペア“显示”,0
を追加してテブルを非表示にできます。
経験的モド分解を使用して取得した国际货币基金组织
成分を使用してヒルベルトスペクトルプロットを作成します。
遗传性出血性毛细血管扩张症(imf, fs)
周波数対時間のプロットは,IMFの各点における瞬間エネルギーを示す垂直方向のカラーバーがあるスパースプロットです。このプロットは,元の混合信号から分解された各成分の瞬時周波数スペクトルを表します。プロットには1秒での周波数に明瞭な変化がある3のimfが表示されます。
正弦波の固有モド関数のゼロクロッシングと極値
この三角恒等式は,同じ物理量信号の2の異なるビュを示します。
.
2 ecommの正弦波年代
およびz
を生成します。年代
は3の正弦波の和で,z
は変調された振幅を持単一の正弦波です。これらの差の無限大ノルムを計算して,2 .の信号が等しいことを確認します。
t = 0:1e-3:10;ω= 2 *π* 100;₂= 2 *π* 20;s = 0.25 * cos ((omega1-omega2) * t) + 2.5 * cos(ω* t) + 0.25 * cos((ω+₂)* t);z = (2 + cos (omega2/2 * t) ^ 2)。* cos(ω* t);规范(s-z正)
ans = 3.2729 e-13
正弦波をプロットし,2秒目から始まる1秒区間を選択します。
Plot (t,[s' z']) xlim([2 3]) xlabel(“时间(s)”) ylabel (“信号”)
信号のスペクトログラムを取得します。スペクトログラムは,3の異なる正弦波成分を示しています。フリエ解析では,信号を正弦波の重ね合わせと見なします。
pspectrum(年代,1000,的谱图,“TimeResolution”4)
emd
を使用して,信号の固有モド関数(imf)と追加の診断情報を計算します。既定では,この関数は各IMFのふるい分け反復の数,相対許容誤差,およびふるい分け停止基準を示すテーブルを出力します。経験的モド分解では,信号をz
と見なします。
(国际货币基金组织(imf), ~,信息)= emd (s);
ゼロクロッシングと局所的極値の数は,最大で1だけ異なります。これは,信号がimfであるために必要な条件を満たしています。
信息。NumZerocrossing - info.NumExtrema
ans = 1
Imfをプロットし,2秒目から始まる0.5秒区間を選択します。emd
は信号を振幅変調された信号として表示するため,imfはam信号です。
Plot (t,imf) xlim([2 2.5]) xlabel(“时间(s)”) ylabel (国际货币基金组织的)
振動信号の固有モド関数の計算
破損したベアリングの振動信号をシミュレトします。経験的モド分解を実行して、信号の IMF を可視化し、欠陥を調査します。
ピッチの直径が12 cmのベアリングは8。各回転要素の直径は2厘米です。内輪が1秒あたり25回駆動される間,外輪は静止状態を保ます。加速度計はベアリングの振動を10千赫でサンプリングします。
fs = 10000;f0 = 25;n = 8;d = 0.02;p = 0.12;
正常なベアリングの振動信号には,駆動点周波数の次数が複数含まれます。
t = 0:1 / fs: 10 - 1 / f;yHealthy = [1 0.5 0.2 0.1 0.05] * sin(2 *π* f0 *(1 2 3 4 5]。* t) / 5;
共振は,測定プロセス中にベアリングの振動で励起されます。
yHealthy = (1 + 1. / (1 + linspace(-10、10、长度(yHealthy)) ^ 4)) * yHealthy;
共振によりベアリングの外輪に欠陥が生じることで,摩耗が進行します。欠陥があると,ベアリングの外輪転動体通過周波数(BPFO)で繰り返される一連の影響を引き起こします。
ここで, は駆動レト, は回転要素の数, は回転要素の直径, はベアリングのピッチの直径, はベアリングの接触角です。接触角は15°と仮定してbpfoを計算します。
ca = 15;bpfo = n * f0/2 * (1 - d / p * cosd (ca));
関数pulstran
を使用して,影響を5ミリ秒の正弦波の周期列としてモデル化します。3千赫の各正弦波に,フラットトップウィンドウによってウィンドウが適用されます。べき乗則を使用して,ベアリング振動信号に進行する摩耗を導入します。
fImpact = 3000;tImpact = 0:1 / fs: 5 e-3-1 / fs;wImpact = flattopwin(长度(tImpact)) / 10;xImpact =罪(2 *π* fImpact * tImpact)。* wImpact;tx = 0:1 / bpfo: t(结束);tx = [tx;1.3。^ tx-2];nWear = 49000;nSamples = 100000;yImpact = pulstran (t, tx”、xImpact fs) / 5; yImpact = [zeros(1,nWear) yImpact(1,(nWear+1):nSamples)];
正常な信号に影響を追加してBPFO振動信号を生成します。信号をプロットし,5.0秒目から始まる0.3秒区間を選択します。
yBPFO = yImpact + yHealthy;xLimLeft = 5.0;xLimRight = 5.3;yMin = -0.6;yMax = 0.6;yBPFO情节(t)在[limLeft,limRight] = meshgrid([xLimLeft xLimRight],[yMin yMax]);情节(limLeft limRight,“——”)举行从
選択した区間にズムンして,影響の効果を可視化します。
xlim ([xLimLeft xLimRight])
ホワ邮箱トガウスノ邮箱ズを信号に付加します。 のノ邮箱ズ分散を指定します。
rn = 150;yGood = yHealthy + randn(size(yHealthy))/rn;yBad = yBPFO + randn(size(yHealthy))/rn;plot(t,yGood,t,yBad) xlim([xLimLeft xLimRight])传说(“健康”,“受损”)
emd
を使用して,正常なベアリング信号の経験的モド分解を実行します。最初の5の固有モド関数(imf)を計算します。名前と値のペア“显示”
を使用して,各IMFのふるい分け反復の数,相対許容誤差,およびふるい分け停止基準を示すテーブルを表示します。
imfGood = emd (yGood“MaxNumIMF”5,“显示”1);
当前IMF | #Sift Iter |相对Tol | Stop Criterion Hit 1 | 3 | 0.017132 | SiftMaxRelativeTolerance 2 | 3 | 0.12694 | SiftMaxRelativeTolerance 3 | 6 | 0.14582 | SiftMaxRelativeTolerance 4 | 1 | 0.011082 | SiftMaxRelativeTolerance 5 | 2 | 0.03463 | SiftMaxRelativeTolerance分解停止,因为提取了最大数量的本应模函数。
emd
を出力引数なしで使用し,最初の3のモドと残差を可視化します。
emd (yGood“MaxNumIMF”5)
欠陥のあるベアリング信号のimfを計算および可視化します。最初の経験的モドでは,高周波数に影響が見られます。この高周波数モドでは,摩耗が進行するにが増加します。3番目のモドは,振動信号の共振を示します。
imfBad = emd (yBad“MaxNumIMF”5,“显示”1);
当前IMF | #Sift Iter |相对Tol | Stop Criterion Hit 1 | 2 | 0.041274 | SiftMaxRelativeTolerance 2 | 3 | 0.16695 | SiftMaxRelativeTolerance 3 | 3 | 0.18428 | SiftMaxRelativeTolerance 4 | 1 | 0.037177 | SiftMaxRelativeTolerance 5 | 2 | 0.095861 | SiftMaxRelativeTolerance分解停止,因为提取了最大数量的内在模函数。
emd (yBad“MaxNumIMF”5)
解析の次の手順は,抽出されたimfのヒルベルトスペクトルを計算することです。詳細にいては,振動信号のヒルベルトスペクトルの計算の例を参照してください。
信号の残差および固有モド関数の可視化
周波数にはっきりした変化が含まれる正弦波で構成される非定常連続信号を読み込み,可視化します。ジャックハンマの振動と花火の音は,非定常連続信号の例です。信号はfs
のレトでサンプリングされています。
负载(“sinusoidalSignalExampleData.mat”,“X”,“fs”t =(0:长度(X)-1)/fs;情节(t, X)包含(“时间(s)”)
混合信号には異なる振幅と周波数値をも正弦波が含まれます。
経験的モド分解を実行して,固有モド関数と信号の残差をプロットします。信号が滑らかではないため,”pchip
を内挿法として指定します。
emd (X,“插值”,“pchip”,“显示”, 1)
当前的国际货币基金组织(IMF) | #筛Iter | |停止准则的相对托尔触及0.026352 1 | 2 | | SiftMaxRelativeTolerance 2 | 2 | 0.0039573 | SiftMaxRelativeTolerance 3 | 1 | 0.024838 | SiftMaxRelativeTolerance 4 | 2 | 0.05929 | SiftMaxRelativeTolerance 5 | 2 | 0.11317 | SiftMaxRelativeTolerance 6 | 2 | 0.12599 | SiftMaxRelativeTolerance 7 | 2 | 0.13802 | SiftMaxRelativeTolerance 8 | 3 | 0.15937 | SiftMaxRelativeTolerance 9 | 2 | 0.15923 | SiftMaxRelativeTolerance分解停止因为的数量剩余信号中的极值值小于'MaxNumExtrema'值。
emd
は,元の信号,最初の3のimf,残差信号を含む対話型プロットを生成します。コマンドウィンドウ内に生成されたテーブルは,生成された各IMFのふるい分け反復の数,相対許容誤差,およびふるい分け停止基準を示します。名前と値のペア“显示”
を削除するか,これを0
と指定することによって,テブルを非表示にできます。
プロット内の空白を右クリックし,[imfセレクタ]ウィンドウを開きます。[imfセレクタ]を使用して,生成されたimf,元の信号,および残差を選択的に表示します。
リストから表示するimfを選択します。プロットに元の信号と残差を表示するかどうかを選択します。
これで選択したimfがプロットに表示されます。
プロットを使用して,残差と共に元の信号から分解された個々の成分を可視化します。残差はimfの総数に対して計算され,[imfセレクタ]ウィンドウで選択されたimfによって変化はしないことに注意してください。
入力引数
x
—時間領域信号
ベクトル|时间表
時間領域信号。実数値のベクトル,または単一列の単一変数时间表として指定します。x
が时间表の場合,x
は増加する有限の行時間を含んでいなければなりません。
名前と値の引数
オプションの引数のペアをName1 = Value1,…,以=家
として指定します。ここで,的名字
は引数名で,价值
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021aより前は,名前と値をそれぞれコンマを使って区切り,的名字
を引用符で囲みました。
例:“MaxNumIMF”,5
SiftRelativeTolerance
—コシ型収束基準
0.2
(既定値) |正のスカラ
コシ型収束基準。“SiftRelativeTolerance”
と正のスカラで構成されるコンマ区切りのペアとして指定します。SiftRelativeTolerance
はふるい分け停止基準の1です。まり,現在の相対許容誤差がSiftRelativeTolerance
未満の場合にふるい分けが停止します。詳細にいては,ふるい分けの相対許容誤差を参照してください。
SiftMaxIterations
—ふるい分け反復の最大数
One hundred.
(既定値) |正のスカラ整数
ふるい分け反復の最大数。“SiftMaxIterations”
と正のスカラ整数で構成されるコンマ区切りのペアとして指定します。SiftMaxIterations
はふるい分け停止基準の1です。まり,現在の反復数がSiftMaxIterations
より大きい場合にふるい分けが停止します。
SiftMaxIterations
は0または正の整数のみを使用して指定できます。
MaxNumIMF
—抽出されたimfの最大数
10
(既定値) |正のスカラ整数
抽出されたimfの最大数。“MaxNumIMF”
と正のスカラ整数で構成されるコンマ区切りのペアとして指定します。MaxNumIMF
は分解停止基準の1です。.まり,生成されたimfの数がMaxNumIMF
に等しい場合に分解が停止します。
MaxNumIMF
は0または正の整数のみを使用して指定できます。
MaxNumExtrema
—残差信号の極値の最大数
1
(既定値) |正のスカラ整数
残差信号の極値の最大数。“MaxNumExtrema”
と正のスカラ整数で構成されるコンマ区切りのペアとして指定します。MaxNumExtrema
は分解停止基準の1です。まり,極値の数がMaxNumExtrema
未満の場合に分解が停止します。
MaxNumExtrema
は0または正の整数のみを使用して指定できます。
MaxEnergyRatio
—信号対残差エネルギ比
20.
(既定値) |スカラ
信号対残差エネルギ比。“MaxEnergyRatio”
とスカラで構成されるコンマ区切りのペアとして指定します。MaxEnergyRatio
はふるい分けの開始における信号のエネルギと平均包絡線エネルギとの比です。MaxEnergyRatio
は分解停止基準の1です。つまり,現在のエネルギー比がMaxEnergyRatio
より大きい場合に分解が停止します。詳細にいては,エネルギ比を参照してください。
插值
—包絡線構築のための内挿法
样条的
(既定値) |“pchip”
包絡線構築のための内挿法。“插值”
と样条的
または“pchip”
のいずれかで構成されるコンマ区切りのペアとして指定します。
以下のように插值
を指定します。
x
が滑らかな信号の場合は,样条的
x
が滑らかでない信号の場合は,“pchip”
样条的
内挿法は3次スプラe @ e @ンを使用します。一方で“pchip”
は区分的3次エルミト内挿多項式を使用します。
显示
—コマンドウィンドウの情報表示の切り替え
0(既定値) |1
コマンドウィンドウの情報表示の切り替え。“显示”
と,0または1のいずれかで構成されるコンマ区切りのペアとして指定します。コマンドウィンドウ内に生成されたテーブルは,生成された各IMFのふるい分け反復の数,相対許容誤差,およびふるい分け停止基準を示します。テブルを表示するには显示
に1を,非表示にするには0を指定します。
出力引数
国际货币基金组织
—固有モド関数
行列|时间表
固有モド関数(imf)。行列または时间表として返されます。各imfは振幅変調および周波数変調された信号で,包絡線は正でゆっくりと変化します。信号のスペクトル解析を実行するには,imfにヒルベルト·ファン変換を適用します。遗传性出血性毛细血管扩张症
および固有モド関数を参照してください。
国际货币基金组织
は以下として返されます。
x
がベクトルの場合,各列が国际货币基金组织
の行列x
が単一デタ列の时间表の場合,时间表
剩余
-信号の残差
列ベクトル|単一デタ列时间表
信号の残差。列ベクトルまたは単一デタ列の时间表として返されます。剩余
はemd
によって分解されていない元の信号x
の部分を表します。
剩余
は以下として返されます。
x
がベクトルの場合,列ベクトルx
が単一デタ列の时间表の場合,単一デタ列の时间表
信息
-診断の詳細
構造体
診断の詳細。以下のフィルドを含む構造体として返します。
NumIMF
—抽出されたimfの数NumIMF
は1 ~ nのベクトルです。ここでnはimfの数です。Imfが抽出されない場合,NumIMF
は空です。NumExtrema
—各imfにおける極値の数NumExtrema
は,長さがimfの数に等しいベクトルです。NumExtrema
のk番目の要素は,k番目のIMFにある極値の数です。Imfが抽出されない場合,NumExtrema
は空です。NumZerocrossing
—各imfにおけるゼロクロッシングの数各imfにおけるゼロクロッシングの数。
NumZerocrossing
は,長さがimfの数に等しいベクトルです。NumZerocrossing
のk番目の要素は,k番目のIMFのゼロクロッシングの数です。Imfが抽出されない場合,NumZerocrossing
は空です。NumSifting
—各imfの抽出に使用されたふるい分け反復の数NumSifting
は,長さがimfの数に等しいベクトルです。NumSifting
のk番目の要素は,k番目のIMFの抽出で使用されたふるい分け反復の数です。Imfが抽出されない場合,NumSifting
は空です。MeanEnvelopeEnergy
—各imfで取得された上側包絡線と下側包絡線の平均のエネルギ问题
を上側包絡線,勒
を下側包絡線とすると,MeanEnvelopeEnergy
は意思是(((LE + UL) / 2) ^ 2)。
です。MeanEnvelopeEnergy
は,長さがimfの数に等しいベクトルです。MeanEnvelopeEnergy
のk番目の要素は,k番目のIMFの平均包絡線エネルギです。Imfが抽出されない場合,MeanEnvelopeEnergy
は空です。RelativeTolerance
—各imfに対する残差の最終相対許容誤差相対許容誤差は,前のふるい分けステップからの残差と現在のふるい分けステップからの残差の差分の2ノルムの二乗と,我番目のふるい分けステップからの残差の2ノルムの二乗の比として定義されます。
RelativeTolerance
がSiftRelativeTolerance
未満の場合,ふるい分けプロセスは停止します。詳細にいては,ふるい分けの相対許容誤差を参照してください。RelativeTolerance
は,長さがimfの数に等しいベクトルです。RelativeTolerance
のk番目の要素は,k番目のIMFで取得された最終相対許容誤差です。Imfが抽出されない場合,RelativeTolerance
は空です。
詳細
経験的モド分解
経験的モド分解(emd)アルゴリズムは,反復処理で信号x (t)を固有モド関数(imf)と残差に分解します。このアルゴリズムの中核コンポネントでは,関数x (t)の“ふるい分け”を行って,新しい関数Y (t)を求めます。
まず,x (t)の局所的最小値と局所的最大値を検索します。
次に,局所的極値を使用して,x (t)の下側包絡線年代−(t)と上側包絡線年代+(t)をそれぞれ構築します。包絡線の平均m (t)を形成します。
x (t)から平均を減算して,残差Y(t) = x(t)−m(t)を求めます。
分解の概要は次のとおりです。
まず,r0(t) = x (t)とします。ここで,x (t)は最初の信号です。我= 0とします。
ふるい分けの前に,r我(t)をチェックします。
r我(t)の局所的極値の総数(tn)を求めます。
r我(t)のエネルギ比(er)を求めます(エネルギ比を参照)。
(ER >
MaxEnergyRatio
)または(tn <MaxNumExtrema
)または(imfの数>MaxNumIMF
)の場合,分解を停止します。r我,上一页= r (t)我(t)とします。
r我,上一页(t)のふるい分けを行って,r我,坏蛋(t)を求めます。
r我,坏蛋(t)をチェックします。
r我,坏蛋(t)の相対許容誤差(rt)を求めます(ふるい分けの相対許容誤差を参照)。
現在のふるい分け反復回数(在)を取得します。
(RT <
SiftRelativeTolerance
)または(在>中SiftMaxIterations
)の場合,ふるい分けを停止します。Imfの検索は完了し,国际货币基金组织我= r (t)我,坏蛋(t)となります。そうでない場合,r我,上一页= r (t)我,坏蛋(t)とし,手順5に移動します。r我+ 1= r (t)我−r (t)我,坏蛋(t)とします。
I = I + 1とします。手順2に戻ります。
固有モド関数
Emdアルゴリズムは,反復ふるい分け処理により,信号x (t)を国际货币基金组织国际货币基金组织我(t)と残差rN(t)に分解します。
黄等。[1]により初めて導入されたとき,imfは次の2の特性をも関数であると定義されました。
局所的極値の数(局所的最小値と局所的最大値の総数)とゼロクロッシングの数との違いが最大で
局所的極値から構成された上側包絡線と下側包絡線の平均値が0。
ただし,[4]に記載されているように,厳密なIMFが得られるまでふるい分けると,物理的な意味のないIMFになる場合があります。特に,ゼロクロッシングの数と局所的極値の数の違いが最大で1になるまでふるい分けると,純音のようなIMF(つまり,フーリエ基底による投影で得られるものに非常によく似た関数)になる場合があります。これはまさにemdが回避しようと努めている状態です。Emdでは,物理的な意味を求めてam-fm変調されたコンポ,ネントを選択しています。
参考文献[4]では,物理的に有意な結果を得るためのオプションが推奨されています。関数emd
では,コシ型停止基準(ふるい分けの相対許容誤差)を使用することで,元のimf定義を緩和しています。関数emd
は,反復することで自然なam-fmモ,ドを抽出します。生成されたimfは,局所的極値-ゼロクロッシングの基準を満たさない場合があります。正弦波の固有モド関数のゼロクロッシングと極値を参照してください。
ふるい分けの相対許容誤差
“ふるい分けの相対許容誤差”は,[4]で推奨されているコシ型停止基準です。現在の相対許容誤差がSiftRelativeTolerance
未満の場合にふるい分けが停止します。現在の相対許容誤差は,以下のように定義されます。
コーシー基準がゼロクロッシングと局所的極値の数を直接カウントしないため,分解によって返されたIMFは固有モード関数の厳しい定義を満たさない可能性があります。この場合,既定値からSiftRelativeTolerance
の値を減らすことを試すことができます。停止条件の詳細は,[4]を参照してください。参照では、経験的モード分解で厳密に定義された IMF を求める利点と欠点についても説明します。
エネルギ比
エネルギ比は,ふるい分けの開始における信号のエネルギの比です[2]。現在のエネルギ比がMaxEnergyRatio
より大きい場合に分解が停止します。我番目の IMF に対して、エネルギー比は以下のように定義されます。
参照
[1]黄、Norden E、沈征、龙瑞文、吴曼丽、施兴宏、郑全安、颜乃钦、董志超、刘亨利。非线性和非平稳时间序列分析的经验模态分解和希尔伯特谱。伦敦皇家学会学报。A辑:数学、物理与工程科学454,no. 1。1971年(1998年3月8日):903-95。https://doi.org/10.1098/rspa.1998.0193。
拉托,r.t.,医学博士奥蒂盖拉,A.G.巴蒂斯塔。《论HHT,它的问题和一些解决办法》万博 尤文图斯机械系统与信号处理22,no。6(2008年8月):1374-94。https://doi.org/10.1016/j.ymssp.2007.11.028。
[3]瑞林,加布里埃尔,帕特里克·弗兰德林和保罗Gonçalves。《经验模态分解及其算法》IEEE-EURASIP非线性信号和图像处理研讨会2003。NSIP-03。第8 - 11级,意大利。。
[4]王刚,陈先尧,乔方丽,吴兆华,黄norden E.。"论本征模态函数"自适应数据分析进展02,no。03(2010年7月):277-93。https://doi.org/10.1142/S1793536910000549。
拡張機能
C/ c++コド生成
MATLAB®Coder™を使用してCおよびc++コドを生成します。
使用上の注意および制限:
コド生成では,时间表はサポトされていません。
“插值”
名前と値のペアを使用して内挿法を指定する場合、コンパ以及ル時の定数でなければなりません。
バジョン履歴
R2018aで導入
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。WebブラウザはMATLABコマンドをサポトしていません。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。