The adjoint of extracting all the patches is adding them back.
Because of the overlaps, the adjoint is not the inverse.
In many applications, inverse patching is required;
i.e. patching things back together seamlessly.
This can be done with weighting functions.
You can have any weighting function you wish
and I will provide you
the patching reconstruction operator in
![]() |
(1) |
# 2-D make wall weights from window weights.
#
subroutine mkwallwt2( k1,k2, windwt, w1,w2, wallwt, n1,n2)
integer i1,i2, k1,k2, w1,w2, n1,n2
real windwt( w1,w2), wallwt( n1,n2)
call null( wallwt, n1*n2)
do i2= 1, k2 {
do i1= 1, k1 {
call patch2( 1,1, i1,i2, k1,k2, wallwt, n1,n2, _
windwt, w1,w2 )
}}
do i2= 1, n2 {
do i1= 1, n1 {
if( wallwt( i1,i2) != 0.)
wallwt( i1,i2) = 1. / wallwt( i1,i2)
}}
return; end
No matrices are needed to show that this method succeeds,
because data values are never mixed with one another.
An equation for any reconstructed data value as a function of the original value d and the weights wi
that hit d is
.Thus, our process is simply a ``partition of unity.''
To demonstrate the program, I made a random weighting function to use in each window with positive random numbers. (Zero-valued weights would be OK, but you would lose data there unless it was picked up by an overlapping window.) The general strategy allows use to use different weights in different windows. That flexibility adds clutter, however, so here we simply use the same weighting function in each window.
The operator
is called ``idempotent.''
The word ``idempotent'' means ``self-power,'' because
for any N, 0N=0 and 1N=1,
thus the numbers 0 and 1 share the property that raised
to any power they remain themselves.
Likewise, the patching reconstruction operator
multiplies every data value by either one or zero.
Figure 3 shows the result
obtained when a plane of identical constant values
is passed into the patching reconstruction operator
.The result is constant on the 2-axis, which confirms
that
there is adequate sampling on the 2-axis,
and although the weighting function is made of random numbers,
all trace of random numbers has disappeared from the output.
On the 1-axis the output is constant,
except for being zero in gaps,
because the windows do not overlap on the 1-axis.
idempatch
Figure 3 A plane of identical values passed through the idempotent patching reconstruction operator. Results are shown for the same parameters as Figure 2. | ![]() |