detect and remove motion artifacts from ppg signal using lms adaptive filter

조회 수: 20 (최근 30일)
Vaasam Rajesh
Vaasam Rajesh 2021년 5월 12일
답변: MULI 2024년 11월 6일
fs=125;
frequency specifications
remove inband noise of motion artifacts from ppgsignal=(0.1 HZ or more);
allow freauency pulsatile portion=(0.5-4HZ); and resipiratory activity(0.2-0.35HZ);
  댓글 수: 1
Israa
Israa 2024년 9월 25일
편집: Israa 2024년 9월 25일
I am facing the same issue. Could you please let me know if you found a tool to do it ?

댓글을 달려면 로그인하십시오.

답변 (1개)

MULI
MULI 2024년 11월 6일
Hi Rajesh,
I understand that you are looking for a method to remove noise from motion artifacts in a PPG signal.
You can follow the below steps to achieve this:
Design Bandpass Filter:
  • The bandpass filter should be designed to pass both the pulsatile portion (0.5-4 Hz) and respiratory activity (0.2-0.35 Hz).
bpFilt = designfilt('bandpassiir', 'FilterOrder', 4, ...
'HalfPowerFrequency1', 0.2, 'HalfPowerFrequency2', 4, ...
'SampleRate', fs);
filteredPPG = filtfilt(bpFilt, ppgsignal); % Apply the filter
For more information and examples related to “designfit” and “filfilt”function you can refer to the following links:
Simulate or Use Reference Signal:
  • Use a reference signal that correlates with motion artifacts. If accelerometer data is unavailable, simulate a signal that mimics the artifact frequencies (e.g., starting from 0.1 Hz).
Apply LMS Adaptive Filtering:
  • Now use an LMS filter to adaptively remove the motion artifacts. The LMS filter should be configured to minimize the error between the reference signal (motion artifact) and the PPG signal.
filterOrder = 32; % Order of the adaptive filter
mu = 0.01; % Step size for the LMS algorithm
lmsFilter = dsp.LMSFilter('Length', filterOrder, 'StepSize', mu, 'Method', 'Normalized LMS');
[filteredSignal, ~] = lmsFilter(referenceSignal, filteredPPG);
For more information and examples related to “dsp.LMSFilterfunction you can refer to the following link:
By following these steps, you can isolate the desired physiological signals and minimize the impact of motion artifacts.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by