示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
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

}
示例#5
0
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);
}