With data like Figure 3,
rescaling traces to have equal energy would obviously be wrong.
The question is, ``How can we determine the proper scale factor?''
As we have seen, a superposition of N plane waves exactly
satisfies an N-th order (in
) difference equation.
Given a 2-D wave field,
we can find its PEF
by minimizing output power.
Then we ask the question,
could rescaling the traces give a lower output power?
To answer this, we set up an optimization goal:
Given the leveler (be it a cubic PEF or two planar ones),
find the best trace scales.
(After solving this,
we could return to re-estimate the leveler,
and iterate.)
To solve for the scales,
we need a subroutine that scales traces
and the only tricky part is that the adjoint should
bring us back to the space of scale factors.
This is done by scaletrace

Notice that to estimate scales,
the adjoint forms an inner product of the raw data
on the previously scaled data.
Let the operator implemented by scaletrace
be denoted by
,
which is mnemonic for ``data'' and for ``diagonal matrix,''
and let the vector of scale factors be denoted by
and
the leveler by
.
Now we consider the fitting goal
.
The trouble with this fitting goal is that the solution
is obviously
.
To avoid the trivial solution
,
we can choose from a variety of supplemental fitting goals.
One possibility is that for the
-th scale factor
we could add the fitting goal
.
Another possibility, perhaps better if some of the signals
have the opposite of the correct polarity,
is that the sum of the scales should be approximately unity.
I regret that time has not yet allowed me
to identify some interesting examples and work them through.