Each Discrete Cosine Transform uses N real basis vectors whose components are cosines. In the DCT-4, for example, the jth component of v_k is cos[(j+1/2)(k+1/2)pi/N]. These basis vectors are orthogonal and the transform is extremely useful in image processing. If the vector x gives the intensities along a row of pixels, its cosine series c_k v_k has the coefficients c_k = <x, v_k>/N. They are quickly computed from an FFT of length 2N. But a direct proof of orthogonality, by calculating inner products, does not reveal how natural these cosine vectors are.
We prove orthogonality in a different way. Each DCT basis comes from the eigenvectors of a symmetric "second difference" matrix. By varying the boundary conditions we get the established transforms DCT-1 through DCT-4. Other combinations lead to four additional cosine transforms. The type of boundary condition (Dirichlet or Neumann, centered at a meshpoint or a midpoint) determines the period: N-1 or N in the established transforms. N-1/2 or N+1/2 in teh other four. The key point is that all these eigenvectors of cosines come from simple and familiar matrices.