Figure 2 shows
radar
images of
Mt. Vesuvius
in Italy.
These images are made from backscatter
signals s1(t) and s2(t),
recorded along two satellite orbits 800 km high and 54 m apart.
The signals are very high frequency
(the radar wavelength being 2.7 cm).
They were Fourier transformed
and one multiplied by the complex conjugate of the other,
getting the product
.The product's amplitude and phase are shown in Figure 2.
Examining the data,
you can notice that where the signals are strongest (darkest on the left),
the phase (on the right)
is the most spatially consistent.
Pixel by pixel evaluation with the two frames in a movie program
shows that there are a few somewhat large local amplitudes
(clipped in Figure 2)
but because these generally have spatially consistent phase
I would not describe the data as containing noise bursts.
![]() |
To reduce the time needed for analysis and printing,
I reduced the data size two different ways,
by decimation and by local averaging,
as shown in Figure 3.
The decimation was to about 1 part in 9 on each axis,
and the local averaging was done in
windows
giving the same spatial resolution in each case.
The local averaging was done independently in the
plane of the real part and the plane of the imaginary part.
Putting them back together again showed that the phase
angle of the averaged data behaves much more consistently.
This adds evidence that the data is not troubled by noise bursts.
![]() |
From Figures 2 and 3
we see that contours of constant phase
appear to be contours of constant altitude;
this conclusion leads us to suppose that a study of radar theory
would lead us to a relation like Z=eih
where h is altitude (in units unknown to us nonspecialists).
Because the flat land away from the mountain is all at the same phase
(as is the altitude),
the distance as revealed by the phase does not represent
the distance from the ground to the satellite viewer.
We are accustomed to measuring altitude along a vertical line to a datum,
but here the distance seems to be measured
from the ground along a
angle from the vertical
to a datum at the satellite height.
Phase is a troublesome measurement because
we generally see it modulo
.Marching up the mountain we see the phase getting lighter and lighter
until it suddenly jumps to black which then continues to lighten
as we continue up the mountain to the next jump.
Let us undertake to compute the phase including
all of its jumps of
.Begin with a complex number Z representing
the complex-valued image at any location
in the (x,y)-plane.
![]() |
(68) | |
| (69) | ||
| (70) |
![]() |
(71) | |
| (72) |
| |
(73) |
We will be handling the differential equation as a difference equation
using an exact representation on the data mesh.
By working with the phase difference of neighboring data values,
we do not have to worry about phases greater than
module igrad2 { # 2-D gradient with adjoint, r= grad( p)
integer :: n1, n2
#%_init (n1, n2)
#%_lop ( p(n1, n2), r(n1,n2,2))
integer i,j
do i= 1, n1-1 {
do j= 1, n2-1 {
if( adj) {
p(i+1,j ) += r(i,j,1)
p(i ,j ) -= r(i,j,1)
p(i ,j+1) += r(i,j,2)
p(i ,j ) -= r(i,j,2)
}
else { r(i,j,1) += ( p(i+1,j) - p(i,j))
r(i,j,2) += ( p(i,j+1) - p(i,j))
}
}}
}
(except where phase jumps that much between mesh points).
Thus we solve (73)
with finite differences instead of differentials.
Module igrad2 is a linear operator for the difference
representation of the gradient operator.
#$=head1 NAME
#$
#$igrad2 - 2D gradient operator
#$
#$=head1 SYNOPSIS
#$
#$C<ierr=igrad2_init(n1,n2)>
#$
#$C<ierr=igrad2_lop(adj,add,xx,yy)>
#$
#$=head1 PARAMETERS
#$
#$=over 4
#$
#$=item n1,n2 - integer
#$
#$ dimensions of dataset
#$
#$=item adj,add,xx,yy -
#$
#$ standard operator interface
#$
#$=back
#$
#$=head1 DESCRIPTION
#$
#$ Calculate 2-D gradient
#$
#$=head1 SEE ALSO
#$
#$L<igrad1>
#$
#$=head1 LIBRARY
#$
#$B<geef90>
#$
#$=cut
#$
To do the least-squares fitting (73) we pass the igrad2 module to the Krylov subspace solver. (Other people might prepare a matrix and give it to Matlab.)
The difference equation representation of the fitting goal (73) is:
| |
(74) |
| (75) |
![]() |
(76) |
.