![](https://csdnimg.cn/release/download_crawler_static/85885836/bg1.jpg)
Digital Linear Filter (DLF) design
Some notes regarding the fdesign add-on for empymod
Dieter Werthmüller
24th April 2019
1 About and Info
The add-on fdesign can be used to design digital linear filters for the Hankel or Fourier transform, or for
any linear transform. For this included or provided theoretical transform pairs can be used. Alternatively,
one can use the EM modeller empymod (Werthmüller, 2017) to use the responses to an arbitrary 1D model
as numerical transform pair.
More information can be found in the following places:
• The article about fdesign is in the repo github.com/empymod/article-fdesign
• Example notebooks to design a filter can be found in the repo github.com/empymod/empymod-
examples
The methodology of fdesign is based upon Kong (2007). The whole project of fdesign started with the
Matlab scripts from Kerry Key, which he used to design his filters for Key (2009, 2012). Fruitful discussions
with Evert Slob and Kerry Key improved the add-on substantially.
Note that the use of empymod to create numerical transform pairs is, as of now, only implemented for the
Hankel transform (via fdesign.empy_hankel).
2 Implemented analytical transform pairs
The following tables list the transform pairs which are implemented by default. Any other transform pair
can be provided as input. A transform pair is defined in the following way:
from empymod.scripts.fdesign import Ghosh
def my_tp_pair(var):
"""My transform pair."""
def lhs(l):
return func(l, var)
def rhs(r):
return func(r, var)
return Ghosh(name, lhs, rhs)
Here, name must be one of j0, j1, sin, or cos, depending what type of transform pair it is. Additional
variables are provided with var. The evaluation points of the lhs are denoted by l, and the evaluation
points of the rhs are denoted as r. As an example here the implemented transform pair j0_1:
def j0_1(a=1):
"""Hankel transform pair J0_1 ([Anderson_1975]_)."""
def lhs(l):
return l*np.exp(-a*l**2)
1