25 #define CLASS "FDCombFilter"
33 : mFreq(
"Frequency",this)
69 TData samplingRate=input.GetSpectralRange()*2;
72 TData period = pitch / samplingRate * sizeSpectrum * 2.0;
73 DataArray & inputMag = input.GetMagBuffer();
74 DataArray & inputPhase = input.GetPhaseBuffer();
75 DataArray & outputMag = output.GetMagBuffer();
76 DataArray & outputPhase = output.GetPhaseBuffer();
79 TData oneOverTwo = 1./2.0;
80 for(
unsigned i=0; i<sizeSpectrum; i++)
84 TData combReal = (1.f +
CLAM_cos(i*twoPiOverPeriod)) * oneOverTwo;
85 TData combImag = (1.f -
CLAM_sin(i*twoPiOverPeriod)) * oneOverTwo;
87 TData mag=inputMag[i];
88 TData phase=inputPhase[i];
92 TData newReal=real*combReal-imag*combImag;
93 TData newImag=real*combImag+imag*combReal;
97 outputMag[i] = newMag;
98 outputPhase[i] = newPhase;
101 if(wasDB) output.
ToDB();