yx2012042217 发表于 2017-7-15 10:58

关于emd的包络线问题

我已经有镜像延拓的子程序和窗函数了,我在论文上看到说可以通过加窗函数改进镜像延拓的效果,我不知道怎么加这个窗函数,求一段这样的代码,学习。谢谢了

Eminem 发表于 2017-7-17 14:13

%% 窗函数测试
function main
clc
close all
Ts = 0.001;
Fs = 1/Ts;
%% 原始信号
t = 0:Ts:pi/2;
yt = sin(2*pi*5*t) + sin(2*pi*10*t) + sin(2*pi*15*t);
= Spectrum_Calc(yt, Fs);
figure
subplot(211)
plot(t, yt)
xlabel('t')
ylabel('y')
title('原始信号')
subplot(212)
plot(f, Yf)
xlabel('f')
ylabel('|Yf|')
xlim()
ylim()
title('原始信号频谱')
%% 加窗信号
win = hann(length(t));
yt1 = yt.*win';
= Spectrum_Calc(yt1, Fs);
figure
subplot(211)
plot(t, yt1)
xlabel('t')
ylabel('y')
title('加窗信号')
subplot(212)
plot(f1, 2*Yf1) % 2表示能量系数
xlabel('f')
ylabel('|Yf|')
xlim()
ylim()
title('加窗信号频谱')
end
%% 求取频谱
function = Spectrum_Calc(yt, Fs)
L = length(yt);
NFFT = 2^nextpow2(L);
Yf = fft(yt,NFFT)/L;
Yf = 2*abs(Yf(1:NFFT/2+1));
f = Fs/2*linspace(0,1,NFFT/2+1);
end

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

亲,我可以加你qq或者你加我,我想单独向你请教几个问题,可以吗?我的qq1751214238

yx2012042217 发表于 2017-7-17 16:22

亲,我可以加你qq,私下问你几个问题吗?emd算法对我来说压力有点大,我的qq1751214238

Eminem 发表于 2017-7-19 15:05

yx2012042217 发表于 2017-7-17 16:22
亲,我可以加你qq,私下问你几个问题吗?emd算法对我来说压力有点大,我的qq1751214238

有什么问题在论坛里讨论就行

dingdingysu 发表于 2017-7-19 17:30

本帖最后由 dingdingysu 于 2017-7-19 17:31 编辑

加窗改进延拓效果,可能考虑的是,不管怎么延拓,最终数据仍然是发散的,加窗之后,起始点和终点数据就收敛到0了,也许可以改变EMD的分解效果。步骤就是先延拓波形,然后按照2楼作者直接加窗就可以。窗函数可以选择余弦窗等。

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

亲,我可以加你扣扣私聊吗

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

我想要实现这个步骤,可以指导我一下吗

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

我想实现这个步骤,你们可以帮我吗

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
这是窗函数
页: [1]
查看完整版本: 关于emd的包络线问题