Hi Experts,

I use matlab firpmord function

http://www.mathworks.com/access/helpdesk/help/toolbox/signal/firpmord.html

In help file it give the following example:

rp = 3; % Passband ripple

rs = 40; % Stopband ripple

fs = 2000; % Sampling frequency

f = [500 600]; % Cutoff frequencies

a = [1 0]; % Desired amplitudes

% Compute deviations

dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)];

[n,fo,ao,w] = firpmord(f,a,dev,fs);

b = firpm(n,fo,ao,w);

freqz(b,1,1024,fs);

title('Lowpass Filter Designed to Specifications');

The ripple rp in linear is calculated by "(10^(rp/20)-1)/(10^(rp/20)+1)". I
cannot understand how it comes from? If the definition of linear ripple is x.
Magnitude is 1. The variation should be 1+x and 1-x and the x should be

x= 1 - 10^(-rp/20);

So I think "1 - 10^(-rp/20)" makes more sense? any one can give me some clues
why matlab use (10^(rp/20)-1)/(10^(rp/20)+1)?

Many thanks

Datu