matlab plot3 画EMD、VMD等多个分量的时域和包络谱三维图

本文介绍了如何使用MATLAB进行VMD分解后的模态分量三维展示,以及利用Hilbert包络解调进行包络谱的3D图绘制。提供的代码简单易用,能生成清晰且色彩区分明显的分量和包络谱图。
摘要由CSDN通过智能技术生成

分解的模态分量,经过三维显示可以得到很高端的展示,绝对是一个加分项。
我分享一下自己的代码,简单易用。
目标:MATLAB对信号数据为VMD分解后的4个模态分量 u 进行三维展示。 u 为(4,10000)的double数组。

[X,Y] = meshgrid(1:size(u,1),1:size(u,2));     %建立 x,y 坐标网格
Z = u(1:4,:);      %选择要显示的时域信号数据
figure;
plot3(X,Y,Z);grid on;

生成的效果图:
VMD分解后的三维显示图
第一个分量的展示图
由图可以看出,效果很不错的,可以自动分配颜色。因为第一个分量显示的幅值较小,为避免大家觉得有问题,我通过显示第一个分量的时域图,可以看到它的幅值和其它三个分量的幅值相差较大。
既然有现在的经验,就顺带做了包络谱三维图,用的是 Hilbert 包络解调看它的频率分量,上代码:

for i = 1:size(u,1)
   [e_1,fre] = envelope(u(i,:),N);
   e(i,:) = e_1;
end
[X,Y]=meshgrid(1:size(e,1),fre);
Z = e(1:4,:);
figure;
plot3(X,Y,Z);grid on;

生成效果也还不错:
包络谱三维图

emdvmd多个分量时域包络三维图,可以采用MATLAB等软件进行实现。 首先,使用emd(经验模态分解)或vmd(变分模态分解)算法对信号进行分解,得到多个分量。 1. 时域: 对于每个分量,可以将其在时域上进行绘制。横轴表示时间,纵轴表示信号幅值。可以使用matlabplot函数进行绘制。将这些分量分别绘制在同一张上,可以通过不同的颜色或线形来区分不同的分量。 2. 包络: 对于每个分量,可以进行包络分析,得到其包络包络表示了信号在不同频率上的能量分布情况。可以使用matlab的hilbert函数将信号进行解析,得到其包络信号。再对包络信号进行傅里叶变换,得到包络。可以使用matlab的spectrum函数进行绘制。横轴表示频率,纵轴表示信号能量。 3. 三维图: 将上述的时域包络结合在一起,可以三维图。可以使用matlab的mesh函数实现。其中,X轴表示时间,Y轴表示频率,Z轴表示信号幅值或能量。可以使用surf函数进行绘制。 在中,可以使用不同的颜色或线形来区分不同的分量,并添加合适的标题和标签,使得像更加清晰和易于理解。 总之,emdvmd多个分量时域包络三维图,需要先进行分解和包络分析,再进行绘制。通过这样的三维图,可以更全面地展示信号在时域和频域上的特征。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值