changed frequency axes
authorhackbard <hackbard>
Sat, 16 Oct 2004 08:52:07 +0000 (08:52 +0000)
committerhackbard <hackbard>
Sat, 16 Oct 2004 08:52:07 +0000 (08:52 +0000)
dft.c

diff --git a/dft.c b/dft.c
index 3ce41a4..4bbbb46 100644 (file)
--- a/dft.c
+++ b/dft.c
@@ -15,6 +15,7 @@ int main(int argc,char **argv) {
   int x,y;
   int offy,offt;
   int scale;
+  int help;
   double max;
   double *mag;
 
@@ -62,14 +63,13 @@ int main(int argc,char **argv) {
 
   // copy back the data, intensity = sqrt(r^2+i^2)
   max=0;
-  offy=0;
+  offt=0;
   for(y=0;y<fourier.data_len[1];y++) {
     for(x=0;x<fourier.data_len[0];x++) {
-      offt=offy+x;
       mag[offt]=sqrt(fourier.ftdata[offt].r*fourier.ftdata[offt].r+fourier.ftdata[offt].i*fourier.ftdata[offt].i);
       if(mag[offt]>max) max=mag[offt];
+      offt+=1;
     }
-    offy+=fourier.data_len[0];
   }
 
   printf("found max: %f\n",max);
@@ -79,10 +79,17 @@ int main(int argc,char **argv) {
 
   if(scale!=0) {
     printf("scaling image intensity: %d\n",scale);
-    for(x=0;x<dst.width*dst.height;x++) {
-      dst.map[x].r=scale*mag[x];
-      dst.map[x].g=dst.map[x].r;
-      dst.map[x].b=dst.map[x].r;
+    offt=0;
+    for(y=0;y<dst.height;y++) {
+      for(x=0;x<dst.width;x++) {
+        offy=((y<dst.height/2)?y+dst.height/2:y-dst.height/2);
+        offy*=dst.width;
+        offy+=((x<dst.width/2)?x+dst.width/2:x-dst.width/2);
+        dst.map[offy].r=scale*mag[offt];
+        dst.map[offy].g=dst.map[offy].r;
+        dst.map[offy].b=dst.map[offy].r;
+        offt+=1;
+      }
     }
   }