How to implement Pass Band Filter?

1 visualizzazione (ultimi 30 giorni)
Explorer
Explorer il 25 Gen 2016
Commentato: Star Strider il 25 Gen 2016
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

Risposta accettata

Star Strider
Star Strider il 25 Gen 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 Commenti
Explorer
Explorer il 25 Gen 2016
Modificato: Explorer il 25 Gen 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 il 25 Gen 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su ECG / EKG in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by