summaryrefslogtreecommitdiff
path: root/gr-vocoder/grc
diff options
context:
space:
mode:
authorA. Maitland Bottoms <bottoms@debian.org>2019-03-11 22:54:21 -0400
committerAndrej Rode <mail@andrejro.de>2019-03-24 20:14:42 +0100
commite02eed791069c82bd262f4b2cbe324db76326e54 (patch)
tree8d7393cb9ef7caa8a2088d66ca19f1a285307b5f /gr-vocoder/grc
parentb9e5abc5972706f078a51b6d0bb9dbb6535c5b9c (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.yml12
-rw-r--r--gr-vocoder/grc/vocoder_codec2_encode_sp.block.yml12
-rw-r--r--gr-vocoder/grc/vocoder_freedv_rx_ss.block.yml22
-rw-r--r--gr-vocoder/grc/vocoder_freedv_tx_ss.block.yml25
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