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); }
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; } } }