How to implement Pass Band Filter?

1 view (last 30 days)
I am following necessary pre-preocessing steps for arrhythmia classification as mentioned below.
I have re-sampled dataset of ECG signals to 200 Hz. Now, these signals need to filtered with Band-Pass Filter.
Sampling frequency of ECG signals = 200 Hz
How to implement PassBand filter on my resampled signals in MATLAB for following specifications.
-> Passband frequency range = 1 to 100 Hz (In above paper it is 2-48 but I want to design with 1 to 100 Hz)
-> Filter Type = Chebyshev II

Accepted Answer

Star Strider
Star Strider on 25 Jan 2016
The 200 Hz sampling frequency was the reason they could use the 2-40 Hz bandpass filter. If you’re dealing with atrial or ventricular tachyarrhythmias, and you need a 2-100 Hz passband, you will have to resample your signals at greater than 200 Hz. I would use 256 Hz, since that is a relatively common sampling frequency for EKGs, so you may be able to use some of them without resampling them at all.
  2 Comments
Explorer
Explorer on 25 Jan 2016
Edited: Explorer on 25 Jan 2016
Okay, I will replace 200 with 256. Please help me in designing filter.
I tried to follow the link you referred but got stuck in very first step.
-----------------------------------------------
Step 1: Determing Order
As I have to design chebyshev type II, I started with following code but got error.
MATLAB Code
Fs = 256; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
Wp = [2 100]/Fn; % Filter Passband (Normalised)
Ws = Wp .* [0.5 1/0.5]; % Filter Stopband (Normalised)
Rp=1; Rs= 10;
cheb2ord(Wp,Ws,Rp,Rs)
Error:
Error using cheb2ord (line 62) The cutoff frequencies must be within the interval of (0,1).
Why am I getting this error?
---------------------------------------------------
Star Strider
Star Strider on 25 Jan 2016
Use this instead:
Ws = Wp .* [0.5 1.2]; % Filter Stopband (Normalised)
This design works, and produces a stable filter with good characteristics:
Fs = 256; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
Wp = [2 95]/Fn; % Filter Passband (Normalised)
Ws = Wp .* [0.5 1.2]; % Filter Stopband (Normalised)
Rp=1;
Rs= 50;
[n,Ws] = cheb2ord(Wp,Ws,Rp,Rs);
[b,a] = cheby2(n, Rs, Ws);
[sos,g] = tf2sos(b,a);
figure(1)
freqz(sos, 1024, Fs)
I changed some of the parameters because I prefer these results for an EKG filter. You can see in figure(1) that the passband works.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!