[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r4601 - gnuradio/branches/developers/n4hy/ofdm/gnuradi
From: |
trondeau |
Subject: |
[Commit-gnuradio] r4601 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general |
Date: |
Thu, 22 Feb 2007 21:59:29 -0700 (MST) |
Author: trondeau
Date: 2007-02-22 21:59:29 -0700 (Thu, 22 Feb 2007)
New Revision: 4601
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.h
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.i
Log:
now sends 2 known symbols for a header
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
2007-02-23 04:58:12 UTC (rev 4600)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.cc
2007-02-23 04:59:29 UTC (rev 4601)
@@ -29,12 +29,16 @@
#include <vector>
gr_ofdm_bpsk_mapper_sptr
-gr_make_ofdm_bpsk_mapper (unsigned int mtu, unsigned int occupied_carriers,
unsigned int vlen)
+gr_make_ofdm_bpsk_mapper (unsigned int mtu, unsigned int occupied_carriers,
unsigned int vlen,
+ std::vector<gr_complex> known_symbol1,
std::vector<gr_complex> known_symbol2)
{
- return gr_ofdm_bpsk_mapper_sptr (new gr_ofdm_bpsk_mapper (mtu,
occupied_carriers, vlen));
+ return gr_ofdm_bpsk_mapper_sptr (new gr_ofdm_bpsk_mapper (mtu,
occupied_carriers, vlen,
+ known_symbol1,
known_symbol2));
}
-gr_ofdm_bpsk_mapper::gr_ofdm_bpsk_mapper (unsigned int mtu, unsigned int
occupied_carriers, unsigned int vlen)
+gr_ofdm_bpsk_mapper::gr_ofdm_bpsk_mapper (unsigned int mtu, unsigned int
occupied_carriers, unsigned int vlen,
+ std::vector<gr_complex>
known_symbol1,
+ std::vector<gr_complex> known_symbol2)
: gr_block ("ofdm_bpsk_mapper",
gr_make_io_signature (1, 1, 2*sizeof(int) + sizeof(unsigned
char)*mtu),
gr_make_io_signature (1, 1, sizeof(gr_complex)*vlen)),
@@ -43,9 +47,14 @@
d_vlen(vlen),
d_packet_offset(0),
d_bit_offset(0),
- d_header_sent(0)
+ d_header_sent(0),
+ d_known_symbol1(known_symbol1),
+ d_known_symbol2(known_symbol2)
+
{
assert(d_occupied_carriers < d_vlen);
+ assert(d_occupied_carriers == d_known_symbol1.size());
+ assert(d_occupied_carriers == d_known_symbol2.size());
}
gr_ofdm_bpsk_mapper::~gr_ofdm_bpsk_mapper(void)
@@ -76,14 +85,22 @@
pkt_length = in[0].length;
- #if 0
- if(!d_header_sent) {
+ std::vector<gr_complex>::iterator ks_itr;
+ if(d_header_sent == 0) {
+ ks_itr = d_known_symbol1.begin();
+ }
+ else if(d_header_sent == 1) {
+ ks_itr = d_known_symbol2.begin();
+ }
+
+ if(d_header_sent < 2) {
// Add training symbols here
for(i=0; i < (ceil((d_vlen - d_occupied_carriers)/2.0)); i++) {
out[i] = gr_complex(0,0);
}
for(;i<d_vlen - ceil((d_vlen-d_occupied_carriers)/2.0);i++) {
- out[i] = gr_complex(1,0);
+ //out[i] = gr_complex(1,0);
+ out[i] = *(ks_itr++);
}
for(; i < d_vlen; i++) {
out[i] = gr_complex(0,0);
@@ -91,16 +108,13 @@
num_symbols = 1;
out += d_vlen;
- d_header_sent = true;
+ d_header_sent++;
}
- #endif
- d_header_sent = true;
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 < (unsigned)noutput_items) {
// stick in unused carriers
@@ -130,7 +144,7 @@
d_packet_offset = 0;
assert(d_bit_offset == 0);
num_symbols++;
- d_header_sent = false;
+ d_header_sent = 0;
consume_each(1);
return num_symbols;
}
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.h
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.h
2007-02-23 04:58:12 UTC (rev 4600)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.h
2007-02-23 04:59:29 UTC (rev 4601)
@@ -26,14 +26,16 @@
#include <gr_block.h>
#include <gr_frame.h>
+#include <vector>
class gr_ofdm_bpsk_mapper;
typedef boost::shared_ptr<gr_ofdm_bpsk_mapper> gr_ofdm_bpsk_mapper_sptr;
gr_ofdm_bpsk_mapper_sptr
-gr_make_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers, unsigned
int vlen);
+gr_make_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers, unsigned
int vlen,
+ std::vector<gr_complex> known_symbol1,
+ std::vector<gr_complex> known_symbol2);
-
/*!
* \brief take a stream of bytes in and map to a vector of complex
* constellation points suitable for IFFT input to be used in an ofdm
@@ -43,10 +45,14 @@
class gr_ofdm_bpsk_mapper : public gr_block
{
friend gr_ofdm_bpsk_mapper_sptr
- gr_make_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers,
unsigned int vlen);
+ gr_make_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers,
unsigned int vlen,
+ std::vector<gr_complex> known_symbol1,
+ std::vector<gr_complex> known_symbol2);
protected:
- gr_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers, unsigned int
vlen);
+ gr_ofdm_bpsk_mapper (unsigned mtu, unsigned occupied_carriers, unsigned int
vlen,
+ std::vector<gr_complex> known_symbol1,
+ std::vector<gr_complex> known_symbol2);
private:
unsigned int d_mtu;
@@ -54,7 +60,8 @@
unsigned int d_vlen;
unsigned int d_packet_offset;
unsigned int d_bit_offset;
- bool d_header_sent;
+ unsigned int d_header_sent;
+ std::vector<gr_complex> d_known_symbol1, d_known_symbol2;
void forecast (int noutput_items, gr_vector_int &ninput_items_required);
Modified:
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.i
===================================================================
---
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.i
2007-02-23 04:58:12 UTC (rev 4600)
+++
gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general/gr_ofdm_bpsk_mapper.i
2007-02-23 04:59:29 UTC (rev 4601)
@@ -20,19 +20,25 @@
* Boston, MA 02110-1301, USA.
*/
+#include <vector>
+
GR_SWIG_BLOCK_MAGIC(gr,ofdm_bpsk_mapper)
gr_ofdm_bpsk_mapper_sptr
gr_make_ofdm_bpsk_mapper (unsigned int mtu,
unsigned int bits_per_symbol,
- unsigned int vlen);
+ unsigned int vlen,
+ std::vector<gr_complex> known_symbol1,
+ std::vector<gr_complex> known_symbol2);
class gr_ofdm_bpsk_mapper : public gr_block
{
protected:
gr_ofdm_bpsk_mapper (unsigned int mtu,
unsigned int bits_per_symbol,
- unsigned int vlen);
+ unsigned int vlen,
+ std::vector<gr_complex> known_symbol1,
+ std::vector<gr_complex> known_symbol2);
public:
int general_work(int noutput_items,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4601 - gnuradio/branches/developers/n4hy/ofdm/gnuradio-core/src/lib/general,
trondeau <=