Artifacts were created by this method when the boundaries of the result of the divergence were not periodic. One way to solve this problem is to make mirror images of the input dip data. Mirroring, which is basically replicating and time reversing data, requires increasing the data size by a factor of four in 2D and a factor of eight in 3D. Another way that requires less memory, is to define a new gradient operator that is periodic.
A periodic gradient operator can most easily be explained with a one dimensional example. A non-periodic gradient operator differences all of the samples in a one dimensional array. The periodic gradient operator does the same but also it differences the first and last samples. In equation (3), the application of the divergence () with a periodic gradient operator outputs a periodic result that when Fourier transformed will better match the periodic denominator.
If we were to use the periodic gradient operator without mirrors in our formulation then in calculating the dip, we would need to know the dip from one side of the image to the other. This eliminates the periodic gradient as a solution to our problem in the x and y directions but not the t direction. In the t direction, where the gradient is one everywhere, we know the gradient from one end to the other. It is equal to the total time. As a result, we are using the periodic gradient operator in all three dimensions but only need mirrors in the x and y dimensions. This increases our data size by a factor of only four, rather than eight, even though it is in 3D.