コード例 #1
0
ファイル: PeakFinder.cs プロジェクト: Reeyaw/xoscillo
        public static void InitLoopThoughWave(DataBlock db)
        {
            find_max = true;
            delta_time = 0;
            fine = 0;
            extreme = 0;
            extreme_time = 0;

            m_db = db;
            adc_ptr = 0;

            zero = m_db.GetAverage(0);
        }
コード例 #2
0
        public static void InitLoopThoughWave(DataBlock db)
        {
            find_max     = true;
            delta_time   = 0;
            fine         = 0;
            extreme      = 0;
            extreme_time = 0;

            m_db    = db;
            adc_ptr = 0;

            zero = m_db.GetAverage(0);
        }
コード例 #3
0
        override public void SetDataBlock(DataBlock db)
        {
            m_db = db;

            int lastValue = 0;
            int run       = 0;

            int average = m_db.GetAverage(0);

            textBox1.Text += string.Format("Average {0}\r\n", average);

            textBox1.Text += string.Format("Sample Rate {0}\r\n", db.m_sampleRate);

            textBox1.Text += string.Format("\r\nFreq from zeroes:\r\n", db.m_sampleRate);

            for (int i = 0; i < db.GetChannelLength(); i++)
            {
                int value = db.GetVoltage(0, i);;

                if (value > average && lastValue < average)
                {
                    textBox1.Text += string.Format("{0} {1} {2}\r\n", i, run, 1.0 / ((float)run / (float)db.m_sampleRate));
                    run            = 0;
                }

                run++;

                lastValue = value;
            }

            textBox1.Text += string.Format("\r\nFreq from self correlation:\r\n", db.m_sampleRate);

            double old = 10;

            for (int i = 0; i < db.GetChannelLength() / 2; i++)
            {
                double c = correlate(db, i);
                if (c > old)
                {
                    double waveLength = 2 * (double)i / (double)db.m_sampleRate;
                    textBox1.Text += string.Format("{0}\r\n", 1 / waveLength);
                    break;
                }
                old = c;
            }
        }
コード例 #4
0
ファイル: DecodeFrequency.cs プロジェクト: Reeyaw/xoscillo
      override public void SetDataBlock(DataBlock db)
      {
         m_db = db;

         int lastValue=0;
         int run = 0;

         int average = m_db.GetAverage( 0 );

         textBox1.Text += string.Format("Average {0}\r\n", average);

         textBox1.Text += string.Format("Sample Rate {0}\r\n", db.m_sampleRate);

         textBox1.Text += string.Format("\r\nFreq from zeroes:\r\n", db.m_sampleRate);

         for (int i = 0; i < db.GetChannelLength(); i++)
         {
            int value = db.GetVoltage(0, i);;

            if (value > average && lastValue < average)
            {
               textBox1.Text += string.Format("{0} {1} {2}\r\n", i, run, 1.0/((float)run/(float)db.m_sampleRate) );
               run = 0;
            }

            run++;

            lastValue = value;
         }

         textBox1.Text += string.Format("\r\nFreq from self correlation:\r\n", db.m_sampleRate);

         double old = 10;
         for (int i = 0; i < db.GetChannelLength() / 2; i++)
         {
            double c = correlate(db, i);
            if (c > old)
            {
               double waveLength = 2* (double)i / (double)db.m_sampleRate;
               textBox1.Text += string.Format("{0}\r\n", 1 / waveLength);
               break;
            }
            old = c;
         }

      }