Home | History | Annotate | Download | only in aec

Lines Matching defs:fft

287 //static void FilterAdaptationUnconstrained(aec_t *aec, float *fft,
311 static void FilterAdaptation(aec_t *aec, float *fft, float ef[2][PART_LEN1]) {
325 fft[2 * j] = MulRe(aec->xfBuf[0][xPos + j],
328 fft[2 * j + 1] = MulIm(aec->xfBuf[0][xPos + j],
332 fft[1] = MulRe(aec->xfBuf[0][xPos + PART_LEN],
336 aec_rdft_inverse_128(fft);
337 memset(fft + PART_LEN, 0, sizeof(float) * PART_LEN);
339 // fft scaling
343 fft[j] *= scale;
346 aec_rdft_forward_128(fft);
348 aec->wfBuf[0][pos] += fft[0];
349 aec->wfBuf[0][pos + PART_LEN] += fft[1];
352 aec->wfBuf[0][pos + j] += fft[2 * j];
353 aec->wfBuf[1][pos + j] += fft[2 * j + 1];
374 // Ooura fft returns incorrect sign on imaginary component. It matters here
545 float fft[PART_LEN2];
558 memcpy(fft, farend, sizeof(float) * PART_LEN2);
559 TimeToFrequency(fft, xf, 0);
563 memcpy(fft, farend, sizeof(float) * PART_LEN2);
564 TimeToFrequency(fft, xf, 1);
639 float fft[PART_LEN2];
676 // ---------- Ooura fft ----------
697 // Near fft
698 memcpy(fft, aec->dBuf, sizeof(float) * PART_LEN2);
699 TimeToFrequency(fft, df, 0);
778 // Inverse fft to obtain echo estimate and error.
779 fft[0] = yf[0][0];
780 fft[1] = yf[0][PART_LEN];
782 fft[2 * i] = yf[0][i];
783 fft[2 * i + 1] = yf[1][i];
785 aec_rdft_inverse_128(fft);
789 y[i] = fft[PART_LEN + i] * scale; // fft scaling
796 // Error fft
798 memset(fft, 0, sizeof(float) * PART_LEN);
799 memcpy(fft + PART_LEN, e, sizeof(float) * PART_LEN);
801 aec_rdft_forward_128(fft);
805 ef[0][0] = fft[0];
806 ef[0][PART_LEN] = fft[1];
808 ef[0][i] = fft[2 * i];
809 ef[1][i] = fft[2 * i + 1];
813 // Note that the first PART_LEN samples in fft (before transformation) are
821 WebRtcAec_FilterAdaptation(aec, fft, ef);
856 float fft[PART_LEN2];
927 // Windowed near fft
929 fft[i] = aec->dBuf[i] * sqrtHanning[i];
930 fft[PART_LEN + i] = aec->dBuf[PART_LEN + i] * sqrtHanning[PART_LEN - i];
932 aec_rdft_forward_128(fft);
936 dfw[0][0] = fft[0];
937 dfw[0][PART_LEN] = fft[1];
939 dfw[0][i] = fft[2 * i];
940 dfw[1][i] = fft[2 * i + 1];
943 // Windowed error fft
945 fft[i] = aec->eBuf[i] * sqrtHanning[i];
946 fft[PART_LEN + i] = aec->eBuf[PART_LEN + i] * sqrtHanning[PART_LEN - i];
948 aec_rdft_forward_128(fft);
951 efw[0][0] = fft[0];
952 efw[0][PART_LEN] = fft[1];
954 efw[0][i] = fft[2 * i];
955 efw[1][i] = fft[2 * i + 1];
1120 // Inverse error fft.
1121 fft[0] = efw[0][0];
1122 fft[1] = efw[0][PART_LEN];
1124 fft[2*i] = efw[0][i];
1125 // Sign change required by Ooura fft.
1126 fft[2*i + 1] = -efw[1][i];
1128 aec_rdft_inverse_128(fft);
1133 fft[i] *= scale; // fft scaling
1134 fft[i] = fft[i]*sqrtHanning[i] + aec->outBuf[i];
1137 output[i] = (short)WEBRTC_SPL_SAT(WEBRTC_SPL_WORD16_MAX, fft[i],
1140 fft[PART_LEN + i] *= scale; // fft scaling
1141 aec->outBuf[i] = fft[PART_LEN + i] * sqrtHanning[PART_LEN - i];
1154 fft[0] = comfortNoiseHband[0][0];
1155 fft[1] = comfortNoiseHband[PART_LEN][0];
1157 fft[2*i] = comfortNoiseHband[i][0];
1158 fft[2*i + 1] = comfortNoiseHband[i][1];
1160 aec_rdft_inverse_128(fft);
1171 fft[i] *= scale; // fft scaling
1172 dtmp += cnScaleHband * fft[i];
1317 // Do the energy calculation in the frequency domain. The FFT is performed on
1506 FFT?