Low pass filter using filter coefficient

Hi,
I want to do low pass filtering of ECG signal. I have filter coefficients and sammpling frequency. With only this much information available is it possible to do low pass filtering?
please help if someone knows!
Thank you in advance.

 采纳的回答

If you have the Signal Processing Toolbox, first check the filter stability and performance with the freqz function.
Then use the filtfilt function to filter the signal.
All the necessary code and other details are explained in the documentation.

17 个评论

I am new to matlab. Can you please elaborate the stepsto be performed?
Upload the filter coefficients, and I will see what I can do.
Okay.
LPF: 0.0352 -0.0854 -0.1350 0.4599 0.8069 0.3327
HPF: -0.3327 0.8069 -0.4599 -0.1350 0.0854 0.0352
I assume these are FIR filters.
If so, implement them similarly to the way I implemented them in:
Fs = 1000; % Use The Correct Sampling Frequency
LPF_b = [ 0.0352 -0.0854 -0.1350 0.4599 0.8069 0.3327];
HPF_b = [-0.3327 0.8069 -0.4599 -0.1350 0.0854 0.0352];
figure
freqz(LPF_b,1, 2^14, Fs) % Filter Bode Plot
title(subplot(2,1,1), 'Lowpass FIR Filter')
figure
freqz(HPF_b,1, 2^14, Fs) % Filter Bode Plot
title(subplot(2,1,1), 'Highpass FIR Filter')
EKG_data = rand(1, 1000);
If you want to filter the signal first with the lowpass filter and second with the highpass filter, the filter arguments would be:
LPF_EKG_data = filtfilt(LPF_b,1, EKG_data); % Filter Using Lowpass Filter
HPF_EKG_data = filtfilt(HPF_b,1, LPF_EKG_data); % Filter Using Highpass Filter
With the result of both filters being the output of the highpass filter.
Experiment to get the result you want.
See the documentation for the various funcitons for details on how to use them.
Thank You for the help. It worked.
Also, I am looking for denoising ECG signal. Kindly help me with that as well.
A bandpass filter is most appropriate for that, since it will remove baseline variations as well as high-frequency noise. EKG signals have a bandwidth of 0 to 100 Hz, so the filter passband should be 1 Hz to 100 Hz, although for a normal EKG (without arrhythmias or significant variations in the S-T segment), a filter with a passband of 1 to 45 Hz will work. That will also filter out mains frequency (powerline) noise.
Kindly help me design the filter and also obtain the coefficients for the same.
The easiest way to do that is to let the bandpass function design it. The digital filter object (with all the necessary information) is the second output of the function. All you need to do is to decide what the upper passband frequency should be, and use 1 Hz for the lower passband frequency.
Please help me with the coding part. I am using MIT BIH arrhythmia database from physionet.
If you have the Signal Processing Toolbox, the bandpass function (and related functions) do all the coding for you. They were introduced in R2018a, so if you have an earlier version I can provide you with appropriate code using an elliptic filter. It would be best to try the bandpass function first.
If you do not have the Signal Processing Toolbox, filtering anything is going to be difficult, although not impossible.
Fatema Dalal’s Aswer is now this Comment —
I do have the singnal processing toolbox. But I dont know how to use it.
If you have R2018a or later version of it, please read the documentation for the bandpass function that I linked to earlier. It will tell you everything you need to know about how to use the function. If you have an earlier version, I can post equivalent code to design an elliptic filter and filter the signal with it.
I tried applying the bandpass function and got the filtered signal but filtering isn't helpful. I need to extract r peaks from the signal which isnt possible from the signal obtained even after filtering. I am attaching a screenshot of orignal and filtered signal kindly check if that could help you guide me better.
Also I am attaching the ECG signal file. Kindly check and guide me in the correct direction.
The easiest way to determine the locations (and amplitudes) of the R-deflections is to use the findpeaks function.
Yes that is right. But I do not want to use findpeaks function. Instead develop a logic for detecting the R peaks. Hence the need to make R peaks more prominent.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Single-Rate Filters 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by