diff options
author | A. Maitland Bottoms <bottoms@debian.org> | 2019-03-11 22:54:21 -0400 |
---|---|---|
committer | Andrej Rode <mail@andrejro.de> | 2019-03-24 20:14:42 +0100 |
commit | e02eed791069c82bd262f4b2cbe324db76326e54 (patch) | |
tree | 8d7393cb9ef7caa8a2088d66ca19f1a285307b5f /gr-vocoder/grc | |
parent | b9e5abc5972706f078a51b6d0bb9dbb6535c5b9c (diff) |
gr-vocoder: update codec2 and freedv blocks.
Update to add support for newer modes in codec2 0.8.1.
Fixup grc blocks yml templates, update examples.
Diffstat (limited to 'gr-vocoder/grc')
-rw-r--r-- | gr-vocoder/grc/vocoder_codec2_decode_ps.block.yml | 12 | ||||
-rw-r--r-- | gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml | 12 | ||||
-rw-r--r-- | gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml | 22 | ||||
-rw-r--r-- | gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml | 25 |
4 files changed, 57 insertions, 14 deletions
diff --git a/gr-vocoder/grc/vocoder_codec2_decode_ps.block.yml b/gr-vocoder/grc/vocoder_codec2_decode_ps.block.yml index 0aec7ec4c1..1fc0e7dbad 100644 --- a/gr-vocoder/grc/vocoder_codec2_decode_ps.block.yml +++ b/gr-vocoder/grc/vocoder_codec2_decode_ps.block.yml @@ -7,15 +7,16 @@ parameters: dtype: int default: codec2.MODE_2400 options: [codec2.MODE_3200, codec2.MODE_2400, codec2.MODE_1600, codec2.MODE_1400, - codec2.MODE_1300, codec2.MODE_1200, codec2.MODE_700, codec2.MODE_700B] + codec2.MODE_1300, codec2.MODE_1200, codec2.MODE_700, codec2.MODE_700B, + codec2.MODE_700C, codec2.MODE_WB, codec2.MODE_450, codec2.MODE_450PWB] option_labels: [3200 bps, 2400 bps, 1600 bps, 1400 bps, 1300 bps, 1200 bps, 700 - bps, 700B bps] - hide: ${ 'part' if vlen == 1 else 'none' } + bps, 700B bps, 700C bps, Wideband, 450 bps, 450PWB bps] + hide: none inputs: - domain: stream dtype: byte - vlen: '${ { 0: 64, 1: 48, 2: 64, 3: 56, 4: 52, 5: 48, 6: 28, 7: 28 }[mode] }' + vlen: '${ { 0: 64, 1: 48, 2: 64, 3: 56, 4: 52, 5: 48, 6: 28, 7: 28, 8: 28, 9: 64, 10: 18, 11: 18 }[mode] }' outputs: - domain: stream @@ -27,4 +28,7 @@ templates: from gnuradio.vocoder import codec2 make: vocoder.codec2_decode_ps(${mode}) +documentation: |- + Not all modes may be supported by the underlying codec2 library. + file_format: 1 diff --git a/gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml b/gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml index f03787341c..0357fa2ac7 100644 --- a/gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml +++ b/gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml @@ -7,10 +7,11 @@ parameters: dtype: int default: codec2.MODE_2400 options: [codec2.MODE_3200, codec2.MODE_2400, codec2.MODE_1600, codec2.MODE_1400, - codec2.MODE_1300, codec2.MODE_1200, codec2.MODE_700, codec2.MODE_700B] + codec2.MODE_1300, codec2.MODE_1200, codec2.MODE_700, codec2.MODE_700B, + codec2.MODE_700C, codec2.MODE_WB, codec2.MODE_450, codec2.MODE_450PWB] option_labels: [3200 bps, 2400 bps, 1600 bps, 1400 bps, 1300 bps, 1200 bps, 700 - bps, 700B bps] - hide: ${ 'part' if vlen == 1 else 'none' } + bps, 700B bps, 700C bps, Wideband, 450 bps, 450PWB bps] + hide: none inputs: - domain: stream @@ -19,7 +20,7 @@ inputs: outputs: - domain: stream dtype: byte - vlen: '${ { 0: 64, 1: 48, 2: 64, 3: 56, 4: 52, 5: 48, 6: 28, 7: 28 }[mode] }' + vlen: '${ { 0: 64, 1: 48, 2: 64, 3: 56, 4: 52, 5: 48, 6: 28, 7: 28, 8: 28, 9: 64, 10: 18, 11: 18 }[mode] }' templates: imports: |- @@ -27,4 +28,7 @@ templates: from gnuradio.vocoder import codec2 make: vocoder.codec2_encode_sp(${mode}) +documentation: |- + Not all modes may be supported by the underlying codec2 library. + file_format: 1 diff --git a/gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml b/gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml index 4b486d41cb..fd3392e13f 100644 --- a/gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml +++ b/gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml @@ -7,12 +7,20 @@ parameters: dtype: int default: freedv_api.MODE_1600 options: [freedv_api.MODE_1600, freedv_api.MODE_700, freedv_api.MODE_700B, freedv_api.MODE_2400A, - freedv_api.MODE_2400B, freedv_api.MODE_800XA] - option_labels: ['1600', '700', 700B, 2400A, 2400B, 800XA] + freedv_api.MODE_2400B, freedv_api.MODE_800XA, freedv_api.MODE_700C, freedv_api.MODE_700D] + option_labels: ['1600', '700', 700B, 2400A, 2400B, 800XA, 700C, 700D] - id: squelch_thresh label: Squelch Threshold dtype: float default: '-100.0' +- id: interleave_frames + label: Interleave Frames + dtype: int + default: '1' +- id: squelch_enable + label: Squelch Enable + dtype: bool + default: True inputs: - domain: stream @@ -26,8 +34,16 @@ templates: imports: |- from gnuradio import vocoder from gnuradio.vocoder import freedv_api - make: vocoder.freedv_rx_ss(${mode},${squelch_thresh}) + make: vocoder.freedv_rx_ss(${mode},${squelch_thresh},${interleave_frames}) callbacks: + - set_squelch_en(${squelch_enable}) - set_squelch_thresh(${squelch_thresh}) +documentation: |- + Not all modes may be supported by the underlying codec2 library. + interleave_frames is an integer between 1 and 32, and is only used in the 700D mode. + (must be set the same on both transmitter and receiver) + Squelch Enable defaults to On + Squelch Threshold - cutoff level for receiver + file_format: 1 diff --git a/gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml b/gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml index 6ae73dfbbb..1fb13ec106 100644 --- a/gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml +++ b/gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml @@ -7,12 +7,24 @@ parameters: dtype: int default: freedv_api.MODE_1600 options: [freedv_api.MODE_1600, freedv_api.MODE_700, freedv_api.MODE_700B, freedv_api.MODE_2400A, - freedv_api.MODE_2400B, freedv_api.MODE_800XA] - option_labels: ['1600', '700', 700B, 2400A, 2400B, 800XA] + freedv_api.MODE_2400B, freedv_api.MODE_800XA, freedv_api.MODE_700C, freedv_api.MODE_700D] + option_labels: ['1600', '700', 700B, 2400A, 2400B, 800XA, 700C, 700D] - id: txt_msg label: Text Message dtype: string default: '''GNU Radio''' +- id: interleave_frames + label: Interleave Frames + dtype: int + default: 1 +- id: clip_val + label: Clip + dtype: bool + default: False +- id: tx_bpf_val + label: Tx BPF + dtype: bool + default: True inputs: - domain: stream @@ -26,6 +38,13 @@ templates: imports: |- from gnuradio import vocoder from gnuradio.vocoder import freedv_api - make: vocoder.freedv_tx_ss(${mode},${txt_msg}) + make: vocoder.freedv_tx_ss(${mode},${txt_msg},${interleave_frames}) + +documentation: |- + Not all modes may be supported by the underlying codec2 library. + interleave_frames is an integer between 1 and 32, and is only used in the 700D mode. + (must be set the same on both transmitter and receiver) + Clip reduces the Peak/Average Power Ratio from 12dB to 8dB by clipping. + Tx BPF: enable a bandpass filter file_format: 1 |