yx2012042217 发表于 2017-7-17 21:10

急问亲们一个问题???

关于emd镜像延拓后的信号,怎么表示?我只知道延拓后的包络线。。。。望乡亲们告诉我怎么画出镜像延拓后的信号

vibmaster 发表于 2017-7-19 15:02

你的代码发上来看一下

yx2012042217 发表于 2017-7-19 20:26

clc
clear all
t=1:1001;%a1为第一个元素,a2为最末一个元素,a3表示x共有a3个元素,
y=cos(2*pi*t/50)+0.6*cos(2*pi*t/25)+0.5*sin(2*pi*t/200);
= extr(y);%找到y的极值
%*****************************
nbsym = 4;        % 边界延拓点数
= boundary_conditions_Jingxiang(indmin,indmax,t,y,y,nbsym);
%*然后对延拓后的极值点做三次样条插值,使其曲线光滑
envmax = interp1(tmax,mmax,t,'smoothn');
envmin = interp1(tmin,mmin,t,'smoothn');
envmoy = (envmax + envmin)/2;
%--------------------------------------------
figure(1)
plot(t,y);hold on;
plot(t,envmax,'r-.');
plot(t,envmin,'r-.');
plot(t,envmoy,'b-.');
桌面

yx2012042217 发表于 2017-7-19 20:27

这就是我想做的加窗步骤,亲,你能不能给我指点一下?

yx2012042217 发表于 2017-7-19 20:40

function =win(N,A)
%论文中定义的特殊窗函数
%---------
%N为窗口长度 这里指延拓后的信号长度N=length(x);
%   A信号延拓部分
k=0:1:N-1;
k=k.';
x1=0.5*(1-cos(2*pi*k/(N-1)));
x1=x1.*(k>=0&k<=A);
x1=x1/max(abs(x1));
%-----
x2=1;
x2=x2.*(k>A&k<N-A);
%----
x3=0.5*(1-cos(2*pi*k/(N-1)));
x3=x3.*(k>=N-A&k<=N);
x3=x3/max(abs(x3));
y=x1+x2+x3;
end
这是窗函数

dingdingysu 发表于 2017-7-20 17:15

不知道boundary_conditions_Jingxiang函数里面是什么结构,输出的tmin,tmax,mmin,mmax应该表示延拓极大值、极小值点及其位置。需要对极值点进行重新排序,拟合,即可得到延拓波形。

yx2012042217 发表于 2017-7-20 18:05

这个就是普通的镜像延拓的极大值,极小值与它们对应的时间。你可以给我看下这段加窗代码吗

yx2012042217 发表于 2017-7-20 23:05

前面有啊,win函数
页: [1]
查看完整版本: 急问亲们一个问题???