commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r4161 - gnuradio/branches/developers/n4hy/ofdm/gnuradi


From: trondeau
Subject: [Commit-gnuradio] r4161 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general
Date: Wed, 20 Dec 2006 10:20:56 -0700 (MST)

Author: trondeau
Date: 2006-12-20 10:20:56 -0700 (Wed, 20 Dec 2006)
New Revision: 4161

Modified:
   
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_fft_vcc.cc
Log:
fixed up fftshift and ifftshift

Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_fft_vcc.cc
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_fft_vcc.cc
  2006-12-20 07:40:04 UTC (rev 4160)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_fft_vcc.cc
  2006-12-20 17:20:56 UTC (rev 4161)
@@ -77,14 +77,9 @@
     else {
       if(!d_forward && d_shift) {  // apply an ifft shift on the data
        gr_complex *dst = d_fft->get_inbuf();
-       unsigned int len = (unsigned int)(floor(d_fft_size/2.0));
-       unsigned int i=0,j=0;
-       for(i=0; i < d_fft_size-len; i++) {
-         dst[i] = in[len+i];
-       }
-       for(; i < d_fft_size; i++) {
-         dst[i] = in[j++];
-       }
+       unsigned int len = (unsigned int)(floor(d_fft_size/2.0)); // half 
length of complex array
+       memcpy(&dst[0], &in[len], sizeof(gr_complex)*(d_fft_size - len));
+       memcpy(&dst[d_fft_size - len], &in[0], sizeof(gr_complex)*len);
       }
       else {
        memcpy (d_fft->get_inbuf(), in, input_data_size);
@@ -97,8 +92,8 @@
     // copy result to our output
     if(d_forward && d_shift) {  // apply a fft shift on the data
       unsigned int len = (unsigned int)(ceil(d_fft_size/2.0));
-      memcpy(&out[0], &d_fft->get_outbuf()[len], d_fft_size - len);
-      memcpy(&out[d_fft_size - len], &d_fft->get_outbuf()[0], len);
+      memcpy(&out[0], &d_fft->get_outbuf()[len], 
sizeof(gr_complex)*(d_fft_size - len));
+      memcpy(&out[d_fft_size - len], &d_fft->get_outbuf()[0], 
sizeof(gr_complex)*len);
     }
     else {
       memcpy (out, d_fft->get_outbuf (), output_data_size);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]