Problem when graphing digital filter chebyshev

2 views (last 30 days)
SGM SGM
SGM SGM on 29 Aug 2021
Commented: Paul on 1 Sep 2021
Hello, I need to design a chebyshev digital filter, with cutoff frequencies of 250 and 2000 Hz, it should cut at 0.7 at these two frequencies. The code I am using does not meet the objectives, it is the following:
Fs = 44000;
Fn = Fs/2;
n = 3; Rp = 0.5;
Wn = [250 2000]/Fn;
[b a]=cheby1(n,Rp,Wn,'bandpass')
[h,w]=freqz(b,a)
plot(w,abs(h))
What I need to graph is what is shown in the image. The order is 3 and the ripple is 0.5

Answers (1)

Paul
Paul on 29 Aug 2021
Need some some addition arguments to freqz(). Check its doc page for more information:
Fs = 44000;
Fn = Fs/2;
n = 3; Rp = 0.5;
Wn = [250 2000]/Fn;
[b a]=cheby1(n,Rp,Wn,'bandpass');
[h,f]=freqz(b,a,1024,Fs);
semilogx(f,abs(h))
Adjust n and Rp for the desired result.
  8 Comments
Juan Chehin
Juan Chehin on 1 Sep 2021
Yes, but with some modifications
Fs=4400;
Fn = Fs/2;
n = 6;Rp = 0.5;
[b,a]=cheby1(n,Rp,[250/Fn,2000/Fn]);
[h,f]=freqz(b,a,1024,Fs);
plot(f,abs(h));
xlabel('Frequency (Hz)')
Paul
Paul on 1 Sep 2021
Do you now have the desired result or is there still an open question? Did you intentionally reduce Fs from 44000 to 4400?

Sign in to comment.

Products


Release

R2014b

Community Treasure Hunt

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

Start Hunting!