Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1556
News FAQ
Search Home


next up previous contents index
Next: functionalserver.combi - Function Up: functionalserver - Tool Previous: functionalserver.chebyshev - Function


functionalserver.butterworth - Function



Package utility
Module functionals
Tool functionalserver


Create an approximation of butterworth bandpass


Synopsis
butterworth(minorder, maxorder, mincut, maxcut, center, peak)


Arguments

minorder in the order of the minimum (high-pass) cutoff of the curve
    Allowed: integer
    Default: 1
maxorder in the order of the maximum (low-pass) cutoff of the curve
    Allowed: integer
    Default: 1
mincut in the characteristic cutoff value of the minimum (high-pass) portion of the curve.
    Allowed: numeric
    Default: -1.0
maxcut in the characteristic cutoff value of the maximum (low-pass) portion of the curve.
    Allowed: numeric
    Default: 1.0
center in the location of the peak of the bandpass curve
    Allowed: numeric
    Default: 0.0
peak in the maximum value of the bandpass curve
    Allowed: numeric
    Default: 1.0


Returns
Functional



Description
This function creates a functional that simulates the (amplitude) transfer function for a wideband bandpass filter constructed from the combination of a low-pass and a high-pass Butterworth filter. It is not an exact representation. In particular is includes a discontinuity at the bandpass peak. Thus, care should be taken when evaluating derivatives of or fitting this function.

In analog electronic filter design, a Butterworth low-pass filter is one in which the amplitude transfer function, | H(j$ \omega$)| (where j = $ \sqrt{-1}$ and $ \omega$ is the angular frequency), is given by:

| H(j$\displaystyle \omega$)| = $\displaystyle {\frac{1}{\sqrt{1 + (\omega/\omega_c)^{2n}}}}$ (1.13)

where n refers to the filter "order" and $ \omega_{c}^{}$ is the "cutoff frequency". When $ \omega$ = $ \omega_{c}^{}$, the filter output is 1/$ \sqrt{2}$ that of the input, and the higher the order, the steeper the drop off towards zero and the closer the approximation to a idealized step function.

Filter theory provides transformations for deriving transfer functions of high-pass and band-pass filters which reflect how the electrical circuits actually work. However, to simplify this class's implementation and to make the transfer function behavior more predictable by the naive user, this functional does not actually use the proper transformations. Instead, the Butterworth bandpass transfer function is approximated by low pass component, given above, combined with a pseudo high-pass function that is of the same form but with $ \omega$ substituted with - $ \omega$. Both components are shifted such that its peak transfer point is at a given "center" position.

The character of the band edges can be set independently for both ends of the passband. The cuttoff value-where the signal is attenuated to 1/$ \sqrt{2}$ of the peak-is set with the mincut and maxcut arguments for the low end (i.e. high-pass) and high end (i.e. low-pass) portions of the curve, respectively. This value is the value of $ \omega_{c}^{}$ for each side of the passband. The order of the attenuation curve-n in the above formula-can be set using minorder and maxorder.



Example
- butt := dfs.butterworth(minorder=4, maxorder=4, mincut=10,
                          maxcut=50, center=30, peak=1)
- butt.state()
[type=10, order=-1, ndim=1, npar=4, params=[30 10 50 1] , masks=[T T T T] , 
mode=[minOrder=4, maxOrder=4]]
- butt.f([0, 7, 10, 13, 30, 47, 50, 53, 60])
[0.193786 0.496351 0.707107 0.886488 1 0.886488 0.707107 0.496351 0.193786]

To plot this function...

- include 'pgplotter.g'
- pg := pgplotter()
- x := [-30:90]
- y := butt.f(x)
- pg.plotxy1(x, y, ylab='Bandpass')





next up previous contents index
Next: functionalserver.combi - Function Up: functionalserver - Tool Previous: functionalserver.chebyshev - Function   Contents   Index
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-10-15