使用EMD分解进行去噪

EMD分解去噪

对于掺杂噪声的原始信号,可以使用EMD分解,去除高频的IMF达到去噪效果。

验证代码

测试的IMF由c++代码产生,具体链接可见C++仿写emd分解代码

%%
clear all;
clc;

%%
raw = load('result_VS\test.txt');
imfs = load('result_VS\imfs.txt');

%%
figure;
stackedplot(imfs');

figure;
denoise_data = raw' - imfs(1,:); 
plot(raw);
hold on;
plot(denoise_data);

%%
fs=1000;%采样频率是1000Hz
%生成正弦波信号
t=linspace(0, length(raw)/fs-1/fs, length(raw));
y1 =15*sin(2*pi* 2.8 *t);%生成频率为2.8Hz,幅值为15的正弦波
y2 =10*sin(2*pi* 10.5 *t);%生成频率为10.5Hz,幅值为10的正弦波
y3 =3*sin(2*pi* 27 *t);%生成频率为27Hz,幅值为3的正弦波
y4 =0.5*sin(2*pi* 43 *t);%生成频率为43Hz,幅值为0.5的正弦波

y_Sin =y1+y2+y3+y4;

error_raw  =sum(abs(raw'- y_Sin));

error_deNoise  =sum(abs(denoise_data- y_Sin));

%%
sumNo =3;
imfSum =sum(imfs(sumNo:end,:));
% error_raw  =sum(abs(raw'- y_Sin));
error_imf  =sum(abs(imfSum- y_Sin));

figure;
plot(raw);
hold on;
plot(imfSum);


效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值