Exemple #1
0
        /// <summary>Initializes a new instance of the <see cref="OneDimFractionalFourierTransformationRealAlpha"/> class.
        /// </summary>
        /// <param name="alpha">The parameter \alpha of the Fractional Fast Fourier Transformation.</param>
        /// <param name="oneDimFourierTransformationFactory">The one-dimensional Fourier transformation factory.</param>
        /// <param name="length">The length, i.e. the number of (complex) Fourier coefficients.</param>
        internal OneDimFractionalFourierTransformationRealAlpha(int length, double alpha, IOneDimFourierTransformationFactory oneDimFourierTransformationFactory)
        {
            if (length <= 0)
            {
                throw new ArgumentException(String.Format(ExceptionMessages.ArgumentOutOfRangeGreater, "Length <" + length + ">", 0));
            }
            m_Length            = length;
            m_ForwardPreFactor  = new Complex[length];
            m_BackwardPreFactor = new Complex[length];

            int n = 2 * length;

            m_FourierTransformation      = oneDimFourierTransformationFactory.Create(n);
            m_ForwardTransformedVectorZ  = new Complex[n];
            m_BackwardTransformedVectorZ = new Complex[n];

            SetParameterAlpha(alpha);
        }