gak27 said:
The subject says it all - we're doing some data analyis and would like
to be able to do some filtering, including the aforementioned
Chebychev. Any ideas?
Presumably you mean a type I Chebyshev filter with general formula
G(n, w) = 1/SQRT(1+(eps*T(n,w/w0))^2)
where T(n,.) is the Chebyshev polynomial of the first kind of order n
and eps is the ripple factor and w0 is the cutoff frequency.
T(0,x) = 1
T(1,x) = x
T(n+1,x) = 2x T(n,x) - T(n-1,x)
While you could use VBA for the T(.,.), if you needed only a modest
number of orders, you could use a range of simple formulas to generate
the polynomial coefficients, e.g., in A1:K12,
A1: =COLUMNS($A1:A1)-1
Fill A1 right into B1:K1.
A1: 1
B1:K1: 0
A2: 0
B2: 1
C2:K2: 0
A3: =-A1
B3: =2*A2-B1
Fill B3 right into C3:K3, then select A3:K3 and fill down into A4:K11.
Name A1:K12 ChCo. The value of T(n,x) for x > 0 is given by the
formula
=SUMPRODUCT(INDEX(ChCo,n+2,0),x^INDEX(ChCo,1,0))
So the Chebyshev filter value would be given by
=1/SQRT(1+(eps*SUMPRODUCT(INDEX(ChCo,n+2,0),(w/w0)^INDEX(ChCo,1,0)))^2)