LMSR new_lmsr (CXB signal, int delay, REAL adaptation_rate, REAL leakage, int adaptive_filter_size, int filter_type) { LMSR lms = (LMSR) safealloc (1, sizeof (_lmsstate), "new_lmsr state"); lms->signal = signal; lms->signal_size = CXBsize (lms->signal); lms->delay = delay; lms->size = 512; lms->mask = lms->size - 1; lms->delay_line = newvec_REAL (lms->size, "lmsr delay"); lms->adaptation_rate = adaptation_rate; lms->leakage = leakage; lms->adaptive_filter_size = adaptive_filter_size; lms->adaptive_filter = newvec_REAL (128, "lmsr filter"); lms->filter_type = filter_type; lms->delay_line_ptr = 0; return lms; }
WSCompander newWSCompander (int npts, REAL fac, CXB buff) { WSCompander wsc; wsc = (WSCompander) safealloc (1, sizeof (WSCompanderInfo), "WSCompander struct"); wsc->npts = npts; wsc->nend = npts - 1; wsc->tbl = newvec_REAL (npts, "WSCompander table"); wsc->buff = newCXB (CXBsize (buff), CXBbase (buff), "WSCompander buff"); WSCReset (wsc, fac); return wsc; }
RLB newRLB (int size, REAL * base, char *tag) { RLB p = (RLB) safealloc (1, sizeof (RLBuffer), tag); if (base) { RLBbase (p) = base; RLBmine (p) = FALSE; } else { RLBbase (p) = newvec_REAL (size, "newRLB"); RLBmine (p) = TRUE; } RLBsize (p) = RLBwant (p) = size; RLBovlp (p) = RLBhave (p) = RLBdone (p) = 0; return p; }
void init_spectrum (SpecBlock * sb) { REAL phase_tmp = 0.0; REAL gain_tmp = 1.0; COMPLEX *p; sb->fill = 0; p = newvec_COMPLEX_fftw(sb->size*16,"spectrum accum"); sb->accum = newCXB (sb->size * 16, p, "spectrum accum"); p = newvec_COMPLEX_fftw(sb->size, "spectrum timebuf"); sb->timebuf = newCXB (sb->size, p, "spectrum timebuf"); p = newvec_COMPLEX_fftw(sb->size, "spectrum timebuf"); sb->freqbuf = newCXB (sb->size, p, "spectrum freqbuf"); sb->window = newvec_REAL (sb->size * 16, "spectrum window"); makewindow (BLACKMANHARRIS_WINDOW, sb->size, sb->window); sb->mask = sb->size - 1; sb->polyphase = FALSE; sb->output = (float *) safealloc (sb->size, sizeof (float), "spectrum output"); sb->coutput = (COMPLEX *)safealloc (sb->size, sizeof (COMPLEX), "spectrum output");; sb->plan = fftwf_plan_dft_1d (sb->size, (fftwf_complex *) CXBbase (sb->timebuf), (fftwf_complex *) CXBbase (sb->freqbuf), FFTW_FORWARD, sb->planbits); sb->iqfix = newCorrectIQspec2(); // SV1EIA AIR sb->iqfix->buffer_counter = 0; // SV1EIA AIR sb->iqfix->im_max_actual = 0; // SV1EIA AIR sb->iqfix->im_max_test = 0; // SV1EIA AIR sb->iqfix->im_min_actual = 0; // SV1EIA AIR sb->iqfix->im_min_test = 0; // SV1EIA AIR sb->iqfix->re_max_actual = 0; // SV1EIA AIR sb->iqfix->re_max_test = 0; // SV1EIA AIR sb->iqfix->re_min_actual = 0; // SV1EIA AIR sb->iqfix->re_min_test = 0; // SV1EIA AIR }
void init_spectrum (SpecBlock * sb) { COMPLEX *p; sb->fill = 0; p = newvec_COMPLEX_16(sb->size*16,"spectrum accum"); sb->accum = newCXB (sb->size * 16, p, "spectrum accum"); p = newvec_COMPLEX_16(sb->size, "spectrum timebuf"); sb->timebuf = newCXB (sb->size, p, "spectrum timebuf"); p = newvec_COMPLEX_16(sb->size, "spectrum timebuf"); sb->freqbuf = newCXB (sb->size, p, "spectrum freqbuf"); sb->window = newvec_REAL (sb->size * 16, "spectrum window"); makewindow (BLACKMANHARRIS_WINDOW, sb->size, sb->window); sb->mask = sb->size - 1; sb->polyphase = FALSE; sb->output = (float *) safealloc (sb->size, sizeof (float), "spectrum output"); sb->coutput = (COMPLEX *)safealloc (sb->size, sizeof (COMPLEX), "spectrum output");; sb->plan = fftwf_plan_dft_1d (sb->size, (fftwf_complex *) CXBbase (sb->timebuf), (fftwf_complex *) CXBbase (sb->freqbuf), FFTW_FORWARD, sb->planbits); }