Adaptive noise cancellation自适应噪声抵消
自适应噪声抵消是借助噪声的相关性在噪声中提取有用信号的方法。例如在PPG脉搏波信号和ACC加速度中,由于运动带来的运动伪影造成的噪声。由于噪声源是运动,和ACC加速度计的相关性强,所以可以利用ACC对PPG信号进行去噪处理。从而得到去噪后的干净信号。
% Adaptive noise cancellation自适应噪声抵消基本应用
clear;close;
N = 1000;
M = 15; % 阶数
s = sin(2 * pi * 0.02 * (0 : N - 1)'); %原始无噪声信号
noise = 0.5 * randn(1 , N); %噪声源
filter_coe = fir1(M - 1, 0.4); % FIR滤波器:M-1阶的lowpass 0.4
fnoise = filter(filter_coe, 1, noise); % 使用分子和分母系数定义的有理传递函数对输入数据进行滤波
d = s.' + fnoise;
mu = 0.015;
lms_filter = dsp.LMSFilter('Length', M + 1, 'StepSize', mu);
[y, e] = lms_filter(noise', d');
%画图
figure(1);
t = (800 : 999);
subplot(311);plot(t, s(801 : 1000));axis([800 1000 -2 2]);xlabel('时间');ylabel('s幅度');
hold on
subplot(312);plot(t, d(801 : 1000));axis([800 1000 -2 2]);xlabel('时间');ylabel('x幅度');
hold on
subplot(313);plot(t, e(801 : 1000));axis([800 1000 -2 2]);xlabel('时间');ylabel('e幅度');