[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5651 - gnuradio/branches/features/ofdm/receiver/gnura
From: |
trondeau |
Subject: |
[Commit-gnuradio] r5651 - gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general |
Date: |
Sun, 3 Jun 2007 19:39:55 -0600 (MDT) |
Author: trondeau
Date: 2007-06-03 19:39:55 -0600 (Sun, 03 Jun 2007)
New Revision: 5651
Modified:
gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
Log:
added secondary output with defined signal -- useful for tying the mapper to
the ofdm frame sink for testing without sync or correlator.
Modified:
gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
===================================================================
---
gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
2007-06-04 01:39:07 UTC (rev 5650)
+++
gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
2007-06-04 01:39:55 UTC (rev 5651)
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2006 Free Software Foundation, Inc.
+ * Copyright 2007 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -45,7 +45,7 @@
const std::vector<gr_complex>
&known_symbol2)
: gr_sync_block ("ofdm_bpsk_mapper",
gr_make_io_signature (0, 0, 0),
- gr_make_io_signature (1, 1, sizeof(gr_complex)*fft_length)),
+ gr_make_io_signature2 (1, 2, sizeof(gr_complex)*fft_length,
sizeof(char))),
d_msgq(gr_make_msg_queue(msgq_limit)), d_msg_offset(0), d_eof(false),
d_occupied_carriers(occupied_carriers),
d_fft_length(fft_length),
@@ -79,7 +79,6 @@
unsigned int i=0;
unsigned int unoccupied_carriers = d_fft_length - d_occupied_carriers;
unsigned int zeros_on_left = (unsigned)ceil(unoccupied_carriers/2.0);
- unsigned int zeros_on_right = unoccupied_carriers - zeros_on_left;
//printf("OFDM BPSK Mapper: ninput_items: %d noutput_items: %d\n",
ninput_items[0], noutput_items);
@@ -99,6 +98,16 @@
}
}
+ if(output_items.size() == 2) {
+ char *sig = (char *)output_items[1];
+ if(d_header_sent == 1) {
+ sig[0] = 1;
+ }
+ else {
+ sig[0] = 0;
+ }
+ }
+
// Build a single symbol:
// Initialize all bins to 0 to set unused carriers
@@ -109,6 +118,7 @@
out[i+zeros_on_left] = d_known_symbol1[i];
}
d_header_sent++;
+
return 1;
}
@@ -117,14 +127,16 @@
out[i+zeros_on_left] = d_known_symbol2[i];
}
d_header_sent++;
+
return 1;
}
-
+
i = 0;
while((d_msg_offset < d_msg->length()) && (i < d_occupied_carriers)) {
- unsigned char bit = (d_msg->msg()[d_msg_offset] >> (d_bit_offset++)) &
0x01;
+ unsigned char bit = (d_msg->msg()[d_msg_offset] >> (d_bit_offset)) & 0x01;
out[i + zeros_on_left] = gr_complex(-1+2*(bit));
i++;
+ d_bit_offset++;
if(d_bit_offset == 8) {
d_bit_offset = 0;
d_msg_offset++;
@@ -141,11 +153,11 @@
if (d_msg->type() == 1) // type == 1 sets EOF
d_eof = true;
d_msg.reset(); // finished packet, free message
-
+
assert(d_bit_offset == 0);
return 1; // produced one symbol
}
-
+
return 1; // produced symbol
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5651 - gnuradio/branches/features/ofdm/receiver/gnuradio-core/src/lib/general,
trondeau <=