How to filter an entire dataset of ecg signals

11 views (last 30 days)
I'm learning Matlab so I am a bit lost. Basically I need to download a dataset of ecg signal and than I have to apply with filtfilt function a Band Pass Butterworth Filter of Third Order (1-30 Hz) on all the signal in the dataset.
I have download the dataset from (the one I have attached) than I don't know what to do. I need simply to import the file into Matlab or there is another way to manage a dataset? Then, How can I apply the filter to all the signals in the dataset?
I don't want you to write for me the code, I'm just asking for guidance on how to procede or what kind of sources I can consult to help me understand what to do.

Accepted Answer

Konrad on 15 Jun 2022
Edited: Konrad on 15 Jun 2022
basically, you already described what to do:
  • use load to import the data
  • use designfilt to get filter parameters --- EDIT: use butter to design a butterworth filter
  • use filtfilt to apply the filter
  • wrap a for-loop around everything to process all time series
  • if you unzipped the files into datapath, use files = dir(fullfile(datapath,'*.mat')) to get a structure array with all filenames and then apply your for-loop on these files:
for fileIdx = 1:numel(files)
data = load(fullfile(datapath, files(fileIdx).name));
Best, Konrad

More Answers (0)


Find more on Signal Generation and Preprocessing in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by