Example #1
0
        internal static DFTWAVES init_dftwaves(List <double> dft_coefs, int nwaves, int blocksize)
        {
            DFTWAVES dftwaves = new DFTWAVES();
            DFTWAVE  dftwaveResult = new DFTWAVE();
            double   pi_factor, freq, x;

            dftwaves.nwaves  = nwaves;
            dftwaves.wavelen = blocksize;
            dftwaves.waves   = new List <DFTWAVE>(); //count = nwaves
            pi_factor        = 2.0 * M_PI / (double)blocksize;

            for (int i = 0; i < nwaves; ++i)
            {
                dftwaveResult     = new DFTWAVE();
                dftwaveResult.sin = new List <double>(); // count = blocksize
                dftwaveResult.cos = new List <double>(); // count = blocksize
                freq = pi_factor * dft_coefs[i];

                for (int j = 0; j < blocksize; ++j)
                {
                    x = freq * j;
                    dftwaveResult.cos.Add(Math.Cos(x));
                    dftwaveResult.sin.Add(Math.Sin(x));
                }

                dftwaves.waves.Add(dftwaveResult);
            }

            return(dftwaves);
        }
Example #2
0
        internal static DFTWAVES init_dftwaves(List<double> dft_coefs, int nwaves, int blocksize)
        {
            DFTWAVES dftwaves = new DFTWAVES();
            DFTWAVE dftwaveResult = new DFTWAVE();
            double pi_factor, freq, x;

            dftwaves.nwaves = nwaves;
            dftwaves.wavelen = blocksize;
            dftwaves.waves = new List<DFTWAVE>(); //count = nwaves
            pi_factor = 2.0 * M_PI / (double)blocksize;

            for (int i = 0; i < nwaves; ++i)
            {
                dftwaveResult = new DFTWAVE();
                dftwaveResult.sin = new List<double>(); // count = blocksize
                dftwaveResult.cos = new List<double>(); // count = blocksize
                freq = pi_factor * dft_coefs[i];

                for (int j = 0; j < blocksize; ++j)
                {
                    x = freq * j;
                    dftwaveResult.cos.Add(Math.Cos(x));
                    dftwaveResult.sin.Add(Math.Sin(x));
                }

                dftwaves.waves.Add(dftwaveResult);
            }

            return dftwaves;
        }
Example #3
0
        internal static double dft_power(int[] rowsums, DFTWAVE wave, int wavelen)
        {
            double cospart = 0.0, sinpart = 0.0;

            for (int i = 0; i < wavelen; i++)
            {
                cospart += rowsums[i] * wave.cos[i];
                sinpart += rowsums[i] * wave.sin[i];
            }

            return(cospart * cospart + sinpart * sinpart);
        }
Example #4
0
    internal static double dft_power(int[] rowsums, DFTWAVE wave, int wavelen)
    {
      double cospart = 0.0, sinpart = 0.0;

      for (int i = 0; i < wavelen; i++)
      {
        cospart += rowsums[i] * wave.cos[i];
        sinpart += rowsums[i] * wave.sin[i];
      }

      return cospart * cospart + sinpart * sinpart;
    }