001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.commons.math3.transform;
018
019 /**
020 * This enumeration defines the various types of normalizations that can be
021 * applied to discrete Fourier transforms (DFT). The exact definition of these
022 * normalizations is detailed below.
023 *
024 * @see FastFourierTransformer
025 * @version $Id: DftNormalization.java 1385310 2012-09-16 16:32:10Z tn $
026 * @since 3.0
027 */
028 public enum DftNormalization {
029 /**
030 * Should be passed to the constructor of {@link FastFourierTransformer}
031 * to use the <em>standard</em> normalization convention. This normalization
032 * convention is defined as follows
033 * <ul>
034 * <li>forward transform: y<sub>n</sub> = ∑<sub>k=0</sub><sup>N-1</sup>
035 * x<sub>k</sub> exp(-2πi n k / N),</li>
036 * <li>inverse transform: x<sub>k</sub> = N<sup>-1</sup>
037 * ∑<sub>n=0</sub><sup>N-1</sup> y<sub>n</sub> exp(2πi n k / N),</li>
038 * </ul>
039 * where N is the size of the data sample.
040 */
041 STANDARD,
042
043 /**
044 * Should be passed to the constructor of {@link FastFourierTransformer}
045 * to use the <em>unitary</em> normalization convention. This normalization
046 * convention is defined as follows
047 * <ul>
048 * <li>forward transform: y<sub>n</sub> = (1 / √N)
049 * ∑<sub>k=0</sub><sup>N-1</sup> x<sub>k</sub>
050 * exp(-2πi n k / N),</li>
051 * <li>inverse transform: x<sub>k</sub> = (1 / √N)
052 * ∑<sub>n=0</sub><sup>N-1</sup> y<sub>n</sub> exp(2πi n k / N),</li>
053 * </ul>
054 * which makes the transform unitary. N is the size of the data sample.
055 */
056 UNITARY;
057 }