aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-03-05 11:16:17 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-03-05 11:16:17 +0000
commit940fc1e52823dfdeb635e07fa161d98ab283bc0b (patch)
treefb1a1e12916fd502944122166898731a1ec341e9
parentb864b45734e8ba68eb3c7b0a60a4a5b98e6b4571 (diff)
downloadNoiseSilencer-940fc1e52823dfdeb635e07fa161d98ab283bc0b.tar.gz
NoiseSilencer-940fc1e52823dfdeb635e07fa161d98ab283bc0b.zip
Fixing dft code for C90
-rw-r--r--Project/RTDSP/dft.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/Project/RTDSP/dft.c b/Project/RTDSP/dft.c
index 4d97085..2e47680 100644
--- a/Project/RTDSP/dft.c
+++ b/Project/RTDSP/dft.c
@@ -14,10 +14,11 @@ Complex X[N];
float x_out[N];
void dft() {
- for(int k = 0; k < N; ++k) {
+ int n, k;
+ for(k = 0; k < N; ++k) {
X[k].r = 0.f;
X[k].i = 0.f;
- for(int n = 0; n < N; ++n) {
+ for(n = 0; n < N; ++n) {
X[k].r += x[n] * cos(2 * E_PI * k * n / N);
X[k].i -= x[n] * sin(2 * E_PI * k * n / N);
}
@@ -25,9 +26,10 @@ void dft() {
}
void idft() {
- for(int n = 0; n < N; ++n) {
+ int n, k;
+ for(n = 0; n < N; ++n) {
x_out[n] = 0.f;
- for(int k = 0; k < N; ++k) {
+ for(k = 0; k < N; ++k) {
x_out[n] += X[k].r * cos(2 * E_PI * k * n / N) - X[k].i * sin(2 * E_PI * k * n / N);
}
x_out[n] /= N;
@@ -35,9 +37,10 @@ void idft() {
}
int main() {
+ int k;
dft();
idft();
- for(int k = 0; k < N; ++k) {
+ for(k = 0; k < N; ++k) {
printf("x[%d] = %.2f, X[%d] = %.2f + %.2fi, x_out[%d] = %.2f\n", k, x[k], k, X[k].r, X[k].i, k, x_out[k]);
}
}