// Инициализация фильтра Кальмана 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); }
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)); } }
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); }