From: drowe67 Date: Wed, 1 Dec 2010 01:43:59 +0000 (+0000) Subject: fixed occasional case of writing to DFT past nyquist point, dur to quantisation or... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=dc0bb57356b4a17b042978cae92413454049e409;p=freetel-svn-tracking.git fixed occasional case of writing to DFT past nyquist point, dur to quantisation or round off git-svn-id: https://svn.code.sf.net/p/freetel/code@255 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2/src/phase.c b/codec2/src/phase.c index 80dfaa25..1964a43b 100644 --- a/codec2/src/phase.c +++ b/codec2/src/phase.c @@ -231,6 +231,9 @@ void phase_synth_zero_order( */ jitter = 0.25*(1.0 - 2.0*rand()/RAND_MAX); b = floor(m*model->Wo/r + 0.5); + if (b > ((GLOTTAL_FFT_SIZE/2)-1)) { + b = (GLOTTAL_FFT_SIZE/2)-1; + } Ex[m].real = cos(ex_phase[0]*m - jitter*model->Wo*m + glottal[b]); Ex[m].imag = sin(ex_phase[0]*m - jitter*model->Wo*m + glottal[b]); } diff --git a/codec2/src/sine.c b/codec2/src/sine.c index 974f315e..f0096366 100644 --- a/codec2/src/sine.c +++ b/codec2/src/sine.c @@ -593,6 +593,9 @@ void synthesise( /* Now set up frequency domain synthesised speech */ for(l=1; l<=model->L; l++) { b = floor(l*model->Wo*FFT_DEC/TWO_PI + 0.5); + if (b > ((FFT_DEC/2)-1)) { + b = (FFT_DEC/2)-1; + } Sw_[b].real = model->A[l]*cos(model->phi[l]); Sw_[b].imag = model->A[l]*sin(model->phi[l]); Sw_[FFT_DEC-b].real = Sw_[b].real;