What filtration should be used for a respiratory signal between 5 and 60 breaths per minute?
I have applied LPF and HPF filtering, but for a low-frequency respiratory signal, the signal after HPF is distorted and edge detection is incorrect, as can be seen in the attached photo. Is it possible to use some kind of filtration that can handle the respiratory signal range of 5-60 breaths per minute? Is it better to use a findpeaks function with appropriate limitations and only LPF filtering as in diagram 2 in the attached photo?
% ————- LPF ——————————
N = 5; % Order
Fstop = 1.4; % Stopband Frequency
Astop = 30; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.lowpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltLP = design(h, ‘cheby2’, ‘SystemObject’, true);
% ————- HPF ——————————
N = 4; % Order
Fstop = 4/60; % Stopband Frequency min 4 oddechow na minute
Astop = 60; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.highpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltHP = design(h, ‘cheby2’, ‘SystemObject’, true);I have applied LPF and HPF filtering, but for a low-frequency respiratory signal, the signal after HPF is distorted and edge detection is incorrect, as can be seen in the attached photo. Is it possible to use some kind of filtration that can handle the respiratory signal range of 5-60 breaths per minute? Is it better to use a findpeaks function with appropriate limitations and only LPF filtering as in diagram 2 in the attached photo?
% ————- LPF ——————————
N = 5; % Order
Fstop = 1.4; % Stopband Frequency
Astop = 30; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.lowpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltLP = design(h, ‘cheby2’, ‘SystemObject’, true);
% ————- HPF ——————————
N = 4; % Order
Fstop = 4/60; % Stopband Frequency min 4 oddechow na minute
Astop = 60; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.highpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltHP = design(h, ‘cheby2’, ‘SystemObject’, true); I have applied LPF and HPF filtering, but for a low-frequency respiratory signal, the signal after HPF is distorted and edge detection is incorrect, as can be seen in the attached photo. Is it possible to use some kind of filtration that can handle the respiratory signal range of 5-60 breaths per minute? Is it better to use a findpeaks function with appropriate limitations and only LPF filtering as in diagram 2 in the attached photo?
% ————- LPF ——————————
N = 5; % Order
Fstop = 1.4; % Stopband Frequency
Astop = 30; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.lowpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltLP = design(h, ‘cheby2’, ‘SystemObject’, true);
% ————- HPF ——————————
N = 4; % Order
Fstop = 4/60; % Stopband Frequency min 4 oddechow na minute
Astop = 60; % Stopband Attenuation (dB)
Fs = 25; % Sampling Frequency
h = fdesign.highpass(‘n,fst,ast’, N, Fstop, Astop, Fs);
hfiltHP = design(h, ‘cheby2’, ‘SystemObject’, true); respiratory rate, respiration, filtering MATLAB Answers — New Questions