包絡線抽出
この例では,信号の包絡線の抽出方法を説明します。
両側波帯振幅変調信号を作成します。搬送周波数は1千赫です。変調周波数は50 Hzです。変調度は100%です。サンプルレトは10 kHzです。
T = 0:1e-4:0.1;X = (1+cos(2* *50*t)) *cos(2* *1000*t);Plot (t,x) xlim([0 0.04])
関数希尔伯特
を使用して包絡線を抽出します。包絡線は,希尔伯特
によって計算された解析信号の振幅です。元の値とともに包絡線をプロットします。後で利用するためにcell配列に関数情节
の名前と値のペアの引数を保存します。解析信号の振幅はゆるやかに変化する信号の特徴をとらえていますが,位相は高い周波数の情報を含んでいます。
Y =希尔伯特(x);Env = abs(y);Plot_param = {“颜色”, [0.6 0.1 0.2],“线宽”2};情节(t, x)在情节(t [1; 1] * env plot_param {:})从Xlim ([0 0.04]) title(“希尔伯特包络”)
関数信封
を使用して,信号の包絡線を直接生成したり,計算方法を変更することもできます。たとえば,解析包絡線の検出に使用されるヒルベルトフィルタの長さを調整できます。使用するフィルタ長が短すぎると,歪んだ包絡線になります。
Fl1 = 12;[up1,lo1] =信封(x,fl1,)“分析”);Fl2 = 30;[up2,lo2] =信封(x,fl2,)“分析”);Param_small = {“颜色”,[0.9 0.4 0.1],“线宽”2};Param_large = {“颜色”,[0 0.4 0],“线宽”2};情节(t, x)在P1 = plot(t,up1,param_small{:});情节(t, lo1 param_small {:});P2 = plot(t,up2,param_large{:});情节(t, lo2 param_large {:});持有从传奇([p1 p2),'fl = 12','fl = 30') xlim([0 0.04]) title(“分析信封”)
スラ管理员邮箱ディングウィンドウを使用して移動管理员邮箱包絡線を生成できます。使用するウィンドウの長さが短すぎると,歪んだ包絡線になります。使用するウィンドウの長さが長すぎると,包絡線が伸びて平らになります。
Wl1 = 3;[up1,lo1] =信封(x,wl1,“rms”);Wl2 = 5;[up2,lo2] =信封(x,wl2,)“rms”);Wl3 = 300;[up3,lo3] =信封(x,wl3,)“rms”);情节(t, x)在P1 = plot(t,up1,param_small{:});情节(t, lo1 param_small {:});P2 = plot(t,up2,plot_param{:});情节(t, lo2 plot_param {:});P3 = plot(t,up3,param_large{:});情节(t, lo3 param_large {:})从传说([p1 p2 p3],'wl = 3','wl = 5','wl = 300') xlim([0 0.04]) title(“RMS信封”)
調整可能なサンプル数単位で分割された局所的最大値にスプライン内挿を使用して,ピーク包絡線を生成できます。サンプルを広くとると,包絡線が過剰に平滑化されます。
Np1 = 5;[up1,lo1] = envelope(x,np1,)“高峰”);Np2 = 50;[up2,lo2] = envelope(x,np2,)“高峰”);情节(t, x)在P1 = plot(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] = envelope(q,np1,)“高峰”);Np2 = 25;[up2,lo2] =信封(q,np2,)“高峰”);情节(t, q)在P1 = plot(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(“包络峰值”)