Clear Filters
Clear Filters

Passband ripple and stopband attenuation

62 views (last 30 days)
Hello ,
I want to know how to select the passband ripple for my signal , does it depend on specific standered to be selected ? does it hava anything to do with the fft ?
  3 Comments
Ali
Ali on 24 May 2024
How does changing the passband and stopband attenuation affect the filter's performance?
Star Strider
Star Strider on 25 May 2024
@Ali — If the passband and stopband attenuation values differ significantly, this can result in a very steep transition region, and the filter can exhibit undesirable characteristics. Reducing the difference in the passband and stopband attenuation values can improve filter performance in this instance. Other than that, the only effects are to change the amplitudes of the signal components in the passband and stopband.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 15 Mar 2021
Passband ripple (derived from elliptic and Chebychev filters and not strictily applicable to all filter designs, such as Butterworth) is generally set at 1 dB. Stopband ripple or attenuation can be whatever you want it to be (within limits), with usual values being between 50 dB and 100 dB. Note that getting the [z,p,k] outputs of the filter design functions and then using the zp2sos function generally results in a stable filter.
  6 Comments
Omar Abdel Deen
Omar Abdel Deen on 4 Apr 2021
Hello @Star Strider could you give me your opinion about this ,, I have extracted the Q,R,S,P,T but still not sure whether I got them correctly or not , this is the figure ,and here is the code I used after I got the R-peaks
for i=1:length(locs)
[Q_peak(i), Q_locs(i)] = min(ecg_res_fil(locs(i)-numOfsam_tolook:locs(i)));%Getting the min peak before the R-peak
[S_peak(i), S_locs(i)] = min(ecg_res_fil(locs(i):locs(i)+numOfsam_tolook));%Getting the min peak after the R-peak
Q_loc(i) = locs(i)-numOfsam_tolook+Q_locs(i)-1;
S_loc(i) = locs(i)+S_locs(i)-1;
[P(i),P_locs(i)] = max(ecg_res_fil(locs(i)-samples_tolook));
[T_peaks(i),T_locs(i)] = max(ecg_res_fil(S_loc(i):(S_loc(i)+Tsamples_tolook)));
P_loc(i) = locs(i) - P_locs(i)-samples_tolook-1;
T_loc(i) = S_loc(i)+T_locs(i)-1;
end
after that I wanted to get the PR ,QT ,ST intervals , depending on there definition I used this code
RR_R = diff(locs)/Fs; % RR interval (seconds)
QRS_R = (S_loc - Q_loc)/Fs; % QRS width (seconds)
PR_R = (Q_loc - P_loc)/Fs; % PR interval
Is this right ?? THANK YOU
Star Strider
Star Strider on 4 Apr 2021
That appears to be correct to me. (For the record, I am a Board-Certified Internal Medicine physician, now retired.)

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!