Why does the phase response get cutoff beyond a frequency?
Mostra commenti meno recenti
Hi, I am designing some butterworth lowpass filters of different orders and cutoff frequencies to test on some ECG data sampled at 1000 Hz. I am designing them as:
- fc = 10Hz; order = 2
- fc = 20Hz; order = 8
- fc = 40Hz; order = 8
- fc=70Hz; order = 8
I am using the same structure for all the filter designs, with just a change in variable names, like so:
fs = 1000;
fc1 = 10;
N1 = 2;
[b1,a1] = butter(N1,fc1/(fs/2),'low'); %low indicates LPF
figure('Name','LPF 20 Hz');
freqz(b1,a1,L,fs);
However I get a difference in the phase response for the 10Hz order 2 filter and the 20Hz order 8 filter. Here is the phase response of the 10 Hz filter:

and the phase response of the 20 Hz filter:

Can someone please explain why the second phase response is getting cut off abruptly?
Risposta accettata
Più risposte (1)
William Rose
il 30 Ott 2024
0 voti
Check the values returned by freqz. Answering on my cellphone so I’m limited in what I can do. Look for NaNs at high frequencies in the computed 8th order response. The [b,a]=butter() method of specifying a filter can be unstable even at relatively low order. Try z,p,k or second order sections instead.
1 Commento
Shruti
il 2 Nov 2024
Categorie
Scopri di più su Digital Filter Analysis in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

