[Top][All Lists]
[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);
- }
-*/
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4169 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general,
trondeau <=