52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 寻找包络线 [打印本页]

作者: yangshangbin    时间: 2015-5-26 19:48
标题: 寻找包络线
close all
fs=30;
t=0:1/fs:200;
x6=sin(2*pi*2*t)+sin(2*pi*4*t);
x6 = x6 + randn(1, length(x6));
% 包络算法,未考虑边界条件
d = diff(x6);
n = length(d);
d1 = d(1:n-1);
d2 = d(2:n);
indmin = find(d1.*d2<0 & d1<0)+1;
indmax = find(d1.*d2<0 & d1>0)+1;
envmin = spline(t(indmin),x6(indmin),t);
envmax = spline(t(indmax),x6(indmax),t);
figure
hold on
plot(t,x6);
plot(t,envmin,'r');
plot(t,envmax,'m');
hold off
xlim([0 9])
作者: matlab的小调    时间: 2015-5-27 14:27
对于有毛刺的情况效果不好啊,怎么去噪声呢???
作者: yangshangbin    时间: 2015-5-27 14:29
matlab的小调 发表于 2015-5-27 14:27
对于有毛刺的情况效果不好啊,怎么去噪声呢???

先对原始数据做滤波,然后再寻找包络。
作者: 风子师兄    时间: 2015-6-11 15:26
楼主MATLAB哪个版本的,我按照你的代码运行不行哦,envmin = interp1(t(indmin),x6(indmin),t,'spline'); 用interp1插值才能出包络的效果
作者: admin    时间: 2015-6-11 17:20
风子师兄 发表于 2015-6-11 15:26
楼主MATLAB哪个版本的,我按照你的代码运行不行哦,envmin = interp1(t(indmin),x6(indmin),t,'spline');  ...

不会吧,你的版本spline都没有啊




欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2