1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
# auto-generated by grc.converter
id: dab_ofdm_demod
label: 'DAB: OFDM Demodulator'
category: '[DAB]'
parameters:
- id: dab_mode
label: DAB Mode
dtype: enum
default: '1'
options: ['1', '2', '3', '4']
option_attributes:
vlensize: [1536, 384, 192, 768]
- id: samp_rate
label: Sampling Rate
dtype: int
default: samp_rate
- id: input_fft
label: Input FFT Filter
dtype: enum
default: 'True'
options: ['False', 'True']
option_labels: [Disable, Enable]
- id: autocorr_sr
label: Auto-corr. samplerate
dtype: enum
default: 'True'
options: ['False', 'True']
option_labels: [Disable, Enable]
- id: correct_ffe
label: Fine-Freq. corr.
dtype: enum
default: 'True'
options: ['False', 'True']
option_labels: [Disable, Enable]
- id: eq_mag
label: Equalize Magnitude
dtype: enum
default: 'True'
options: ['False', 'True']
option_labels: [Disable, Enable]
- id: ppm_error
label: Timing error (ppm)
dtype: int
default: '0'
- id: soft_bits
label: Soft Bits
dtype: enum
default: soft
options: [soft, hard]
option_labels: [Soft Bits, Hard Bits]
option_attributes:
soft: [True, True]
type: [complex, byte]
vlenfrac: [1, 4]
hide: part
inputs:
- domain: stream
dtype: complex
outputs:
- label: dat
domain: stream
dtype: ${ soft_bits.type }
vlen: ${ int(dab_mode.vlensize // soft_bits.vlenfrac) }
templates:
imports: import gnuradio.dab as dab
make: "dab.ofdm_demod(\n dab.parameters.dab_parameters(\n \
\ mode=${dab_mode},\n sample_rate=${samp_rate},\n \
\ verbose=False\n ),\n dab.parameters.receiver_parameters(\n\
\ mode=${dab_mode},\n softbits=${soft_bits.soft},\n\
\ input_fft_filter=${input_fft},\n autocorrect_sample_rate=${autocorr_sr},\n\
\ sample_rate_correction_factor=1+float(${ppm_error})*1e-6,\n \
\ always_include_resample=True,\n verbose=False,\n \
\ correct_ffe=${correct_ffe},\n equalize_magnitude=${eq_mag}\n\
\ )\n )\n "
callbacks:
- self.${id}.resample.set_resamp_ratio(1+float(${ppm_error})*1e-6)
documentation: |-
Demodulates a whole DAB signal.
Output vector size depends on selected mode:
Mode I: 1536 complex samples or 384 bytes
Mode II: 384 complex samples or 96 bytes
Mode III: 192 complex samples or 48 bytes
Mode IV: 768 complex samples or 192 bytes
file_format: 1
|