Although waveform inversion has been studied extensively since its beginning 20 years ago, applications to seismic field data have been limited, and most of those applications have been for global-seismology-or engineering-seismology-scale problems, not for exploration-scale data. As an alternative to classical waveform inversion, we propose the use of a new, objective function constructed by taking the logarithm of wavefields, allowing consideration of three types of objective function, namely, amplitude only, phase only, or both. In our waveform inversion, we estimate the source signature as well as the velocity structure by including functions of amplitudes and phases of the source signature in the objective function. We compute the steepest-descent directions by using a matrix formalism derived from a frequency-domain, finite-element/finite-difference modeling technique. Our numerical algorithms are similar to those of reverse-time migration and waveform inversion based on the adjoint state of the wave equation. In order to demonstrate the practical applicability of our algorithm, we use a synthetic data set from the Marmousi model and seismic data collected from the Korean continental shelf. For noisefree synthetic data, the velocity structure produced by our inversion algorithm is closer to the true velocity structure than that obtained with conventional waveform inversion. When random noise is added, the inverted velocity model is also close to the true Marmousi model, but when frequencies below 5 Hz are removed from the data, the velocity structure is not as good as those for the noise-free and noisy data. For field data, we compare the time-domain synthetic seismograms generated for the velocity model inverted by our algorithm with real seismograms and find that the results show that our inversion algorithm reveals short-period features of the subsurface. Although we use wrapped phases in our examples, we still obtain reasonable results. We expect that if we were to use correctly unwrapped phases in the inversion algorithm, we would obtain better results.