Discrete sine transform

From Wikipedia, the free encyclopedia

In mathematics, the discrete sine transform (DST) is a Fourier-related transform similar to the discrete Fourier transform (DFT), but using a purely real matrix. It is equivalent to the imaginary parts of a DFT of roughly twice the length, operating on real data with odd symmetry (since the Fourier transform of a real and odd function is imaginary and odd), where in some variants the input and/or output data are shifted by half a sample.

A related transform is the discrete cosine transform (DCT), which is equivalent to a DFT of real and even functions. See the DCT article for a general discussion of how the boundary conditions relate the various DCT and DST types.

Contents

DSTs are widely employed in solving partial differential equations by spectral methods, where the different variants of the DST correspond to slightly different odd/even boundary conditions at the two ends of the array.

Formally, the discrete sine transform is a linear, invertible function F : RN -> RN (where R denotes the set of real numbers), or equivalently an N × N square matrix. There are several variants of the DST with slightly modified definitions. The N real numbers x0, ...., xN-1 are transformed into the N real numbers X0, ..., XN-1 according to one of the formulas:

X_k = \sum_{n=0}^{N-1} x_n \sin \left[\frac{\pi}{N+1} (n+1) (k+1) \right] \quad \quad k = 0, \dots, N-1

The DST-I matrix is orthogonal (up to a scale factor).

A DST-I of N=3 real numbers abc is exactly equivalent to a DFT of eight real numbers 0abc0(-c)(-b)(-a) (odd symmetry), here divided by two. (In contrast, DST types II-IV involve a half-sample shift in the equivalent DFT.)

Thus, the DST-I corresponds to the boundary conditions: xn is odd around n=-1 and odd around n=N; similarly for Xk.

X_k =    \sum_{n=0}^{N-1} x_n \sin \left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) (k+1)\right] \quad \quad k = 0, \dots, N-1

Some authors further multiply the XN-1 term by 1/√2 (see below for the corresponding change in DST-III). This makes the DST-II matrix orthogonal (up to a scale factor), but breaks the direct correspondence with a real-odd DFT of half-shifted input.

The DST-II implies the boundary conditions: xn is odd around n=-1/2 and odd around n=n-1/2; Xk is odd around k=-1 and even around k=N-1.

X_k = \frac{(-1)^k}{2} x_{N-1} +    \sum_{n=0}^{N-2} x_n \sin \left[\frac{\pi}{N} (n+1) \left(k+\frac{1}{2}\right) \right] \quad \quad k = 0, \dots, N-1

Some authors further multiply the xN-1 term by √2 (see above for the corresponding change in DST-II). This makes the DST-III matrix orthogonal (up to a scale factor), but breaks the direct correspondence with a real-odd DFT of half-shifted output.

The DST-III implies the boundary conditions: xn is odd around n=-1 and even around n=N-1; Xk is odd around k=-1/2 and odd around k=N-1/2.

X_k =    \sum_{n=0}^{N-1} x_n \sin \left[\frac{\pi}{N} \left(n+\frac{1}{2}\right) \left(k+\frac{1}{2}\right) \right] \quad \quad k = 0, \dots, N-1

The DST-IV matrix is orthogonal (up to a scale factor).

The DST-IV implies the boundary conditions: xn is odd around n=-1/2 and even around n=N-1/2; similarly for Xk.

DST types I-IV are equivalent to real-odd DFTs of even order. In principle, there are actually four additional types of discrete sine transform (Martucci, 1994), corresponding to real-odd DFTs of logically odd order, which have factors of N+1/2 in the denominators of the sine arguments. However, these variants seem to be rarely used in practice.

The inverse of DST-I is DST-I multiplied by 2/(N+1). The inverse of DST-IV is DST-IV multiplied by 2/N. The inverse of DST-II is DST-III multiplied by 2/N (and vice versa).

Like for the DFT, the normalization factor in front of these transform definitions is merely a convention and differs between treatments. For example, some authors multiply the transforms by \sqrt{2/N} so that the inverse does not require any additional multiplicative factor.

Although the direct application of these formulas would require O(N2) operations, it is possible to compute the same thing with only O(N log N) complexity by factorizing the computation similar to the fast Fourier transform (FFT). (One can also compute DSTs via FFTs combined with O(N) pre- and post-processing steps.)

A DST-II or DST-IV can be computed from a DCT-II or DCT-IV (see discrete cosine transform), respectively, by reversing the order of the inputs and flipping the sign of every other output, and vice versa for DST-III from DCT-III. In this way it follows that types II–IV of the DST require exactly the same number of arithmetic operations (additions and multiplications) as the corresponding DCT types.

  • S. A. Martucci, "Symmetric convolution and the discrete sine and cosine transforms," IEEE Trans. Sig. Processing SP-42, 1038-1051 (1994).
  • Matteo Frigo and Steven G. Johnson: FFTW, http://www.fftw.org/. A free (GPL) C library that can compute fast DSTs (types I-IV) in one or more dimensions, of arbitrary size. Also M. Frigo and S. G. Johnson, "The Design and Implementation of FFTW3," Proceedings of the IEEE 93 (2), 216–231 (2005).
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.