diff --git a/examples/modulate_sync_word.grc b/examples/modulate_sync_word.grc
new file mode 100644
index 0000000000000000000000000000000000000000..f417bd783f700ca592862d3a27ee28d55c659715
--- /dev/null
+++ b/examples/modulate_sync_word.grc
@@ -0,0 +1,314 @@
+options:
+ parameters:
+ author: ''
+ catch_exceptions: 'True'
+ category: '[GRC Hier Blocks]'
+ cmake_opt: ''
+ comment: ''
+ copyright: University of Melbourne
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: qt_gui
+ hier_block_src_path: '.:'
+ id: modulate_sync_word
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: ''
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: Modulate Sync Word
+ window_size: (1000,1000)
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [8, 8]
+ rotation: 0
+ state: enabled
+
+blocks:
+- name: constel
+ id: variable_constellation
+ parameters:
+ comment: ''
+ const_points: '[-1-1j, -1+1j, 1+1j, 1-1j]'
+ dims: '1'
+ normalization: digital.constellation.AMPLITUDE_NORMALIZATION
+ precision: '8'
+ rot_sym: '4'
+ soft_dec_lut: None
+ sym_map: '[0, 1, 3, 2]'
+ type: bpsk
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 12.0]
+ rotation: 0
+ state: true
+- name: excess_bw
+ id: variable
+ parameters:
+ comment: ''
+ value: '0.35'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [728, 12.0]
+ rotation: 0
+ state: true
+- name: nsamps
+ id: variable
+ parameters:
+ comment: ''
+ value: sps*nsymbs
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [824, 12.0]
+ rotation: 0
+ state: true
+- name: nsymbs
+ id: variable
+ parameters:
+ comment: ''
+ value: 8*len(preamble)//constel.bits_per_symbol()
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [504, 12.0]
+ rotation: 0
+ state: true
+- name: ntaps
+ id: variable
+ parameters:
+ comment: ''
+ value: 11*sps
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [656, 12.0]
+ rotation: 0
+ state: true
+- name: preamble
+ id: variable
+ parameters:
+ comment: ''
+ value: digital.packet_utils.default_access_code_binary
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [344, 12.0]
+ rotation: 0
+ state: true
+- name: sps
+ id: variable
+ parameters:
+ comment: ''
+ value: '2'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [584, 12.0]
+ rotation: 0
+ state: true
+- name: analog_const_source_x_0
+ id: analog_const_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ const: '0'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ type: complex
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [520, 180.0]
+ rotation: 0
+ state: true
+- name: blocks_file_sink_0
+ id: blocks_file_sink
+ parameters:
+ affinity: ''
+ alias: ''
+ append: 'False'
+ comment: "Saves modulate sync word samples to \nbinary file. You can load in Python\
+ \ using \nnumpy:\n\nnumpy.fromfile(<filename>, dtype=np.complex64)"
+ file: modulated_sync_word.bin
+ type: complex
+ unbuffered: 'False'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [528, 260.0]
+ rotation: 180
+ state: true
+- name: blocks_head_0
+ id: blocks_head
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_items: nsamps
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [760, 276.0]
+ rotation: 180
+ state: true
+- name: blocks_packed_to_unpacked_xx_0
+ id: blocks_packed_to_unpacked_xx
+ parameters:
+ affinity: ''
+ alias: ''
+ bits_per_chunk: constel.bits_per_symbol()
+ comment: ''
+ endianness: gr.GR_MSB_FIRST
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_ports: '1'
+ type: byte
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [216, 116.0]
+ rotation: 0
+ state: true
+- name: blocks_skiphead_0
+ id: blocks_skiphead
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: 'Skip ramp up samples of RRC
+
+ transmit pulse-shaping filter'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_items: ntaps//2
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [920, 276.0]
+ rotation: 180
+ state: true
+- name: blocks_stream_mux_0
+ id: blocks_stream_mux
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ lengths: (nsymbs, ntaps//2)
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_inputs: '2'
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [696, 128.0]
+ rotation: 0
+ state: true
+- name: blocks_vector_source_x_0
+ id: blocks_vector_source_x
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ repeat: 'True'
+ tags: '[]'
+ type: byte
+ vector: '[int(x) for x in preamble]'
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [8, 108.0]
+ rotation: 0
+ state: true
+- name: digital_chunks_to_symbols_xx_0
+ id: digital_chunks_to_symbols_xx
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ dimension: '1'
+ in_type: byte
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ num_ports: '1'
+ out_type: complex
+ symbol_table: constel.points()
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [504, 112.0]
+ rotation: 0
+ state: true
+- name: root_raised_cosine_filter_0
+ id: root_raised_cosine_filter
+ parameters:
+ affinity: ''
+ alias: ''
+ alpha: excess_bw
+ comment: ''
+ decim: '1'
+ gain: '1.0'
+ interp: sps
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ ntaps: ntaps
+ samp_rate: sps
+ sym_rate: '1.0'
+ type: interp_fir_filter_ccf
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [848, 100.0]
+ rotation: 0
+ state: true
+
+connections:
+- [analog_const_source_x_0, '0', blocks_stream_mux_0, '1']
+- [blocks_head_0, '0', blocks_file_sink_0, '0']
+- [blocks_packed_to_unpacked_xx_0, '0', digital_chunks_to_symbols_xx_0, '0']
+- [blocks_skiphead_0, '0', blocks_head_0, '0']
+- [blocks_stream_mux_0, '0', root_raised_cosine_filter_0, '0']
+- [blocks_vector_source_x_0, '0', blocks_packed_to_unpacked_xx_0, '0']
+- [digital_chunks_to_symbols_xx_0, '0', blocks_stream_mux_0, '0']
+- [root_raised_cosine_filter_0, '0', blocks_skiphead_0, '0']
+
+metadata:
+ file_format: 1