diff options
author | Martin Braun <martin.braun@kit.edu> | 2013-04-19 12:58:35 +0200 |
---|---|---|
committer | Martin Braun <martin.braun@kit.edu> | 2013-05-11 13:50:34 +0200 |
commit | 7be24afbf8857a5e827fb536a80d7a83e7b6aa31 (patch) | |
tree | c76cafea7b2d33b0f0de615242d2d48004bc4f79 /gr-digital/lib/ofdm_serializer_vcc_impl.cc | |
parent | 728c6e2138d5eb4f0814dcd3d03c65e628746eab (diff) |
digital: OFDM passes all tests
Diffstat (limited to 'gr-digital/lib/ofdm_serializer_vcc_impl.cc')
-rw-r--r-- | gr-digital/lib/ofdm_serializer_vcc_impl.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/gr-digital/lib/ofdm_serializer_vcc_impl.cc b/gr-digital/lib/ofdm_serializer_vcc_impl.cc index 2fdb9bd0e8..2d6d68f758 100644 --- a/gr-digital/lib/ofdm_serializer_vcc_impl.cc +++ b/gr-digital/lib/ofdm_serializer_vcc_impl.cc @@ -36,6 +36,7 @@ namespace gr { const std::string &len_tag_key, const std::string &packet_len_tag_key, int symbols_skipped, + const std::string &carr_offset_key, bool input_is_shifted ) { @@ -43,7 +44,9 @@ namespace gr { new ofdm_serializer_vcc_impl( fft_len, occupied_carriers, len_tag_key, packet_len_tag_key, - symbols_skipped, input_is_shifted + symbols_skipped, + carr_offset_key, + input_is_shifted ) ); } @@ -53,6 +56,7 @@ namespace gr { const digital_ofdm_carrier_allocator_cvc_sptr &allocator, const std::string &packet_len_tag_key, int symbols_skipped, + const std::string &carr_offset_key, bool input_is_shifted ) { @@ -63,6 +67,7 @@ namespace gr { allocator->len_tag_key(), packet_len_tag_key, symbols_skipped, + carr_offset_key, input_is_shifted ) ); @@ -74,6 +79,7 @@ namespace gr { const std::string &len_tag_key, const std::string &packet_len_tag_key, int symbols_skipped, + const std::string &carr_offset_key, bool input_is_shifted) : gr_tagged_stream_block ("ofdm_serializer_vcc", gr_make_io_signature(1, 1, sizeof (gr_complex) * fft_len), @@ -84,6 +90,7 @@ namespace gr { d_packet_len_tag_key(pmt::pmt_string_to_symbol(packet_len_tag_key)), d_out_len_tag_key(pmt::pmt_string_to_symbol((packet_len_tag_key.empty() ? len_tag_key : packet_len_tag_key))), d_symbols_skipped(symbols_skipped % occupied_carriers.size()), + d_carr_offset_key(pmt::pmt_string_to_symbol(carr_offset_key)), d_curr_set(symbols_skipped % occupied_carriers.size()), d_symbols_per_set(0) { @@ -96,7 +103,7 @@ namespace gr { throw std::invalid_argument("ofdm_serializer_vcc: trying to occupy a carrier outside the fft length."); } if (input_is_shifted) { - d_occupied_carriers[i][k] = (d_occupied_carriers[i][k] + fft_len) % fft_len; + d_occupied_carriers[i][k] = (d_occupied_carriers[i][k] + fft_len/2) % fft_len; } } } @@ -148,7 +155,7 @@ namespace gr { if (!d_length_tag_key_str.empty()) { get_tags_in_range(tags, 0, nitems_read(0), nitems_read(0)+1); for (unsigned i = 0; i < tags.size(); i++) { - if (pmt::pmt_symbol_to_string(tags[i].key) == "ofdm_sync_carr_offset") { + if (tags[i].key == d_carr_offset_key) { carr_offset = pmt::pmt_to_long(tags[i].value); } if (tags[i].key == d_packet_len_tag_key) { @@ -176,8 +183,8 @@ namespace gr { ); for (unsigned t = 0; t < tags.size(); t++) { add_item_tag(0, nitems_written(0)+n_out_symbols, - tags[i].key, - tags[i].value + tags[t].key, + tags[t].value ); } for (unsigned k = 0; k < d_occupied_carriers[d_curr_set].size(); k++) { |