29 double *freqs, *lower, *center, *upper, *triangleHeight, *fftFreqs;
54 ceps = (
double*)calloc(
nceps+1,
sizeof(
double));
56 ceps = (
double*)calloc(
nceps,
sizeof(
double));
61 for (i = 0; i <
nceps+1; i++) {
76 triangleHeight = (
double*)calloc(
totalFilters,
sizeof(
double));
77 fftFreqs = (
double*)calloc(
fftSize,
sizeof(
double));
94 triangleHeight[i] = 2./(upper[i]-lower[i]);
98 fftFreqs[i] = ((double) i / ((
double)
fftSize ) *
107 if ((fftFreqs[j] > lower[i]) && (fftFreqs[j] <= center[i])) {
110 (fftFreqs[j]-lower[i]) / (center[i]-lower[i]);
118 if ((fftFreqs[j]>center[i]) && (fftFreqs[j]<upper[i])) {
121 + triangleHeight[i] * (upper[i]-fftFreqs[j])
122 / (upper[i]-center[i]);
137 const double pi = 3.14159265358979323846264338327950288;
139 for (i = 0; i <
nceps+1; i++) {
142 * cos((
double) i * ((double) j + 0.5) / (double)
totalFilters * pi);
164 free(triangleHeight);
void forward(const double *realIn, double *realOut, double *imagOut)
Carry out a forward real-to-complex transform of size nsamples, where nsamples is the value provided ...