The main issue of this report is to analyze the difference between using causintold() and causintnew() . In the last report we used causintnew(), but earlier algorithms which perform similar operations with trimo() use causintold() Claerbout (1992).
Causal integration is defined as
The discrete version of this integral can be represented by the following matrix equation:(1) |
In terms of Z-transforms, causintnew() is represented by the bilinear transform
(2) |
(3) |
Both Equations have poles at Z = 1, corresponding to .Equation (2) has a zero at Z = -1 which is the Nyquist frequency . The result of putting the zero in the numerator of equation (2) is that causintnew() acts to low-pass filter the input signal more than causintold().
The net effect of modeling with causintnew(), including half-order differentiation can be represented in terms of Z-transform as multiplication by
(4) |
(5) |
Figure 1 illustrates the actions of causintold() and causintnew(). Triangles are created by integrating three spikes causally and then anticausally. The triangle created by double application of causintold() is plotted on the second line of Figure 1. It is sharper and narrower than the triangle created by double application of causintnew and displayed on the third line of Figure 1. The last two lines in Figure 1 are the result of the application of equations (5) and (4). The application of causintnew to implement equation (4) results in a smoother and broader phase shifted triangle.
The effect of using causintnew is to low-pass filter the result which is obtained by using causintold(). This effect is even more evident when the routines are used in conjunction with kfastaax() on synthetic data.
caus
Figure 1 The first line is the input to the double causal integration subroutine. Second and third lines are triangles created by applying double integration using causintold() and causintnew(). The fourth and fifth lines are the result of applying the half-order differential before double integration. The triangles created with causintold() are narrower and sharper than the ones created with causintnew(). |