最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英語でご覧になれます。

包絡線抽出

この例では,信号の包絡線の抽出方法を説明します。

両側波帯振幅変調信号を作成します。搬送周波数は1 kHzです。変調周波数は50 Hzです。変調度は100%です。サンプルレートは10 kHzです。

t = 0:1e-4:0.1;x = (1 + cos(2 *π* 50 * t))。* cos(2 *π* 1000 * t);情节(t, x) xlim (0.04 [0])

関数希尔伯特を使用して包絡線を抽出します。包絡線は,希尔伯特によって計算された解析信号の振幅です。元の値とともに包絡線をプロットします。後で利用するために细胞配列に関数情节の名前と値のペアの引数を保存します。解析信号の振幅はゆるやかに変化する信号の特徴をとらえていますが,位相は高い周波数の情報を含んでいます。

y =希尔伯特(x);env = abs (y);plot_param = {“颜色”, [0.6 0.1 0.2],“线宽”2};情节(t, x)情节(t [1; 1] * env plot_param {:})xlim(0.04[0])标题(“希尔伯特包络”

関数信封を使用して,信号の包絡線を直接生成したり,計算方法を変更することもできます。たとえば,解析包絡線の検出に使用されるヒルベルトフィルターの長さを調整できます。使用するフィルター長が短すぎると,歪んだ包絡線になります。

fl1 = 12;[up1, lo1] =信封(x, fl1“分析”);fl2 = 30;[呼吁,lo2] =信封(x, fl2“分析”);param_small = {“颜色”(0.9 0.4 0.1),“线宽”2};param_large = {“颜色”(0.4 0 0),“线宽”2};情节(t, x)p1 =情节(t up1 param_small {:});情节(t, lo1 param_small {:});p2 =情节(t)呼吁,param_large {:});情节(t, lo2 param_large {:});持有传奇([p1 p2),“fl = 12”“fl = 30”) xlim([0 0.04]) title(“分析信封”

スライディングウィンドウを使用して移動RMS包絡線を生成できます。使用するウィンドウの長さが短すぎると,歪んだ包絡線になります。使用するウィンドウの長さが長すぎると,包絡線が伸びて平らになります。

wl1 = 3;[up1, lo1] =信封(x, wl1“rms”);wl2 = 5;[呼吁,lo2] =信封(x, wl2“rms”);wl3 = 300;[整齐,lo3] =信封(x, wl3“rms”);情节(t, x)p1 =情节(t up1 param_small {:});情节(t, lo1 param_small {:});p2 =情节(t)呼吁,plot_param {:});情节(t, lo2 plot_param {:});p3 =情节(t,整齐,param_large {:});情节(t, lo3 param_large {:})传奇([p1 p2 p3),“王= 3”“王= 5”“王= 300”) xlim([0 0.04]) title(“RMS信封”

調整可能なサンプル数単位で分割された局所的最大値にスプライン内挿を使用して,ピーク包絡線を生成できます。サンプルを広くとると,包絡線が過剰に平滑化されます。

np1 = 5;[up1, lo1] =信封(x, np1“高峰”);np2 = 50;[呼吁,lo2] =信封(x, np2“高峰”);情节(t, x)p1 =情节(t up1 param_small {:});情节(t, lo1 param_small {}): p2 =情节(t,呼吁,param_large {:});情节(t, lo2 param_large {:})传奇([p1 p2),“np = 5”“np = 50”) xlim([0 0.04]) title(“包络峰值”

ピーク離隔距離パラメーターが増加すると,ノイズによるスプリアスピークの影響が減少する場合があります。ランダムノイズを信号に導入します。5サンプル間隔を使用して,ピーク包絡線のノイズの影響を確認します。この例を25サンプル間隔を使用して再実行します。

rng默认的Q = x + randn(size(x))/10;np1 = 5;[up1, lo1] =信封(np1问,“高峰”);np2 = 25;[呼吁,lo2] =信封(q, np2,“高峰”);情节(t, q)p1 =情节(t up1 param_small {:});情节(t, lo1 param_small {}): p2 =情节(t,呼吁,param_large {:});情节(t, lo2 param_large {:})传奇([p1 p2),“np = 5”“np = 25”) xlim([0 0.04]) title(“包络峰值”

参考

|