Terahertz Spectroscopy: Principles And Applications