The f-k algorithm has been implemented in C++ as a plug-in module of the seismic signal database GEOPSY1.2. The Fourier transform is calculated with the FFTW package (Frigo and Steven (2005), www.fftw.org) which allows any arbitrary number of samples, not restricted to powers of two.
In this work and for the f-k method, we consider the semblance as the ratio of the array output over the spectral power. The search of the maximum of semblance is performed with a rough gridding of the plane
. The exact maximum is then refined within the eight cells that surround the cell with the highest value. A secondary grid is constructed with 16 cells inside the area delineated by the preceding 9 cells (8+1). The cell with the maximum semblance and its 8 surrounding cells delineate an area that it is 9/16 smaller than the original area. The process is repeated until reaching a sufficient precision. The search is performed in the wavenumber domain contrary to other implementations ( cap , Ohrnberger (2001)) which work in the slowness domain. The advantage of the wavenumber domain is that the size of the peaks are not varying with the frequency. Effectively, equations (1.2) and (1.3) show that the array output is the sum of the translated theoretical array responses of the most energetic waves, which do not decrease the size of the main peak. Consequently, in wavenumber domain, the maximum of semblance can be searched for all frequency bands with the same grid step. To not miss the true semblance maximum, the grid cell must be less than a half of
.
From the considerations of the preceding section, it is useless to search for peaks above
. Moreover, the velocity of the semblance peak must be consistent with physical limits of the Rayleigh or Love dispersion curves (section 3.1.5 on page
). Consequently when calculating the array output for a pair
, if the velocity corresponding to the wavenumber (
) and the current frequency is not between common limits (e.g.
m/s), a zero value is returned.