commit-gnuradio
[Top][All Lists]
Advanced

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

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


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

Author: trondeau
Date: 2006-12-20 18:14:04 -0700 (Wed, 20 Dec 2006)
New Revision: 4169

Modified:
   
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
Log:
bug fixes for OFDM modulator

Modified: 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
===================================================================
--- 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
 2006-12-21 01:13:34 UTC (rev 4168)
+++ 
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
 2006-12-21 01:14:04 UTC (rev 4169)
@@ -69,8 +69,10 @@
   gr_complex *out = (gr_complex *)output_items[0];
   
   unsigned int i=0;
-  unsigned int num_symbols = 0, pkt_length=0;
+  unsigned int num_symbols = 0, pkt_length;
   
+  pkt_length = in[0].length;
+
   if(d_packet_offset == 0) {
     //  Add training symbols here
     for(i=0; i < (ceil((d_vlen - d_occupied_carriers)/2.0)); i++) {
@@ -84,15 +86,23 @@
     }
 
     num_symbols = 1;
-    pkt_length = in[0].length;
     out += d_vlen;
   }
 
-  int unoccupied_carriers = d_vlen - d_occupied_carriers;
-  int zeros_on_left = ceil(unoccupied_carriers/2.0);
-  int zeros_on_right = unoccupied_carriers - zeros_on_left;
+  unsigned int unoccupied_carriers = d_vlen - d_occupied_carriers;
+  unsigned int zeros_on_left = (unsigned)ceil(unoccupied_carriers/2.0);
+  unsigned int zeros_on_right = unoccupied_carriers - zeros_on_left;
 
-  while(num_symbols < noutput_items) {
+#if 0
+  printf("mod in: ");
+  for(i = 0; i < pkt_length; i++) {
+    printf("%4d", in[0].data[i]);
+  }
+  printf(" \tlen: %d\n\n", i);
+#endif
+
+
+  while(num_symbols < (unsigned)noutput_items) {
     // stick in unused carriers
     for(i = d_vlen-zeros_on_right; i < d_vlen; i++) {
       out[i] = gr_complex(0,0);
@@ -111,10 +121,19 @@
       }
     }
 
+    // Ran out of data to put in symbols
+    if(i < d_vlen-zeros_on_right) {
+      while(i < d_vlen-zeros_on_right) {
+       out[i++] = gr_complex(0,0);
+      }
+      #if 0
+      fprintf(stdout,"Packet length %d, packet offset 
%d\n",pkt_length,d_packet_offset);
+      fprintf(stdout,"Ran out of data for symbols, sent %d 
symbols\n",num_symbols);
+      #endif
 
-    // Ran out of data to put in symbols
-    while(i < d_occupied_carriers) {
-      out[i++] = gr_complex(0,0);
+      d_packet_offset = 0;
+      assert(d_bit_offset == 0);
+      
       num_symbols++;
       consume_each(1);
       return num_symbols;
@@ -125,19 +144,11 @@
     num_symbols++;
   }
   consume_each(0);
+  
+  #if 0
+  fprintf(stdout,"Done, sent %d symbols\n",num_symbols);
+  #endif
+
   return num_symbols;
 }
 
-/*
-  for(i=0; i < ceil(d_occupied_carriers/2.0); i++) {
-    unsigned int k=ceil(d_occupied_carriers/2.0);
-    out[i] = gr_complex(-1+2*in[i+k],0);
-  }
-  for(; i < d_vlen - ceil(d_occupied_carriers/2.0); i++) {
-    out[i]=gr_complex(0,0);
-  }
-  for(unsigned int j=0;i<d_vlen;i++,j++) {
-    out[i]= gr_complex((-1+2*in[j]),0);
-  }
-*/
-





reply via email to

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