Hello, I have this code that is from a chebyshev filter and I need to know if what is marked in red on the graph corresponds to the cutoff frequencies
Fs = 4400;
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))

 채택된 답변

Star Strider
Star Strider 2021년 8월 5일

0 개 추천

The first red line (at 0.357) corresponds to the low cutoff frequency. The upper cutoff frequency should be at 2.856, so the second red line (at 2.000) does not correspond to it (or to anything else of significance).
.

댓글 수: 10

Juan Chehin
Juan Chehin 2021년 8월 5일
Hi, Thanks for the answer, but it contradicts the answer from @Yazan :/
My pleasure.
You will find that my Answer is correct:
Fs = 4400;
Fn = Fs/2;
Wn = [250 2000]/Fn * pi
Wn = 1×2
0.3570 2.8560
The frequency axis in that plot is normalised on the interval radians/time unit, and is not in units of Hz. The freqz call:
[h,w]=freqz(b,a)
forces that, although if you wanted the frequency axis to be in Hz, it would only be necessary to provide the sampling frequency as the last argument to force that.
EDIT — (5 Aug 2021 at 19:42)
I still have no idea what the second (higher-frequency) red line corresponds to.
The centre frequency of the passband is:
Fc = mean([250 2000]/Fn * pi) % Radians/Time
Fc = 1.6065
or:
Fc = mean([250 2000]) % Hz
Fc = 1125
Is the second red line supposed to actually mean something? If so, what?
.
Yazan
Yazan 2021년 8월 5일
편집: Yazan 2021년 8월 6일
Well, now I am checking your graph in full size, I can say that the answer above is correct. I was assuming that the x-axis represents the frequency in Hz, but it does not seem so. Thus, the values of the red lines do not really represent anything of interest.
Juan Chehin
Juan Chehin 2021년 8월 5일
@Star Strider The second red line corresponds (according to me) to the cutoff frequency of 2000 Hz. But this statement may be wrong, that's why the question in the forum
The problem is the way you called freqz, since the default frequency axis (as I mentioned earlier) is .
If you want to plot in Hz:
Fs = 4400;
Fn = Fs/2;
n = 3; Rp = 0.5;
Wn = [250 2000]/Fn;
[b a]=cheby1(n,Rp,Wn,'bandpass');
[h,w]=freqz(b,a,2^16,Fs);
plot(w,abs(h))
hold on
plot(([1;1]*Wn*Fn), ([1;1]*ylim).', '-r')
hold off
legend('Passband','Cutof Frequencies', 'Location','S')
Note — The frequency axis is different from the frequency axis in the posted plot image.
.
Juan Chehin
Juan Chehin 2021년 8월 6일
This is the final graph I got
If the sampling frequency is not specified in the freqz call,
Fs = 4400;
Fn = Fs/2;
n = 3; Rp = 0.5;
Wn = [250 2000]/Fn;
[b a]=cheby1(n,Rp,Wn,'bandpass');
[h,w]=freqz(b,a,2^16);
plot(w,abs(h))
hold on
plot(([1;1]*Wn*pi), ([1;1]*ylim).', '-r')
hold off
legend('Passband','Cutof Frequencies', 'Location','S')
The frequency axis is different. The plot is otherwise the same.
.
Juan Chehin
Juan Chehin 2021년 8월 6일
Thanks very much!!!
Juan Chehin
Juan Chehin 2021년 8월 6일
편집: Juan Chehin 2021년 8월 6일
One last question, the red line of the cutoff frequency that you put, I see that on the y axis cuts at 0.9. Shouldn't it cut at 0.707? Where the filter gain falls. Green lines
I had to refresh my memory with respect to Chebyshev Type 1 filters.
The common practice of defining the cutoff frequency at −3 dB is usually not applied to Chebyshev filters; instead the cutoff is taken as the point at which the gain falls to the value of the ripple for the final time.
So with a passband ripple defined as 0.5 dB, the cutoff frequencies correspond to that amplitude (dotted black line).
Fs = 4400;
Fn = Fs/2;
n = 3; Rp = 0.5;
Wn = [250 2000]/Fn;
[b a]=cheby1(n,Rp,Wn,'bandpass');
[h,w]=freqz(b,a,2^16);
plot(w,mag2db(abs(h)))
hold on
plot(([1;1]*Wn*pi), ([1;1]*ylim).', '-r')
plot(xlim, -0.5*[1 1], ":k")
hold off
grid
ylim([-10, 0])
legend('Passband','Cutof Frequencies', 'Location','S')
.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2014b

질문:

2021년 8월 5일

댓글:

2021년 8월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by