Example #1
0
File: M_syn.c Project: proffK/iLab
node* get_P(){
	node* val = node_new();

	if (syntax_errno) return 0;

	if (*cur_c == '(') {
		
		++cur_c;
		val = get_E();

		if (*cur_c != ')') {
			syntax_errno = cur_c;
			return 0;
		}
		
		++cur_c;

		return val;

	}
	else {
		val = get_N();
		return val;
	}

	return 0;

}
void HMM()
{    
    int i, j;
    for(i = 0; i < N1; ++i){
          for(j = 0; j < M; ++j){
                B[i][j] = (double)1/(double)8;
                //printf("%lf", B[i][j]);
          }
    }
    DCshift();
    normalize();
    silence_removal();
    hamming_window_values();
    start = 0;
    calculate_ci();
          
    get_N();
    get_index();
    solution_prob1();
	solution_prob2();
	for(i = 0; i < 30; ++i)
	solution_prob3();
	fclose(fp_model);
}
Example #3
0
void Copenclspectrometer::filter_signal_zfactor(float *psamples, int *psamplenum, int start, int stop, float fmax)
{
//return;
  float fact[] = {64, 32, 16, 8, 4};
  int   i;
  float cutfrequency;
  int   scut;
  int   arsize;
  int   precision = 0;

  m_bhalfband = false;
  arsize = (int)(sizeof(fact) / sizeof(float));
  for (i = 0; i < arsize; i++)
    {
      if ((int)(2. * fmax) < (m_sampling_frequency / fact[i]) - precision)
	{
	  scut = fact[i] / 2;
	  cutfrequency = (float)m_sampling_frequency / fact[i];
#ifdef USEFIR_KERNEL
	  switch (scut * 2)
	    {
	    case 4:
	      m_pfir_coefs = xcoeffs4; // cuttoff = f / 4 samplingf = f / 2
	      break;
	    case 8:
	      m_pfir_coefs = xcoeffs8;
	      break;
	    case 16:
	      m_pfir_coefs = xcoeffs16;
	      break;
	    case 32:
	      m_pfir_coefs = xcoeffs32;
	    default:
	      m_pfir_coefs = xcoeffs64;
	      break;
	    }
	  if (scut >= 2)
	    {
	      m_bhalfband = true;
	      m_kfirparams.intracksize = *psamplenum;
	      m_kfirparams.decimation = scut;
//#define CPU_FIR
#ifdef CPU_FIR
	      double t1 = SDL_GetTicks();
	      m_bhalfband = false;
	      //downsample(psamples, *psamplenum, scut);
	      filterloop(psamples, m_pfir_coefs, &m_kfirparams);
	      double t2 = SDL_GetTicks();
	      //printf("filtering took %fms\n", t2 - t1);
#endif
	    }
#else
	  double t1 = SDL_GetTicks();
	  DSPCPPfilter_low_pass_Butterworth(psamples, *psamplenum, m_sampling_frequency, cutfrequency);
	  reverse(psamples, *psamplenum);
	  DSPCPPfilter_low_pass_Butterworth(psamples, *psamplenum, m_sampling_frequency, cutfrequency);
	  reverse(psamples, *psamplenum);
	  downsample(psamples, *psamplenum, scut);
	  double t2 = SDL_GetTicks();
	  //printf("filtering took %fms\n", t2 - t1);
#endif
	  m_kparams.tracksize /= scut;
	  m_kparams.start_sample /= scut;
	  m_kparams.stop_sample /= scut;
	  m_kparams.sampling_frequency = 2 * cutfrequency;
	  m_kparams.N = get_N(m_kparams.sampling_frequency);
	  *psamplenum /= scut;
	  //printf("cutoff=%f decimation=%d\n", cutfrequency, m_kfirparams.decimation);
	  return;
	}
    }
}