You can also do it pretty explicitly using the Fourier transform, or, more generally, the pseudodifferential calculus. This approach typically only gives an approximation, but is often much more useful in many applications. It is also at the heart of a mathematical field called microlocal analysis.
http://en.wikipedia.org/wiki/Pseudo-differential_operator
For many self-adjoint (or normal) operators, you can use the functional calculus: http://en.wikipedia.org/wiki/Functional_calculus
You can also do it pretty explicitly using the Fourier transform, or, more generally, the pseudodifferential calculus. This approach typically only gives an approximation, but is often much more useful in many applications. It is also at the heart of a mathematical field called microlocal analysis. http://en.wikipedia.org/wiki/Pseudo-differential_operator