Main Content

envelope

信号包络

说明

示例

[yupper,ylower] = envelope(x) 返回输入序列 x 的上下包络作为其解析信号的幅值。使用在 hilbert 中实现的离散傅里叶变换查找 x 的解析信号。该函数最初会删除 x 的均值,并在计算包络后再重新添加该均值。如果 x 是矩阵,则 envelope 单独对 x 的每列进行运算。

示例

[yupper,ylower] = envelope(x,fl,'analytic') 返回使用其解析信号的幅值确定的 x 的包络。解析信号是通过用长度为 fl 的希尔伯特 FIR 滤波器对 x 进行滤波来计算的。如果只指定两个参量,则使用此语法。

示例

[yupper,ylower] = envelope(x,wl,'rms') 返回 x 的上下均方根包络。包络是用长度为 wl 个采样的滑动窗来确定的。

示例

[yupper,ylower] = envelope(x,np,'peak') 返回 x 的上下峰值包络。包络是通过对至少分隔 np 个采样的局部最大值进行样条插值来确定的。

示例

不带输出参量的 envelope(___) 用于绘制信号及其上下包络。此语法接受上述语法中的任何输入参量。

示例

全部折叠

生成高斯调制二次 chirp。指定采样率为 2 kHz,信号持续时间为 2 秒。

t = 0:1/2000:2-1/2000;
q = chirp(t-2,4,1/2,6,'quadratic',100,'convex').*exp(-4*(t-1).^2);
plot(t,q)

使用解析信号计算啁啾信号的上下包络。

[up,lo] = envelope(q);
hold on
plot(t,up,t,lo,'linewidth',1.5)
legend('q','up','lo')
hold off

由于均值非零,因此,信号不对称。

使用不带输出参量的 envelope 以采样编号为 x 轴绘制信号和包络。

envelope(q)

创建一个双通道信号,采样率为 1 kHz,持续时间为 3 秒:

  • 一个通道是呈现指数衰减的正弦波。指定频率为 7 Hz,时间常量为 2 秒。

  • 另一个通道是 DC 值为 2 的时移高斯调制 chirp。指定 chirp 的初始频率为 30 Hz,该频率 2 秒后衰减至 5 Hz。

绘制信号。

t = 0:1/1000:3;
q1 = sin(2*pi*7*t).*exp(-t/2);
q2 = chirp(t,30,2,5).*exp(-(2*t-3).^2)+2;
q = [q1;q2]';

plot(t,q)

计算信号的上下包络。使用长度为 100 的希尔伯特滤波器。绘制通道和包络。对上包络使用实线,对下包络使用虚线。

[up,lo] = envelope(q,100,'analytic');
hold on
plot(t,up,'-',t,lo,'--')
hold off

调用不带输出参量的 envelope,以采样编号为 x 轴绘制信号及其包络。将滤波器长度增加到 300 以获得更平滑的形状。当您指定两个输入参量时,'analytic' 标志是默认值。

envelope(q,300)

计算并绘制火车鸣笛声录音信号的移动 RMS 包络。使用长度为 150 个采样的窗。

load('train')

envelope(y,150,'rms')

绘制基于长度为 30 个采样的区间经过平滑处理的语音信号的上下峰值包络。

load('mtlb')

envelope(mtlb,30,'peak')

创建并绘制一个信号,该信号类似于通过色散介质传播的光脉冲的初始检测信号。

t = 0.5:-1/100:-2.49;
z = airy(t*10).*exp(-t.^2);

plot(z)

使用序列解析信号的幅值来确定该序列的包络。绘制包络。

envelope(z)

使用 50 抽头希尔伯特滤波器计算信号的解析包络。

envelope(z,50,'analytic')

使用长度为 40 个采样的移动窗计算信号的 RMS 包络。绘制结果。

envelope(z,40,'rms')

确定峰值包络。使用非结条件对至少分隔 10 个采样的局部最大值样条插值。

envelope(z,10,'peak')

输入参数

全部折叠

输入序列,指定为向量或矩阵。如果 x 是向量,则它被视为单通道。如果 x 是矩阵,则 envelope 单独计算每列的包络估计值。x 的所有元素都必须为有限值。

示例: cos(pi/4*(0:159))+randn(1,160) 是单通道行向量信号。

示例: cos(pi./[4;2]*(0:159))'+randn(160,2) 是双通道信号。

数据类型: single | double

希尔伯特滤波器长度,指定为正整数标量。该滤波器是通过使用长度为 fl 且形状参数为 β = 8 的凯塞窗对理想的矩形滤波器加窗来创建的。

数据类型: single | double

窗长度,指定为正整数标量。

数据类型: single | double

峰间距,指定为正整数标量。

数据类型: single | double

输出参量

全部折叠

上下信号包络,以向量或矩阵形式返回。

扩展功能

版本历史记录

在 R2015b 中推出