Excel 2007 - How to do a Chebychev filter w/ VBA?

  • Thread starter Thread starter gak27
  • Start date Start date
G

gak27

Greetings all!

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?

Greg
 
Greg or gak27 -

An idea: Describe the particular algorithm you want to use, or provide a web
link to a page that describes the technique, or post the VBA code you have
so far with specific questions about problems you are having.

- Mike Middleton
http://www.DecisionToolworks.com
Decision Analysis Add-ins for Excel
 
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)
 
Mike Middleton said:
An idea: Describe the particular algorithm you want to use, . . .

Another idea: if you don't know signal processing, don't respond to
questions on signal processing.
 
Back
Top