Software included with this thesis: modematch.zip Excel 98 spreadsheet for calculating Gaussian optics mode matching. Documentation is included on the first page of the spreadsheet and in a PDF file in the archive spit.m System Plotting Interactive Tool: Graphical Matlab program for plotting transfer functions of Simulink models. susres.nb Suspension Resonance: Mathematica 4.0 notebook for calculating pitch and yaw resonance frequencies of mirrors suspended by a wire sling. noiseplot.nb Mirror Thermal Noise in LIGO: Mathematica 4.0 notebook for numerical estimates of all the mirror thermal noise sources listed in Ch. 2. software.zip Data acqusition and analysis software The data acquisition and analysis programs included with this thesis run under the JSDB JavaScript 1.5 interpreter from http://www.workflowconcepts.com/jsdb/. This interpreter was written by Shanti Rao, using the SpiderMonkey 1.5 JavaScript engine developed by Mozilla.org. These programs require the XML package included with JSDB. Copyrights for the programs included herein are placed in the public domain. xml.js Library for reading XML files. ploteps.js Library for plotting data as Encapsulated PostScript figures. stats.js Library for computing the mean, max, and fourier components readtex.js Program to download data from a Tektronix TDS 3014 digital oscilloscope and append it in an XML file. The scope should be connected to COM1 at 38 kBaud. Data are saved in "data.xml." Usage: jsdb.exe readtex.js makeplots.js Program for generating plots for each data capture in an XML file. Data are read from "data.xml", and plots are stored in an "img/" subdirectory. Usage: jsdb.exe makeplots.js analyze.js Program to calculate rms amplitude, mean, min, max, and duty cycle of each waveform found in the file "data.xml". Results are saved in the text files, "magnitude.txt", "phase.txt", "mean.txt", and "info.txt". Usage: jsdb.exe analyze.js