MATLAB - 数字信号包络线的求取
发布日期:2021-07-01 04:03:25 浏览次数:2 分类:技术文章

本文共 2061 字,大约阅读时间需要 6 分钟。

函数:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 返回输入序列x的上下包络线,作为其解析信号的大小。              %% x的解析信号是利用希尔伯特实现的离散傅里叶变换得到的。           %% 这个函数首先移除x的均值,然后在计算包络线之后再把它加回来。      %% 如果x是一个矩阵,那么包络线对x的每一列都是独立的。             %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[yupper,ylower] = envelope(x)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 返回用解析信号的大小确定的x的包络线。                        %% 解析信号通过使用长度为fl的Hilbert FIR滤波器对x进行滤波来计算。 %% 如果只指定两个参数,则使用此语法。                           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[yupper,ylower] = envelope(x,fl,'analytic')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 返回x的上、下均方根包络。包络是使用长度wl样本的滑动窗口确定的。  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[yupper,ylower] = envelope(x,wl,'rms')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 返回x的上峰和下峰包络线。                                  %% 包络线由至少np个样本分离的局部最大值上的样条插值确定。         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[yupper,ylower] = envelope(x,np,'peak')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 在没有输出参数的情况下,绘制信号及其上下包络线。               %% 该语法接受以前语法中的任何输入参数。                         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%envelope(___)

例1: [up,lo] = envelope(q)

% 信号生成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 onplot(t,up,t,lo,'linewidth',1.5)legend('q','up','lo')hold off

在这里插入图片描述

例2: [up,lo] = envelope(q,100,'analytic');

% 信号生成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)% 包络线绘制[up,lo] = envelope(q,100,'analytic');hold onplot(t,up,'-',t,lo,'--')hold off

在这里插入图片描述

例3:不同参数的包络线区别

% 信号生成t = 0.5:-1/100:-2.49;z = airy(t*10).*exp(-t.^2);plot(z)% 无参数figureenvelope(z)% 参数:analytic,使用50-tap Hilbert filter计算信号的包络线figureenvelope(z,50,'analytic')% 参数:rms,使用40个样本的移动窗口来计算信号的RMS包络figureenvelope(z,40,'rms')% 参数:peak,确定峰包络,在被至少10个样本分隔的局部极大值上使用非结点条件的样条插值。figureenvelope(z,10,'peak')

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

例4:不同采样点的影响

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


参考文献:

转载地址:https://miracle.blog.csdn.net/article/details/112893956 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:产品可靠性测试 - 学习笔记(1)
下一篇:pybotics工具箱中机器人模型的定义

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月02日 23时27分55秒