diff dsp/transforms/FFT.cpp @ 131:a586888bc06c kissfft

Add forwardMagnitude
author Chris Cannam
date Tue, 15 Oct 2013 18:26:38 +0100
parents 6ec45e85ed81
children 8c86761a5533
line wrap: on
line diff
--- a/dsp/transforms/FFT.cpp	Tue Oct 15 11:52:00 2013 +0100
+++ b/dsp/transforms/FFT.cpp	Tue Oct 15 18:26:38 2013 +0100
@@ -132,6 +132,19 @@
         }
     }
 
+    void forwardMagnitude(const double *ri, double *mo) {
+
+        double *io = new double[m_n];
+
+        forward(ri, mo, io);
+
+        for (int i = 0; i < m_n; ++i) {
+            mo[i] = sqrt(mo[i] * mo[i] + io[i] * io[i]);
+        }
+
+        delete[] io;
+    }
+
     void inverse(const double *ri, const double *ii, double *ro) {
 
         for (int i = 0; i < m_n; ++i) {
@@ -172,6 +185,12 @@
 }
 
 void
+FFTReal::forwardMagnitude(const double *ri, double *mo)
+{
+    m_d->forwardMagnitude(ri, mo);
+}
+
+void
 FFTReal::inverse(const double *ri, const double *ii, double *ro)
 {
     m_d->inverse(ri, ii, ro);