示例#1
0
        public Fourier correlation(Fourier four)
        {
            Fourier X      = this.fft(1);
            Fourier Y_star = four.fft(1).conjugate();

            return(X.multiply(Y_star).fft(-1));
        }
示例#2
0
        public Fourier convolution(Fourier response)
        {
            Fourier U           = this.fft(1);
            Fourier H           = response.fft(1);
            Fourier convolution = H.multiply(U).fft(-1);

            return(convolution);
        }
示例#3
0
        public Fourier correlationNormalized(Fourier four)
        {
            Fourier X      = this.fft(1);
            Fourier X_star = X.conjugate();
            Fourier Y      = four.fft(1);
            Fourier Y_star = Y.conjugate();

            Fourier correlation      = X.multiply(Y_star).fft(-1);
            Fourier autoCorrelationX = X.multiply(X_star).fft(-1);
            Fourier autoCorrelationY = Y.multiply(Y_star).fft(-1);

            Complex[] norm = new Complex[cArray.Length];
            for (int i = 0; i < cArray.Length; i++)
            {
                norm[i] = new Complex(correlation.getZ()[i].getReal() / Math.Sqrt(autoCorrelationX.getZ()[0].getReal() * autoCorrelationY.getZ()[0].getReal()), 0);
            }

            return(new Fourier(norm));
        }