包络提取
这个例子展示了如何提取信号的包络线。
创建一个双边带调幅信号。载频为1千赫。调制频率为50hz。调制深度为100%。采样率为10khz。
T = 0:1e-4:0.1;X = (1+cos(2* *50*t)).*cos(2* *1000*t);Plot (t,x) xlim([0 0.04])
方法提取信封希尔伯特
函数。包络线是计算分析信号的幅度希尔伯特
.把包络线和原始信号一起画出来。类的名称-值对参数情节
函数在单元格数组中以供以后使用。分析信号的幅度捕捉信号的缓慢变化的特征,而相位包含高频信息。
Y = hilbert(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])“希尔伯特包络”)
你也可以使用信封
函数直接生成信号包络并修改其计算方式。例如,您可以调整用于查找分析包络线的希尔伯特滤波器的长度。使用过小的滤镜长度会导致信封失真。
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])“分析信封”)
您可以使用滑动窗口生成移动的RMS信封。使用太小的窗口长度会导致信封扭曲。使用过大的窗口长度会使信封变得平滑。
Wl1 = 3;[up1,lo1] =信封(x,wl1,“rms”);Wl2 = 5;[up2,lo2] =信封(x,wl2,“rms”);Wl3 = 300;[up3,lo3] =信封(x, w3,“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])“RMS信封”)
您可以通过在由可调数量的样本分隔的局部极大值上使用样条插值来生成峰值包络。把样本分散得太大会使信封变得平滑。
Np1 = 5;[up1,lo1] =信封(x,np1,“高峰”);Np2 = 50;[up2,lo2] =信封(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])“包络峰值”)
增大峰分离参数可以减小噪声对杂散峰的影响。向信号中引入随机噪声。使用5个样本间隔来查看噪声对峰值包络的影响。使用25个样本间隔重复上述练习。
rng默认的Q = x + randn(size(x))/10;Np1 = 5;[up1,lo1] =信封(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])“包络峰值”)