ADVANCES IN ELECTRONICS AND ELECTRON PHYSICS
VOLUME 85
EDITOR-IN-CHIEF
PETER W. HAWKES Centre National de la Recher...
82 downloads
779 Views
13MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ADVANCES IN ELECTRONICS AND ELECTRON PHYSICS
VOLUME 85
EDITOR-IN-CHIEF
PETER W. HAWKES Centre National de la Recherche ScientiJique Toulouse. France
ASSOCIATE EDITOR
BENJAMIN KAZAN Xerox Corporation Palo Alto Research Center Palo Alto, California
Advances in
Electronics and Electron Physics EDITEDBY
PETER W. HAWKES CEMESILaboratoire d’Optiqur Electronique du Centre National de la Recherche Scientifique Toulouse. France
VOLUME 85
ACADEMIC PRESS, INC. Harcourt Brace Jovanovich, Publishers Boston San Diego New York London Sydney Tokyo Toronto
This book is printed on acid-free paper. @
COPYRIGHT 0 1993 BY ACADEMIC PRESS, INC. ALLRIGHTSRESERVED. N O PART OF THIS PUBLICATION MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY ANY MEANS, ELECTRONIC OR MECHANICAL, INCLUDING PHOTOCOPY. RECORDING, OR ANY INFORMATION STORAGE AND RETRIEVAL SYSTEM. WITHOUT PERMISSION IN WRITING FROM THE PUBLISHER
ACADEMIC PRESS, INC. 1250 Sixth Avenue, San Diego. CA 92101-4311
United Kingdom Edition published by ACADEMIC PRESS LIMITED 24-28 Oval Road. London NWI 7 D X
LIBRARY OF CONGRESS CATALOG CARD NUMBER: 49-7504 ISSN 0065-2539 ISBN 0-12-014727-0 P R I N T E D IN THE UNITED STATES OF AMERICA
93 94
95 96 BC 9 8
I 6 5 4 3 2
1
CONTENTS
CONTRIBUTORS ............................................. PREFACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I. I1 . 111. IV . V. VI . VII .
Recent Developments in Kalman Filtering with Applications in Navigation HANS-JURGENHOTOP Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The New Generation of Navigation Systems . . . . . . . . . . . . . FilterTheory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . New Kalman Filter Formulations . . . . . . . . . . . . . . . . . . . . Review of the Backward Kalman Filter Theory . . . . . . . . . . . Application of the Kalman Filter in Navigation . . . . . . . . . . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii IX
1 2 16 25 49 53 70 71 71
Recent Advances in 3D Display D . P . HUIJSMANS AND G . J . JENSE Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Representation Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . Voxel-Based Display Methods . . . . . . . . . . . . . . . . . . . . . . . Spatial Selection and Division . . . . . . . . . . . . . . . . . . . . . . . Hardware Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78 95 113 147 159 177 221 224 225
Applications of Group Theory to Electron Optics Yu LI I . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I1 . M function and Its Symmetry Group . . . . . . . . . . . . . . . . . . 111. Applications to Electrostatic Multipoles . . . . . . . . . . . . . . . .
231 233 241
I. I1 . 111.
IV . V. VI . VII .
v1
CONTENTS
IV . Applications to Magnetostatic Multipoles . . . . . . . . . . . . . . . V . A General Method for Deriving Constraint Relations . . . . . . Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245 251 256 257
Parallel Programming and Cray Computers R . H . PERROTT I . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I1. Approaches to Parallel Programming . . . . . . . . . . . . . . . . . . 111. Implicit Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV . Explicit Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V. Cray Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI . Parallel Computing Forum . . . . . . . . . . . . . . . . . . . . . . . . . VII . Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliography. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INDEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
259 261 263 265 271 297 299 300 300 303
CONTRIBUTORS Numbers in parentheses indicate the pages on which the authors’ contributions begin.
HANS-JURGEN HOTOP ( l ) , Fachhochschule Hamburg, Fachbereich Electrotechnik/Informatik, D-2000 Hamburg, Germany D. P. HUIJSMANS(77), Computer Science Department, University of Leiden, PO Box 9512, 2300 RA Leiden, The Netherlands G. J. JENSE(77), Institute for Applied Computer Science, TNO (ITI), PO Box 6032, 2600 JA Delft, The Netherlands YU LI (231), Research Section of Applied Physics, PO Box 251, Shanghai Institute of Mechanical Engineering, Shanghai 200093, China R. H. PERROTT(259), Department of Computer Science, Queen’s University, Belfast BT7 lNN, United Kingdom
vii
This Page Intentionally Left Blank
PREFACE The four chapters that make up this volume cover a range of subjects, though none is really a newcomer to the series. We begin with an account of new developments in recursive filters of the Kalman type. With increased computing power, new versions have been developed and H.-J. Hotop shows how these have grown out of the earlier formulations. The applications in the domain of navigation are explored in detail, and this will surely be of interest to many who are not specialists in this field, for aircraft navigation affects almost all of us. The bulk of this volume is occupied by a very full and scholarly account of advances in three-dimensional display. The authors, D. P. Huijsmans and G. J. Jense, have written a monograph on the subject that covers virtually all the various possible techniques, including their theory and implementation; it is abundantly illustrated. The range of fields in which 3-D display is needed is extremely wide, ranging from medicine to geology, with several types of microscopy in between, and I have no doubt that readers from many of these fields will be grateful for so careful a survey. Next, we have a short chapter by Yu Li on the use of group theoretical reasoning in electron optics. This is a relatively new approach in this subject and I hope that this succinct account will generate further developments. We end with a chapter that has an interesting history. Some years ago, I read a plea by R. H. Perrott for urgent consideration of the language to be adopted for the parallel computers which were then relatively new. I invited him to present his ideas at greater length in these Advances, but as time has passed, the theme of his chapter has evolved and we now have not only a general discussion of programming for such computers, but also a detailed examination of a particular system, the Cray computer family. It only remains for me to the thank most warmly all the contributors and to encourage anyone who is contemplating preparing a survey on one of the themes covered by this series to get in touch with me. A list of forthcoming reviews follows.
FORTHCOMING ARTICLES J . B. Abbiss and Neural networks and image processing M. A. Fiddy H. H. Arsenault Image processing with signal-dependent noise Parallel detection P. E. Batson ix
X
PREFACE
Microscopic imaging with mass-selected secondary ions Magnetic reconnection Sampling theory ODE methods Interference effects in mesoscopic structures Integer sinusoidal transforms The artificial visual system concept Dynamic RAM technology in GaAs Minimax algebra and its applications Corrected lenses for charged particles Data structures for image processing in C The development of electron microscopy in Italy Electron crystallography of organic compounds The study of dynamic phenomena in solids using field emission Gabor filters and texture analysis Amorphous semiconductors Median filters Bayesian image analysis Non-contact scanning force microscopy with applications to magnetic imaging Theory of morphological operators Noise as an indicator of reliability in electronic devices Applications of speech recognition technology Spin-polarized SEM Fractal signal analysis using mathematical morphology Expert systems for image processing Electronic tools in parapsychology Image formation in STEM Phase-space treatment of photon beams Fuzzy tools for image analysis Z-contrast in materials science Electron scattering and nuclear structure Edge detection The wave-particle dualism
M. T. Bernius A. Bratenahl and P. J. Baum J. L. Brown J. C. Butcher M. Cahay W. K. Cham J. M. Coggins J. A. Cooper R. A. CuninghameGreen R. L. Dalglish M. R. Dobie and P. H. Lewis G. Donelli D. L. Dorset M. Drechsler
J. M. H. Du Buf W. Fuhs N. C. Gallagher and E. Coyle S. and D. Geman U. Hartmann H. J. A. M. Heijmans B. K. Jones H. R. Kirby K. Koike P. Maragos T. Matsuyama R. L. Morris C . Mory and C. Colliex G. Nemes S. K. Pal S . J. Pennycook G. A. Peterson M. Petrou H. Rauch
PREFACE
Electrostatic lenses Scientific work of Reinhold Riidenberg Metaplectic methods and image processing X-ray microscopy Accelerator mass spectroscopy Applications of mathematical morphology Focus-deflection systems and their applications The suprenum project Knowledge-based vision Electron gun optics Spin-polarized SEM Cathode-ray tube projection TV systems n-Beam dynamical calculations Parallel imaging processing methodologies Parasitic aberrations and machining tolerances Signal description The Aharonov-Casher effect
xi
F. H. Read and I. W. Drummond H. G. Rudenberg W. Schempp G. Schmahl J. P. F. Sellschop J. Serra T. Soma 0. Trottenberg J. K. Tsotsos Y . Uchikawa T. R. van Zandt and R. Browning L. Vriens, T. G. Spanjer and R. Raue K. Watanabe S. Yalamanchili M. I. Yavor A. Zayezdny and I. Druckmann A. Zeilinger, E. Rase1 and H. Weinfurter
This Page Intentionally Left Blank
ADVANCES IN ELECTRONICS A N D FI.EC7RON PHYSICS. VOL 85
Recent Developments in Kalman Filtering with Applications in Navigation HANS-JURGEN HOTOP*
.
.
Fachhochschule Hamburg Fachhereirh Elekrroteehnikllnformatik Hamburg. Germany
. . . . . .
I . Introduction . . . . . . . . . . . . . . . . . . . . I1 . The New Generation of Navigation Systems . . . . . . . A . Inertial Navigation . . . . . . . . . . . . . . . . B. Radio Navigation . . . . . . . . . . . . . . . . C . Error Models for the Navigation Systems . . . . . . . I11. Filter Theory . . . . . . . . . . . . . . . . . . . A . The Conventional Kalman Filter Theory . . . . . . . B. The Discrete Kalman-Bucy Filter . . . . . . . . . . C . Square-Root Formulations of the Kalman Filter Algorithm D . Other Kalman Filter Algorithms . . . . . . . . . . . IV . New Kalman Filter Formulations. . . . . . . . . . . . A . Motivation . . . . . . . . . . . . . . . . . . . B. Application of Orthogonal Transformations . . . . . . C . New Formulation of the Kalman Filter Prediction . . . . D . New Formulation of the Kalmdn Filter Update . . . . . E . Review of a New Kalman Filter Algorithm . . . . . . . V . Review of the Backward Kalman Filter Theory . . . . . . A . New Formulation of the Backward Kalman Filter . . . . B. Review of the Backward Kalman Filter . . . . . . . . VI . Application of the Kalman Filter in Navigation . . . . . . A . Establishing a Simulation . . . . . . . . . . . . . B. Simulation Data Results . . . . . . . . . . . . . . C . Presenting the Data of a Flight Test . . . . . . . . . D . Flight Test Data Results . . . . . . . . . . . . . . V11. Summary . . . . . . . . . . . . . . . . . . . . . Acknowledgments. . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . . . . . . . .
. . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2 2 10 11 16 17 19 22 24 25 25 26 34 36 47 49 50 52 53 57 61 65 66 70 71 71
1 . INTRODUCTION In recent years the Kalman filter technique has been used for more and more different applications. as for example the speech parameter estimation * This material is based on the authors work at the Deutsche Forschungsanstalt fur Luftund Raumfahrt ( D L R ) 1
Copyright
(
1993 by Acddemlc Press. lnc
All rights of reproduction in any form reserved ISBN 0-12-014727.0
2
HANS-JURGEN HOTOP
(Asmuth and Gibson, 1984), image processing (Biemond and Plompen, 1983; Kaufman er al., 1983), traffic control (Okutani and Stephanedes, 1984), control of turbines (Sasiadek and Kwok, 1983), tracking problems (Kolodziej and Mohler, 1984; Ramachandra, 1984), etc.. Analogous to the evolution of physical applications, the new generation of computers has increased the number of new algorithms of the Kalman filter, too. Although many of these new formulations are nearly equivalent, the development of algorithms points in the direction of more numerical stability. Here a part of different Kalman filter algorithms is outlined and will be studied with regard to their computer time usage and numerical stability. A new Kalman filter algorithm is presented and the advantage over the conventional formulations is discussed. The basic application of Kalman filter technique is the support of inertial navigation systems. A short introduction to inertial navigation, radio navigation and the combination of these systems shall explain the problems and examination of the development of new Kalman filter algorithm. The comparison of the various Kalman filter formulations is presented by the evaluation of a highly accurate reference path and inertial navigation data for aircraft usage. In this case simulation as well as real flight data for the support of inertial navigation systems by radar data are utilized.
11. THENEWGENERATION OF NAVIGATION SYSTEMS
This section shall describe the application of the Kalman filter with regard to the support of inertial navigation systems. As the main intention is to present new Kalman filter techniques, only a short introduction to the main principles of the different navigation systems for aircraft is outlined. A . Inertial Navigation
An inertial navigation system contains two principal parts of hardware components: accelerometers and gyros. These instruments measure the translational and rotational motions of the body. An accelerometer in its simplest form (see Fig. 1) is a mass balanced on two spring forces and can be used to measure the translational motion of a body in only one direction. The problems of manufacturing such a sensor have been solved and a lot of highperformance accelerometers with bias errors of less than lop5g have been built. To measure the translational motion of a body in the three-dimensional coordinate frame, a so-called acceleration-triad is needed with three
RECENT DEVELOPMENTS IN KALMAN FILTERING
3
+
FIGURE I . Principle of a simple accelerometer
accelerometers sensing along orthogonal axes. The main problem of the accelerometer installed in an aircraft is the influence of the earth gravity field and, specifically, how to align the triad always orthogonal to the earth coordinate frame, which means with one axis parallel to the gravity vector (g). As the earth is rotating the effects of coriolis and centrifugal acceleration are measured by the accelerometers too. In the z-axis, pointing to the earth center, these effects of earth and transport rate are negligible because the accelerometer senses mainly the g-vector of 9.8 1 m/s'. With the g-vector the accelerometer triad is aligned orthogonal to the earth coordinate frame. Therefore, on the ground and before the start the maximum acceleration direction is measured and the z-axis of the accelerometer cross is moved in the direction of the maximum acceleration. Otherwise, if the triad is fixed, the evaluated data of the g-vector in all three directions of the accelerometer cross are stored in the navigation computer and can provide the elements of the corresponding transformation matrix. The interesting data for navigation purposes are normally the position and the velocity. With the laws of Newton it is well known that the acceleration is equal to the first derivate of the velocity and the second derivate of the position. On the ground, after the acceleration cross is aligned, this situation is uncomplicated, but if the aircraft is moving, other sensors must provide the angles between the measured signals in the aircraft (body) coordinate frame and the navigation coordinate frame. Therefore a navigation system requires three gyros in addition to the accelerometers. Let us assume that the data of the gyros are present, then the accelerometer data have to be transformed from the aircraft coordinate frame to the earth coordinate frame by a transformation matrix Cnh ( h =body to n =geographical) or all hardware components have to be mounted on a gimbal platform (see later), which is stabilized by the gyros. Therefore
4
HANS-JURCEN HOTOP
two different navigation equations hold true: for the platform system, i, = a, - ( 2 . 4 + w T ) x v, +g,
(1)
and for the fixedly mounted accelerometers,
v,=C,h'ah-(2*w,"+f&)
xv,+g,
(2)
The indices are defined as follows: n, navigational; i, inertial; e , earth-fixed; and b body-fixed coordinates. The vector v is the velocity, w the rotation rate, a the acceleration and g, the g-vector containing the gravitation and centrifugal acceleration of the earth g, = G - w," x (w: x
S,)
(3) with S, as the position vector. The term (2 W: w f f ) x v, is well known as the coriolis acceleration. To calculate the velocity, the preceding equation has to be integrated by additionally compensating the g-vector as well as the coriolis vector. The position vector in the earth geographical frame is evaluated by integrating the velocity vector components. The other measurement components of an inertial navigation system are the gyros. A lot of different gyro types are available, but they are basically composed of two parts: the mechanical and the optical rate sensors. A mechanical gyro is basically a rotor whose axis is fixed in a gimbal element (see Fig. 2). If a torque vector or angular rate vector is applied to the gyro, the response vector is orthogonal to both the applied vector and the angular momentum vector. The sense axis points in the direction that would take the momentum vector by the shortest way towards the applied vector. To measure the angular rate a pickoff at one side of the gyro element gimbal senses the rotation and at the other side a torque generator applies the
+
Gyro Element Gimbal
Output A x i s , 0 ;
Rotor Drive
1
H, Spin A x i s , 5
Input A x i s , I ;
FIGURE 2. Principles of a gyro.
RECENT DEVELOPMENTS IN KALMAN FILTERING
5
negative rotation to the gyro element. The sensed data are integrated step by step and supply the angular rate of the gyro. The main problem of a gyro is its drift due to factorisation errors such as unbalance, anisoelasticity, motor hunting, etc. (Stieler and Winter, 1982; Wrigley, Hollister, and Denhard, 1969). For minimal sensor errors, the gyros are built for special applications, and the accuracy is specified mainly by the drift factor per hour. For navigation purposes gyros are needed with a drift less than O.l‘/h for attitude and heading systems and less than 0.0lC/h for real navigation systems. The mechanical differences of these gyros are the bearings for the rotor, which can be gas or balls. Other differences are the number of gimbals and that implies one or two measurement axes. Optical gyros are divided into two different types: the laser gyros and the fiber gyros. The physical principle of both gyros is based on the “Sagnac” effect. Here two light beams travel in opposite directions in a closed loop and are influenced by the rotation around the axis normal to the optical ring. This main principle is seen in Fig. 3, where M 2 and M 3 are mirrors, LS is the laser tube, M I is a partially transmitting mirror, p is a prism and SC is a screen. The light beams I and I I are added together and their interference pattern can be observed on the screen. If the whole gyro is rotated, the interference pattern moves and the number of fringes that pass can be measured by the photo detector. The whole optical part of the gyro is built around a Cervit or Zerodur block, while inside the block a tube is drilled for the beam. The differences between the several ring laser gyros are the number of mirrors (three or four) and the diameter of the circular path. In general the perimeter of the gyros is between 20cm and 40cm. These gyros show no
FIGURE
3 . Principles of a laser gyro
6
HANS-JURGEN HOTOP
errors due to the dynamic environment, which is the main advantage in contrast to the mechanical gyros. But the laser gyro cannot detect low frequencies of rotation, the reason being the so-called 'lock in' effect (Rodloff, 1981; 1987; Aronowitz, 1971). This effect is regarded by any two weakly coupled oscillators with neighbouring natural frequencies, and if they are excited near the natural frequency, they oscillate in the same time period. A mechanical dithering of the gyro or special magnetic mirrors prevent these errors. Many of the factorized laser gyros use the mechanical dither, where between case and gyro a torsion spring produces angular vibrations with different frequencies. In the readout electronic these vibrations have to be compensated. Figure 4 shows the Honeywell laser gyro GD4003, which is used in Honeywell navigation systems. In the center of the gyro the dither mechanism can be seen and unlike the principles drawing of Fig. 3, the laser tube is inside the whole triangle tube with its cathode and anode. The drift error of such a laser gyro for navigation purposes must be less than 0.01"/h, although normally the gyros produce 0.001 "/h. The other optical gyro used for navigation systems is the fiber gyro, which works on the same principle as the laser gyro except that the light beams are inside a fibre circuit that is wrapped around a coil. However, for highly accurate rotation measurements, these sensors are not applicable. Otherwise, the production of a fiber gyro is cheaper than a laser gyro.
FIGURE 4. The Honeywell laser gyro GD4003.
RECENT DEVELOPMENTS IN KALMAN FILTERING
7
Commercial navigation systems using optical gyros are equipped with laser gyros. These two hardware components, accelerometers and gyros, are the basis of a navigation system. In the past the first navigation systems were platform systems. The principle is demonstrated by the schematic view in Fig. 5. On the middle platform three gyros and three accelerometers are mounted in orthogonal directions. This platform is decoupled from the angular motion of the vehicle, which means, it is base-motion isolated. The stabilization of the platform is realized by the gyros. For example, if a rotation around one axis is sensed by a gyro, the signal is measured by the pickoff and transmitted to the associated gimbal servo motor. This is called the servo-loop. The signal of the angle is measured by the resolver on the same gimbal. The platform with the gyros and accelerometers itself keeps its orientation to the inertial space and therefore it moves with reference to the ground one time in 24hours in a direction opposite to the earth’s rotation. These errors as well as the drift and acceleration errors have to be compensated by a computer program. A picture of one of the first platform systems, the “LN-3A” of Litton Industries is shown in Fig. 6. The advantages of the platform system is a nearly total isolation from the vibrations of the aircraft, because the gyros sense only small rotation rates. However, a sophisticated mechanisation is necessary for the factorisation of the gimbal platform, as seen in Fig. 6. As a supplement, the rotation rate and the accelerations in the aircraft body axes etc. must be measured by an additional gyro and acceleration cross. Therefore a new generation of inertial navigation systems has been designed. The idea is to put the gyros and accelerometers parallel to the NA, EA,VA
North, East, Vertical Accelerometer
N G, EG, VG
North, East, Vertical Gyro
R R , PR. YR, AR
Roll, Pitch, Yaw, Auxiliari Resolvei
SM
Gimbal Servo Motors
P
Platform
OG
Former Outer Gimbal
OG’
Obter Gimbal
Roll Axis IG Yaw Axis
-
-
FIGURE 5. Schematic view of a gimbal platform.
Inner Gimbal
8
HANS-JURGEN HOTOP
FIGURE 6 . The inertial measurement unit of the platform navigation system Litton LN-3A.
aircraft’s body axis and to transfer the hardware gimbal platform mechanisation into an analysis, which has to be evaluated in a computer. The main problems for these “strapdown systems” are in the beginning a decreased accuracy of the navigation and an extremely wide scale region for the measured rotation rate. For this mechanisation all the rotations of the aircraft have to be measured directly - not in parts as described by the platform system - and the vibrations of the aircraft are detected as well. Only the laser gyros survey such a wide region of rotation rate with the required high accuracy. The accelerometers cause no problem. The functional diagram of a strapdown navigation system is outlined in Fig. 7. As can be seen, the main work is done by the computer. What is important, is the calculation of the transformation matrix Crib, which transforms all data from the aircraft body coordinate frame into the geographical coordinate frame. The elements of this matrix are evaluated by using the theory of quaternions. The advantage of the strapdown system is that it delivers additional data useful for the flight guidance of an aircraft. Nevertheless the navigation accuracy is comparable to that of platform systems, which is about 1 nm/h (nautical miles per hour) for a standard navigation system.
9
10
HANS-JURGEN HOTOP
The main advantages of all inertial navigation systems are independence from ground information and the provision of additional information useful for aircraft guidance.
B. Radio Navigation Radio navigation is the most common and well-known navigation aid for aircraft and ships. The navigation information is based on the amplitude, frequency or phase angle of the transmitted radio signals. These systems measure the orientation with reference to a ground station by calculating the distance or the angle. The main radio navigation systems for aircraft are NDB/ADF (nondirectional beacon/automatic direction finder), VOR (VHF omnidirectional radio range), DME (distance measuring equipment), TACAN (tactical air navigation system), LORAN (long range navigation) and GPS (global positioning system). All radio navigation systems with the exception of the LORAN and GPS have a range of about 200 nm. NDB/ADF and VOR are systems that produce angle information, so the pilot gets the angle of the aircraft with reference to the ground station. To get a position information two systems are needed and the intersection gives the position sought for. While the NDB/ADF works on 200-1700 kHz and VOR on 108- 1 18 MHz the DME and TACAN use frequencies between 960MHz and 1215MHz. The DME measures the direct distance to a ground station in nm (nautical miles). In this case the pilot knows only the radial distance to the station and the information of two stations is generally not sufficient because two arcs have two crossing points. Therefore more DME stations must be used to give proper position information. A so-called multi-DME receives data from all DME stations around the present position and calculates the position of the aircraft by additionally eliminating the errors of the utilized signals, if sufficient stations are present. On the other hand the pilot often combines the navigation information of a VOR and a DME, because these ground stations are at many places at the same position. The navigation aid TACAN used to produce informations only for military purposes, but nowadays it is combined with a VOR and is called VORTAC. Analogously to VOR/DME, this system evaluates a radial and an angle to the transmitting ground station. The LORAN navigation system works on 1750-1950 kHz and is utilized especially by mariners and transocean flights, because the stations are located near the coast. A master station and two slave stations transmit the same frequency, and by regarding the time differences, two hyperbolic lines of position can be crossed and give the user position. The accuracy of all these depicted radio navigation systems depends on the distance between the transmitter and the receiver and can reach 200m.
RECENT DEVELOPMENTS IN KALMAN FILTERING
11
The newest radio navigation system is the satellite-based GPS, which is composed of three parts: the space, the control and the user segment. Eighteen satellites form the space segment to warrant the reception of a minimum of four pieces of satellite information. Currently 16 satellites are in space and therefore the GPS information is available nearly all times a day. The satellites move on Kepler paths around the earth, and the path parameters are measured by the ground stations. The information of the control segment is sent to the satellites, so the user receives this coded information in addition to the time at which the signal is transmitted. The user segment contains a microwave receiver, a high-precision time base and a computer for calculating the position from these signals. The computation program contains mostly a Kalman filter for the evaluation of the present position of the receiver out of the satellite data. The accuracy for the GPS is less than lOcm for stationary operation and about 50 m for a manoeuvering basis. Some GPS receivers are on the market but, due to the missing satellites in orbit in the past, the first receivers are used only for testing or stationary operations (Hurrass, 1988; Schanzer, 1989). In aircraft the GPS information is influenced by the switching between the satellites and the signal cutoff during roll manoeuvers.
C . Error Models f o r the Navigation Systems Combining the signals of the two navigation types, the following becomes evident: Inertial navigation system errors increase with time, while the errors of the radio navigation systems are determined by the position. As regards time, an inertial navigation system has a small error for short flight duration and a large error for long flights. This can be seen by the accuracy information of l nm/h, which becomes 10nm position error after a 10h flight, for example from Frankfurt (West Germany) to New York (United States). To reduce these errors the two kinds of system information have to be merged. To do this, a good description of the errors of both systems is needed. As the inertial navigation system delivers a lot of signals for aircraft flight guidance, the errors of all these signals have to be calculated using the radio navigation data as support information. Here the error model of an inertial navigation system is outlined. This is nearly independent of the kind of inertial navigation (platform or strapdown). The only difference is the additional transformation with the matrix Crib. For navigation purposes the following three error parts are of interest: angle, velocity and position errors. The angle error equation has to be evaluated from the transformation equation
12
HANS-JURGEN HOTOP
which represents the relation between the navigation and body coordinate frame. Differentiating this equation leads to in= Crib * Vb
+ Crib + Cbn . Crib *
Vb
= Crib * [Vb
(5) 'Vb]
By multiplying this equation with C,-d = Cbn - because matrix that implies C,-d = CTb = Cbn - it follows,
Crib is a rotation
+
c h n ' Vn = Vb C b n ' Crib ' vb (6) The last term on the right-hand side of this equation produces the errors of the transformation, especially the errors of the measured angles relative to the rotation rates. This term can be written in the following form
Chn* Crib ' vb = wbnb x vb = @ ' vb
(7) where wZb is the rotation rates in the rotating body coordinate frame with respect to the navigation coordinate frame, which means
.
These equations yield the matrix differential equation Crib = Cnb s2Zb and the error equation with respect to the angle errors is evaluated in= M,,
t,,
+ M,,
6vn
+ M,s - 6Sn - Crib
6wt
(9) with the angle error t n ,the velocity error Sv,, the position error SS, and the drift error w:
tn=
*
*
[z] [s] 6vn=
6Sn=
[2]
w:=
[;;]
(10)
( N = north, E = east, D = down). The drift error part is multiplied by the transformation matrix only for strapdown error evaluation. Defining cp as the latitude, A as the longitude, wo= 15"/h as the earth rotation and E as the earth radius (calculating with respect to the reference ellipsoid), the matrices M can be evaluated with the definition CY
-
= wo sin cp
p=wo-coscp tan cp y=E
RECENT DEVELOPMENTS IN KALMAN FILTERING
13
as follows
-wO sin cp Mrs
0
=
-,L-
E - C O2 S ~p
-7
0
Analogously to the angle errors the velocity errors are evaluated by linearising the navigation Eq. ( I ) : sV,, zz bcnb
-
.ah + Cnh hah
( 2 * w;
-
( 2 . SW;
+
x v,
SW;)
(15)
+ w?) x sv, + sg,
and this can be remodeled to a similar equation as described for the angle error Sv,
=
M,,,
- en + M,,,,- Sv, + Mus- bS,
-
-
Crib 6ab
(16)
Finally, the position error has to be calculated using the equation bS, = R-' bv,. Putting all the results together, the error model of an inertial navigation system can be established. As explained previously, the vertical velocity as well as the height are incorrect, because of influences of the variation of the gravity field. In addition, the great value of the gravity vector leads to an inaccuracy of the measured vertical acceleration. The vertical velocity and height are the results of the integrated acceleration and are therefore characterized by significant errors. Thus the vertical axis of the navigation part is continuously supported by the barometric height, calculated by the air data computer. Therefore the system error model is formulated only for the horizontal axes and a separate error model exists for the vertical axis. For supporting the position data of a navigation system only the horizontal error model is significant and is described here while the
.
14
HANS-JURGEN HOTOP
other model can be found in the literature (Hotop, 1989; Lohl, 1982; Stieler and Winter, 1982). Using the Eqs. (11) as an abbreviation for the error model evaluation, one can additionally define VE
C=a+vE.y
K = p +
E*
C O S cp ~
Together with these abbreviations the error model is given in a vectormatrix formulation:
0 1 E
--
0 ...
-
1 E
a
0
0
0
0
-7
--K
0
...
0
-aD
aE
aD
0
-aN
...
3
-2.C
E a+C
P
0
1
0
0
0
T
O
0 ..
0
E 0
..
-E ...
... 1 -
I
E.
cOS
9
0
0
...
..
0
0
This differential equation describes the error behaviour of the horizontal axes of an inertial navigation system. The vertical error description is based on the error model of the barometric height, which can be evaluated by partial differentiating the barometric height formula. The errors of radio navigation systems are very different and depend on
15
RECENT DEVELOPMENTS IN KALMAN FILTERING
the receiver in the aircraft as well as on the transmitter on the ground. Other effects, such as for example the intensity of the signal and the distance to the ground station are information that influences radio navigation accuracy. With this information as well as the geometry and the electromagnetic influence, the accuracy data can be calculated with the probability theory. Some equipments, especially the GPS, evaluate the stochastical data for the measured position, for example the covariance and correlation coefficient, which may be useful when combing with inertial navigation systems. Because such accuracy information is very different, the actual value for the radio navigation system used in the present has to be adapted before applying it as support data. But it is not reasonable to evaluate all these errors with different error models. For a first comparison between these two different navigation systems inertial versus radio navigation - Figs. 8 and 9 show the position error of an inertial navigation system and the stochastical characteristic of radar measurements for real flight data. In the first figure the smoothed curve indicates a minimum of stochastical behaviour, but the maximum error is about 1.5 km after 60min, which corresponds to the accuracy of a good inertial navigation system. The second figure outlines the errors of a radio navigation system, especially a radar, which represents very accurate radio navigation systems. Deterministic errors of these systems are very small, only the distance error can be observed. At about 40min after takeoff the error increases and at this time the distance between the aircraft and the radar station reaches a maximum. The stochastical errors of about f 5 m
8
28
40
tiiw
-
60
.In
FIGURE 8. Typical east position error of an inertial navigation system during a flight.
88
16
HANS-JU RGEN HOTOP
+ I
lee
5
m
e
-
.
,-
*.
I
t
-im
I
t
I
1
characterize a good radio navigation system. Noise values of other radio navigation systems, except the GPS, are normally higher.
111. FILTER THEORY
For merging the signals of an inertial navigation system with those of a radio navigation system, a lot of mathematical algorithms can be used. The main problem is how to reduce the noise of the signals, especially the high noise of the radio navigation system. In this case one can use digital filtering, based on the theory of differential equations. A digital filter equation is developed as the solution of a differential equation primary in the form i+,.X+b*x+c
=y
(19)
or the derivation of y on the right-hand side. The solution of such an equation in form of a difference-equation can be calculated with the Laplace-transformation and the Z-transformation or in a simple form with the differential quotient. All evaluations lead to the following expression:
The coefficients a, p, 7, 6 depend on the coefficients of the differential equation as well as on the solution method. With this method the signals of the input y , can be smoothed, but cannot
RECENT DEVELOPMENTS IN KALMAN FILTERING
17
be combined. If one uses this equation for filtering the signals of the radio navigation system, only the position errors of the inertial navigation system can be evaluated and subtracted. If there are no radio navigation signals, because of cutoffs, then the error of the position increases analogously to the error equation of the inertial navigation position. Such a sawtooth graph for the position error cannot be accepted. and moreover, the errors of the accelerations, velocities and angles cannot be calculated exactly. So, this method is inadequate for solving the given problem. Looking further in the probability theory, the next method for this problem is regression. In its multiple-dimensional form the errors are described in a matrix-vector equation: ~ = A . x + u (21) where x is the unknown vector to be calculated, y is the input vector and u is a random error characterising nonmodelled system parameters. The solution of this equation is well known as the pseudo-inverse matrix. The following formulation solves the equation:
This solution must normally meet the requirements for the regression method, which means that the distribution is Gaussian and the matrix A must be well known and describe the problem almost exactly. For our problem with the inertial navigation, the matrix A models the errors of the inertial navigation system, and if the radio navigation is present, the errors can be calculated with the regression analysis. On the other hand the errors and the random process of the radio navigation are not taken into account. T o utilize all this information, the theory of Kalman filter should be applied. A . The Coriventionul Kulmun Filter Theory
Here, the so-called Kalman-Bucy Filter (Kalman, 1960; Kalman and Bucy, 1961) is generally named the Kulmunfilrer (or convenlional Kulmun,filrer),as is standard in many papers. The following stochastic process x(t) is given: X(t) = F ( t ) .x(r) z(t) = y(r)
+ G ( r )-u(r)
+ v(r) = H ( r ) .x(t) + ~ ( t )
(23) (24)
These definitions include 0 0
a vector ~ ( t )as system state vector (e.g., the INS errors) with n components, a vector z ( t ) as measurement vector (e.g., radio navigation measurements) of m components with m 5 n,
18
0 0
HANS-JURGEN HOTOP
a matrix F ( t ) as n x n matrix, a matrix G ( t ) as n x p matrix ( p 5 n), a matrix H ( t ) as m x n matrix and random vectors ~ ( t and ) ~ ( t as ) vectors with p or m components.
The vectors u ( t ) and v(t) should be independent stationary processes with constant spectral density; which means the probability has “white noise.” ) v(t) are random vectors with zero mean value, it Since the processes ~ ( tand follows E [ u ( t ) ]= E[v(z)]= 0
(25)
The covariances, or to be more precise the covariance matrices, for all t and T of the definition interval, can be set:
cov [ ~ ( t ) ,u(T)]= Q ( t ) * 6 ( t- T )
(26)
cov[v(t), v(T)] = R ( t ) - S ( t - T )
(27)
V(T)]= 0
(28)
COV[U(t),
6 is the dirac delta function, Q ( t ) and R ( t ) are symmetrical nonnegative matrices, differentiable in t. The differential equation of the linear dynamic system and the continuous function describe the physical system. F ( t ) should be transformed into the discrete matrix @ ( k 1; k ) , k = 0, I , 2 , 3 , . . . with k = k At for a time interval At, because the input signals of such physical processes are discrete values. This matrix is often referred to as a transition matrix and can be described by evaluating the differential equation. A solution is an integral equation:
+
-
The matrix @ ( t ; t o ) is nonsingular and it follows for to 2 t l 1 t2 1 0 and with I as the unit matrix (Coddington and Levinson, 1955):
If the solution is regarded for a small time interval, the assumption can be made that the physical system matrix F ( t ) is independent from time and therefore F is a constant matrix. In this case the solution of the differential
RECENT DEVELOPMENTS IN KALMAN FILTERING
19
equation is much simpler:
Because this solution holds only true, if the time interval is very small, the e-function can be expanded by Taylor into a series:
and with a linear approximation the equation has the form @(ti to) x I + F A t (33) For each time interval A t , the elements of the physical matrix F change analogously to the measured data. In addition, this formulation is particularly suitable for applications in the computer. The theory behind these explanations is the theory of linear dynamic systems. With the solution of the differential equation in the preceding form the equation of the stochastic process now becomes the discrete form
(34) with u h as an independent Gauss stochastic process of zero mean value. Similarly, the measurement vector z k can be calculated by the measurement equation for a fixed discrete time point k = k A t : 1:
Xk+l
k).Xk+Uk,
-
Zk = H k
+ Vk
(35) As indicated, v k should be an independent Gauss stochastical process with zero mean value. For both random vectors u k and v k the covariance is given in Eqs. (26) to (28). For the application in navigation the mathematical error model, shown in Eq. (18), can be used here. The state vector x k and the matrix F are those lined out in the Eq. (18). So, to construct the transition matrix 9,only the value 1 must be inserted in the main diagonal or added to those diagonal values. The measurement vector z k is normally for the support of inertial navigation systems by radio navigation data - a two-dimensional vector and contains only the horizontal position values. The measurement matrix H k has only standard values in the main diagonal, corresponding to the position elements. If the supporting system supplies additional data, for example the horizontal velocities, the dimension of the measurement vector increases. *
Xk
-
B. The Discrete Kulmun- Bury Filter The idea of the Kalman filter is to minimize the expected value of the quadratic error between the state variable and an estimation vector, which
20
HANS-JURGEN HOTOP
means E[llxk
- xk-l,k112] = z i y E I I I X k -
%?1l21
(36)
with
T = (21%is a linear estimation of x k } Generally the Kalman filter is outlined for continuous equations. For applications in engineering and physical problems the following discrete Kalman filter equations are used.
Theorem 1 (Discrete Kalman Filter) The optimal state estimation x ( k 1 Ik) and the corresponding covariance matrix P k of the estimation problem
+
xk+l = zk
=
@(k
+ 1;
H k 'xk
k)' x k f
uk
+ vk
has to be evaluated by the following equations.
Prediction.
Update. kk(+)
(39)
=Xk(-)fKk'[Zk-Hk'Xk(-)]
P k ( f ) =
[I
(40)
-Kk'Hk]*Pk(-)
Kk =P k ( - ) . H ~ . [ H k . P k ( - ) . H ~ +
Rk1-l
(41)
The matrix Kk is the so-called Kalman gain matrix. In these equations the symbol (-) means the value immediately at the time before a measurement takes place and (+) the value after the measurement. The following diagram shows this situation:
measurement 1
measurement 2
The so-called prediction is evaluated for the covariance matrix P and the
RECENT DEVELOPMENTS IN KALMAN FILTERING
21
state variable x, even if no measurement vector exists. In this case, the system equations for the estimation problem are processed for the future time intervals. Otherwise, if there are measurements for fixed time intervals, the update Kalman filter equations have to be evaluated in addition to the prediction equations. The proof of this theorem is described in the literature (Kalman, 1960; Kalman and Bucy, 1961; Hotop, 1989a). The main problems of the conventional Kalman filter for practical applications are the inversion of the matrix (H Pa H T + R), which is part of the Kalman gain matrix equation, and within the calculation of the covariance matrix in the update Eq. (40) determining numerical instabilities. In this equation a minus sign appears between two matrices. Evaluating the equation with single precision (REAL*4) on a computer creates negative main diagonal elements of the covariance matrix, which conflicts with the theory of covariance matrices. A first new formulation to eliminate the negative diagonal elements was made by Joseph (1964). He utilized for the covariance matrix P the following equation:
-
Pk(+) = ( I - K k . H k ) . P k ( - ) - ( l - K k . H k ) T + K k - R k - K r
(42)
which is part of the discrete Kalman filter proof. However, this formulation requires more calculation operations and has no advantages in the numerical stability (Carlson, 1973; Thornton and Bierman, 1980). In most of the papers about Kalman filter techniques (Carlson, 1973; Bierman, 1977; etc.) the authors use the update algorithm of the conventional Kalman filter for only one measurement after the other, which means the components of the vector zk are evaluated successively. For all “squareroot” algorithms this is a necessary condition. With this idea, the measurement vector of m components at time r = tl is interpreted as m measurements following directly one after the other. Remembering this and defining hk,ras the ith-row vector of the measurement matrix Hk and of course R k as diagonal matrix D(r,) at this time instant, the Kalman gain matrix K is transformed in the following form:
with a j = h kT, i . P k . h k , i + r l
( i = 1 , . . . ,m )
The other equations of the conventional update algorithm have to be modified analogously. Especially the so-called Joseph algorithm can also be reformulated to use one measurement after the other. The main effect, using only one measurement, is the substitution of the
22
HANS-JURGEN HOTOP
matrix inversion, necessary for the calculation of the Kalman gain matrix Kk - which is performed generally by numeric computer inversion - by division. The advantage lies in a decreasing computer running time as well as the numeric stability. But with this method the whole update algorithm has to be evaluated m times, where m is the dimension of the measurement vector zk. As seen in the preceding equations, an additional assumption is a statistically uncorrelated ratio of the measurement vector zk. This follows from the diagonal characteristic of the matrix Rk,containing the stochastic description of the measurement. For practical reasons these assumptions cannot be made in reality; therefore, this is a large source of error. C . Square- Root Formulations of the Kalman Filter Algorithm
To eliminate the problem of a negative covariance matrix Pk Carlson (1973) and Bierman (1977) formulated a new Kalman filter algorithm, called the square-root formulation. The idea is to divide the matrix P k into two (three) matrices with an upper or lower triangular structure. The algorithm of Carlson is based on the assumption that the measurement was a scalar zk with uncorrelated covariance r, and uses the Cholesky decomposition to transform the positive definite quadratic covariance matrix Pk into Pk =
Sk'Sl
(44)
The Kalman filter equation can then be reformulated. The optimal state estimation x(k + 1 Jk) and the corresponding covariance matrix Pk of the estimation problem
Theorem 2 (Carlson Algorithm).
xk+l = Zk
k ) ' x k f uk
@ ( kf 1; T
= hk
*
xk
+ rk
has to be evaluated by the following equations. Prediction. xk+l(-)
= @ ( k f 1;
k)'xk(f)
(45) (46)
Update.
23
RECENT DEVELOPMENTS IN KALMAN FILTERING
where a = f k ( - ) *f,'(-)
+ rk
1
I?=
~+(cr.r~)"~
f k ( - ) = SF(-)* hk
Q -- Qi1I2 . The proof of the theorem is easily seen by inserting the equations into those of Theorem 1. For the factorization of the covariance matrix the method of Cholesky, which is outlined in the next section, can be used. A more practical decomposition of the covariance matrix is demonstrated by Bierman (1977). He represents the covariance matrix in the form of an upper triangular matrix U and a diagonal matrix D: Pk = Uk ' Dk * Uk7
(49) The other equations and thus their evaluation is developed analogously to the Carlson algorithm. The following theorem shows the factorization calculation of the matrices U and D in the form of vectors u,, which represents thejth column of the matrix U , and constants d, as thejth diagonal element of the matrix D.
- -
Theorem 3 (Bierman Algorithm). The covariance matrix Pk = Uk Dk Uk7 of the estimation problem can be calculated by the following equations: f
=
U T . h with f T = ( f,, . . . ,f,)
(50)
w = D . f c ~ , = d , - f ; ( i = l , . . . ,n )
(51)
The elements of the upper triangular and the diagonal matrix can be evaluated with the recursion d, . r d I' -- with a l = r + wI j = 1 ffl
u;
= uj
+ A.,
k, with A, = -
.r, ffj-1
(53)
24
HANS-JURGEN HOTOP
With this recursion at each time interval, new matrices U' and D* with the corresponding elements are calculated, At the beginning (time to = 0) the covariance matrix is generally a diagonal matrix, otherwise a decomposition of this matrix has to be done with a different algorithm. The proof of the theorem can be found in Bierman (1977) or Hotop (1989a). The triangularization of the covariance matrix produces a numerically stable algorithm. But this formulation can be used only if there are singledimension measurements with uncorrelated measurement noise, as explained earlier. Generally, one does not have this in practice. To handle correlated measurement noise, additional transformations are required, and this increases the computing time. But these algorithms cannot be utilized on a vector processor effectively - in contrast to the conventional Kalman filter algorithms - because the equations are made for serial working computers. They are structured serially, using a minimum of vector-matrix operations to save storage. D. Other Kalman Filter Algorithms
In contrast to the discrete Kalman filter the continuous formulation is used in special applications when the system matrix as well as the analytical solution of the differential equation are known. These formulations are different from the algorithm presented previously. For the support of navigation systems only the discrete formulation is applicable, and therefore no continuous formulation is outlined here. A further problem is often the unknown system noise matrix, which cannot be calculated or estimated in some applications, or it is possible that the system noise varies over the course of time. To manage all these problems, adaptive Kalman filter algorithms are formulated. The idea is to estimate the system noise matrix during execution, when a measurement takes place. A lot of different formulations are described in the literature (Groutage, Jacquot, and Smith, 1983; 1984; Jazwinski, 1970; Lechner, 1982; 1983; etc.). Here the one based on Jazwinski (1970) is presented as an example. The main purpose of each filter is to minimize the error residuals. In the Kalman filter algorithm the residuals themselves are mapped into the noise matrices Q and R. The expectation of the difference between a measurement vector z and the corresponding part of the state variable x is calculated. This difference must depend on the measurement noise matrix R, the system noise matrix Q and those parts of the covariance matrix P that describe the measurement statistics. Therefore the following equation can be formulated: E [ ( z ~ - H ~ ' X ~ ) ' ( Z ~ - H=Rk+Hk*[Pk+Qk].HT ~.X~)~]
(54)
RECENT DEVELOPMENTS IN KALMAN FILTERING
25
The covariance matrix and the state estimation vector are evaluated just in time before the update algorithm is calculated: x k = xk(-) and Pk = Pk(-). This equation is utilized to determine the system noise matrix Q or the elements of that part of the matrix which corresponds to the measurement vector :
The matrix Q is set to these values if they are greater than 0, otherwise the elements are set identically to 0. This often-used algorithm is very effective and simple. However, to determine all elements of the system noise matrix a sophisticated algorithm must be developed, which costs a lot of computation time and often leads to unrealistic results. The adaptive filter is an option of the usual Kalman filter algorithm. Therefore, all new formulations of the Kalman filter are independent of the adaptive part.
IV. NEWKALMAN FILTER FORMULATIONS A . Motivation
As a result of the evolution of the computer market, a new generation of computers is now available. Two aspects have influenced the development of software and algorithms: low-cost computers with decreasing CPU-time and increasing storage, PCs and new-generation computers, these are vector, array and systolic array computers. Here is a short characterisation of these computers vector computers: They use the “pipeline principle,” which consists of chaining and vector registers. Chaining in this case means that different floating point operations can be evaluated successively without temporary storage, which is needed if von-Neumann architecture is used. In addition the vector registers store the participated vector values, so the calculating units can load them without time delay. This explains the advantage for matrix-matrix or matrix-vector operations. Typical vector computers in the past were factorized by CRAY-Research Inc. (CRAY-1, CRAY-IS, CRAY-XMP etc.) and Control Data (CDC-CYBER 205 etc.). Today IBM and other computer manufacturers produce vector processors in addition to their computers with conventional architecture. array computers: They consist of several processors arranged and connected like the elements of an array. The conventional processors are handled by a host computer and each has its own storage and software. The problem
26
HANS-JURGEN HOTOP
is how to divide the software into parts, so that all processors work and terminate at nearly the same time. For the personal computer (PC) generation the transputer boards can be used in addition to the host PC. Special software for these transputers is available, whereas the hardware boards contain four or more transputer units. Beside these new applications on PC, some models of array computers were built in the past, such as ICL-DAP and Illiac IV of Burroughs. New developments of array computers are being made in several countries, for example in the United States, Japan and Germany. The inves’tigations focus especially on software, architectural problems and increasing the number of processors (for example 4096 or more). systolic array computers: They are not built yet, because the main idea of an optical processor has not yet been realised. The idea is to make a matrix-matrix operation in one cycle time with acoustooptic cells by using multiplication by convolution (Fisher, Casasent, and Neuman, 1986; Kung, 1984, 1985; Travassos, 1983, 1985). The software development is similar to that of an array computer. A few components of these optical computers or processors are already available, but the complete hardware has not yet been built. Therefore, new algorithms must be developed that are adapted to all these computers. In particular the main difference between the von-Neumann computer generation and the new ones has to be regarded. Otherwise, the principle of algorithm stability, which was negligible in the past, is now essential because of high-precision codes in the computers. For example, the conventional computers work on a 16 or 32bit data bus, the vector computer uses a 64bit bus, which implies a presentation of 128bits for double precision calculation. While in the past CPU time and storage were the restrictions, now the stability and special architecture of the computers are the main aspects in software development. In this chapter some new Kalman filter algorithms are presented, which include the numerical stability of the so-called UDUT formulations and are adapted to the new generation of computers. Not all the new formulations and ideas are presented, but all those that can be coded on the existing computers. Each of these new formulations is based on orthogonal transformation, so a short introduction into this theory is given and then the presentation of the Kalman filter algorithms follows. B. Application of Orthogonal Transformations As described earlier, all UDUT formulations need an orthogonal transformation for factorising the matrix P into that form. The familiar decomposition
27
RECENT DEVELOPMENTS IN KALMAN FILTERING
for a quadratic, positive-definite matrix P into an upper triangular matrix S is the Cholesky decomposition. Here, this transformation P = S S T for computer program application is briefly outlined, for i = n , . . . , 1 one has to evaluate
-
I
n
Pa f o r j = i - 1, . . . , 1
-
c+
/=I
.slf =
Sf,
forj> i
S/I'S,I
I
(56)
s/,= 0
The numerical problem of this transformation can be clearly seen in the negative sign in each equation, which probably erases the leading digits in the number representation of the computer. This extinguishment of leading bits can accumulate, and a negative value for the square root operation produces a fatal run-time error. To find these errors, additional software must be implemented to make the program safe. Therefore, other transformations are needed to prevent this disadvantage. The basis of all orthogonal transformations - in contrast to the Cholesky decomposition - is finding an upper triangular ( n , n ) matrix B and an orthogonal matrix W for an arbitrary ( n , n ) matrix A, so that W . A = B. 1. Householder Transformation
The idea of the Householder transformation is to evaluate an arbitrary ( n ,n ) matrix column by column using an orthogonal matrix. Naturally, a triangular matrix is the aim of this decomposition. Therefore the result of the transformation of each ith column is the ith unit vector, which means a vector with a 1 at the ith column and all other elements 0.
Theorem 4. Let v be an n-dimensional vector: v = V I , ~ 2 , 2 1 3 , .. . , unjT $ 0 and e l thefirst unit vector, with el = ( e l ,e2, e 3 , .. . , e n(7) = ( l , O , . . . ,0) , then there exists an orthogonal matrix W with
where f l
u1
LO
Ut
1 for
RECENT ADVANCES IN 3D DISPLAY
I87
the corresponding d,. The MAT is in fact the collection of symmetry points and their corresponding radii of maximally inscribed circles that touch the boundary in at least two different points. Note that this defines the MAT as a continuous transformation. When only the symmetry points are retained, the structure is called the skeleton. Because the information about the radii of the inscribed circles has been discarded, the original object can no longer be reconstructed from the skeleton. In case of the MAT the original object is the union of all inscribed circles. Thinning is a method to obtain an approximate skeleton of an object on a discrete grid. Our interest in 3F thinning algorithms lies in the fact that the speed performance of voxel projection display algorithms is to a large extent determined by the number of voxels that are projected and rendered (see Section 1Il.D). This performance is at present not sufficient for display rates of several images per second so that an object’s shape can be deduced from, e.g., a rotating image. If, however, the number of voxels can be significantly reduced, while at the same time enough structural information is retained to provide visual clues of the object’s shape, the display time can perhaps be reduced to an acceptable level. Several CAD programs use a wireframe representation during interactive reorientation and the slower shaded views once the correct orientation is reached or when the user waits long enough between successive changes. A thinned voxel model can also be used to provide more rapid visual feedback, e.g., for setting up proper viewing and rendering parameters, while the detailed image, based on the fullvolume data set, has to be generated only once the correct orientation and selection is determined. A skeletonized voxel model can be rotated and displayed much faster because it is only a binary voxel model and the number of object voxels is greatly reduced. b. Fundamentals of 2D Image Thinning. Thinning algorithms operate on binary images. It is therefore presumed that in the binary image an object has already been defined as a result of some segmentation algorithm. Thinning an object is done by repeatedly removing pixels from its boundary. The conditions under which a pixel may be peeled off are subject to certain constraints, determined by the requirement that the skeleton of the object should be approximated in order to reflect the object’s shape as closely as possible. The final goal is to obtain the skeleton after a finite number of thinning operations; that is, until the skeleton has become stable. This leads to the following requirements for thinning algorithms: 0 0
The algorithm should not disrupt the connectedness of the thinned object, End points of linear structures and boundary contours should be preserved.
188
D. P. HUIJSMANS AND G. J . JENSE
A remark has to be made here about the choice of connectivity of the object and the background. The notion of adjacency for the 3D (voxel) case was introduced in Section 111. In 2D images pixels can be either 4-adjacent (across an edge) or 8-adjacent (across an edge or vertex). Two pixels are called 4-connected when a path of four neighbors, i.e., pixels that are adjacent across and edge, can be found from one to the other. Similarly, eight neighbors are those pixels that are adjacent across an edge or a vertex (node), and two pixels are %connected when a path of 8 neighbors exists between them. A paradox arises when object and background have the same connectivity. In the case of 8-connectivity, a connected object could completely surround a part of the background, while at the same time the surrounded part would remain connected to the rest of the background. When both are 4-connected, the piece of the background inside the object would not be connected to the outer part, even though the object is not fully connected around it. To avoid this difficulty, the background should be 8connected when the object is 4-connected and vice versa. Even better would be a 6-connected topology for both, but this optimal topology is not in widespread use in the image analysis community. In 2D image processing, several thinning algorithms have been described. The algorithm by Zhang and Suen (1984) is a basic reference. We will briefly describe this algorithm here. The ZS algorithm is a so-called parallel thinning algorithm. This means that the value of a pixel in the new image depends only on its old value and those of its neighbors in a (3 x 3) window in the old image. The consequence of this is that all pixels can be processed simultaneously. It will be assumed that the pixels in the 3 x 3 neighborhood of the central pixel are numbered as in Fig. 52. The ZS algorithm achieves the preservation of connectivity by dividing the thinning operation in two steps. In the first step, a pixel PIis removed from the image only if it satisfies all of the following conditions: 1. 2 5 B(P1) 5 6 2. A(P1) = 1
3. P2'P4'P6 = 0 4. P4'P6'P8 = 0
Here, A ( P I ) denotes the number of 01 patterns in the ordered sequence P2,P3,. . . , P9;i.e., the number of times a transition from value 0 to value 1 is encountered in a "walk" around the central pixel. B(P,)is the number of neighbors of P , that have value 1. The first two conditions select pixels that lie on the boundary of the region. The last two conditions are satisfied by those pixels for which P4 = 0 v p6 = 0 V (Pz = 0 A Ps = 0). In other words, the pixel could be on an east or south border or it could be a northwest corner. In the second step, the first two conditions are applied
RECENT ADVANCES IN 3D DISPLAY
P9
PZ
P3
Pa
P1
P4
P7
P6
P5
189
FIGURE 52. The clockwise numbering of pixels in a 3 x 3 neighborhood
unaltered, but the last two are modified to
3'. Ps.Pq-PfJ = 0 4'. P2'P6'P8 = 0 With a similar argument to that given earlier it can be shown that this step removes only pixels lying on a north or west border or in a southeast corner. By subdividing the thinning operation in two steps the removal of structures with a thickness of two pixels is prevented. Several points of criticism can be raised against the ZS algorithm: 0 0
Straight diagonal segments with a thickness of 2 pixels, which ought to be preserved, are eliminated instead. Any pattern that can be reduced to a 2 x 2 pixel square disappears. Noise is enhanced.
5 6, When the first condition in the ZS algorithm is modified to 3 5 E(PI) the first two shortcomings are eliminated. This improvement to the Zhang and Suen algorithm has been suggested by Lu and Wang (1986). In order to speed up 2D thinning algorithms the conditions that determine whether a pixel may be removed are stored in a look-up table. This table represents all 256 possible pixel configurations within a 3 x 3 neighborhood, along with the decision whether deletion is permitted or not. Indexing the table is done by examining the occupancy of the neighborhood of each image pixel. This yields an ordered sequence of 0/l bits which in turn is interpreted as an 8-bit table index, resulting in the appropriate yes/no decision. c. 3 0 ZS-Based Thinning Algorithms. In this section a number of 3D thinning algorithms will be presented, which are all based on the 2 D ZS algorithm. When our 2D image thinning algorithm would be extended to 3D straight away, the removal of voxels would be based on the local configuration in a 3 x 3 x 3 neighborhood, and the configuration table would
190
D. P. HUIJSMANS AND G. J. JENSE
become prohibitively large (226= 64 M entries). One way of avoiding such a large configuration table is by not taking all voxels in the local neighborhood into account. A number of different approaches and their relative merits will be compared in this section. Another solution is to use a form of indirect table indexing, which will be described in the next section. Adjacency in the 3D case has already been defined in Section 111. In 3D, connectivity on a rectangular grid comes in three “flavors”: voxels may be 6-,18- or 26-connected. In order to ensure the complementarity of object and background in 3D, the object should be 6-connected when the background is 26-connected, or the other way around. In the following 6-connectedness of the object will be assumed. By limiting the neighborhood to 3 x 3 x 1, the thinning operation can be carried out in a slice-by-slice order, and the ZS algorithm can be applied directly. The configuration table length is thus the same as in the 2D case. This is not really 3D thinning and it will be referred to as sfice-based thinning. The big disadvantage of slice-based thinning is that the connectivity between voxels in adjacent slices may be entirely lost especially when the differences between slices are large. We will now describe a true 3D thinning operation that still employs the 2D ZS algorithm, but takes connectivity between the 18 neighbors into account. This is accomplished by decomposing the thinning operation in three steps. In each step a 3 x 3 neighborhood around the central voxel is considered that lies perpendicular to one of the principal axes (see Fig. 53). Because the 18connected neighbors of the central voxel play a role in the thinning operation we will call this algorithm 18-connected thinning. A voxel may be removed when it may be removed in all of the three perpendicular 2D cases.
FIGURE 53. 18-connected thinning.
191
RECENT ADVANCES IN 3D DISPLAY
Just as when the Z S algorithm was applied in a 2D case, there are some structures that disappear although they should be preserved. Body diagonals, as well as any structure that can be reduced to a 2 x 2 x 2 cube, are entirely removed. This is caused by the fact that the 26 neighbors are not considered during the thinning operation. Like the 2D Z S algorithm, 18connected thinning suffers from noise problems, as shown in Fig. 54. The figure shows how a single voxel, protruding from the 3D structure, gives rise to a “sheet” of spurious voxels after repeated thinning. A second 3D algorithm, adapted from the 2D Z S algorithm, also preserves a certain amount of 3D connectivity across slices, when, in addition to the 3 x 3 neighborhood in a slice, the six neighbors in the adjacent slices are considered. The extra condition of the central voxel now becomes when the six neighboring in the adjacent slices are both empty, the voxel may not be deleted. The disadvantages of this approach are these: 0
As in 18-connected thinning, diagonal structures are eliminated. Structures that lie entirely in one slice, i.e., without any neighbors in adjacent slices, will not be thinned.
d. 3 0 Thinning by Local Connectivity Analysis. An entirely different approach to 3D thinning has been reported by Lobregt, Verbeek and Groen (Lobregt, 1979; Lobregt et al., 1980). Their method is based on the assumption that voxels are six-sided cubes. The faces of a number of connected voxels constitute a so-called netted surface. When a voxel is removed, the once connected netted surface may become disconnected. By analysing the contribution of a voxel to the local connectivity of the netted surface, criteria may be established by which the decision about removal of the voxel can be made. A measure for connectivity is provided by the Euler number (Mantyla,
(a)
(b)
FIGURF 54. The influence of a noise voxel on the thinning operation: (a) a single voxel protrudes from the structure; (b) after repeated thinning, a “sheet” of spurious voxels remains.
192
D. P. HUIJSMANS AND G . J . JENSE
1988). For a closed 3D netted surface the Euler number is n - e + f = 2
(32)
where f is the number of faces, e the number of edges separating the faces, and n the number of end points of edges or nodes. This formula may be extended for closed 3D surfaces that are connected to themselves in various ways. The Euler number then becomes n - e + f = 2 -2h
(33)
where h represents the number of handles and tunnels occurring in the surface. An object may be bounded (separated from the background) by several surfaces. The global connectivity number N of an object can now be defined as N = c ( 2 - 2hi)
(34)
i
that is, the sum of the number of holes and tunnels in each of the (netted) surfaces. The connectivity number N is a global quantity. It can be shown that the global quantity N , as well as changes to it, can be computed from local contributions. By substituting formula (33) in (34) we obtain i
This means that when a voxel is removed, changes will occur in the number of faces, edges and nodes of the netted surface. The change in the number of faces, edges and nodes should be computed for a 3 x 3 x 3 local neighborhood, because they occur in the faces of the central voxel and thus possibly involve all direct neighbors. As was mentioned previously, the length of a look-up table that holds the number of faces, edges and nodes for all possible voxel configuration in that neighborhood would be prohibitively large. Therefore, the 3 x 3 x 3 neighborhood will be subdivided in eight 2 x 2 x 2 neighborhoods, which all have the central voxel at one of their corners. This leads to 28 = 256 possible configurations that are precomputed and stored. The contributions to N are now computed separately for each of the eight 2 x 2 x 2 neighborhoods, once with the central voxel and once without it. The separate contributions are summed, and when the removal of the central voxel would result in a change to N , it is left in place. For further details of how to compute the values of n, e and f for each of 256 possible voxel configurations we refer to Lobregt (1979).
RECENT ADVANCES IN 3D DISPLAY
193
4. Implementations and Comparison A comparison will now be made between the various thinning algorithms. Both the time performance of the implementations and the quality of the resulting voxel models will be compared. All 3D algorithms were implemented on the Sun/TAAC-1 workstation. In order to be able to evaluate the performance increase of the TAAC-I over an unaccelerated workstation, two algorithms were also implemented on a "generic" workstation. The first test data set is a 128' voxel model of 8-bit voxels, obtained from a series of CT scans. A binary voxel model was created from it by thresholding the gray-value data (see Fig. 5 5 ) . The second data set is a hollow sphere; e.g., those voxels for which the equation -
F < (x - 64)2 + ( y
-
64)'
+ (z
-
64)2 - R2 < F
(36)
holds. Table X shows the execution times for the four 3D thinning algorithms in minutes and seconds, for three different binary voxel models; i.e., two different versions of the hollow sphere and the CT voxel model. The columns are labeled with abbreviations of the algorithm names: S B = slice based, 6 - N = slice based and six neighbors, 18-C = 18-connected, LCA = local connectivity analysis. The performance difference between the Sun/ TAAC-I and an unaccelerated workstation becomes clear from Table XI.
FIGURE 55. C T data
set
used in testing of thinning algorithms.
194
D. P. HUIJSMANS AND G . J. JENSE
TABLE X PERFORMANCE OF 3D THINNING ALGORITHMS Object
SB
6-N
18-C
LCA
Sphere ( R = 40,F = 100) Sphere ( R = 40, F = 400) CT data set
1 :08 2 : 45 1 :48
6 : 33 17 : 20
6 : 05 2 4 : I5 I5 : 52
17 : 50 11 :oo
I : 45
4 : 50
This result is somewhat disappointing, as the TAAC-1 has proved to be a factor of 3-7 faster for other algorithms (see Section 1II.D). The explanation for this is that the actual computations in thinning operations consist of merely fast table look-up operations. Memory operations instead of computations dominate the total execution time. The implementation of the voxel rotation algorithm has already made clear (see Table IX) that thememory access routines are responsible for this disappointing performance. Finally, Figs. 56 and 57 present pictures of the CT data set thinned by the four different methods. The loss of connectedness at the top of the skull is obvious in the object that was thinned with the SB algorithm. Also note that the structure of the eye sockets have been affected by the thinning operation. The 6N algorithm does a better job at the top of the skull, although a number of holes remain. Around the eye sockets the results are comparable to the SB algorithm. The 18-connected thinning does surprisingly well. Both at the top and around the eyes the structure has been preserved by the 18-C algorithm. The LCA algorithm, like the 18-C, also shows a completely connected surface on top of the skull, but around the eye sockets the result is less satisfactory. B. Exploring Binary Voxel Models with a PC-Based Image Processing System
Although originally designed for the processing of two-dimensional images, we have used the image processing system, described in Section V, for the storage, manipulation and display of binary voxel models. One of the frame buffers is used to store the binary voxel model. The other frame buffer TABLE XI 3D THINNING ON DIFFERENT HARDWARE SYSTEMS Sun/TAAC- I
Method
Sun3/60C
SB LCA
3 : 00
I :48
18 : 30
11 : 0 0
RECENT ADVANCES IN 3D DISPLAY
FiGriRE
56. Thinned CT data set: (a) SB algorithm; (bj 6-N algorithm.
195
196
D. P. HUIJSMANS AND G . J. JENSE
FIGURE 57. Thinned CT data set: (a) 18-C algorithm; (b) LCA algorithm
RECENT ADVANCES IN 3D DISPLAY
197
holds either a surface normal view, a distance map or a combined surfacedistance image. Altering the light direction or shading function is performed by manipulating the hardware output look-up tables. The frame processor is used to run various filter operators over pre-images, and for pan and zoom operations. The software was written in the C language, with the exception of a few low-level assembly language routines for the transfer of voxel data between the PC and the frame buffer. a. Direct Display of the Data Set. One of the available frame buffers is used to store and directly display the binary voxel data set (see Fig. 58). By choosing a special storage scheme for the 3D voxel array, we can directly display the entire data set on screen (see Fig. 59). Conceptually, the binary voxel model of an object is stored as a three-dimensional array of bits. A three-dimensional binary array of size 1283 occupies 256 Kbytes of memory. Our image processing hardware has two frame buffers of 512 x 512 8-bit pixels. Each of these frame buffers is therefore also 256Kbytes in size. We use one of these to store the binary voxel model. To this aim the 512 x 512 frame buffer is subdivided in 16 (4 x 4) sections of 128 x 128 8-bit pixels. Each section holds eight consecutive slices through the object. This storage scheme leads to a simple mapping of 3D voxel coordinates (x, y , z ) to 2D frame buffer coordinates ( u , u)and a bit number m (i.e., the number in the range 0 . . . 7 of the appropriate bit within the byte ( u , v)):
+x 128 + y
u = [(zdiv8)mod4] x 128 'u =
m
=
[(zdiv8)div4] x zmod8
.................. ....... "
I? i!
12
..
slices 4 0 . . 4 7 0
127
FIGURF 58. (a) 3D binary voxel array: (b) frame buffer storage scheme.
(37)
198
D. P. HUIJSMANS AND G . J. JENSE
FIGURE 59. Direct display of the binary voxel model of an embryonic rat heart.
The operator div denotes integer division, while mod is the “modulo” (or “remainder”) operator. Because all arithmetic operations involve constants that are powers of 2 they may be implemented efficiently using bit shift and logical masking operations. Because of the spatial coherence, the changes between consecutive slices are small. Therefore, when the contents of the frame buffer are displayed, the screen shows 16 cross-sectional views of the binary voxel model, each of which in fact consists of eight consecutive slices. Individual bit planes may be displayed by choosing suitable entries for the output look-up table. Together with the zoom option, this allows for the display of individual slices.
6. Generating a Su$ace View. A 3D model can be rendered on a flat display screen only as a 2D projection. However, by using several depth cues an illusion of the third dimension can be created. The following depth cues are available in our system: 0
0
Hidden surface elimination. Simultaneous projections from different viewpoints. Depth (or distance) shading. Surface shading. Interactive rotation of the light source.
Hidden surface elimination, or more accurately visible surface detection, is
199
RECENT ADVANCES IN 3D DISPLAY
performed by a ray-casting algorithm. The voxels along a ray from the viewpoint through the voxel cube are examined until the first object voxel is hit. Because of the way the cube is stored, each byte in the binary voxel array holds eight voxels. This means that when rays are cast along one of the main axes (&X1 + Y l * Z ) , the algorithm can examine eight voxels at a time until a nonzero byte is found. Two cases have to be distinguished here (see also Fig. 60): 1. Casting a ray along the Z axis: when a nonzero byte is found, the first
(or last, when looking along the negative Z axis) I-bit in this byte is the visible surface voxel, 2. Casting, as it were, eight parallel rays simultaneously along the X or Y axis: each nonzero byte encountered along the ray(s) is logically ORed with a current mask byte. The search continues until the mask byte consists of all Is, or the end of the ray is reached. This method results in a reasonably fast surface detection algorithm. Of course, the viewing direction is limited to along the main axes. By displaying several (possibly all six) views at the same time this disadvantage is partially overcome. Several different shading techniques were implemented in conjunction with the ray casting visible surface detection algorithm. c. Depth Shading. By letting the rays, cast along the viewing axis, yield the distance of the surface voxels to the viewing plane, a distance map is obtained. This distance map may be rendered using eq. (14). Figure 61(a) is an example of a depth-shaded image. The distance map may be enlarged in the X and Y directions by employing the pan and zoom facilities of the frame processor card. When an image
A byte h o l d s on* volnl
x -
(4
(b)
FIGURE 60. (a) Casting a ray along the Z axis; (b) casting eight parallel rays along the X axis.
200
D. P.HUIJSMANS AND G. J. JENSE
FIGURE 61. Reconstructed embryonic rat heart: (a) depth shading; (b) surface shading; (c) both.
is zoomed by a factor of 2, each pixel (distance value) is simply replicated four times in a 2 x 2 pixel square. Zoom factors of four and eight are also possible. The jagged appearance of the zoomed image may be decreased by running a pixel averaging operator over it. The effect of this operation is to interpolate the replicated distance values. d. Surface Shading. As a second shading technique, surface shading was implemented. This requires calculation of surface normal vectors (see eq. ( 1 9 , for which the binary gradient-shading method (see Section 1II.C) was used. Figure 61(b) shows the result of applying this shading method to the same surface as the depth shaded image in Fig. 61 (a). Finally, an image that has been shaded using a combination of these two techniques, i.e., according to eq. (16), is shown in Fig. 61(c). e . Interactive Rotation of the Light Source. Real-time interactive rotation of an object on the screen provides a very effective depth illusion, especially for objects of irregular shape, such as the ones that we are interested in. The changing light intensity on the surface as the object moves with respect to a light source provides the viewer with many clues about the shape of the object. Real-time rotation of an object is not possible with
RECENT ADVANCES IN 3D DISPLAY
20 1
the system that is described here, but instead of this several features of the hardware can be used to implement interactive changing of the lighting function, including the position of the light source. In Section 1II.C the lighting equations were given. The quantity I,,, is a constant that depends on the hardware; i.e., the maximum value of a pixel. For a given viewing direction D,,, is also constant. For each pixel in the image (from the given viewing direction) the values of the surface normal N and the distance d at the corresponding surface voxel are known. Instead of calculating the values of I and storing these in the frame buffer, the visible voxel’s surface normal and distance are stored for each pixel. The lighting equation, which now gives I as a function of the light direction and the percentage of ambient light, I = f ( L ?l a m b ) (38) may be calculated for all possible combinations of N and d stored in one of the hardware output look-up tables. Changing either the light direction or the proportion of ambient versus reflected light is then a matter of altering only the output look-up table entries (in this case 256 numbers) instead of recalculating all pixel values (16K numbers). A technique similar to this, but applied to the shading of polygonal objects, has been described in Bass (1981) and Sloan and Brown (1979). The value of an approximated surface normal vector may be encoded in 5 bits, as there are only 26 possible values. The remaining 3 bits of each 8-bit pixel are used to hold an approximation of the surface distance value. These encoded values are stored in the second frame buffer on the frame grabber board. Figure 62 shows the effect of rotating a light source from the viewing direction toward the right side of the object. The changes in light intensity at various irregularly shaped features on the surface can clearly be observed. f : Reslicing a Reconstructed Object. The incorporation of a facility to reslice a reconstructed object along an arbitrary plane only requires a slight modification to the original ray-casting algorithm. This way parts of the objects can be removed to reveal hidden inner details (see Fig. 63). The equation describing a plane in three dimensions is ax by + ci d =0 (39)
+
+
Assuming that the object is viewed along the positive Z axis, this equation may be rewritten as z = -(a/c)x
(h/c)y- d/c
(40) The ray casting is now performed by either starting the search for the first 1voxel along the ray at the z coordinate determined by this equation or by continuing the search to this z coordinate value. These two cases correspond -
202
D. P. HUIJSMANS AND G. J . JENSE
FIGURE 62. Rotating the light source around the object.
to either removing the voxels for which the inequality ax or the inequality ax + by cz d > 0 holds.
+ +
+ by + cz + d < 0
g . Results and Conclusions. As an experimental extension to an earlier, contour stack-based reconstruction system (Huijsmans et al., 1984), the capability was added to output the series of parallel 2D area masks, originally used for the hidden line display of the contour stack. This gave the possibility to obtain binary voxel models of several reconstructed objects. These voxel models were used as input data sets for the display routines of the system described previously. Computation of a depth shaded image takes about 1Osec. For comparison purposes, the extended contour stack-based system generated a depth-shaded image in 3 min. A binary gradient-shaded surface view along
RECENT ADVANCES IN 3D DISPLAY
203
FIGURE 63. The same object. resliced along three different planes
a major axis can also be generated in 10 sec. When both depth shading and binary gradient shading are applied the display time is still 10sec. The inclusion of the reslicing capability did not measurably affect the display times. These measurements indicate that the search for the visible surface voxels dominates the display process. Updating a look-up table takes about ljloth of a second so that the interactive rotation of a light source around the object is possible in the near real time. This amount of time is relatively long because the scan-out pixel values from the frame buffer has to be interrupted for the duration of one frame while the output look-up table is being loaded. Unfortunately, this leads to an annoying flicker of the image on the screen. Because the frame grabber card has eight output look-up tables, up to eight different lighting functions, e.g., for eight different light source
204
D. P. HUIJSMANS AND G. J . JENSE
positions, can be precomputed and loaded. After this, switching look-up tables is instantaneous and changing views are obtained without flicker. Another way to avoid flicker when changing look-up tables is the use of an image processing board that allows synchronization with horizontal retraces; LUT entries can then be changed one at a time. A disadvantage of moving the light source around a fixed object is that the object appears to move when the position of the light source changes. This psychophysical effect may be due to the built-in assumption of a stationary light source. In spite of this, observing the changing surface shading gives a clear impression of the surface irregularities of the object. An important element in this is the immediate visual feedback the user gets by observing the result (changed shaded surface view) in response to an input action like pressing a cursor key to change the light direction. h. Further Possibilities. In addition to the techniques described in the previous sections, the image processing hardware offers several other features that might be exploited. i . Image Space Gradient Shading. The distance map may also be used as input data for another gradient based shading method: image space gradient shading (Gordon and Reynolds, 1985; Bright and Laflin, 1986). The frame processor hardware can be used to compute the gradient image of the distance map.
j . Modeling Objects. Complex objects may be built from combinations of precomputed and stored primitive objects by applying the set operations union, intersection and difference in a CSG like way (Requicha, 1980). Parts may be removed from an object by computing the difference between it and a secondary object. This is of interest when a reconstructed real-world object is to be inspected. To implement set operations between objects, the correspondence between Boolean set operations and bitwise logical Boolean operations is used: assuming there are two objects, represented by sets A and B of binary volume elements, and volume elements W, then A UB
1
= {W (W E
A n B =
A ) OR
(U
E
B))
(. E A ) AND (. E B ) }
(41)
A - B = A n B’ where B’ denotes the complement of B, which corresponds to the Boolean NOT operation and the expression w E A corresponds to ZI’S bit in the binary voxel model having value 1. The ability of the image processing hardware to perform various bitwise
RECENT ADVANCES IN 3D DISPLAY
205
logical operations between two frame buffers may be used for an efficient implementation of the set operations. The primary object’s binary voxel model is loaded in frame buffer 1, while the secondary objects representation is loaded in frame buffer 2. Then, the frame processor calculates the result of the bitwise logical operation and stores it in one of the input frame buffers, after which it can be displayed. k . Calculating the Volume of an Object. Determining the volume of an object involves counting all I-voxels of the binary voxel model. This operation may be speeded up by using the histogram hardware of the frame processor. The result of a histogram operation is a table of 256 values, the number of pixels for that entry. Each 8-bit pixel value represents eight voxels, the number of I-bits being equal to the number of 1voxels. The total number of 1-bits (and thus the total number of 1-voxels or volume V ) in the frame buffer can now be calculated from the following formula:
That is, the value H of each histogram table entry is multiplied by the number of 1-bits B of the corresponding table index i, and all (256) terms are summed.
1. Voxel Address Calculations. The storage scheme that is used for the binary voxel array greatly favours the computation of orthographic projections of the object, because in these cases the ray-casting algorithm examines eight voxels in parallel. When computing general parallel projections, voxel address calculations will probably cause display times to grow unacceptably large. However, the generation of isometric projections (i.e., when the projection plane is perpendicular to one of the lines f x = f y = ztz), might offer a reasonable compromise, since voxel address calculations are relatively easy in this case. For general parallel and perspective projections, some form of hardware support for 3D addressing of voxels is needed. There are relatively cheap graphics subsystems for PCs on the market today, based on coprocessors from the Texas Instruments TMS340 range (Asal et al., 1986). These processors offer 2D addressing in hardware as well as bit-addressable memory and therefore come a long way in meeting our requirements. In one of the following sections a system will be described that offers facilities for 3 D addressing, but that system is in an entirely different class (regarding price) than our off-the-shelf image processing hardware.
206
D. P. HUIJSMANS AND G. J . JENSE
C . Exploview TAAC-I: Interactive Exploration of Gray- Value Voxei Models 1. Available Volume Data Sets
Four volume data sets were available to us: 1. 128 images of a child’s head, taken with a CT scanner (see Fig. 64(a)). Each image consists of 256 x 256 pixels. Pixels have 12 significant bits and are stored as 16-bit integers, 2. 28 images of a grain of Scotch pine pollen, taken with a confocal scanning laser microscope (see Fig. 64(b)). Image size is 256 x 256, while the pixels have 8 bits, 3. MRI scans of a human head (see Fig. 65(a)), consisting of 64 256 x 256 8-bit pixels, 4. Another MRI data set, of the same size, of a human knee (see Fig. 65(b))
All of these data sets were converted to gray value voxel models of 12838-bit voxels. a. Synthetic Test Objects. For testing purposes it is convenient when it is known in advance how a voxel model should look. Errors or artifacts in display and rendering algorithms can easily be detected that way. The system offers a facility to create artificial test scenes, consisting of two objects: a rectangular parallelepiped and a sphere. Voxels of the test scene are assigned one of four values, depending on whether they are inside none, one, the other or both of the test objects. This way a labeled voxel model is obtained and allows the selection of various combinations of the two objects for display by setting an appropriate window on the voxel gray scale. Figure 66 shows one of the possible configurations of the test scene. 2. TAAC-1 Organization
A number of the display and rendering algorithms, described in Section 111, have been integrated into a system that allows interactive control of display and rendering parameters. This system was implemented on the accelerated workstation, i.e., the Sun 3/160C/TAAC-l system, running under SunOS V4.0 operating system. All software was written in the C language, and the SunView user interface facilities were used. The software modules for the TAAC use the TAAC software library and were compiled with the optimizing TAAC C compiler.
RECENT ADVANCES IN 3D DISPLAY
207
FiGuRE 64. (a) CT data set (gray-value gradient shading); (b) CSLM data set (depthgradient shading).
208
D. P. HUIJSMANS A N D G. J. JENSE
FIGURE 65. (a) MRI data set 1, human head (gray-value gradient shading and voxel mapping); (b) MRI data set 2, human knee (gray-value gradient shading and voxel mapping).
RECENT ADVANCES IN 3D DISPLAY
A
7
209
FIGLIRE 66. Test scene of a cube from which a sphere has been subtracted (Cube Sphere)
The 8 Mbyte of TAAC-I data-image memory were used as follows:
0
One 512 512 32-bit/pixel image ( 1 Mbyte). One 512 x 512 32-bit/pixel intermediate buffer, to be described later ( 1 Mbyte). 4 Mbyte of volume data (8-bit voxels), either one single voxel model, or two, e.g., 1283 = 2 Mbyte each, voxel models (for 3D image-processing purposes). 2 Mbyte of miscellaneous storage.
3. User Interfuce Pop-up windows with menu choices, sliders, radio and push buttons, scroll windows and spatial selection with a mouse-steered cursor provide most of the control within our graphical user interface. One of the interaction facilities to help divide the voxel model or a part of it presented us with a problem that we tried to solve in several ways. a. Moving the Splitting Planes. When a subdivision is being created, the user moves a splitting plane through the current cell and selects the position where the cell is to be split. Visual feedback is provided by voxel mapping at
210
D. P. HUIJSMANS AND G. J. JENSE
the intersection of the splitting plane and the current cell. Originally, the positioning of the splitting plane was done by means of three sliders, labeled pitch and yaw for the rotation of the plane and push for the translation along its normal vector (see also Fig. 30). With these sliders, it is possible to roughly position the plane, but fine adjustment of the plane turned out to be rather difficult. We found a fine adjustment solution based on the movement of intersection points of the splitting plane and the edges of the volume cell. By allowing the user to change the position of these points, the position of the splittingplane is changed. Given (the equation of) a plane, there are many triples of points that can define it. The problem now is choosing points that both support the splitting plane yet can be easily selected and moved on the display screen. It turned out that, to properly judge the position of the splitting plane with respect to the current cell, the movement of the supporting points should be confined to be along the edges of the volume cell (see Fig. 67). The other two supporting points are chosen from the remaining intersection points. When the intersection of the splitting plane and the cell has N vertices and the user has selected vertex i, ( i E (0,. . . , N - l}), then the other two supporting points s1 and s2 are sl = ( i s2 = ( i
+ Ndiv3)modN + 2Ndiv3)modN
(43) (44)
In other words, the two additional supporting points are chosen such that the three points defining a splitting plane lie “evenly spaced” in the list of intersection points. The user selects one of the intersection points of the splitting plane and cell edges. The selected point may then be translated along its edge by means of a slider. For an initial rough positioning, the original method of steering the plane with the three pitch, yaw and push sliders remains the preferred way. 4. Experimenting with Display and Rendering Parameters
The user interface allows the setting of various display and rendering parameters, as well as a number of spatial selection facilities. The display algorithms used are the SBS FTB algorithm and ray casting. The parameters that may be interactively changed, are as follows:
0
Viewing parameters: rotations about the X , Y and 2 axes and a scaling factor. Rendering methods: depth, depth-gradient (Z grad), gray-value gradient (G grad), and adaptive gray-value gradient (AG grad)
RECENT ADVANCES IN 3D DISPLAY
0
0
0 0
21 1
shading; thelast threemethodscan also be usedincombination withdepth shading (see also Subsection III.C.2). In addition to this, planes of the bounding box (see under spatial selections) can be voxel mapped. Gray-scale window: a lower and upper threshold on the voxel values, that determine the range of voxels that will be projected. Spatial selections: bounding box (minimum and maximum object coordinates), resolution (scanning the voxel model with strides larger than l ) , viewing window (minimum and maximum image space coordinates), slicing plane position and selection of front-back halfspace (hither and yon clipping). Lighting model: direction of the light source and fraction of ambient light. Postprocessing: the final image may be enhanced by contrast stretching.
Several of these features will be described in more detail. a . Spatial Selection Facilities. There are several facilities in the system to make spatial selections: 0
A bounding box can be defined by six planes, two associated with each principal axis. Only those voxels inside the bounding box are projected. The bounding box, as well as the outline of the entire voxel model, may be displayed as wireframes (Fig. 68).
A cutting plane may be positioned arbitrarily in the voxel model, subdividing it into two convex polyhedra. The voxels on either side may be selected for projection by a version of the SBS FTB algorithm that has been adapted to “3D scan-convert’’ convex polyhedra (see Section 1II.B). The resolution of the projected image can be selected by setting the stride with which the voxel model is scanned. When the stride equals 1, every voxel is projected, when it equals 2, only every second slice, row and column are scanned, when it equals 4, every fourth slice, row and column, etc. Because the voxels are rendered as correspondingly larger rectangles of pixels, the resulting image is an approximate rendering, at a reduced resolution, of the object (Fig. 69). Because the display times of reduced resolution images are significantly less (see the performance figures, given in Section III.D), the setting of viewing parameters has a faster feedback. An axes-parallel viewing window may be selected on the screen (see Fig. 70). This determines which part of the screen is affected by the current display action.
212
D. P. HUIJSMANS AND G. J. JENSE
(b)
FIGURE 67. Moving a splitting plane: (a) initial position; (b) select supporting point;
213
(c)
FIGURE 67. (c) move point along edge (two of the other points remain tixed).
68. Selection of a bounding box. FIGURE
214
D. P. HUIJSMANS AND G . J. JENSE
FIGURE 69. Reduced resolution renderings (depth-gradient shading): (a) 1/4resolution; (b) 112 resolution.
RECENT ADVANCES IN 3D DISPLAY
215
FIGURE 69. (c) full resolution
5. The Exploded View Facility Our BSP tree-based volume divider, Explo View, offers facilities to construct a BSP tree-based subdivision of a voxel model and to display an exploded view of the subdivided model. Rendering parameters and other attributes can be selected for individual polyhedral cells and polygons. The user interface and the routines related to the BSP tree, as well as the file IjO parts of the programs, all run on the Sun host computer. The TAAC-1 is used to store the volume data and execute the display routines. a. Graphical User Interface of Volume Divider. The basic user interface of the program offers facilities for the following: Control: for setting the viewing parameters, such as the position viewpoint, zoom and explosion factor, and selection of display and edit modes, Planes: sliders to position intersection planes etc. Cells: to move around between cells in the BSP tree and setting node attributes. On the screen the current cell is displayed with its parent in the BSP tree and its two children (when present). This provides the user with information about the spatial relationships between cells in the neighborhood of the
216
D. P. HUIJSMANS AND G . J. JENSE
FIGURE 70. Composite renderings: [a) using an image space viewing window; (b) combining different shading methods (gray-value gradient for the skin and depth-gradient for the bone surfaces).
RECENT ADVANCES IN 3D DISPLAY
217
current cell. More partitioning planes may be added, until the desired subdivision of the voxel model is reached. b. Selecting Cells and Polygons. The system offers two display “modes” during the editing operation, showing both the currently selected cell, and the current cell, its parent in the BSP tree, and its two children. The second mode provides the user with information about the spatial relationships between cells in the neighborhood of the current cell in the BSP tree as shown in Fig. 71. Initially, the selection of the current cell was done by means of three buttons, parent, front and back. This turned out to be cumbersome, and direct selection by pointing with a mouse cursor of the current cell was implemented instead (Fig. 71 (a)). This becomes the current cell, while the display of parent and sibling cells are adjusted accordingly. Also, a polyhedral cell may become the current one by pointing at it in the displayed exploded view. This direct selection also applies to individual polygons of volume cells. c. Display Attributes. The purpose of selecting individual volume cells and polygons is to set their display attributes. The values of these attributes are controlled via a separate “pop-up” window, for the attributes of the current cell. A polygon has one attribute: it indicates whether it is to be displayed by voxel mapping or as an outline. The display of volume cells on the other hand is affected by several attributes: Visibility: On or off. Display method It can assume the following values: 0
0 0 0
voxel mapping - all polygons of the cell are displayed by voxel mapping. The attribute values of the individual polygons are also in effect, i.e., when a cell is displayed by voxel mapping, some of its polygons may be invisible. FTB - the cell is displayed with the modified front-to-back display algorithm. Surface ray casting - the cell is displayed with a ray casting algorithm, using thresholding to determine the visible surface. Transparent volume ray casting - the ray casting method is now used with the transparent compositing method, described in Section III.C, to render both opaque surfaces and transparent volumes.
Shading: either depth gradient or gray-value gradient. Gray-Scale Window: consisting of a lower and upper threshold value (between 0 and 255), it selects which voxel values are used for display.
D. P. HUIJSMANS AND G. J. JENSE
218
Parent: v i s i b l e
Back:
Current: v i s i b l e
v l s lb l e
Front:
visible
(b)
FIGURE 71. (a) Some of the cells; (b) part of the BSP tree that corresponds to the cells shown in (a).
RECENT ADVANCES IN 3D DISPLAY
219
This set of attributes offers various facilities to create composite images from a volume data set by allowing different parts of the voxel model to be rendered in different ways. In Fig. 72, for instance, the jaws have been rendered using maximum value reprojection, while the rest of the object was rendered with gray-value gradient shading.
d. The Voxel-Layer Labeling Table. In Section 1II.C the voxel classiflcation problem was mentioned briefly as a means of segmenting the voxels into different sets, which supposedly correspond to different structures in the voxel model. For this purpose a look-up table has been incorporated in the Explo View system, whereby the color and opacity values of voxels can be specified in an indirect way. The voxel values are no longer interpreted directly as gray or “density” values, but serve as indices in the table, where the color or gray values and opacities are stored. This table is only used with the ray-casting display method.
FIGURE 72. A composite rendering
220
D. P. HUIJSMANS AND G. J. JENSE
For the creation and modification of the look-up table, another subwindow is provided in the user interface of the system. Using sliders and selection items, the voxel gray-value range ( 0 . . . 2 5 5 ) can be divided into four intervals. For each interval, determined by a gray-scale window (lower and upper threshold), an opacity and color value can be defined. Additionally, a layer thickness between 1 and 20 voxels can be set. This determines whether voxels along a ray are “composed into” the final pixel color or not: a layer contributes only when the minimum layer thickness is exceeded (hence the name voxel layer table). Finally, a voxel layer may be rendered as an opaque surface by depth or gray-value gradient shading. This allows the display of semitransparent volumes over opaque surfaces, providing a better depth cue than with transparency alone. 6 . Results
In the ExploView system, individual volume cells are displayed by the volume ray-casting algorithm. This algorithm was extended to handle general convex polyhedra instead of rectangular boxes, as described in Section IV. Display times for the ray-casting algorithm, using various rendering methods, are presented in Table XII. The viewing parameters were set to values that are comparable to those used in Section 1II.D. In the final two rows, the difference in display time between the CT data set and the M R data set is explained by the difference in opacity values that were set in the voxel layer tables for the two models: high opacity values (on the TABLE XI1 DISPLAY TIMES FOR THE EXPLOVIEWSYSTEM, USINGVOLUME RAYCASTING (THE NUMBERS BETWEEN BRACKETS INDICATETHE SELECTED VOXEL GRAY-SCALE INTERVAL) Rendering method
Time (sec)
Surface rendering CT data set [30, 2551 M R data set [20, 2551
21 21
Avg. value reprojection CT data set [30, 1501 M R data set [20, 2551
43 252
Max. value reprojection CT data set [30, 1501 M R data set [20, 2551
38 44
Transparent layers CT data set (high avg. opacity) M R data set (low uvg. opacity)
48
I 00
RECENT ADVANCES IN 3D DISPLAY
22 1
TABLE XI11 “BRUTE FORCE” VERSUS “SMART ” RAYCASTING (TIMES I N SECONDS) Rendering
Brute force
Using coherence
Surface Average Maximum
92 138 144
21 43 38
average) in the case of the CT model, and low opacity values for the M R model. When the display times in this table are compared to the values in the tables in Section III.D, the speed-up factor between the “brute force” ray-casting algorithm and the accelerated version can be deduced. For purposes of comparison, the figures have been reproduced, side by side with the new figures, in Table XIII. From these figures, a speed-up factor between 3 and 4.5 emerges. Finally, two examples of “exploded views” are given. In Fig. 73 the possibility to disable the translation of certain volume cells is demonstrated: the upper part of the head has been subdivided into three cells. One of these has been marked invisible. The other two are not translated outward, resulting in a “pie-wedge’’ cutout. Figure 74 shows a composite rendering of the CT model. The two cells on the lower right side are rendered semitransparently. The upper and lower left, and the upper right cells show gray-value gradient-shaded rendering of the skin surface, together with voxel mapping of the cutting planes. For the other two cells in the upper half, depth gradient shading of the bone surface has been selected. VII. CONCLUSION In our quest for interactive volume visualization we inventorized data structures and found that voxel models, 3D arrays of scalar values, are very well suited to represent unstructured three-dimensional measurement and simulation data. Display from 3D voxel data sets on a 2D screen turned out to be a time-consuming operation, unless fast hardware and smart programming are used in all the phases of geometric transformation, hidden feature removal and rendering. Incremental scanning techniques were used to exploit spatial coherence. Depending upon the view direction, scanning occurs in an ordered way so that output appears sorted along lines of sight. Extra buffers for depth values and visible voxel coordinates further help to lower the amount of
222
D. P. HUIJSMANS AND G . J. JENSE
FIGURE 73. Partial exploded view of the CT data set, using surface rendering (gray-value gradient shading) and voxel mapping of the cutting planes.
calculations needed. Just by using smart programming the generation of visual feedback can be accelerated by orders of magnitude. Further acceleration is supported by such hardware features as extra buffers (2buffer, coordinate buffers, surface orientation) and an a channel. Special purpose hardware produced so far appears to be too restricted and unflexible. For spatial selection and division the binary space partitioning tree proved very effective. It allows for a spatial subdivision in which each polyhedral cell can be displayed in a different rendering mode. It can also be used to suppress the display of specific parts and the faces of the volume cells can be mapped
RECENT ADVANCES IN 3D DISPLAY
FIGURE
223
74. Composite visualization of the CT data set, using various rendering methods
with the original voxel values. The BSP tree can easily be combined with the incremental scanning methods and is used in our final implementation to compose exploded views of three-dimensional sampled objects. A further acceleration in all stages of interactive exploration is needed before one can truly speak of real-time interaction. Increasing processor throughput alone will probably not suffice. Some form of parallelism will be needed. Further challenges in scientific visualization are offered by 3D vector fields, interactively steered simulations and time-varying phenomena. The exploration of structures changing in time adds yet another dimension to scientific visualization. Even faster hardware and smarter programming will be needed to tackle those 4D data sets.
224
D. P. HUIJSMANS AND G. J . JENSE
ACKNOWLEDGMENTS This research was performed mainly at the department of Computer Science of Leiden University. Over the years there have been many stimulating discussions with Peter van Oosterom, Remco Veltkamp and Chris Laffra. The following students contributed to the implementations during their masters degree thesis research: Rob Beersma, Jurgen den Hartog, Kees Ouwehand and Bob Schijvenaars. Paul Kranenburg who took care of the hardware and software environment also provided invaluable aid. The cooperation of the following people and institutes is gratefully acknowledged for making available the various data sets: 0
0
0
0
0
W. M. ter Kuile, of the Instituut voor Milieu Wetenschappen T N O , afd. Milieubiotechnologie, Delft, the Netherlands, for the CLSM data set of the Scotch Pine pollen; S. Lobregt, CT Scanner Science Department, Philips Medical Systems, Best, the Netherlands, and Dr. F. W. Zonneveld, Department of Diagnostic Radiology, Utrecht University Hospital, Utrecht, the Netherlands, for the CT data set of the child’s head (used by permission of Prof. J. C. van der Meulen, Department of Plastic and Reconstructive Surgery, Rotterdam University Hospital “Dijkzicht,” Rotterdam, the Netherlands); A. A. van Est, MR Predevelopment Department, Philips Medical Systems, Best, the Netherlands, for the MR studies of the human head and knee; The laser range meter data set of the mask is from M. Rioux and L. Cournoyer, The NRCC Three-Dimensional Image Data Files, National Research Council Canada, CNRC 29077, June 1988; The contour stack model of the snail reproductive organ is courtesy of N. W. Runham of University College, North Wales, UK. BIBLIOGRAPHY
Amanatides, J., and Woo, A. (1987). “A Fast Voxel Traversal Algorithm for Ray Tracing,” in “Eurographics 87” (G. Marechal, ed.), 3-10, North-Holland, Amsterdam. Artzy, E., Frieder, G., and Herman, G. T. (1981). “The Theory, Design and Evaluation of a Three-DimensionalSurface Detection Algorithm,” Computer Graphics and Image Processing 15, 1-24. Asal, M., Short, G., Preston, T., Simpson, R., Roskell, D., and Guttag, K. (19886). “The Texas Instruments 34010 Graphics System Processor,” IEEE Computer Graphics and Applications 6, 24-39.
RECENT ADVANCES I N 3D DISPLAY
225
Badler, N., and Bajcsy, R. (1978). “Three-Dimensional Representations for Computer Graphics and Computer Vision,” Computer Gruphics 12, 153- 160. Ballard, D. H., and Brown, C. M. (1982).“Computer Vision,” Prentice-Hall, Englewood Cliffs, NJ. Bass. D. H. (1981). “Using the Video Lookup Table for Reflectivity Calculations: Specific Techniques and Graphic Results,” Computer Graphics and Image Processing 17, 249-261. Boissonnat, J . D. (1988). “Shape Reconstruction from Planar Cross Sections,” Computer Vixion, Graphics and Image Processing 44,No. I , 1-29. Bresenham. J. E. (1965). “Algorithm for Computer Control of a Digital Plotter.” IEM S.ystem.s Journal 4, No. I , 25-30. Brewster. L. J., Trivedi, S. S., Tuy, H . K., and Udupa, J. K. (1984). “Interactive Surgical Planning,” IEEE Computer Graphics and Applications 4, No. 3. 31 -40. Bright, S., and Laflin, S. (1986). ”Shading of Solid Voxel Models,” Computer Graphics Forum 5 , 131-137. Brooks, F. P., Ouh-Young, M., Batter, J. J., and Kilpatrick. P. J. (1990). ”Project GROPE Haptic Displays for Scientific Visualization,” Computer Graphic,s 24, No. 4, 177-185. Chen, L. S. (1987). “Representation, Display and Manipulation of 3D Digital Scenes and Their Medical Applications,” Ph.D. thesis, University of Pennsylvania. Chen, L. S.. and Sontag, M. R. (1989). “Representation, Display, and Manipulation of 3D Digital Scenes and Their Medical Applications,” Computer Vision, Graphics and Image Processing 48, No. 2. Chen, L. S., Herman, G. T., Reynolds, R. A,, and Udupa, J. K. (1985). “Surface Shading in the Cuberille Environment,” IEEE Computer Graphics and Applicutions 5, No. 12, 33--43. Christiansen. H. N., and Sederberg, T. W. (1978). “Conversion of Complex Contour Line Definitions into Polygonal Element Mosaics.” Computer Graphics 13, No. 2. 187- 192. Cleary, J. G., and Wyvill, G . (1988). “Analysis of an Algorithm for Fast Ray Tracing Using Uniform Space Subdivision,” The Visual Computer 4, No. 2, 65-83. Data Translation (1986a). “User Manual for DT2851 High Resolution Frame Grabber.” Data Translation, Inc., Marlborough, MA. Data Translation ( l986b). “User Manual For DT2858 Auxiliary Frame Processor,” Data Translation, Inc., Marlborough, MA. Drebin. R. A,, Carpenter, L., and Hanrahan, P. (1988). “Volume Rendering,” Computer Gruphics 22, No. 4, 65-74. Dyer, D. S. (1990). “A Dataflow Toolkit for Visualization.” I E E E Compufer Graphics and Applications 10, No. 4, 60-69. Ekoule, A. B., Peyrin, F. C., and Odet, C . L. (1991). “A Triangulation Algorithm from Arbitrary Shaped Planar Contours.” ACM Transactions on Graphics 10, No. 2, 182-199. England, N. ( 1986). “A Graphics System Architecture for Interactive Application-Specific Display Functions,” IEEE Computer Graphics and Applications 6, 60-70. England, N. (1988). “Application Acceleration: Development of the TAAC-1 Architecture,” Technical Note 9, Sun Microsystems. Inc., Application Accelerators Group, Mountview, CA. Foley, J. D., and Van Dam, A. (1982). “Fundamentals of Interactive Computer Graphics,” Addison-Wesley, Reading, MA. Frieder, G., Gordon, D., and Reynolds, R. A. (1985). “Back-to-Front Display of Voxel Based Objects,” IEEE Computer Graphics and Applimrions 5. No. I , 52-60. Fuchs, H., Kedem, Z., and Usselton, S. (1977). “Optimal Surface Reconstruction from Planar Contours,” Communications of the ACM 20, 693-7 12. Fuchs, H., Kedem, Z., and Naylor, B. (1980). “On Visible Surface Generation by A-priori Tree Structures,” Cornpurer Graphics 14, No. 3, 124-131. Fuchs, H., Abram, G . D., and Grant, E. D. (1983). “Near Real-Time Shaded Display of Rigid Objects,’’ Computer Graphics 17, No. 3, 65-69. -
226
D. P. HUIJSMANS AND G. J. JENSE
Fujimoto, A,, Tanaka, T., and Iwata, K. (1986). “ARTS: Accellerated Ray-Tracing System,” IEEE Computer Graphics and Applications 6, No. 4, 16-26. Glassner, A. S. (1989). “An Introduction to Ray Tracing,” Academic Press, San Diego, CA. Goldstein, E. B. (1984). “Sensation and Perception,” 2nd ed., Wadsworth, Belmont, CA. Goldwasser, S. M. (1984). “A Generalized Object Display Processor Architecture,” IEEE Compurer Graphics and Applicalions 4, No. 10, 43-55. Goldwasser, S. M., and Reynolds, R. A. (1987). “Real-Time Display and Manipulation of 3-D Medical Objects: The Voxel Processor Architecture,” Computer Vision, Graphics and Image Processing 39, 1-27. Goldwasser, S. M., Reynolds, R. A., Talton, D. A,, and Walsh, E. S . (1988). “High Performance Graphics Processors for Medical Imaging Applications,” in “Proc. Int. Conf. on Parallel Processing for Computer Vision and Display,” (P. M. Dew, R. A. Earnshaw, and T. R. Heywood, eds.). Gonzalez. R. C., and Wintz, P. (1987). “Digital Image Processing,” 2nd ed., Addison-Wesley, Reading, MA. Gordon, D., and Reynolds, R. A. (1985). “Image Space Shading of 3-Dimensional Objects,” Computer Vision, Graphics and image Processing 29, 361-376. Gordon, D., and Udupa, J. K. (1989). “Fast Surface Tracking in Three-Dimensional Binary Images,” Computer Vision, Graphics and Image Processing 45, No. 2, 196-214. Grave, M., ed. (1990). “Proc. First Eurographics Workshop on Visualization in Scientific Computing,” Paris. Hearn, D., and Baker, M. P. (1986).“Computer Graphics,” Prentice-Hall, Englewood Cliffs, NJ. Herberts, I. (1989). “Realtime Transparent Volume Rendering on a Parallel Computer,” Master’s thesis, Afdeling Wiskunde en Informatica, Rijksuniversiteit, Leiden, the Netherlands. Herr, L.. ed. (1989). “Volume Visualization: State of the Art,” ACM Siggraph Video Review, issue 44 (videotape). Hersch, R. D. (1985). “Raster Rotation of Bilevel Bitmap Images,’’ in “Eurographics 85” (C. E. Vandoni, ed.), 295-307, North-Holland, Amsterdam. Hiltebrand, E. G. (1988). “Hardware Architecture with Transputers for Fast Manipulation of Volume Data,” m “Proc. Int. Conf. on Parallel Processing for Computer Vision and Display,” (P. M. Dew, R. A. Earnshaw, and T. R. Heywood, eds.). Hockney, R. W., and Jesshope, C. R. (1988). “Parallel Computers 2,” Adam Hilger. Bristol. England. Hohne, K . H., and Bernstein, R. (1986). “Shading 3D Images from CT Using Gray Level Gradients,” IEEE Trans. Med. Imaging 5 , 45-47. Horn, B. K . P. (1986). “Robot Vision,” MIT Press, Cambridge, MA. Huijsmans, D. P. (1983). “Closed 2D Contour Algorithms for 3D Reconstruction,” in “Eurographics 83,” (P. W. ten Hagen, ed.), 157-168, North-Holland, Amsterdam. Huijsmans, D. P., Lamers, W. H., Los, J. A,, Smith, J., and Strackee, J. (1984). “ComputerAided Three-Dimensional Reconstruction from Serial Sections,” in “Eurographics 84,” (B. Tucker, ed.), 3-13, North-Holland, Amsterdam. Huijsmans, D. P., Lamers, W. H., Los, J. A,, and Strackee, J . (1986). “Toward Computerized es,” The Anatomical Record 216, 449-470. Huiskamp, W., Elgershuizen, P. M., Langenkamp, A. A. J., and Van Lieshout, P. L. J. (1990). “Visualization of 3-D Empirical Data: The Voxel Processor,” in “Proc. Eurographics Workshop on Visualization in Scientific Computing,” (M. Grave, ed.). Iwata, H. (1990). “Artificial Reality with Force Feedback,” Computer Graphics 24, No. 4, 165170.
RECENT ADVANCES IN 3 D DISPLAY
227
Jackel, D. (1985). “The Graphics PARCUM System: A 3 D Memory Based Computer Architecture for Processing and Display of Solid Models,’’ Computer Graphics Forum 4, 2132. Jackel, D. (1988). “Reconstructing Solids from Tomographic Scans: The PARCUM I1 System,’’ in “Advances in Graphics Hardware 11,” (A. A. M . Kuijk and W. Strass, eds.), Springer-Verlag, Berlin. Jackins, C. L., and Tanimoto, S. L. (1980). “Oct-Trees and Their Use in Representing ThreeDimensional Objects,” Computer Graphics and Image Processing 14, No. 3, 249-270. Jansen, F. W. (1987). “Solid Modelling with Faceted Primitives,” Ph.D. thesis, Technische Universiteit, Delft. Johnson, E. R., and Mosher, C . E. (1989). “Integration of Volume Rendering and Geometric Graphics,” in “Proc. Chapel Hill Workshop on Volume Visualization” (C. Upson, ed.), Dept. of Computer Science, Univ. of North Carolina, Chapel Hill. Kaufman, A. (1986). “Memory Organization for a Cubic Frame Buffer,” in “Eurographics 86,” (A. A. G. Requicha. ed.), 93-100, Elsevier Science Publishers B.V. (North-Holland), Amsterdam. Kaufman, A. (1987a). “An Algorithm for 3 D Scan-Conversion of Polygons,” in “Eurographics 87,” (G. Marechal, ed.), 197-208, Elsevier Science Publishers B.V. (North-Holland), Amsterdam. Kaufman, A. ( 1 987b). “Efficient Algorithms for 3D Scan-Conversion of Parametric Curves, Surfaces and Volumes,” Computer Graphics 21, No. 3, 171-179. Kaufman, A. (1988a). “The CUBE Three-Dimensional Workstation,” in “Proceedings NCGA ’88 Conference,” 344-354. Kaufman, A. (1988b). “The CUBE Workstation - A 3-D Voxel-Based Graphics Environment,” The Visual Computer 4, No. 4, 210-221. Kaufman, A. (1991). “Volume Visualization,” IEEE Computer Science Press, Washington, DC. Kaufman, A,, and Bakalash, R. (1988a). “CUBE - An Architecture Based on a 3D Voxel Map,” in “Theoretical Foundations of Computer Graphics and CAD,” 40, (R. A. Earnshaw, ed.), Springer-Verlag. Berlin. Kaufman, A,, and Bakalash, R. (1988b). “Memory and Processing Architecture for 3 D VoxelBased Imagery,” IEEE Computer Graphics and Applicutions 8, No. 6, 10-23. Kaufman, A,, and Shimony, E. (1986). “3D Scan-Conversion Algorithms for Voxel-Based Graphics,” in “Proc. ACM Workshop Interactive 3D Graphics.” 45-76, ACM, New York. Kay, T. L., and Kajiya, J . T. (1986). “Ray Tracing Complex Scenes,” Computer Graphics 20, No. 4, 269-278. Keppel, E. ( 1975). “Approximating Complex Surfaces by Triangulation of Contour Lines,” IBM Journal oj‘ Research and Development 19, 2 - I I . Kong, T. Y., and Rosenfeld, A. (1989). “Digital Topology: Introduction and Survey,” Computer Vision. Graphics and Image Processing 48, 357-393. Laan, A. C., Lamers. W. H., Huijsmans, D. P., te Kortschot, A., Smith, J., Strackee, J., and Los, J . A. ( 1989). “Deformation-Corrected Computer-Aided Three-Dimensional Reconstruction of Immunohistochemically Stained Organs,” Anatomical record 244, 443-457. Levoy, M. (1988). ”Display of Surfaces from Volume Data,” lEEE Cornpurer Graphics and Applications 8, No. 2, 29-37. Levoy, M. (1990). “Efficient Ray Tracing of Volume Data,” ACM Transactions on Graphics 9, NO. 3, 245-261. Lobregt, S. (1979). “Logische operaties op 3 D Beelden.” Master’s thesis, Vakyroep Signaal/ Systeem Techniek, Technische Hogeschool. Delft, the Netherlands [in Dutch].
228
D. P. HUIJSMANS AND G. J. JENSE
Lobregt, S., Verbeek, P., and Groen, F. C. A. (1980). “Three Dimensional Skeletonization: Principle and Algorithms,” IEEE Trans. Pattern Anal. Machine Intell. 2, 75-77. Lorensen, W., and Cline, H. (1987). “Marching Cubes: A High Resolution 3D Surface Construction Algorithm,” Computer Graphics 21, No. 4, 163- 169. Lu, H. E., and Wang, S. P. (1986). “A Comment on ‘a Fast Parallel Method for Thinning Digital Patterns’,’’ Comrn. ACM 29, No. 3, 239-242. Mantyla, M. (1988). “An Introduction to Solid Modelling,” Computer Science Press, Rockville, MD. May, D. (1987). “Occam 2 Language Definition,” Technical Report, INMOS. Naylor, B. F., and Thibault, W. C. (1986). “Application of BSP Trees to Ray-Tracing and CSG Evaluation,” Technical Report GIT-ICS 86/03, School of Information and Computer Science, Georgia Institute of Technology, Atlanta. Newman, W. M., and Sproul, R. F. (1979). “Principals of Interactive Computer Graphics,” 2nd ed., McGraw-Hill, New York. Owczarczyk, .I.and , Owczarczyk, B. (1990). “Evaluation of True 3D Display Systems for Visualizing Medical Volume Data,” The Visual Computer 6 , No. 4., 219-226. Porter, T., and Duff, T. (1984). “Compositing Digital Images,” Computer Graphics 18, No. 3, 253-259. Post, F. H., and Hin, A. J. S., eds. (1991). “Proc. Second Eurographics Workshop on Visualization in Scientific Computing,” Technische Universiteit, Delft. Requicha, A. A. G. (1980). “Representations for Rigid Solids: Theory, Methods and Systems,” ACM Computing Surveys 12, No. 4, 437-464. Reynolds, R. A,, Gordon, D., and Chen, L. S. (1987). “A Dynamic Screen Technique for Shaded Graphics Display of Slice Represented Objects,” Computer Vision, Graphics and Image Processing 38, 27 5 -298. Rosenfeld, A,, and Kak, A. C. (1982). “Digital Picture Processing,” 2nd ed., Academic Press, Orlando, Florida. Sabella, P. (1988). “A Rendering Algorithm for Visualizing 3D Scalar Fields, Computer Graphics 22, No. 4, 51-58. Samet, H. (1990a). “The Design and Analysis of Spatial Data Structures,” Addison-Wesley, Reading, MA. Samet, H. (1 990b). “Applications of Spatial Data Structures,’’ Addison-Wesley, Reading, MA. Sandler, M. B., Hayat, L., and King, L. D. (1990). “Benchmarking Processors for Image Processing,” Microprocess. Microsyst. 14, No. 9, 583-588. Sedgewick, R. (1988). “Algorithms,” 2nd ed., Addison-Wesley, Reading, MA. Sloan, K. R., and Brown, C. M. (1979). “Color Map Techniques,” Computer Graphics and Image Processing 10, 297-317. Srihari, S. N. (1981). “Representation of Three-Dimensional Digital Images,” ACM Computing Surveys 13, No. 4, 399-424. Sun Microsystems (1 988). “TAAC-I Application Accelerator: User Guide,” Sun Microsystems, Inc., Mountain View, CA. Sutherland, I . E., Sproull, R. F., and Schumacker, R. A. (1974). “A Characterization of 10 Hidden-Surface Algorithms,” ACM Computing Surveys 6, No. 1, 1-55. Teunissen, W. J. M., and Van den Bos, J . (1990). “3D Interactive Computer Graphics; the Hierarchical Modelling System HIRASP,” Ellis Horwood. Thibault, W. C., and Naylor, B. F. (1987). “Set Operations on Polyhedra Using Binary Space Partitioning Trees,” Computer Graphics 21, No. 4, 153- 162.
RECENT ADVANCES IN 3D DISPLAY
229
Tiede, U., Hohne, K. H., Bomans, M., Pommert. A., Riemer, M., and Wiebecke, G. (1990). “Investigation of Medical 3 D Rendering Algorithms,” IEEE Computer Graphics und Applications 10, No. 2, 41-53. Trivedi, S. S. (1986). “Interactive Manipulation of Three-Dimensional Binary Scenes,’’ The Visual Compurer 2, 209-218. Trousset, Y . , and Schmitt, F. (1987). “Active-Ray Tracing for 3D Medical Imaging,” in “Eurographics 87,” (G. Marechal, ed.), 139- 150, North-Holland, Amsterdam. Tufte, E. R. ( 1990). “Envisioning Information,” Graphics Press, Cheshire, England. Tuy. H. K., and Tuy, L. T. (1984). “Direct 2-D Display of 3-D Objects,” IEEE Computer Graphics and Applications 4, No. 10, 29-33. Udupa, J . K. (1983). “Display of 3 D Information in Discrete 3D Scenes Produced by Computed Tomography,” Proc. IEEE 71. No. 3, 420-431. Upson, C., ed. (1989). “Proc. Chapel Hill Workshop on Volume Visualization”, Dept. of Computer Science, Univ. of North Carolina, Chapel Hill. Upson, C., and Keeler, M. (1988). “V-Buffer: Visible Volume Rendering,” Computer Graphics 22. NO. 4, 59-64. Veltkamp, R. C . (1991). “2D and 3D Object Reconstruction with the y-Neighborhood Graph,’’ Technical Repport CS-R9116, CWI, Amsterdam. Westover, L. (1989). “Interactive Volume Rendering,” in “Workshop on Volume Visualization,” (C. Upson, ed.), 9-16, Dept. of Computer Science, Univ. of North Carolina, Chapel Hill. Zhang, T. Y., and Sum, C. Y . (1984). “A Fast Parallel Method for Thinning Digital Patterns,” Comm. ACM 27. No. 3, 236-239.
This Page Intentionally Left Blank
ADVANCES IN ELECTRONICS AND ELECTRON PHYSICS. VOL 85
Applications of Group Theory to Electron Optics YU LI Research Section of’ Applied Physics. Shanghai Institute of Mechanical Engineering. Shanghai. China
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . I1. M Function and Its Symmetry Group . . . . . . . . . . . . A . Some Concepts of Set Theory and Group Theory . . . . . . B . Group G x V of Transformations of ax: . . . . . . . . . C . Symmetry Group G, of an M Function p(P,[) . . . . . . . D . Constraint Relations Among the mth Partial Harmonic Potentials 111. Applications to Electrostatic Multipoles . . . . . . . . . . . A . The M Function for an Electrostatic Multipole . . . . . . . B . Transformations of an Electrostatic Multipole . . . . . . . . C . Induced Transformations of Its M Function . . . . . . . . D . Symmetry Transformations of an Electrostatic Multipole . . . IV . Applications to Magnetostatic Multipoles . . . . . . . . . . . A . The M Function for a Magnetostatic Multipole . . . . . . . B. Transformations of a Magnetostatic Multipole . . . . . . . C . Induced Transformations of Its M Function . . . . . . . . D . Symmetry Transformations of a Magnetostatic Multipole . . . V . A General Method for Deriving Constraint Relations . . . . . . A . Determination of the Symmetry Group G , of a Multipole . . . B . Determination of Constraints of the Symmetry Group G, . . . C . Concrete Examples . . . . . . . . . . . . . . . . . . . Appendix: Application to Algebraic Reconstruction Techniques . . References . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . .
. . . . . . . . .
231 233 233 234 236 239 241 241 241 243 245 245 245 247 248 250 251 251 252 253 256 257
I . INTRODUCTION Electrostaticand magnetostaticmultipoles withcontrol vector( = (:
1. A rotation C ( a ) by angle
(Y
radian about the z axis:
for all (p,B,z) E 9 2. A reflection R ( a ) in the plane containing the half-plane 0 = a: C(a)(p,B,z)= (p,B+a,z),
R ( a ) ( p , B , z ) = (p,2a - B , z ) , for all (p,B,z) EB. Thus we have (Li, 1988), for any real numbers a, a l , and a2,
+ 2k7r) = C ( a ) , R(a+kr) = R(a),
C(a
(1)
(2)
k = integer,
(3)
k
(4)
= integer,
C ( a , > C ( a 2= ) C(Ql + a211
(5)
R(QI)R(az) = C[2(a1 - .2)1,
(6)
C(aI)R(a2) = R(Q2 + + I )
[C(a)]-l= C ( - a ) ,
= R(a2)c(-QI),
(7)
[ R ( a ) ] - '= R ( a ) .
(8)
APPLICATIONS OF GROUP THEORY TO ELECTRON OPTICS
235
Notations: 1. G denotes the group generated by all the above rotations C ( a ) and
reflections R ( a ) .
2. C,, = C(27r/n),
R, = R(7r/n)l
n # 0,
(9)
Then, by Eqs. (3-9), we have (Li, 1988)
G = { C J n 2 I } u {R,,ln 2 I}.
(10)
2. A Group V of Linear Transformations of E Consider the following linear transformations of E: For each p E { 1 , . . . ,w},let N,, be the linear transformation of E satisfying X = I , . . . ,w, for any
(N&)A = (-l)6eA(~,
< E Z,
( 1 1)
where SbA is Kronecker delta. Let S, be the group formed by all permutations of the set { I , . . . ,w}.For each p E S,, let a( p ) be the linear transformation of E satisfying X = 1 . . . . w, for any
(a(p)E)A = E ( p - l A ) ,
< E E,
(12)
Hence we have (Li, 1988)
4Pl)4P2) =4PlP2),
[4P)l-I
=
4P - %
(13) (14)
and for all A, p E { 1 , . . . ,w},for all p E S, we get (Li, 1988) N;
=
1,
NA
#
1,
N ANp = N,, N A ,
N A 4 P ) = “(P)N(p-IA).
Notations: 1 . V denotes the group generated by all the above Np and a(p ) . def 2. ( p ) = {A,, . . . , X r } , if p is a cycle (XI . . . X r ) .
By Eqs. (13-17), we obtain (Li, 1988)
Furthermore we can prove the following theorem (Li, 1988).
(15) (16)
(17)
236
Y U LI
Theorem 1. Zfv E V , we have
j= I
’€(pJ)
where p l , . . . ,pr are disjoint cycles satisfying
and k, = 0 or 1 ( u = 1 , . . . ,w). I f furthermore v2 = 1, then for each j E { 1, . . . , r } , p, is a two-cycle or one-cycle, and when pj is a two-cycle, say, pi = (ap),we have
k,
= k,.
(21)
Since P I , . . . , p r in Theorem I are disjoint, therefore by Eqs. (11, 12). [ O ( ~ , ) I I ~ ~ ( , , ~influences ) N , ~ ” ] only the set (pi), and for any i , j E { 1,. . . , r } ,
3. The Group G x V of Transformations of 9 x S For any g E G, for any v E V , the transformation (g,v) of the Cartesian product space 9 x E is defined as follows ( g ,. ) ( P I
E ) = w,v‘9,
( P ,E )
€
9 x E
(23)
The group formed by all these transformations (g,v) with composition of transformations as its binary operation is the direct product G x V of groups G and V . The ( g , 1) and (1, v) may be abbreviated to g and v, respectively. Hence by Eq. (23) we have (g,v)
= gv = vg.
(24)
C. Symmetry Group G, of an M Function p(P,6 ) Let R be a bounded fine cylindrical vacuum region in 9. In the following we always choose the cylindrical coordinate system ( p ,8, z ) such that its z axis is the rotation axis of R and its origin is in R.
APPLICATIONS OF GROUP THEORY TO ELECTRON OPTICS
237
1 . M Function p(P,[) An M function p(P,E) is a function satisfying (Li, 1988) 1. w
cp(P,