Let's first consider the passband ripple spec, dB. Converting that to linear ripple amplitude gives, in Matlab,

format long; dp=10^(0.1/20)-1 dp = 0.01157945425990Let's check it:

>> 20*log10(1+dp) ans = 0.10000000000000 >> 20*log10(1-dp) ans = -0.10116471483635

Ok, close enough. Now let's set the stopband ripple to 1/10 times the passband ripple and see where we are:

>> ds=dp/10; >> 20*log10(ds) ans = -58.72623816882052

So, that's about 60 dB stop-band rejection, which is not too bad.

Setting the stopband ripple to 1/100 times the passband ripple adds another 20 dB of rejection:

>> ds=dp/100; >> 20*log10(ds) ans = -78.72623816882052which is close to the ``high fidelity'' zone of 80dB SBA

- In FIR filter-design functions such as
`firpm`, the*weighting*for each band is proportional to*one over the ripple amplitude*in that band. (We saw previously that the ripple amplitude is where is minimized.) - Thus, for a unity-gain lowpass-filter, a weighting of 1 passband and
10 in the stopband yields close to 60 dB of stopband attenuation, as
derived above.
- The function
`firpmord`in Matlab finds the order needed to achieve a given set of (more user friendly) specifications.

[Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University

[Automatic-links disclaimer]