SoundLibrary.SpectrumAnalysis.CFft.Invert C# (CSharp) Method

Invert() public method

逆フーリエ変換を行う。
public Invert ( double x ) : void
x double 変換したいデータ
return void
		unsafe public void Invert(double[] x)
		{
			fixed(double* px = x)
			{
				fft.Transform(-1, px);
			}
		}
	}//class CFft

Usage Example

Exemplo n.º 1
0
        /// <summary>
        /// x をヒルベルト変換する。
        /// </summary>
        /// <param name="x">変換元</param>
        /// <returns>変換後</returns>
        public static double[] HilbertTransform(double[] x)
        {
            int N = x.Length;

            double[] tmp = new double[2 * N];
            for (int i = 0; i < N; ++i)
            {
                tmp[2 * i]     = x[i];
                tmp[2 * i + 1] = 0;
            }

            CFft cfft = new CFft(2 * N);

            cfft.Invert(tmp);

            tmp[0] /= 2; tmp[1] /= 2;
            tmp[N] /= 2; tmp[N + 1] /= 2;
            for (int i = N + 1; i < 2 * N; ++i)
            {
                tmp[i] = 0;
            }

            cfft.Transform(tmp);

            double[] y = new double[x.Length];
            for (int i = 0; i < N; ++i)
            {
                x[i] = tmp[2 * i] * 2 / N;
                y[i] = tmp[2 * i + 1] * 2 / N;
            }

            return(y);
        }        //HilbertTransform
All Usage Examples Of SoundLibrary.SpectrumAnalysis.CFft::Invert