-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathManuscriptGeophysics2018.tex
1177 lines (1048 loc) · 60.8 KB
/
ManuscriptGeophysics2018.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% \documentclass[manuscript]{geophysics}
\documentclass[paper,twocolumn,twoside]{geophysics}
% \documentclass[paper]{geophysics}
% \documentclass[paper, revised]{geophysics}
% \documentclass[manuscript,revised]{geophysics}
% Additional packages to geophysics.cls
\usepackage[USenglish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{amssymb, amsmath, amsfonts}
\usepackage{upquote}
\usepackage[strings]{underscore}
\usepackage[pdftex, final]{hyperref}
\hypersetup{allcolors=blue, allbordercolors={0 0 .5}, colorlinks=true}
% \usepackage[pdftex, hidelinks]{hyperref}
% Figures
\DeclareGraphicsExtensions{.pdf,.png,.jpg}
\renewcommand{\figdir}{./figures}
% Own commands
\newcommand{\mr}[1]{\mathrm{#1}}
\begin{document}
\title{A tool for designing digital filters for the Hankel and Fourier
transforms in potential, diffusive, and wavefield modeling}
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\ms{GEO-2018-0069.R2}
\address{
\footnotemark[1]TU Delft,
Building 23,
Stevinweg 1 / PO-box 5048,
2628 CN Delft,
E-mail: \href{mailto:[email protected]}{[email protected]};
\href{mailto:[email protected]}{[email protected]};
\footnotemark[2]\emph{formerly at the} Instituto Mexicano del Petróleo,
Eje Central Lázaro Cárdenas Norte 152,
Col. San Bartolo Atepehuacan C.P. 07730,
Ciudad de México, México,
\footnotemark[3]Lamont-Doherty Earth Observatory, Columbia University,
305C Oceanography,
61 Route 9W, PO Box 1000,
Palisades NY 10964-8000 US,
E-mail: \href{mailto:[email protected]}{[email protected]}.
}
\author{%
Dieter Werthmüller\footnotemark[1]\footnotemark[2], %
Kerry Key\footnotemark[3], and %
Evert C.\ Slob\footnotemark[1]%
}
\footer{}
\lefthead{Werthmüller et al.}
\righthead{Digital filter designing tool}
\maketitle
%%fakesection === ABSTRACT ===
\begin{abstract} % 1-2 sentence(s) each
%
% (1) PRINCIPAL OBJECTIVES AND SCOPE OF THE WORK
The open-source code \texttt{fdesign} makes it possible to design digital
linear filters for the Hankel and Fourier transforms used in potential-,
diffusive-, and wavefield modeling. Digital filters can be derived for any
electromagnetic method, such as methods in the diffusive limits (direct
current, controlled-source electromagnetics) as well as methods using higher
frequency content (ground-penetrating radar, acoustic and elastic wavefields).
%
% (2) METHODOLOGY
The direct matrix inversion method is used for the derivation of the filter
values, and a brute-force inversion is carried out over the defined spacing
and shifting values of the filter basis. Included or user-provided
theoretical transform pairs are used for the inversion. Alternatively, one
can provide layered subsurface models that will be computed with a precise
quadrature method using the electromagnetic modeler \texttt{empymod} to
generate numerical transform pairs.
%
% (3) RESULTS
The comparison of the presented 201\,pt filter with previously presented
filters shows that it performs better for some standard controlled-source
electromagnetic cases. The derivation of a longer 2001\,pt filter for a
ground-penetrating radar example with 250\,MHz center frequency proves that
the filter method works also for wave phenomena, not only for diffusive
electromagnetic fields.
%
% (4) CONCLUSIONS
The presented algorithm provides a tool to create problem specific digital
filters. Such purpose-built filters can be made shorter and can speed up
consecutive potential-, diffusive-, and wavefield inversions.
%
\end{abstract}
\section{Introduction}
In his Ph.D. thesis, \cite{PhD.70.Ghosh} proposed a linear filter method for
the numerical evaluation of Hankel transforms that subsequently revolutionized
the computation of electromagnetic (EM) responses in the field of geophysical
exploration. If you use a code that calculates EM responses in the
wavenumber-frequency domain and transforms them to the space-frequency domain,
chances are high that it uses the \emph{digital linear filter} (DLF) method.
Most practical 1D EM modeling codes rely on the DLF method for rapid
computations; these codes are not only used for standalone simulations of EM
fields in layered 1D media, but they are also commonly embedded within 3D
modeling codes for computing the primary fields in scattered-field formulations
or for the background fields required by integral equation methods. Thus, the
DLF method is an important component of many commonly used modeling codes for
EM geophysical data.
\cite{GP.71.Ghosh} states that the DLF idea is based on suggestions made four
decades earlier by \cite{PHY.33.Slichter} and \cite{GEO.40.Pekeris}, in that
``\emph{the kernel function is dependent only on the layer parameters, and an
expression relating it to the field measurements can be obtained by
mathematical processes.}'' However, until the introduction of DLF, these
suggestions found no widespread use, likely because of the missing computer
power to calculate the filter coefficients. He further states that credit goes
to \cite{BK.68.Koefoed, GP.70.Koefoed}, who retook the task of direct
interpretational methods with the introduction of raised kernel functions. DLF
is, as such, an improvement of that approach, providing a faster and simpler
method.
The DLF technique is sometimes referred to as the \emph{fast Hankel transform}
(FHT), popular because of the similarity of the name to the well known
\emph{fast Fourier transform} (FFT), although the algorithms for these
techniques are completely different. The FHT name was likely inspired by the
title of a paper by \cite{GP.79.Johansen}. However, the name FHT can be
misleading as it has \emph{Hankel} in the name, whereas the DLF approach can
more generally be applied to other linear transforms, for example Fourier sine
and cosine transforms.
The introduction of linear filters to EM geophysics, in parallel with rising
computational power, initiated a wealth of investigations, leading to the
development of computer programs that extended and improved the DLF method, and
to numerous publications. These publications fall broadly into one or several
of three categories: (1) new applications that extend the usage of DLF to other
EM measurement techniques; (2) filter improvements that provide either new
filters or improved methods for the determination of filter coefficients; and
(3) computational tools that compute EM responses using DLF techniques. Here,
we briefly review the most relevant publications, without claiming
completeness.
\subsubsection{(1) New applications}
Ghosh used the method originally for the computation of type curves for
Schlumberger and Wenner resistivity soundings: \cite{GP.71.Ghosh} derives a
resistivity model from given Schlumberger or Wenner sounding curves; and
\citet{GP.71.Ghoshb} provides filters for the inverse operation, deriving
resistivity sounding curves from a given resistivity model. The method was next
applied to electromagnetic soundings with horizontal and perpendicular coils
\citep{GP.72.Koefoed}, to vertical coplanar coil systems \citep{GP.73.Verma},
to dipoles and other two electrode systems \citep{GP.74.Das, GP.74.Dasb,
GP.80.Das, GEO.94.Sorensen}, and to vertical dikes, hence vertical instead of
horizontal layers \citep{GEO.75.Niwas}. The first filters were specific to a
particular resistivity sounding type and its transform; later publications used
the method to get one type curve from another type curve \citep{GP.77.Kumar,
GP.78.Kumar}, or generalized the method to be applicable to a wider set of
problems \citep{EXG.80.Davis, GXP.81.Das, GEO.84.Das, GP.84.ONeill}.
Eventually, it passed from pure layered modeling to primary-secondary field
formulations for 3D problems, where DLF is used to compute the spatial
Fourier-Hankel transforms in a horizontally layered background medium and to
compute transient responses from frequency domain computations
\citep{GJI.81.Das, GJI.82.Das, GEO.84.Anderson, GEO.86.Newman,
MGS.17.Kruglyakov}. Other publications delved into the theory of the method,
analyzing the oscillating behaviour of the filters and trying to estimate the
error of DLF \citep{GP.72.Koefoedb, GP.76.Koefoedb, GP.79.Johansen,
GP.90.Christensen}.
\subsubsection{(2) Filter improvements}
\cite{PhD.70.Ghosh} derived the filter coefficients in the spectral domain by
dividing the output spectrum by the input spectrum followed by an inverse
Fourier transform. Improvements to the determination of filter coefficients
were provided by \cite{EXG.75.ONeill, GEO.77.Nyman, GEO.82.Das}, or
specifically for the Fourier transform by \cite{GP.86.Nissen}. A direct
integration method was used by \cite{GP.76.Bichara} and \cite{GP.78.Bernabini}.
\cite{GP.79.Koefoed} proposed a Wiener-Hopf least-squares method, which was
further improved by many authors \citep{GP.82.Guptasarma, GEO.1982.Murakami,
GP.97.Guptasarma}. \cite{GP.07.Kong} proposed a direct matrix inversion method
to solve the convolution equation, which requires only the input and output
sample values. To evaluate the filter's effectiveness, he defines a good filter
as one that recovers small or weak diffusive EM fields. This method was also
used by \cite{GEO.09.Key, GEO.12.Key} to create a suite of filters accurate for
marine EM data. Most works have published filters for the Hankel transform with
$J_0$ and $J_1$ Bessel functions (or $J_{-1/2}$, $J_{1/2}$ if applied to the
Fourier sine/cosine transform), as all higher Bessel functions can be
rewritten, via recurrence relations, using only these two. \cite{GP.94.Mohsen}
is one of the rare cases which provides $J_2$ filter weights.
\subsubsection{(3) Computational tools}
The most well-known codes are likely Anderson's freely available ones.
\cite{USGS.73.Anderson} extends the method to transient responses, applying DLF
not only to the Hankel transform, but also to the Fourier transform. A
transient signal can therefore be obtained be applying twice a digital filter
to the wavenumber-frequency domain calculation. \cite{USGS.75.Anderson,
GEO.79.Anderson} presents improved filters for both Fourier and Hankel
transforms, introducing measures to significantly speed-up the calculation,
such as the lagged convolution or using the same abscissae for $J_0$ and $J_1$.
\cite{TMS.82.Anderson} and the included 801\,pt filter became the de facto
industry standard, to which subsequent filters were compared.
\cite{GEO.89.Anderson} presents a hybrid solution that uses either the DLF or a
much slower but highly accurate adaptive-quadrature approach, which can also be
used to measure the accuracy of the DLF. \cite{GEO.12.Key} presented codes for
comparing the DLF approach with a speed optimized quadrature method called
quadrature-with-extrapolation (QWE); despite its optimizations, QWE is still
not as fast as DLF, but it remains valuable as an independent tool for testing
the accuracy of particular filters for the DLF method. Other examples include
the codes by \cite{GP.75.Johansen}, an interactive system for interpretation of
resistivity soundings, and a tool to calculate filter coefficients by
\cite{GP.90.Christensen}. The latter is available upon request and was used,
for instance, in all the open-source modeling and inversion routines of CSIRO
in the Amira Project 223 \citep{ASEG.07.Raiche}.
All mentioned publications have in common that they were derived for direct
current methods (DC) or low frequency methods, such as time-domain shallow EM
methods (TEM), or controlled-source electromagnetics (CSEM), but not for high
frequency methods such as ground-pe\-ne\-tra\-ting radar (GPR). Generally it
was even thought that the filter method works only in the diffusive limit where
the quasistatic approximation is valid \citep[e.g.,][]{GEO.15.Hunziker}.
Nevertheless, \cite{GEO.17.Werthmuller} tested DLF for modeling 250 MHz
center-frequency GPR data using a 401 pt filter that was designed for diffusive
EM, and found that it was orders of magnitude faster than quadrature
approaches. However, good quality results were only obtained for the first
arrivals at short time-offsets and the later arrivals had poor quality. Yet,
this promising initial test suggests it might be possible to specifically
design a special filter for GPR frequencies where the EM fields propagate as
waves rather than by diffusion.
While there are several versions of digital filters that are freely available,
there are no open-source filter designing tools that readily available; they
are either only described methods in articles or the codes are only available
upon request by the author. Here, we address this gap by presenting the code
\texttt{fdesign}, which is an open-source tool for designing general or
purpose-built filters using the direct matrix inversion method. The code is
completely open-source and can be run using freely available programming
environments, thus there are few barriers to obtaining and running the code.
In the following sections we give a brief overview of the methodology, the
theory, and the code, and then show examples of its usage, as well as
presenting new filters for both CSEM and GPR data. The current article falls
therefore into all three mentioned categories by the new application of DLF to
wave phenomena, which means that the DLF can probably be used to model
seismic wavefields as well, and by providing new filters with the accompanying
code. The algorithm and many more examples of its usage can be found on
\href{https://github.com/empymod/article-fdesign}{github.com/empymod/article-fdesign}.
The examples can be used as templates to design new filters.
\section{Methodology}
The algorithm \texttt{fdesign} is a filter designing tool using the direct
matrix inversion method as described by \cite{GP.07.Kong} and based on scripts
developed by \cite{GEO.12.Key}. The tool is an add-on to the EM modeler
\texttt{empymod} \citep{GEO.17.Werthmuller}, written in Python, and hosted on
GitHub, which should foster interaction and enable anyone to toy around,
improve, and extend it. It can be used to derive digital linear filters for the
Hankel and the Fourier transforms for potential, diffusive, and wavefield
modeling (hence from DC to GPR).
Theoretically, it can be used to derive linear filters for any linear
transform, as long as it is supplied with the inputs and outputs of a transform
pair. Previous works have relied on using theoretical transform pairs commonly
found in tables of integral transforms. Here we follow a similar approach, but
we also propose a new method where filters could be derived from accurately
computed numerical transform pairs, such as those computed using quadrature
approaches. For example, the EM modeler \texttt{empymod} could be used to
compute transform pairs for a particular class of model and data parameters
(for example, a specific EM method and model of interest) using a slow but
highly accurate quadrature method. A good filter derived from the resulting
transform pairs could then be used for faster modeling of similar model and
data parameters.
The main features of \texttt{fdesign} and some differences between it and the
methods it is based upon are:
\begin{itemize}
\item The algorithm computes many different filters for various spacing and
shift values (brute-force), with an optional minimization routine for
the best outcome of the brute-force step.
\item \cite{GP.07.Kong} and \cite{GEO.12.Key} optimize a filter for the $J_0$
filter, and then use the obtained shift and spacing value to calculate the
$J_1$ values. The presented algorithm can optimize either $J_0$, $J_1$, or
both in the optimization process. Five transform-pairs for each $J_0$ and
$J_1$, and three transform pairs for each sine and cosine of often used
functions are included in the routine, but any other transform pair can be
provided as input.
\item More complex or more specific numerical transform pairs can be
provided instead of theoretical transform pairs by using the modeler
\texttt{empymod}.
\item \cite{GP.07.Kong} defines a \emph{good} filter as one that recovers
\emph{weak} diffusive EM fields. In \texttt{fdesign}, you can define a
relative error level that defines up to what error an obtained result is
good or not. The optimization seeks to find the smallest amplitude field
that is accurately modeled (i.e., minimizing the amplitude), but it has
additionally another mode, where it will maximize the output abscissae $r$
of the transform pair instead of minimizing the amplitude. The two modes
yield the same result in the general, simple case of fast decaying
transform pairs. However, for some complex models and specifically for very
high frequencies, maximizing $r$ will yield much better and more consistent
results.
\item The algorithm can solve equal- and over-determined
linear systems.
\item The real or the imaginary part can be used for the inversion of complex
transform pairs.
\end{itemize}
The quality of a filter depends heavily on the model chosen for comparison. An
obtained filter might be very good for one model or data acquisition setup, but
not that good for another one, which is no different for this designing tool.
There is no way to estimate the error of a result obtained with a certain
filter if you apply it to any other model, unless you calculate this other
model with another method for comparison. All results presented here should
therefore be taken with a certain care. Further, when applying a new filter to
a significantly different model and/or data space than what it has previously
been tested on, we recommend first verifying its accuracy in that space by a
comparison with results computed with a quadrature method such as QWE, which is
also available in \texttt{empymod}.
\subsection{Theory}
Most of the articles mentioned in the review have detailed derivations of the
digital filter method. In this article we focus on the algorithm, and summarize
the theory only very briefly by following \cite{GEO.12.Key}. In
electromagnetics we often have to evaluate integrals of the form
%
\begin{equation}
F(r) = \int^\infty_0 f(l)K(l r)\mr{d}l \ ,
\label{eq:HankelInt}
\end{equation}
%
where $l$ and $r$ denote input and output evaluation values, respectively, and
$K$ is the kernel function. In the specific case of the Hankel transform $l$
corresponds to wavenumber, $r$ to offset, and $K$ to Bessel functions; in the
case of the Fourier transform $l$ corresponds to frequency, $r$ to time, and
$K$ to sine or cosine functions. In both cases it is an infinite integral which
numerical integration is very time-consuming because of the slow decay of the
kernel function and its oscillatory behaviour.
By substituting $r = e^x$ and $l = e^{-y}$ we get
%
\begin{equation}
e^x F(e^x) = \int^\infty_{-\infty} f(e^{-y})K(e^{x-y})e^{x-y}\mr{d}y\ .
\label{eq:filtint}
\end{equation}
%
This can be re-written as a convolution integral and be approximated for an
$N$-point filter by
%
\begin{equation}
F(r) \approx \sum^N_{n=1} \frac{f(b_n/r) h_n}{r}\ ,
\label{eq:filtapprox}
\end{equation}
%
where $h$ is the digital linear filter, and the logarithmically spaced filter
abscissae is a function of the spacing $\Delta$ and the shift $\delta$,
%
\begin{equation}
b_n = \exp\left\{\Delta(-\lfloor{(N+1)/2\rfloor}+n) + \delta\right\} \ .
\label{eq:base}
\end{equation}
%
From equation~\ref{eq:filtapprox} it can be seen that the filter method
requires $N$ evaluations at each $r$. For example, to calculate the frequency
domain result for 100 offsets with a 201\,pt filter requires 20,100 evaluations
in the wavenumber domain. This is why the DLF often uses interpolation to
minimize the required evaluations, either for $F(r)$ in what is referred to as
\emph{lagged convolution DLF}, or for $f(l)$, which we here call \emph{splined
DLF}.
In the direct matrix inversion method for solving for the digital filter
coefficients, equation~\ref{eq:filtapprox} is cast as a linear system,
where $\Delta$ and $\delta$ are preassigned scalar values and
$r$ is a range of $M$ preassigned values $r_m$. The filter base coefficients
$b_n$ are computed using equation~\ref{eq:base} and an array of values for $l$
are computed using $l_{mn} = b_n/r_m$. The linear system's left hand side (LHS)
matrix $\bf{A}$ has dimensions $M \times N$ with coefficients
$A_{mn} = f(l_{mn})/r_m$ and the right hand side (RHS)
vector $\bf{v}$ has elements $v_m = F(r_m)$. The
resulting linear system
%
\begin{equation}
\bf{A}\bf{h} = \bf{v}
\label{eq:,linearSystem}
\end{equation}
%
can be solved by direct matrix inversion, or any other matrix inversion
routine, to obtain the vector of filter coefficients $\bf{h}$. For a given
filter length $N$, there are many subjective choices that go into the practical
implementation of this method, including the choice of the transform pairs
$F(r)$ and $f(l)$, as well as the value for $M$ and the particular range and
spacing of the values $r_m$. Once values are chosen for these variables, an
optimal filter can be found by a grid search over $\Delta$ and $\delta$ for
values that produce a high quality filter. The choice of metric for what
constitutes a high quality filter is also subjective and is further discussed
below.
\subsection{Pseudo-code for \texttt{fdesign} }
The main input variables are the filter length ($N$), the spacing ($\Delta$)
and shift ($\delta$) ranges over which to loop, and the transform pairs for the
inversion ($f_\mr{I}$) and the check of quality ($f_\mr{C}$). If $f_\mr{C}$ is
not provided, then $f_\mr{I}$ is used for both. There are additional, optional
input parameters, for instance to adjust how the RHS abscissae for the
inversion $r_\mr{I} = p(b, N)$ are calculated, where $b$ is the filter base.
Additionally, ranges $r$ for evaluating the check function need to be
specified.
The basic steps are as follows:
\begin{enumerate}
\item Evaluate RHS of check-function $f_\mr{C}$:\newline
$d_\mr{R} = f_\mr{C}^\mr{rhs}(r)$
\item Loop over each value $\Delta_i$, $\delta_j$ (brute force;
parameters on the left-hand side are overwritten where $i$, $j$
are not mentioned):
\begin{enumerate}
\item Calculate filter base:\newline
$b_n = \exp\left\{\Delta_i(-\lfloor{(N+1)/2\rfloor}+n) +
\delta_j\right\}$
\item Get required RHS and LHS evaluation points:\newline
$r_\mr{I} = p(b, N)$\newline
$l_\mr{I} = b/r_\mr{I}$
\item Invert for filter coefficients:\newline
$J = \mr{solve}\left[f_\mr{I}^\mr{lhs}(l_\mr{I}),
f_\mr{I}^\mr{rhs}(r_\mr{I})\right]$
\item Calculate numerically RHS of check-function $f_\mr{C}$ with current
filter $J$:\newline
$d_\mr{F} = f_\mr{C}^\mr{lhs}(b/r)\cdot J\ /\ r$
\item Store minimum recovered amplitude or maximum $r$ where relative
error is less than the provided error:\newline
$\chi_{ij} = g\left[
\mr{argmin}\left(|(d_\mr{F}-d_\mr{R})/d_\mr{R}| >
\mr{error}\right) -1\right]\ $, where $g$ is either $d_\mr{R}$
or $1/r$.
\end{enumerate}
\item Re-calculate (steps 2a-2c) filter base and
coefficients which yield minimum amplitude or maximum $r$ (a local
minimization can be run to polish the brute-force result):\newline
$i_\mr{best}$, $j_\mr{best}$ = $\mr{argmin}(\chi)$\newline
recalculate $b$, $J$ with $i_\mr{best}$, $j_\mr{best}$\newline
\newline
\item Return filter base and coefficients and error matrix (for visual
QC):\newline
return $b$, $J$, $\chi$\newline
\end{enumerate}
To solve step 2(c) we implemented the QR-decomposition method in
\texttt{fdesign}.
\subsection{Minimization criteria}
Figure~\ref{fig:Figure-1-bw} shows the differences between the different
minimization approaches; in (a) for a conventional, fast decaying transform
pair (using the $J_0$ kernel of a fullspace with vertical distance between
source and receiver of 50\,m, frequency $f=1\,$Hz, and resistivity
$\rho=1\,\Omega\,$m); and in (b) for a more complex, high frequency layered
model (using the $J_0$ kernel for $f=200\,$MHz for the GPR model described
in the section \emph{Ground-penetrating radar}, with receiver located at 1\,m
depth). The circles show the minimum amplitude used in previous approaches.
This criterion is not ideal, as it is subject to some random fluctuations and
depends on the choice of $r$. The squares show the minimum amplitude given a
certain acceptable error, and the diamonds show the maximum $r$ given a certain
acceptable error (the inversion is a minimization process, it therefore
minimizes $1/r$, not $r$). In simple cases the minimum amplitude given an
acceptable error and the maximum $r$ given an acceptable error will yield the
same result. However, in complex cases the maximum $r$ is more consistent and
therefore a much better criterion.
%
\plot*{Figure-1-bw}{width=.9\textwidth}{(a) A regular right-hand-side (RHS)
curve of a transform pair with a purely decaying function. Minimum amplitude
or maximum $r$ yield the same result in this scenario. Using a relative error
criteria is more stable than just the absolute minimum amplitude. (b) A 1D
model for $f=200\,$MHz. Here, the maximum $r$ provides a better criteria for
the inversion.}
%
While the $\chi$ array is used to identify the optimal values of $\Delta$ and
$\delta$, the value of $\mr{argmin}(\chi)$ will depend on the choice of the
check function $f_C$ and can vary from one transform pair to another; thus it
should not be used to compare the quality of filters created with different
transform pairs.
\section{Numerical examples}
The numerical examples are focused on the Hankel transform, although
\texttt{fdesign} can be used to design digital linear filters for both Hankel
and Fourier transforms. As there is no difference in the procedure of the two,
this should be sufficient to demonstrate the algorithm.
\subsection{Design}
Figures~\ref{fig:Figure-2-bw} and~\ref{fig:Figure-3-bw} show the solution spaces
of seven consecutive inversion runs using the following theoretical transform
pairs \citep[e.g.,][]{USGS.75.Anderson},
%
\begin{align}
\int^\infty_0\,l \exp\left(-al^2\right) J_0(rl)\,dl &=
\frac{1}{2a} \exp\left(\frac{-r^2}{4a}\right)\ , \\
\int^\infty_0\,l^2 \exp\left(-al^2\right) J_1(rl)\,dl &=
\frac{r}{4a^2} \exp\left(-\frac{r^2}{4a}\right)\ ,
\label{eq:j01}
\end{align}
%
where $a$ was set to 5. In the algorithm you can provide one pair
for the inversion, and a different pair to get the minimum amplitude or the
maximum $r$. In this case the same transform pair was used for both the
inversion and the check of quality. The acceptable relative error was set to
1\,\%. The RHS evaluation parameter for the inversion was set so that an
over-determined system was evaluated with $M = 2N$ equations, where $r_\mr{I}$
was logarithmically spaced from $\log_{10}[1/\max(b)] - 1$ to
$\log_{10}[1/\min(b)] + 1$, where $b$ are the filter abscissae as given in
equation~\ref{eq:base}. This is accomplished in \texttt{fdesign} by setting
parameter $r_\mr{def} = (1, 1, 2)$.
Figure~\ref{fig:Figure-2-bw} shows three different inversion runs for $N=101$,
201, and 401 for a wide range of spacing and shift values. From this one has to
decide for a filter length. Longer filters tend to give
more precise results, but their transform is computationally more expensive as
more values have to be evaluated. The length of the filter does not has to be
an odd number, but many published filters do have an odd number of
coefficients. The integral runs from $-\infty$ to $+\infty$ and hence an odd
point filter comes naturally by truncating the integral to a finite sum from
$-(N-1)/2$ to $(N-1)/2$. However, this is only true if the shift value
$\delta = 0$. If it differs from zero then there is no advantage in having an
odd point filter.
%
\plot*{Figure-2-bw}{width=\textwidth}{%
Test of different filter lengths. Filter length is a trade-off between
precision and speed, as shorter filters are faster but less precise, and
longer filters are more precise but computationally more expensive. The red
square in subplot (b) is the starting point of
Figure~\ref{fig:Figure-3-bw}.}%
%
Figure~\ref{fig:Figure-3-bw} shows four consecutive inversion runs for $N=201$,
where each run is a focus on a subsection of the previous run, indicated by the
square. From the low resolution overview runs (a) and (b) it looks like this is
a standard, straight-forward minimization problem. However, from the more
detailed results in (c) and (d) it becomes obvious that it is a minimization
problem that has to be solved stochastically, as there are solutions with 2
orders of magnitude difference apparently randomly next to each other.
%
\plot*{Figure-3-bw}{width=\textwidth}{%
Solution spaces of four consecutive inversion runs for a 201\,pt filter. Each
consecutive run zooms into a portion of the previous solution space,
indicated by the square. The more in detail we obtain the solution space, the
more random appears to be the distribution.}%
%
Figure~\ref{fig:Figure-4-bw} shows in (a) the filter values for $J_0$ and $J_1$
of the best 201 pt filter obtained this way, and in (b) its right-hand-side
solution. The black dots indicate negative values, from which it can be seen
that adjacent values are often alternating between positive and negative
contributions.
%
\plot*{Figure-4-bw}{width=.9\textwidth}{(a) Filter values of the best obtained
201\,pt filter with the corresponding check of quality in (b). Black points
indicate negative values, which shows that adjacent values have often
opposite signs.}
%
Designing filters is to a large extent trial and error. All input variables
influence the outcome, and often an even better filter is found by sheer luck
of choosing the right starting parameters, as can be seen in
Figure~\ref{fig:Figure-4-bw} (h). However, once you are in this zone every
filter is a very good filter. Each of the input parameters has an effect on the
outcome. It also depends heavily on the transform pairs $f_\mr{I;C}$; functions
that decay rapidly are generally better, as noted by earlier authors
\citep[e.g.][]{USGS.75.Anderson}. It also depends on the filter length, and
obviously heavily on the spacing and shift values. Another important point is
how you define the right-hand evaluation points of the inversion
($r_\mr{def}$). Evaluating corresponding transform pairs separately or jointly
also leads to different filter coefficients ($J_0$, $J_1$, or $J_0$ \& $J_1$,
or equally sine, cosine, or sine \& cosine); also if the real or the imaginary
part is used when complex transform pairs or \texttt{empymod} is used; and if
it is inverted for the minimum amplitude or for the maximum $r$.
\subsection{CSEM}
In this section we compare the 201\,pt filter derived in the previous section
to marine CSEM models as used in \cite{GP.07.Kong}, in \cite{GEO.12.Key},
and for a land EM case.
Figure~\ref{fig:Figure-5-bw} compares the derived 201\,pt filter with the two
half-spaces case used by \cite{GP.07.Kong} in his Figure~5. The model consists
of a $0.3125\,\Omega\,$m sea layer of infinite thickness above a subsurface
$1\,\Omega\,$m half-space. The signal of a $1\,$Hz frequency $x$-directed
electric source 50\,m above the interface is measured at an $x$-directed
electric receiver at the interface.
%
\plot*{Figure-5-bw}{width=\textwidth}{(a) Results of different filters and QWE
for the model of Figure~5 from \cite{GP.07.Kong} with the relative errors
shown in (b), using the QWE result. The relative error is meaningless from
about 15.5\,km onwards, as QWE failed as well for these very low amplitudes.}
%
In (a) it can be seen that the new 201\,pt filter is able to recover smaller
amplitudes than the 241\,pt filter from \cite{GP.07.Kong}, the 201\,pt filter
from \cite{GEO.12.Key}, and the 801\,pt filter from \cite{TMS.82.Anderson}
(Wer201, Kong241, Key201, and And801, respectively). It behaves equally well as
the quadrature with extrapolation (QWE), for which we used a 51\,pt quadrature
with relative and absolute tolerance of $10^{-12}$ and $10^{-30}$,
respectively. The relative error is shown in (b), where the QWE result was
taken as \emph{truth}. For offsets greater than roughly 15.5\,km the relative
error becomes meaningless, as the QWE fails itself; this part is greyed out in
the figure.
Figure~\ref{fig:Figure-6-bw}(a) considers the canonical CSEM model as used in
\cite{GEO.12.Key} in his Figure~5: a $0.303\,\Omega\,$m sea with depth of
2\,km, a background resistivity of $1\,\Omega\,$m, in which a $100\,\Omega\,$m
target layer of 100\,m thickness is embedded at 1000\,m below the seafloor.
The source is located at 1990\,m and receivers are positioned on the seafloor.
%
\plot*{Figure-6-bw}{width=\textwidth}{(a) The canonical marine CSEM model of
\cite{GEO.12.Key} and (b) a land model with source and receiver at the
surface. The new filter shows relative errors that are generally several
orders of magnitude lower than for the other filters.
}
%
Figure~\ref{fig:Figure-6-bw}(b) is a land case, with a background resistivity
of $10\,\Omega\,$m, in which a $500\,\Omega\,$m target of 100\,m thickness is
embedded at 1000\,m below the surface. The source depth is 0.5\,m and the
receiver depth is 0.8\,m. In both cases the new filter \emph{Wer201} has
generally a relative error which is orders of magnitude lower than the other
filters. The relative error of the real part is given in black, whereas the
relative error of the imaginary part is given in grey. It is interesting to
note that the real and imaginary parts have very similar errors in
\emph{Wer201}, \emph{Key201}, and \emph{And801}, but that the imaginary part of
\emph{Kong241} seems to behave considerably better for most part than its real
counterpart. To compare the real and the imaginary parts is insofar interesting
as the digital filters are purely real valued.
It is very important to note again that other scenarios might yield very
different error plots. Although the new 201\,pt filter proves to be very
accurate for these three models, it might not be the best filter in other
cases. To verify the applicability of the filter we run two different tests
over a wide range of scenarios. Figure~\ref{fig:Figure-7} shows the relative
errors of DLF using the filter \emph{Wer201} compared to QWE for a deep water
model (2\,km water depth), a shallow water model (400\,m water depth), and a
land model. The models consist of air (upper halfspace), a water layer in the
first two examples, and a subsurface halfspace. Source depth is 1990\,m, 10\,m,
and 0.5\,m in the deep, shallow, and land case, respectively. Receiver depth is
2000\,m, 100\,m, and 0.8\,m. The subsurface halfspace resistivity varies from 1
to 10, 100, and 1000\,$\Omega\,$m from the left to the right column. The error
plots cover offsets from 50\,m to 20\,km on the x-axis, and 0.01\,Hz to 10\,Hz
on the y-axis. It can be seen in the result that the filter is sufficiently
precise for all practical CSEM cases, hence has generally an error far below
1\,\% ($10^{-2}$) in all cases. A relative noise of less than 1\,\% is
generally considered really good for real data. The exceptions are in the
shallow water case at large offsets with relatively high frequencies, e.g.,
10\,km offset with 8\,Hz; this zone has a very high error for subsurface
resistivities of 1\,$\Omega\,$m and 10\,$\Omega\,$m (yellow zones). However,
this is due to the fact that the amplitudes of the signal for these offsets and
frequencies are in the order of $10^{-25}\,$V/m. The grey contour lines in the
plot indicate the power of the amplitude of the signal.
%
\plot*{Figure-7}{width=\textwidth}{Relative error plots comparing the DLF
(\emph{Wer201}) with QWE for the three cases deep water (top row), shallow
water (middle row), and land (bottom row). The subsurface halfspace
resistivity varies from 1 to 1000\,$\Omega\,$m from the left column to the
right column; offsets vary from 50\,m to 20\,km, and frequencies vary from
0.01\,Hz to 10\,Hz. The DLF provides sufficiently accurate results for all
practical CSEM applications. The exception is in the shallow water case for
$\rho = 1\,\Omega\,$m and $10\,\Omega\,$m for large offsets and high
frequencies (yellow zones). However, the amplitudes in these regions are in
the order of $10^{-25}\,$V/m, and therefore several orders of
magnitude below the noise levels of current EM instrument systems.
Contour lines show the power of the amplitude of the signal.}
%
Another error test is shown in Figure~\ref{fig:Figure-8}. It shows in (a) the
amplitude of the analytical fullspace solution for a wide range of
resistivities and frequencies: $\rho=$ $10^{-10}\,\Omega\,$m to
$10^{10}\,\Omega\,$m, and $f =10^{-10}$\,Hz to $10^{14}$\,Hz. In this case, the
horizontal offset is set to the skin depth, and the vertical source-receiver
separation to a tenth of it, where the skin depth is given by \citep[e.g., ][
equation~1.49]{B.SEG.88.Ward}
%
\begin{equation}
z_\mr{skin} = \left\{\frac{\omega^2 \varepsilon\mu}{2}
\left[ \sqrt{1 + \frac{1}{\left(\omega\varepsilon\rho\right)^2}} -1\right]
\right\}^{-1/2} \, , \\
\label{eq:skin}
\end{equation}
%
where we used in the example $10\,\varepsilon_0$ for the electric permittivity
and $\mu_0$ for the magnetic permeability; $\omega = 2\pi f$. The grey contour
lines in the figure show the magnitude of the offset: the line with 0 is where
the offset is 1\,m, the line with 3 where the offset is 1\,km, etc. The contour
lines of the offset have a knee, after which they become almost independent of
frequency. This is where the quasi static approximation breaks down, and wave
phenomena become dominant. The red line indicates where $\omega\varepsilon\rho
= 1$. Subplot (b) shows the relative error of the DLF using the filter
\emph{Wer201} compared to the analytical solution. It shows nicely that the
filter can be used for all cases that are in the quasi static region, but not
outside.
%
\plot*{Figure-8}{width=.8\textwidth}{(a) Amplitude of the analytical
fullspace solution for a wide range of resistivities and frequencies. The
contour lines show the power of the offset used for the calculation, where
the offset is set to the skin depth. (b) Relative error of the DLF compared
with the analytical solution. The filter \emph{Wer201} works well in the
diffusive limit, but fails when wave phenomena become dominant. The red
line shows where $\omega\varepsilon\rho = 1$.}
%
We also comment that while it is tempting to design very short length
filters (much less than about $N=100$) since shorter filters can greatly reduce
EM simulation times, in our experience, shorter filters tend to be less general
purpose than longer filters and we highly recommend thoroughly testing their
accuracy for the desired range of data and model parameters.
\subsection{Ground-penetrating radar}
Figure~\ref{fig:Figure-9} shows the GPR example as calculated in
\cite{GEO.15.Hunziker} and \cite{GEO.17.Werthmuller}; the model parameters are
given in subplot (a). The filter used for this example for the Hankel transform
is a 2001\,pt filter, derived with the fullspace solution with $f=500\,$MHz for
the inversion and the check of quality. The whole space solution used
resistivity $200\,\Omega\,$m, relative permittivity $\varepsilon_\mr{r}=10$,
and permeability $\mu_\mr{r}=1$. Using Equation~\ref{eq:skin} yields a skin
depth of roughly 3.6\,m for these parameters. The source and receiver vertical
separation is 1\,m. For the Fourier transform a 4096\,pt FFT was used with
regularly spaced frequencies from 0.5\,MHz to 850\,MHz and then zero-padded up
to 2048\,MHz. The frequency result is multiplied with a Ricker wavelet with a
center frequency of 250\,MHz, and a gain function ($1 + |t^3|, t$ in ns) is
applied. Subplot (b) shows the result when using the adaptive quadrature (QUAD)
option of \texttt{empymod}, which uses the QAGSE routine from the Fortran
QUADPACK library. Subplot (c) shows the result using DLF with the new 2001\,pt
digital filter. The calculation with DLF took under 9 minutes and is therefore
roughly 80 times faster than the calculation with QUAD, which took roughly 11
hours and 27 minutes. Calculating the same model with QWE took 7 hours and 20
minutes. However, QWE uses in roughly 1/3 of the calculation internally QUAD in
this example, see \cite{GEO.17.Werthmuller}. Note that DLF was run in parallel
using 4 threads at once, taking effectively only 2 minutes and 10 seconds to
calculate.
% EMmod \citep{GEO.15.Hunziker} took for the same model about 18 hours 55
% minutes, using a 61\,pt Gauss-Kronrod integration routine.
The lagged convolution version of DLF and the splined version of QWE were used
in this comparison.
%
\plot*{Figure-9}{width=\textwidth}{GPR example for the model given in (a) using
\texttt{empymod} with (b) adaptive quadrature (QUAD) or with (c) a
2001\,pt digital linear filter. QUAD took about 11\,h 27\,min to calculate,
whereas DLF took 2\,min 10\,s in parallel on 4 nodes, hence under 9\,min in
total.}
%
Figure~\ref{fig:Figure-10-bw} shows in (a)-(c) the real and imaginary
parts of the frequency domain results and in (d)-(f) the time domain results
for offsets of 0.2\,m, 2.0\,m, and 3.0\,m.
%
\plot*{Figure-10-bw}{width=\textwidth}{The real and imaginary parts of the
frequency-domain (a-c) and the time-domain (d-f) responses for
horizontal offsets of (a/d) 0.2\,m, (b/e) 2.0\,m, and (c/f) 3.0\,m.}
%
The 2001\,pt filter was derived with the fullspace solution of a medium which
is very similar to the layer in which source and receiver reside in our GPR
example. To show that this filter can also be applied to different layer
parameters we run a test where we swapped layers one and two of the model in
Figure~\ref{fig:Figure-9} (a). The resulting real and imaginary parts for the
offsets 0.2\,m, 2.0\,m, and 3.0\,m are given in Figure~\ref{fig:Figure-11-bw}.
%
\plot*{Figure-11-bw}{width=\textwidth}{The real and imaginary parts of the
frequency-domain response for the model given in Figure~\ref{fig:Figure-9}
(a) with swapped first and second layers for horizontal offsets of (a)
0.2\,m, (b) 2.0\,m, and (c) 3.0\,m.}
%
These examples show clearly that the filter method can indeed be applied to
high frequency EM modeling and therefore wave phenomena. We are convinced that
with further tests and analysis much better filters could be achieved, and
various concepts could be checked. One approach is to derive a filter for each
frequency band, say one for 1\,MHz--10\,MHz, one for 10\,MHz--100\,MHz, and one
for 100\,MHz--1\,GHz. Another approach could be to derive distinct filters for
$J_0$ and $J_1$, with different spacing and shift values. The first idea would
roughly triple the calculation cost, the second idea double them; however, they
both would still be very fast compared to standard quadrature methods. One
could also apply the digital filter method to acoustic and elastic wavefields
as well.
\section{Conclusions}
The presented, free and open-source code \texttt{fdesign} can be used to design
digital linear filters for the Hankel and Fourier transforms (and more
generally for any linear transform) using either analytical transform pairs or
1D subsurface models together with the EM-modeler \texttt{empymod}. The code is
available from GitHub as part of \texttt{empymod}; the version corresponding to
this publication is \texttt{v1.8.1}.
The presented 201\,pt filter achieves more precise results in the three
presented CSEM cases than other filters, and is included in \texttt{empymod}
from version 1.4.5 onwards. However, as with any digital filter, the quality
depends heavily on the model, and this new filter might or might not behave
that well for other models or data parameters.
The GPR example shows that the digital linear filter method can also be used
for wave phenomena, not only for the diffusive approximation limit of low
frequency EM modeling.
We see \texttt{fdesign} as being useful for at least 3 scenarios:
\begin{enumerate}
\item Providing a fast method to design problem-specific filters. For bigger
inversion projects (such as, for instance, massive stochastic CSEM
inversions) a purpose designed, short filter might save much more time than
it costs to design it. This could even be integrated into inversion codes,
as an optional pre-inversion step.
\item Extending the filter method to new areas, namely higher frequencies and
acoustic and elastic wavefields.
\item Raising interest for digital linear filters in geophysics by making it
very easy for anyone to play around, create their own filters, and get a
better understanding of the relative simplicity of the method. We are sure
there are many great filters that are yet to be discovered.
\end{enumerate}
\section{Acknowledgment}
D.W. would like to thank the electromagnetic research group of A. Mousatov at
the IMP for fruitful discussions, and J. Hunziker for valuable feedback which
improved this manuscript considerably. We thank the assistant editor J. Etgen,
the associate editor J. Dellinger, and the reviewers C. Weiss and R. Mittet
for valuable inputs not only regarding the manuscript, but also regarding the
code and its documentation.
% REFERENCES
\begin{thebibliography}{}
\itemsep0pt
\bibitem[Anderson, 1973]{USGS.73.Anderson}
Anderson, W.~L., 1973, Fortran {IV} programs for the determination of the
transient tangential electric field and vertical magnetic field about a
vertical magnetic dipole for an m-layer stratified earth by numerical
integration and digital linear filtering: USGS, {\bf PB221240}.
\newblock
(\href{https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/PB221240.xhtml}{https://ntrl.ntis.gov\-/NTRL\-/dashboard\-/searchResults\-/titleDetail\-/PB221240.xhtml}).
\bibitem[Anderson, 1975]{USGS.75.Anderson}
--------, 1975, Improved digital filters for evaluating {F}ourier and {H}ankel
transform integrals: USGS, {\bf PB242800}.
\newblock
(\href{https://pubs.er.usgs.gov/publication/70045426}{https://pubs.er.usgs.gov/publication/70045426}).
\bibitem[Anderson, 1979]{GEO.79.Anderson}
--------, 1979, Numerical integration of related {H}ankel transforms of orders
0 and 1 by adaptive digital filtering: Geophysics, {\bf 44}, 1287--1305.
\newblock (\href{https://doi.org/10.1190/1.1441007}{doi: 10.1190/1.1441007}).
\bibitem[Anderson, 1982]{TMS.82.Anderson}
--------, 1982, Fast {H}ankel transforms using related and lagged convolutions:
ACM Trans. Math. Softw., {\bf 8}, 344--368.
\newblock (\href{https://doi.org/10.1145/356012.356014}{doi:
10.1145/356012.356014}).
\bibitem[Anderson, 1984]{GEO.84.Anderson}
--------, 1984, {On: “Numerical integration of related Hankel transforms by
quadrature and continued fraction expansion” by \cite{GEO.83.Chave}}:
Geophysics, {\bf 49}, 1811--1812.
\newblock (\href{https://doi.org/10.1190/1.1441595}{doi: 10.1190/1.1441595}).
\bibitem[Anderson, 1989]{GEO.89.Anderson}
--------, 1989, A hybrid fast {H}ankel transform algorithm for electromagnetic
modeling: Geophysics, {\bf 54}, 263--266.
\newblock (\href{https://doi.org/10.1190/1.1442650}{doi: 10.1190/1.1442650}).
\bibitem[Bernabini and Cardarelli, 1978]{GP.78.Bernabini}
Bernabini, M., and E. Cardarelli, 1978, The use of filtered {B}essel functions
in direct interpretation of geoelectrical soundings: Geophysical Prospecting,
{\bf 26}, 841--852.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1978.tb01636.x}{doi:
10.1111/j.1365-2478.1978.tb01636.x}).
\bibitem[Bichara and Lakshmanan, 1976]{GP.76.Bichara}
Bichara, M., and J. Lakshmanan, 1976, Fast automatic processing of resistivity
soundings Geophysical Prospecting, {\bf 24}, 354--370.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1976.tb00932.x}{doi:
10.1111/j.1365-2478.1976.tb00932.x}).
\bibitem[Chave, 1983]{GEO.83.Chave}
Chave, A.~D., 1983, Numerical integration of related {H}ankel transforms by
quadrature and continued fraction expansion: Geophysics, {\bf 48},
1671--1686.
\newblock (\href{https://doi.org/10.1190/1.1441448}{doi: 10.1190/1.1441448}).
\bibitem[Christensen, 1990]{GP.90.Christensen}
Christensen, N.~B., 1990, Optimized fast {H}ankel transform filters:
Geophysical Prospecting, {\bf 38}, 545--568.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1990.tb01861.x}{doi:
10.1111/j.1365-2478.1990.tb01861.x}).
\bibitem[Das, 1982]{GEO.82.Das}
Das, U.~C., 1982, Designing digital linear filters for computing resistivity
and electromagnetic sounding curves: Geophysics, {\bf 47}, 1456--1459.
\newblock (\href{https://doi.org/10.1190/1.1441295}{doi: 10.1190/1.1441295}).
\bibitem[Das, 1984]{GEO.84.Das}
--------, 1984, A single digital linear filter for computations in electrical
methods--a unifying approach: Geophysics, {\bf 49}, 1115--1118.
\newblock (\href{https://doi.org/10.1190/1.1441726}{doi: 10.1190/1.1441726}).
\bibitem[Das and Ghosh, 1974]{GP.74.Das}
Das, U.~C., and D.~P. Ghosh, 1974, The determination of filter coefficients
for the computation of standard curves for dipole resistivity sounding over
layered earth by linear digital filtering: Geophysical Prospecting, {\bf 22},
765--780.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1974.tb00117.x}{doi:
10.1111/j.1365-2478.1974.tb00117.x}).
\bibitem[Das et~al., 1974]{GP.74.Dasb}
Das, U.~C., D.~P. Ghosh, and D.~T. Biewinga, 1974, Transformation of dipole
resistivity sounding measurements over layered earth by linear digital
filtering: Geophysical Prospecting, {\bf 22}, 476--489.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1974.tb00100.x}{doi:
10.1111/j.1365-2478.1974.tb00100.x}).
\bibitem[Das and Verma, 1980]{GP.80.Das}
Das, U.~C., and S.~K. Verma, 1980, Digital linear filter for computing type
curves for the two-electrode system of resistivity sounding: Geophysical
Prospecting, {\bf 28}, 610--619.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1980.tb01246.x}{doi:
10.1111/j.1365-2478.1980.tb01246.x}).
\bibitem[Das and Verma, 1981a]{GJI.81.Das}
--------, 1981a, Numerical considerations on computing the {EM} response of
three-dimensional inhomogeneities in a layered earth: Geophysical Journal
International, {\bf 66}, 733--740.
\newblock (\href{https://doi.org/10.1111/j.1365-246X.1981.tb04897.x}{doi:
10.1111/j.1365-246X.1981.tb04897.x}).
\bibitem[Das and Verma, 1981b]{GXP.81.Das}
--------, 1981b, The versatility of digital linear filters used in computing
resistivity and EM sounding curves: Geoexploration, {\bf 18}, 297--310.
\newblock (\href{https://doi.org/10.1016/0016-7142(81)90059-4}{doi:
10.1016/0016-7142(81)90059-4}).
\bibitem[Das and Verma, 1982]{GJI.82.Das}
--------, 1982, Electromagnetic response of an arbitrarily shaped
three-dimensional conductor in a layered earth — numerical results:
Geophysical Journal International, {\bf 69}, 55--66.
\newblock (\href{https://doi.org/10.1111/j.1365-246X.1982.tb04935.x}{doi:
10.1111/j.1365-246X.1982.tb04935.x}).
\bibitem[Davis et~al., 1980]{EXG.80.Davis}
Davis, P.~A., S.~A. Greenhalgh, and N.~P. Merrick, 1980, Resistivity sounding
computations with any array using a single digital filter: Exploration
Geophysics, {\bf 11}, 54--62.
\newblock (\href{https://doi.org/10.1071/EG980054}{doi: 10.1071/EG980054}).
\bibitem[Ghosh, 1970]{PhD.70.Ghosh}
Ghosh, D.~P., 1970, The application of linear filter theory to the direct
interpretation of geoelectrical resistivity measurements: {Ph.D. Thesis}, {TU
Delft}.
\newblock
(\href{http://resolver.tudelft.nl/uuid:88a568bb-ebee-4d7b-92df-6639b42da2b2}{uuid:
88a568bb-ebee-4d7b-92df-6639b42da2b2}).
\bibitem[Ghosh, 1971a]{GP.71.Ghosh}
--------, 1971a, The application of linear filter theory to the direct
interpretation of geoelectrical resistivity sounding measurements:
Geophysical Prospecting, {\bf 19}, 192--217.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1971.tb00593.x}{doi:
10.1111/j.1365-2478.1971.tb00593.x}).
\bibitem[Ghosh, 1971b]{GP.71.Ghoshb}
--------, 1971b, Inverse filter coefficients for the computation of apparent
resistivity standard curves for a horizontally stratified earth: Geophysical
Prospecting, {\bf 19}, 769--775.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1971.tb00915.x}{doi:
10.1111/j.1365-2478.1971.tb00915.x}).
\bibitem[Guptasarma, 1982]{GP.82.Guptasarma}
Guptasarma, D., 1982, Optimization of short digital linear filters for
increased accuracy: Geophysical Prospecting, {\bf 30}, 501--514.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1982.tb01320.x}{doi:
10.1111/j.1365-2478.1982.tb01320.x}).
\bibitem[Guptasarma and Singh, 1997]{GP.97.Guptasarma}
Guptasarma, D., and B. Singh, 1997, New digital linear filters for {H}ankel
{J}0 and {J}1 transforms: Geophysical Prospecting, {\bf 45}, 745--762.
\newblock (\href{https://doi.org/10.1046/j.1365-2478.1997.500292.x}{doi:
10.1046/j.1365-2478.1997.500292.x}).
\bibitem[Hunziker et~al., 2015]{GEO.15.Hunziker}
Hunziker, J., J. Thorbecke, and E. Slob, 2015, The electromagnetic response in
a layered vertical transverse isotropic medium: {A} new look at an old
problem: Geophysics, {\bf 80}, no. 1, F1--F18.
\newblock (\href{https://doi.org/10.1190/geo2013-0411.1}{doi:
10.1190/geo2013-0411.1}).
\bibitem[Johansen, 1975]{GP.75.Johansen}
Johansen, H.~K., 1975, An interactive computer/graphic-display-terminal system
for interpretation of resistivity soundings: Geophysical Prospecting, {\bf
23}, 449--458.
\newblock (\href{https://doi.org/10.1111/j.1365-2478.1975.tb01541.x}{doi:
10.1111/j.1365-2478.1975.tb01541.x}).