示例#1
0
        // Инициализация фильтра Кальмана
        public KalmanFilter()
        {
            m_timeLastMeasurement = clock();
            int dynam_params = 4; // x,y,dx,dy
            int measure_params = 2;
            m_pKalmanFilter = cvCreateKalman(dynam_params, measure_params);
            state = cvCreateMat( dynam_params, 1, CV_32FC1 );

            // Генератор случайных чисел
            cvRandInit( &rng, 0, 1, -1, CV_RAND_UNI );
            cvRandSetRange( &rng, 0, 1, 0 );
            rng.disttype = CV_RAND_NORMAL;
            cvRand( &rng, state );

            process_noise = cvCreateMat( dynam_params, 1, CV_32FC1 ); // (w_k)
            measurement = cvCreateMat( measure_params, 1, CV_32FC1 ); // two parameters for x,y  (z_k)
            measurement_noise = cvCreateMat( measure_params, 1, CV_32FC1 ); // two parameters for x,y (v_k)
            cvZero(measurement);

            // F matrix data
            // F is transition matrix.  It relates how the states interact
            // For single input fixed velocity the new value
            // depends on the previous value and velocity- hence 1 0 1 0
            // on top line. Новое значение скорости не зависит от предыдущего
            // значения координаты, и зависит только от предыдущей скорости- поэтому 0 1 0 1 on second row
            const float[] F = {
                1, 0, 1, 0,//x + dx
                0, 1, 0, 1,//y + dy
                0, 0, 1, 0,//dx = dx
                0, 0, 0, 1,//dy = dy
            };
            memcpy( m_pKalmanFilter->transition_matrix->data.fl, F, sizeof(F));
            cvSetIdentity( m_pKalmanFilter->measurement_matrix, cvRealScalar(1) ); // (H)
            cvSetIdentity( m_pKalmanFilter->process_noise_cov, cvRealScalar(1e-5) ); // (Q)
            cvSetIdentity( m_pKalmanFilter->measurement_noise_cov, cvRealScalar(1e-1) ); // (R)
            cvSetIdentity( m_pKalmanFilter->error_cov_post, cvRealScalar(1));

            // choose random initial state
            cvRand( &rng, m_pKalmanFilter->state_post );

            //InitializeCriticalSection(&mutexPrediction);
        }
示例#2
0
        static void Main(string[] args)
        {
            int[][] X_train = new int[NUMBER_OF_EXAMPLES][];
            int[]   y_train = new int[NUMBER_OF_EXAMPLES];

            for (var i = 0; i <= X_train.Length; i++)
            {
                X_train[i] = new int[Constants.FEATURES];
            }

            int[][] X_test = new int[NUMBER_OF_EXAMPLES][];
            int[]   y_test = new int[NUMBER_OF_EXAMPLES];

            for (var i = 0; i <= X_test.Length; i++)
            {
                X_test[i] = new int[Constants.FEATURES];
            }

            ReadFiles();

            var mcTsetlinMachine = new MultiClassTsetlinMachine();

            float average = 0.0f;

            for (var i = 0; i < 1000; i++)
            {
                mcTsetlinMachine.Initialize();
                TimeSpan start_total = 0;
                mc_tm_fit(mc_tsetlin_machine, X_train, y_train, NUMBER_OF_EXAMPLES, 200, 3.9);
                clock_t end_total = clock();
                double  time_used = ((double)(end_total - start_total)) / CLOCKS_PER_SEC;

                printf("EPOCH %d TIME: %f\n", i + 1, time_used);
                average += mc_tm_evaluate(mc_tsetlin_machine, X_test, y_test, NUMBER_OF_EXAMPLES);

                printf("Average accuracy: %f\n", average / (i + 1));
            }
        }
示例#3
0
        public SidTuneInfoImpl()
        {
            m_formatString   = "N/A";
            m_songs          = 0;
            m_startSong      = 0;
            m_currentSong    = 0;
            m_songSpeed      = SPEED_VBI;
            m_clockSpeed     = clock_t.CLOCK_UNKNOWN;
            m_compatibility  = compatibility_t.COMPATIBILITY_C64;
            m_dataFileLen    = 0;
            m_c64dataLen     = 0;
            m_loadAddr       = 0;
            m_initAddr       = 0;
            m_playAddr       = 0;
            m_relocStartPage = 0;
            m_relocPages     = 0;
            m_fixLoad        = false;

            m_sidModels = new List <model_t>();
            m_sidModels.Add(model_t.SIDMODEL_UNKNOWN);
            m_sidChipAddresses = new List <UInt16>();
            m_sidChipAddresses.Add(0xd400);
        }