MATLAB中envelope函数使用

embedded/2025/3/17 0:05:18/

目录

说明

示例

chirp 的解析包络

使用滤波器计算多通道信号的解析包络

录音信号的移动 RMS 包络

语音信号的峰值包络

不对称序列的包络


        envelope函数的功能是提取信号的包络。

语法

[yupper,ylower] = envelope(x)
[yupper,ylower] = envelope(x,fl,'analytic')
[yupper,ylower] = envelope(x,wl,'rms')
[yupper,ylower] = envelope(x,np,'peak')
envelope(___)

说明

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

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

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

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

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

示例

chirp 的解析包络

        生成高斯调制二次 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)

如图所示:

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

[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 的 Hilbert 滤波器。绘制通道和包络。对上包络使用实线,对下包络使用虚线。

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

如图所示:

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

envelope(q,300)

如图所示:

录音信号的移动 RMS 包络

        计算并绘制火车鸣笛声录音信号的移动 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 抽头 Hilbert 滤波器计算信号的解析包络。

envelope(z,50,'analytic')

如图所示:

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

envelope(z,40,'rms')

如图所示:

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

envelope(z,10,'peak')

如图所示:

参数说明

x — 输入序列

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

fl — Hilbert 滤波器长度

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

wl — 窗长度

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

np — 峰间距        

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

yupper,ylower — 上下信号包络

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


http://www.ppmy.cn/embedded/173188.html

相关文章

STM32驱动代码规范化编写指南(嵌入式C语言方向)

点击下面图片,为您提供全新的嵌入式学习路线 文章目录 一、命名规范体系1.1 变量/函数命名1.2 宏定义规范1.3 类型定义 二、代码结构组织2.1 文件组织结构2.2 头文件规范模板 三、注释体系构建3.1 Doxygen风格示例3.2 复杂逻辑注释 四、硬件抽象层设计4.1 寄存器封…

探索HTML5 Canvas:创造动态与交互性网页内容的强大工具

探索HTML5 Canvas:创造动态与交互性网页内容的强大工具 引言 在HTML5的众多新特性中,Canvas无疑是最引人注目的元素之一。它为网页设计师和开发者提供了一个通过JavaScript和HTML直接在网页上绘制图形、图像以及进行动画处理的画布。Canvas的灵活性和强…

【Node.js】--- win11安装 Node.js

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【Node.js】--- win11安装 Node.js 开发环境一、Node.js简介二、安装Node.js1、设置向…

DeepSeek-R1深度解读

deepseek提出了一种通过强化学习(RL)激励大语言模型(LLMs)推理能力的方法,个人认为最让人兴奋的点是:通过RL发现了一个叫“Aha Moment”的现象,这个时刻发生在模型的中间版本中。在这个阶段&…

Spring Cloud LoadBalancer 原理与实践

背景 当前我们的微服务架构基于Spring Cloud Alibaba体系,通过定制NacosRule实现了跨集群访问和灰度发布功能。但随着Spring Cloud与Nacos版本升级,官方已弃用Ribbon转向LoadBalancer,这要求我们完成以下技术升级: 负载均衡机制…

贝叶斯分层回归(Bayesian Hierarchical Regression)是一种基于贝叶斯统计理论的数据分析方法

贝叶斯分层回归(Bayesian Hierarchical Regression)是一种基于贝叶斯统计理论的数据分析方法,它在多个领域都有广泛应用。以下是对其原理、模型构建步骤和优势的介绍: 原理 贝叶斯分层回归将传统回归模型中的参数视为随机变量&a…

自动化测试 | Python+PyCharm+Google Chrome+Selenium 环境安装记录

目录 环境版本 浏览器与驱动 Python 安装 测试 PyCharm 安装 开启软件 开始破解 Selenium 安装 测试 自动化的其实就是模拟手工点击的方式 环境版本 Python:3.11.8 PyCharm:2021.1.3 Selenium:x.x 浏览器与驱动 114.0.5735.90 …

MySQL数据库知识总结

MySQL数据库知识总结 一、基本概念及其介绍二、数据库中的数据类型(一)数值类型(二)字符串类型(三)日期类型 三、数据库基础语法(一)数据库的常用操作(二)数据…