Daniel C. McCarthy, Senior Editor/Special Projects
Software programming is a tedious, thankless job. Bill Gates notwithstanding, it isn't likely that the title "software developer" will become sexy any time soon. The most programmers can hope for are tools that will make their job easier.
Terry Brennan, a senior scientist at the Optical Sciences Co., makes his living developing computer programs to model electromagnetic field propagation. The applications of his work range from astronomy to missile guidance and tracking. "A laser [beam] has certain characteristics when it leaves the device and it picks up phase aberrations as it travels through the atmosphere. We want to understand all of that," he explained.
Matlab software, from The MathWorks, helped Brennan to create a "toolbox" called AOTools. In addition to modeling and analyzing electromagnetic field propagation, the toolbox program helps in the design and evaluation of adaptive optics and sensors. It's primarily directed toward people interested in atmospheric propagation, he said.
Matlab software simplified
development of AOToolbox, a computer program for modeling electromagnetic wave propagation. Shown here is propagation of waves through atmospheric turbulence (left) and through a vacuum (right). Phase of the field is in color, and amplitude is modulated on top of that field in terms of intensity. Courtesy of the Optical Sciences Co.
Matlab is highly matrix-oriented. That is, its numeric functions are designed to operate on matrices. Users can manipulate these matrices using preprogrammed functions that incorporate much of the basic computational groundwork. "It's possible to model all this in Fortran or C++," he explained. "It's just that Matlab offers a higher-level language to relieve you of some of the tedious aspects of programming."
"People choose Matlab because it has all this underlying math that they don't have to do themselves," said Lisa Kempler, marketing manager for Matlab software. "They're not necessarily experts in optics or mathematics."
Besides streamlining the writing of code, this matrix-oriented characteristic of Matlab reduces much of the time-intensive debugging process. "It tells you visually where some of the bugs are," said Brennan.
Other software strengths are in solving equations, he noted, adding that Matlab's strength is in its computational horsepower, which leans more toward faster calculation. "We run experiments with AOTools to verify adaptive optics designs," he said. "For example, we take measurements of a wavefront at 4000 fps. That can be handled very conveniently using matrix constructions."