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!

Réponses (1)

Honglei Chen
Honglei Chen le 24 Mar 2011

0 votes

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 commentaires

Jan
Jan le 24 Mar 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 le 24 Mar 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 le 26 Mar 2011
Can you give any more mathematical explanation? Maybe a small example?
Honglei Chen
Honglei Chen le 28 Mar 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.

Connectez-vous pour commenter.

Produits

Question posée :

Jan
le 24 Mar 2011

Community Treasure Hunt

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

Start Hunting!

Translated by