FDAtool - Scale Passband (Chebyshev)

hello,
In Matlab when I use fdatool i see the option "Scale Passband" now this option changes the coefficients drastically, after some reading I found out the use for it but not the mathematical way to calculate it yourself.
I used for example, fs = 48000hz, fc1 = 4000, fc2 = 6000, order = 4, sidelobe attenuation = 60, scale passband is not checked. That are my FDAtool settings, now I calculated h(0) = 0.917, multiplying h(0) with the window variable (witch comes from chebwin function) gives me 0.917. this value matches FDAtool coefficients, so I can conclude that the coefficients are calculated correctly.
Now when I check the option "Scale Passband" my coefficients change, how they get the new coefficients is for me a complete riddle. Also the chebwin function doesn't calculate the new "scale bandpass" coefficients
Thank you!

Antworten (1)

Honglei Chen
Honglei Chen am 24 Mär. 2011

0 Stimmen

Hi Jan,
I can't really follow your example but the purpose of scale is to make sure that the center of the first passband has a magnitude response of 1.
HTH.

4 Kommentare

Jan
Jan am 24 Mär. 2011
Let me say it like this: I have the coefficients without scaling, how can I apply scaling on them? What is the mathematical formula for applying scale to a set of Chebyshev coefficients?
Honglei Chen
Honglei Chen am 24 Mär. 2011
Here are the general steps:
1. Design the filter using the Chebyshev window.
2. Identify the center of your pass band.
3. Calculate the magnitude response at this particular frequency using filter coefficients derived from step 1.
4. Scale the coefficients with the magnitude response so that the magnitude response is 1 at the center of pass band.
HTH
Jan
Jan am 26 Mär. 2011
Can you give any more mathematical explanation? Maybe a small example?
Honglei Chen
Honglei Chen am 28 Mär. 2011
Suppose that using the regular Chebyshev window, you get your coefficients in variable b, and your pass band is centered at f0. Denote B(f0) as the magnitude frequency response of b evaluated at f0, then the scaled coefficients will be
b_scaled = b/B(f0)
Note that B_scaled(f0) = B(f0)/B(f0) = 1.

Melden Sie sich an, um zu kommentieren.

Produkte

Gefragt:

Jan
am 24 Mär. 2011

Community Treasure Hunt

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

Start Hunting!

Translated by