diff options
Diffstat (limited to 'gr-digital/grc')
-rw-r--r-- | gr-digital/grc/Makefile.am | 9 | ||||
-rw-r--r-- | gr-digital/grc/digital_block_tree.xml | 10 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_cyclic_prefixer.xml | 52 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_demod.xml | 143 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_frame_acquisition.xml | 77 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_insert_preamble.xml | 57 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_mod.xml | 156 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_sampler.xml | 67 | ||||
-rw-r--r-- | gr-digital/grc/digital_ofdm_sync_pn.xml | 61 |
9 files changed, 631 insertions, 1 deletions
diff --git a/gr-digital/grc/Makefile.am b/gr-digital/grc/Makefile.am index e4426e721..ef4e38600 100644 --- a/gr-digital/grc/Makefile.am +++ b/gr-digital/grc/Makefile.am @@ -40,4 +40,11 @@ dist_grcblocks_DATA = \ digital_psk_mod.xml \ digital_psk_demod.xml \ digital_qam_mod.xml \ - digital_qam_demod.xml + digital_qam_demod.xml \ + digital_ofdm_mod.xml \ + digital_ofdm_demod.xml \ + digital_ofdm_cyclic_prefixer.xml \ + digital_ofdm_frame_acquisition.xml \ + digital_ofdm_insert_preamble.xml \ + digital_ofdm_sampler.xml \ + digital_ofdm_sync_pn.xml diff --git a/gr-digital/grc/digital_block_tree.xml b/gr-digital/grc/digital_block_tree.xml index 088fe1c10..816df7f45 100644 --- a/gr-digital/grc/digital_block_tree.xml +++ b/gr-digital/grc/digital_block_tree.xml @@ -50,4 +50,14 @@ <block>digital_qam_mod</block> <block>digital_qam_demod</block> </cat> + <cat> + <name>OFDM</name> + <block>digital_ofdm_mod</block> + <block>digital_ofdm_demod</block> + <block>digital_ofdm_cyclic_prefixer</block> + <block>digital_ofdm_frame_acquisition</block> + <block>digital_ofdm_insert_preamble</block> + <block>digital_ofdm_sampler</block> + <block>digital_ofdm_sync_pn</block> + </cat> </cat> diff --git a/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml b/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml new file mode 100644 index 000000000..d5e5d3894 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_cyclic_prefixer.xml @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Cyclic Prefixer +################################################### + --> +<block> + <name>OFDM Cyclic Prefixer</name> + <key>digital_ofdm_cyclic_prefixer</key> + <import>from gnuradio import digital</import> + <make>digital.ofdm_cyclic_prefixer($input_size, $output_size)</make> + <param> + <name>Input Size</name> + <key>input_size</key> + <type>int</type> + </param> + <param> + <name>Output Size</name> + <key>output_size</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$input_size</vlen> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> +</block> diff --git a/gr-digital/grc/digital_ofdm_demod.xml b/gr-digital/grc/digital_ofdm_demod.xml new file mode 100644 index 000000000..9f3a83715 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_demod.xml @@ -0,0 +1,143 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Demod +################################################### + --> +<block> + <name>OFDM Demod</name> + <key>digital_ofdm_demod</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <import>from gnuradio import digital</import> + <make>grc_blks2.packet_demod_$(type.fcn)(digital.ofdm_demod( + options=grc_blks2.options( + modulation="$modulation", + fft_length=$fft_length, + occupied_tones=$occupied_tones, + cp_length=$cp_length, + snr=$snr, + log=None, + verbose=None, + ), + callback=lambda ok, payload: self.$(id).recv_pkt(ok, payload), + ), +)</make> + <param> + <name>Output Type</name> + <key>type</key> + <value>float</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:b</opt> + </option> + </param> + <param> + <name>Modulation</name> + <key>modulation</key> + <type>enum</type> + <option> + <name>BPSK</name> + <key>bpsk</key> + </option> + <option> + <name>QPSK</name> + <key>qpsk</key> + </option> + <option> + <name>8PSK</name> + <key>8psk</key> + </option> + <option> + <name>QAM8</name> + <key>qam8</key> + </option> + <option> + <name>QAM16</name> + <key>qam16</key> + </option> + <option> + <name>QAM64</name> + <key>qam64</key> + </option> + <option> + <name>QAM256</name> + <key>qam256</key> + </option> + </param> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <value>512</value> + <type>int</type> + </param> + <param> + <name>Occupied Tones</name> + <key>occupied_tones</key> + <value>200</value> + <type>int</type> + </param> + <param> + <name>Cyclic Prefix Length</name> + <key>cp_length</key> + <value>128</value> + <type>int</type> + </param> + <param> + <name>SNR</name> + <key>snr</key> + <value>10</value> + <type>real</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>out</name> + <type>$type</type> + </source> + <doc>Payload Length: 0 for automatic.</doc> +</block> diff --git a/gr-digital/grc/digital_ofdm_frame_acquisition.xml b/gr-digital/grc/digital_ofdm_frame_acquisition.xml new file mode 100644 index 000000000..2545f18e6 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_frame_acquisition.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Frame Acquisition +################################################### + --> +<block> + <name>OFDM Frame Acquisition</name> + <key>digital_ofdm_frame_acquisition</key> + <import>from gnuradio import digital</import> + <make>digital.ofdm_frame_acquisition($occupied_carriers, $fft_length, $cplen, $known_symbol, $max_fft_shift_len)</make> + <param> + <name>Occupied Carriers</name> + <key>occupied_carriers</key> + <type>int</type> + </param> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <type>int</type> + </param> + <param> + <name>CP Length</name> + <key>cplen</key> + <type>int</type> + </param> + <param> + <name>Preamble</name> + <key>known_symbol</key> + <type>complex_vector</type> + </param> + <param> + <name>Max FFT Shift</name> + <key>max_fft_shift_len</key> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$fft_length</vlen> + </sink> + <sink> + <name>flag</name> + <type>byte</type> + <vlen>$fft_length</vlen> + </sink> + <source> + <name>out</name> + <type>complex</type> + <vlen>$occupied_carriers</vlen> + </source> + <source> + <name>flag</name> + <type>byte</type> + </source> +</block> diff --git a/gr-digital/grc/digital_ofdm_insert_preamble.xml b/gr-digital/grc/digital_ofdm_insert_preamble.xml new file mode 100644 index 000000000..33a93058f --- /dev/null +++ b/gr-digital/grc/digital_ofdm_insert_preamble.xml @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Insert Preamble +################################################### + --> +<block> + <name>OFDM Insert Preamble</name> + <key>digital_ofdm_insert_preamble</key> + <import>from gnuradio import digital</import> + <make>digital.ofdm_insert_preamble($fft_length, $preamble)</make> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <type>int</type> + </param> + <param> + <name>Preamble</name> + <key>preamble</key> + <type>raw</type> + </param> + <sink> + <name>in</name> + <type>complex</type> + <vlen>$fft_length</vlen> + </sink> + <sink> + <name>flag</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + <vlen>$fft_length</vlen> + </source> +</block> diff --git a/gr-digital/grc/digital_ofdm_mod.xml b/gr-digital/grc/digital_ofdm_mod.xml new file mode 100644 index 000000000..24cb2aa33 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_mod.xml @@ -0,0 +1,156 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Mod +################################################### + --> +<block> + <name>OFDM Mod</name> + <key>digital_ofdm_mod</key> + <import>from grc_gnuradio import blks2 as grc_blks2</import> + <import>from gnuradio import digital</import> + <make>grc_blks2.packet_mod_$(type.fcn)(digital.ofdm_mod( + options=grc_blks2.options( + modulation="$modulation", + fft_length=$fft_length, + occupied_tones=$occupied_tones, + cp_length=$cp_length, + pad_for_usrp=$pad_for_usrp, + log=None, + verbose=None, + ), + ), + payload_length=$payload_length, +)</make> + <param> + <name>Input Type</name> + <key>type</key> + <value>float</value> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>fcn:c</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>fcn:f</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>fcn:i</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>fcn:s</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>fcn:b</opt> + </option> + </param> + <param> + <name>Modulation</name> + <key>modulation</key> + <type>enum</type> + <option> + <name>BPSK</name> + <key>bpsk</key> + </option> + <option> + <name>QPSK</name> + <key>qpsk</key> + </option> + <option> + <name>8PSK</name> + <key>8psk</key> + </option> + <option> + <name>QAM8</name> + <key>qam8</key> + </option> + <option> + <name>QAM16</name> + <key>qam16</key> + </option> + <option> + <name>QAM64</name> + <key>qam64</key> + </option> + <option> + <name>QAM256</name> + <key>qam256</key> + </option> + </param> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <value>512</value> + <type>int</type> + </param> + <param> + <name>Occupied Tones</name> + <key>occupied_tones</key> + <value>200</value> + <type>int</type> + </param> + <param> + <name>Cyclic Prefix Length</name> + <key>cp_length</key> + <value>128</value> + <type>int</type> + </param> + <param> + <name>Pad for USRP</name> + <key>pad_for_usrp</key> + <type>enum</type> + <option> + <name>Yes</name> + <key>True</key> + </option> + <option> + <name>No</name> + <key>False</key> + </option> + </param> + <param> + <name>Payload Length</name> + <key>payload_length</key> + <value>0</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>$type</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> + <doc>Payload Length: 0 for automatic.</doc> +</block> diff --git a/gr-digital/grc/digital_ofdm_sampler.xml b/gr-digital/grc/digital_ofdm_sampler.xml new file mode 100644 index 000000000..1be0d11f3 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_sampler.xml @@ -0,0 +1,67 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Sampler +################################################### + --> +<block> + <name>OFDM Sampler</name> + <key>digital_ofdm_sampler</key> + <import>from gnuradio import digital</import> + <make>digital.ofdm_sampler($fft_length, $symbol_length, $timeout)</make> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <type>int</type> + </param> + <param> + <name>Symbol Length</name> + <key>symbol_length</key> + <type>int</type> + </param> + <param> + <name>Timeout</name> + <key>timeout</key> + <type>int</type> + <value>1000</value> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <sink> + <name>flag</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + <vlen>$fft_length</vlen> + </source> + <source> + <name>flag</name> + <type>byte</type> + <vlen>$fft_length</vlen> + </source> +</block> diff --git a/gr-digital/grc/digital_ofdm_sync_pn.xml b/gr-digital/grc/digital_ofdm_sync_pn.xml new file mode 100644 index 000000000..ac0bbfe88 --- /dev/null +++ b/gr-digital/grc/digital_ofdm_sync_pn.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<!-- + Copyright 2011 Free Software Foundation, Inc. + + This file is part of GNU Radio + + GNU Radio is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GNU Radio is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Radio; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, + Boston, MA 02110-1301, USA. +--> + +<!-- +################################################### +##OFDM Synchronizer - PN based +################################################### + --> +<block> + <name>OFDM Sync PN</name> + <key>digital_ofdm_sync_pn</key> + <import>from gnuradio import digital</import> + <make>digital.ofdm_sync_pn($fft_length, $cp_length, $logging)</make> + <param> + <name>FFT Length</name> + <key>fft_length</key> + <type>int</type> + </param> + <param> + <name>CP Length</name> + <key>cp_length</key> + <type>int</type> + </param> + <param> + <name>Logging</name> + <key>logging</key> + <type>bool</type> + <value>False</value> + </param> + <sink> + <name>in</name> + <type>complex</type> + </sink> + <source> + <name>fine freq</name> + <type>float</type> + </source> + <source> + <name>timing sig</name> + <type>byte</type> + </source> +</block> |