예제 #1
0
        public void ReverseFastFourierTransform()
        {
            if (isFourierTransformed)
            {
                FourierTransform.FFT2D(data, Direction.Reverse);
                isFourierTransformed = false;

                for (int y = 0; y < height; y++)
                {
                    for (int x = 0; x < width; x++)
                    {
                        if (((x + y) & 0x1) != 0)
                        {
                            data[y, x].Re *= -1;
                            data[y, x].Im *= -1;
                        }
                    }
                }
            }
        }
예제 #2
0
        public void FastFourierTransform()
        {
            if (!isFourierTransformed)
            {
                for (int y = 0; y < height; y++)
                {
                    for (int x = 0; x < width; x++)
                    {
                        if (((x + y) & 0x1) != 0)
                        {
                            data[y, x].Re *= -1;
                            data[y, x].Im *= -1;
                        }
                    }
                }

                FourierTransform.FFT2D(data, Direction.Forward);
                isFourierTransformed = true;
            }
        }