| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> |
| <title>FastSineTransformer (Apache Commons Math 3.3 API)</title> |
| <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="FastSineTransformer (Apache Commons Math 3.3 API)"; |
| } |
| //--> |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar_top"> |
| <!-- --> |
| </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/FastSineTransformer.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| <div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/commons/math3/transform/FastHadamardTransformer.html" title="class in org.apache.commons.math3.transform"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/commons/math3/transform/FastSineTransformer.html" target="_top">Frames</a></li> |
| <li><a href="FastSineTransformer.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li><a href="#constructor_summary">Constr</a> | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor_detail">Constr</a> | </li> |
| <li><a href="#method_detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip-navbar_top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="subTitle">org.apache.commons.math3.transform</div> |
| <h2 title="Class FastSineTransformer" class="title">Class FastSineTransformer</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.commons.math3.transform.FastSineTransformer</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <dl> |
| <dt>All Implemented Interfaces:</dt> |
| <dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform">RealTransformer</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>public class <span class="strong">FastSineTransformer</span> |
| extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> |
| implements <a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform">RealTransformer</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre> |
| <div class="block">Implements the Fast Sine Transform for transformation of one-dimensional real |
| data sets. For reference, see James S. Walker, <em>Fast Fourier |
| Transforms</em>, chapter 3 (ISBN 0849371635). |
| <p> |
| There are several variants of the discrete sine transform. The present |
| implementation corresponds to DST-I, with various normalization conventions, |
| which are specified by the parameter <a href="../../../../../org/apache/commons/math3/transform/DstNormalization.html" title="enum in org.apache.commons.math3.transform"><code>DstNormalization</code></a>. |
| <strong>It should be noted that regardless to the convention, the first |
| element of the dataset to be transformed must be zero.</strong> |
| <p> |
| DST-I is equivalent to DFT of an <em>odd extension</em> of the data series. |
| More precisely, if x<sub>0</sub>, …, x<sub>N-1</sub> is the data set |
| to be sine transformed, the extended data set x<sub>0</sub><sup>#</sup>, |
| …, x<sub>2N-1</sub><sup>#</sup> is defined as follows |
| <ul> |
| <li>x<sub>0</sub><sup>#</sup> = x<sub>0</sub> = 0,</li> |
| <li>x<sub>k</sub><sup>#</sup> = x<sub>k</sub> if 1 ≤ k < N,</li> |
| <li>x<sub>N</sub><sup>#</sup> = 0,</li> |
| <li>x<sub>k</sub><sup>#</sup> = -x<sub>2N-k</sub> if N + 1 ≤ k < |
| 2N.</li> |
| </ul> |
| <p> |
| Then, the standard DST-I y<sub>0</sub>, …, y<sub>N-1</sub> of the real |
| data set x<sub>0</sub>, …, x<sub>N-1</sub> is equal to <em>half</em> |
| of i (the pure imaginary number) times the N first elements of the DFT of the |
| extended data set x<sub>0</sub><sup>#</sup>, …, |
| x<sub>2N-1</sub><sup>#</sup> <br /> |
| y<sub>n</sub> = (i / 2) ∑<sub>k=0</sub><sup>2N-1</sup> |
| x<sub>k</sub><sup>#</sup> exp[-2πi nk / (2N)] |
| k = 0, …, N-1. |
| <p> |
| The present implementation of the discrete sine transform as a fast sine |
| transform requires the length of the data to be a power of two. Besides, |
| it implicitly assumes that the sampled function is odd. In particular, the |
| first element of the data set must be 0, which is enforced in |
| <a href="../../../../../org/apache/commons/math3/transform/FastSineTransformer.html#transform(org.apache.commons.math3.analysis.UnivariateFunction, double, double, int, org.apache.commons.math3.transform.TransformType)"><code>transform(UnivariateFunction, double, double, int, TransformType)</code></a>, |
| after sampling.</div> |
| <dl><dt><span class="strong">Since:</span></dt> |
| <dd>1.2</dd> |
| <dt><span class="strong">Version:</span></dt> |
| <dd>$Id: FastSineTransformer.java 1385310 2012-09-16 16:32:10Z tn $</dd> |
| <dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#org.apache.commons.math3.transform.FastSineTransformer">Serialized Form</a></dd></dl> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor_summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colOne" scope="col">Constructor and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/transform/FastSineTransformer.html#FastSineTransformer(org.apache.commons.math3.transform.DstNormalization)">FastSineTransformer</a></strong>(<a href="../../../../../org/apache/commons/math3/transform/DstNormalization.html" title="enum in org.apache.commons.math3.transform">DstNormalization</a> normalization)</code> |
| <div class="block">Creates a new instance of this class, with various normalization conventions.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> |
| <caption><span>Methods</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Method and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>protected double[]</code></td> |
| <td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/transform/FastSineTransformer.html#fst(double[])">fst</a></strong>(double[] f)</code> |
| <div class="block">Perform the FST algorithm (including inverse).</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>double[]</code></td> |
| <td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/transform/FastSineTransformer.html#transform(double[], org.apache.commons.math3.transform.TransformType)">transform</a></strong>(double[] f, |
| <a href="../../../../../org/apache/commons/math3/transform/TransformType.html" title="enum in org.apache.commons.math3.transform">TransformType</a> type)</code> |
| <div class="block">Returns the (forward, inverse) transform of the specified real data set.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>double[]</code></td> |
| <td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/transform/FastSineTransformer.html#transform(org.apache.commons.math3.analysis.UnivariateFunction, double, double, int, org.apache.commons.math3.transform.TransformType)">transform</a></strong>(<a href="../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a> f, |
| double min, |
| double max, |
| int n, |
| <a href="../../../../../org/apache/commons/math3/transform/TransformType.html" title="enum in org.apache.commons.math3.transform">TransformType</a> type)</code> |
| <div class="block">Returns the (forward, inverse) transform of the specified real function, |
| sampled on the specified interval.</div> |
| </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> |
| <code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="details"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor_detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="FastSineTransformer(org.apache.commons.math3.transform.DstNormalization)"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>FastSineTransformer</h4> |
| <pre>public FastSineTransformer(<a href="../../../../../org/apache/commons/math3/transform/DstNormalization.html" title="enum in org.apache.commons.math3.transform">DstNormalization</a> normalization)</pre> |
| <div class="block">Creates a new instance of this class, with various normalization conventions.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>normalization</code> - the type of normalization to be applied to the transformed data</dd></dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method_detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="transform(double[], org.apache.commons.math3.transform.TransformType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>transform</h4> |
| <pre>public double[] transform(double[] f, |
| <a href="../../../../../org/apache/commons/math3/transform/TransformType.html" title="enum in org.apache.commons.math3.transform">TransformType</a> type)</pre> |
| <div class="block">Returns the (forward, inverse) transform of the specified real data set. |
| |
| The first element of the specified data set is required to be <code>0</code>.</div> |
| <dl> |
| <dt><strong>Specified by:</strong></dt> |
| <dd><code><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html#transform(double[], org.apache.commons.math3.transform.TransformType)">transform</a></code> in interface <code><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform">RealTransformer</a></code></dd> |
| <dt><span class="strong">Parameters:</span></dt><dd><code>f</code> - the real data array to be transformed (signal)</dd><dd><code>type</code> - the type of transform (forward, inverse) to be performed</dd> |
| <dt><span class="strong">Returns:</span></dt><dd>the real transformed array (spectrum)</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code> - if the length of the data array is |
| not a power of two, or the first element of the data array is not zero</dd></dl> |
| </li> |
| </ul> |
| <a name="transform(org.apache.commons.math3.analysis.UnivariateFunction, double, double, int, org.apache.commons.math3.transform.TransformType)"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>transform</h4> |
| <pre>public double[] transform(<a href="../../../../../org/apache/commons/math3/analysis/UnivariateFunction.html" title="interface in org.apache.commons.math3.analysis">UnivariateFunction</a> f, |
| double min, |
| double max, |
| int n, |
| <a href="../../../../../org/apache/commons/math3/transform/TransformType.html" title="enum in org.apache.commons.math3.transform">TransformType</a> type)</pre> |
| <div class="block">Returns the (forward, inverse) transform of the specified real function, |
| sampled on the specified interval. |
| |
| This implementation enforces <code>f(x) = 0.0</code> at <code>x = 0.0</code>.</div> |
| <dl> |
| <dt><strong>Specified by:</strong></dt> |
| <dd><code><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html#transform(org.apache.commons.math3.analysis.UnivariateFunction, double, double, int, org.apache.commons.math3.transform.TransformType)">transform</a></code> in interface <code><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform">RealTransformer</a></code></dd> |
| <dt><span class="strong">Parameters:</span></dt><dd><code>f</code> - the function to be sampled and transformed</dd><dd><code>min</code> - the (inclusive) lower bound for the interval</dd><dd><code>max</code> - the (exclusive) upper bound for the interval</dd><dd><code>n</code> - the number of sample points</dd><dd><code>type</code> - the type of transform (forward, inverse) to be performed</dd> |
| <dt><span class="strong">Returns:</span></dt><dd>the real transformed array</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/commons/math3/exception/NonMonotonicSequenceException.html" title="class in org.apache.commons.math3.exception">NonMonotonicSequenceException</a></code> - if the lower bound is greater than, or equal to the upper bound</dd> |
| <dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if the number of sample points is negative</dd> |
| <dd><code><a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code> - if the number of sample points is not a power of two</dd></dl> |
| </li> |
| </ul> |
| <a name="fst(double[])"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>fst</h4> |
| <pre>protected double[] fst(double[] f) |
| throws <a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre> |
| <div class="block">Perform the FST algorithm (including inverse). The first element of the |
| data set is required to be <code>0</code>.</div> |
| <dl><dt><span class="strong">Parameters:</span></dt><dd><code>f</code> - the real data array to be transformed</dd> |
| <dt><span class="strong">Returns:</span></dt><dd>the real transformed array</dd> |
| <dt><span class="strong">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code> - if the length of the data array is |
| not a power of two, or the first element of the data array is not zero</dd></dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a name="navbar_bottom"> |
| <!-- --> |
| </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/FastSineTransformer.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../help-doc.html">Help</a></li> |
| </ul> |
| <div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../org/apache/commons/math3/transform/FastHadamardTransformer.html" title="class in org.apache.commons.math3.transform"><span class="strong">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/commons/math3/transform/RealTransformer.html" title="interface in org.apache.commons.math3.transform"><span class="strong">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/commons/math3/transform/FastSineTransformer.html" target="_top">Frames</a></li> |
| <li><a href="FastSineTransformer.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li><a href="#constructor_summary">Constr</a> | </li> |
| <li><a href="#method_summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor_detail">Constr</a> | </li> |
| <li><a href="#method_detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip-navbar_bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 2003–2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |