This is the 2nd (and last) batch of grc documentation patches Dimitrios Symeonidis "If you think you're too small to make a difference, try sleeping with a mosquito!" - Amnesty International
From 81a085c352109ec7af0939427b3fccc6d1ca96fa Mon Sep 17 00:00:00 2001 From: Dimitrios Symeonidis <azim...@gmail.com> Date: Thu, 11 Aug 2011 11:28:54 +0200 Subject: [PATCH 08/11] grc documentation for filters
--- grc/blocks/blks2_analysis_filterbank.xml | 5 +++++ grc/blocks/blks2_pfb_arb_resampler.xml | 3 +++ grc/blocks/blks2_pfb_channelizer.xml | 3 +++ grc/blocks/blks2_synthesis_filterbank.xml | 5 +++++ grc/blocks/gr_channel_model.xml | 3 +++ grc/blocks/gr_cma_equalizer_cc.xml | 3 +++ grc/blocks/gr_dc_blocker.xml | 5 +++++ grc/blocks/gr_fft_filter_xxx.xml | 3 +++ grc/blocks/gr_filter_delay_fc.xml | 5 +++++ grc/blocks/gr_fir_filter_xxx.xml | 3 +++ grc/blocks/gr_fractional_interpolator_xx.xml | 3 +++ grc/blocks/gr_freq_xlating_fir_filter_xxx.xml | 3 +++ grc/blocks/gr_goertzel_fc.xml | 3 +++ grc/blocks/gr_hilbert_fc.xml | 6 ++++++ grc/blocks/gr_iir_filter_ffd.xml | 5 +++++ grc/blocks/gr_interp_fir_filter_xxx.xml | 3 +++ grc/blocks/gr_keep_one_in_n.xml | 3 +++ grc/blocks/gr_moving_average_xx.xml | 6 ++++++ grc/blocks/gr_pfb_synthesis_filterbank.xml | 3 +++ grc/blocks/gr_rational_resampler_base_xxx.xml | 3 +++ grc/blocks/gr_single_pole_iir_filter_xx.xml | 5 +++++ 21 files changed, 81 insertions(+), 0 deletions(-) diff --git a/grc/blocks/blks2_analysis_filterbank.xml b/grc/blocks/blks2_analysis_filterbank.xml index 93cfa30..6ffef1a 100644 --- a/grc/blocks/blks2_analysis_filterbank.xml +++ b/grc/blocks/blks2_analysis_filterbank.xml @@ -29,4 +29,9 @@ <type>complex</type> <nports>$mpoints</nports> </source> + <doc> +Uniformly modulated polyphase DFT filter bank: analysis + +See http://cnx.org/content/m10424/latest + </doc> </block> diff --git a/grc/blocks/blks2_pfb_arb_resampler.xml b/grc/blocks/blks2_pfb_arb_resampler.xml index b4e0979..853664e 100644 --- a/grc/blocks/blks2_pfb_arb_resampler.xml +++ b/grc/blocks/blks2_pfb_arb_resampler.xml @@ -42,4 +42,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Polyphase filterbank arbitrary resampler + </doc> </block> diff --git a/grc/blocks/blks2_pfb_channelizer.xml b/grc/blocks/blks2_pfb_channelizer.xml index aee9dd5..1b46ef3 100644 --- a/grc/blocks/blks2_pfb_channelizer.xml +++ b/grc/blocks/blks2_pfb_channelizer.xml @@ -50,4 +50,7 @@ <type>complex</type> <nports>$nchans</nports> </source> + <doc> +Polyphase filterbank channelizer + </doc> </block> diff --git a/grc/blocks/blks2_synthesis_filterbank.xml b/grc/blocks/blks2_synthesis_filterbank.xml index 5979ed3..c97474c 100644 --- a/grc/blocks/blks2_synthesis_filterbank.xml +++ b/grc/blocks/blks2_synthesis_filterbank.xml @@ -29,4 +29,9 @@ <name>out</name> <type>complex</type> </source> + <doc> +Uniformly modulated polyphase DFT filter bank: synthesis + +See http://cnx.org/content/m10424/latest + </doc> </block> diff --git a/grc/blocks/gr_channel_model.xml b/grc/blocks/gr_channel_model.xml index e23062d..44ba090 100644 --- a/grc/blocks/gr_channel_model.xml +++ b/grc/blocks/gr_channel_model.xml @@ -58,4 +58,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Channel simulator + </doc> </block> diff --git a/grc/blocks/gr_cma_equalizer_cc.xml b/grc/blocks/gr_cma_equalizer_cc.xml index 142fb6d..8247e3c 100644 --- a/grc/blocks/gr_cma_equalizer_cc.xml +++ b/grc/blocks/gr_cma_equalizer_cc.xml @@ -33,4 +33,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Implements constant modulus adaptive filter on complex stream + </doc> </block> diff --git a/grc/blocks/gr_dc_blocker.xml b/grc/blocks/gr_dc_blocker.xml index e5aeeb0..a3e8d2a 100644 --- a/grc/blocks/gr_dc_blocker.xml +++ b/grc/blocks/gr_dc_blocker.xml @@ -48,4 +48,9 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +a computationally efficient controllabel DC blocker + +This block implements a computationally efficient DC blocker that produces a tigher notch filter around DC for a smaller group delay than an equivalent FIR filter or using a single pole IIR filter (though the IIR filter is computationally cheaper). + </doc> </block> diff --git a/grc/blocks/gr_fft_filter_xxx.xml b/grc/blocks/gr_fft_filter_xxx.xml index c163309..e6dfef4 100644 --- a/grc/blocks/gr_fft_filter_xxx.xml +++ b/grc/blocks/gr_fft_filter_xxx.xml @@ -49,4 +49,7 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +Fast FFT filter + </doc> </block> diff --git a/grc/blocks/gr_filter_delay_fc.xml b/grc/blocks/gr_filter_delay_fc.xml index 30d65bf..2ccc1b2 100644 --- a/grc/blocks/gr_filter_delay_fc.xml +++ b/grc/blocks/gr_filter_delay_fc.xml @@ -28,4 +28,9 @@ <name>out</name> <type>complex</type> </source> + <doc> +Filter-Delay Combination Block. + +The block takes one or two float stream and outputs a complex stream. If only one float stream is input, the real output is a delayed version of this input and the imaginary output is the filtered output. If two floats are connected to the input, then the real output is the delayed version of the first input, and the imaginary output is the filtered output. The delay in the real path accounts for the group delay introduced by the filter in the imaginary path. The filter taps needs to be calculated before initializing this block. + </doc> </block> diff --git a/grc/blocks/gr_fir_filter_xxx.xml b/grc/blocks/gr_fir_filter_xxx.xml index c4de8f5..bd56530 100644 --- a/grc/blocks/gr_fir_filter_xxx.xml +++ b/grc/blocks/gr_fir_filter_xxx.xml @@ -77,4 +77,7 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +FIR filter + </doc> </block> diff --git a/grc/blocks/gr_fractional_interpolator_xx.xml b/grc/blocks/gr_fractional_interpolator_xx.xml index 8d65ff8..05fd140 100644 --- a/grc/blocks/gr_fractional_interpolator_xx.xml +++ b/grc/blocks/gr_fractional_interpolator_xx.xml @@ -43,4 +43,7 @@ <name>out</name> <type>$type</type> </source> + <doc> +Interpolating mmse filter + </doc> </block> diff --git a/grc/blocks/gr_freq_xlating_fir_filter_xxx.xml b/grc/blocks/gr_freq_xlating_fir_filter_xxx.xml index e3ee669..4d8683f 100644 --- a/grc/blocks/gr_freq_xlating_fir_filter_xxx.xml +++ b/grc/blocks/gr_freq_xlating_fir_filter_xxx.xml @@ -90,4 +90,7 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +FIR filter combined with frequency translation + </doc> </block> diff --git a/grc/blocks/gr_goertzel_fc.xml b/grc/blocks/gr_goertzel_fc.xml index f27d958..ce07145 100644 --- a/grc/blocks/gr_goertzel_fc.xml +++ b/grc/blocks/gr_goertzel_fc.xml @@ -34,4 +34,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Goertzel single-bin DFT calculation + </doc> </block> diff --git a/grc/blocks/gr_hilbert_fc.xml b/grc/blocks/gr_hilbert_fc.xml index 165e8da..264ab48 100644 --- a/grc/blocks/gr_hilbert_fc.xml +++ b/grc/blocks/gr_hilbert_fc.xml @@ -23,4 +23,10 @@ <name>out</name> <type>complex</type> </source> + <doc> +Hilbert transformer. + +real output is input appropriately delayed. +imaginary output is hilbert filtered (90 degree phase shift) version of input. + </doc> </block> diff --git a/grc/blocks/gr_iir_filter_ffd.xml b/grc/blocks/gr_iir_filter_ffd.xml index 9799150..0ec203c 100644 --- a/grc/blocks/gr_iir_filter_ffd.xml +++ b/grc/blocks/gr_iir_filter_ffd.xml @@ -28,4 +28,9 @@ <name>out</name> <type>float</type> </source> + <doc> +IIR filter + +This filter uses the Direct Form I implementation, where fftaps contains the feed-forward taps, and fbtaps the feedback ones. + </doc> </block> diff --git a/grc/blocks/gr_interp_fir_filter_xxx.xml b/grc/blocks/gr_interp_fir_filter_xxx.xml index 55375ae..8738503 100644 --- a/grc/blocks/gr_interp_fir_filter_xxx.xml +++ b/grc/blocks/gr_interp_fir_filter_xxx.xml @@ -77,4 +77,7 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +Interpolating FIR filter + </doc> </block> diff --git a/grc/blocks/gr_keep_one_in_n.xml b/grc/blocks/gr_keep_one_in_n.xml index 21595b7..162eeb6 100644 --- a/grc/blocks/gr_keep_one_in_n.xml +++ b/grc/blocks/gr_keep_one_in_n.xml @@ -64,4 +64,7 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc> +decimate a stream, keeping one item out of every n + </doc> </block> diff --git a/grc/blocks/gr_moving_average_xx.xml b/grc/blocks/gr_moving_average_xx.xml index b70943c..af98315 100644 --- a/grc/blocks/gr_moving_average_xx.xml +++ b/grc/blocks/gr_moving_average_xx.xml @@ -65,4 +65,10 @@ <name>out</name> <type>$type</type> </source> + <doc> +output is the moving sum of the last N samples, scaled by the scale factor + +max_iter limits how long we go without flushing the accumulator +This is necessary to avoid numerical instability for float and complex. + </doc> </block> diff --git a/grc/blocks/gr_pfb_synthesis_filterbank.xml b/grc/blocks/gr_pfb_synthesis_filterbank.xml index a8b944c..34ba048 100644 --- a/grc/blocks/gr_pfb_synthesis_filterbank.xml +++ b/grc/blocks/gr_pfb_synthesis_filterbank.xml @@ -40,4 +40,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Polyphase synthesis filterbank + </doc> </block> diff --git a/grc/blocks/gr_rational_resampler_base_xxx.xml b/grc/blocks/gr_rational_resampler_base_xxx.xml index 4b77201..41005e1 100644 --- a/grc/blocks/gr_rational_resampler_base_xxx.xml +++ b/grc/blocks/gr_rational_resampler_base_xxx.xml @@ -83,4 +83,7 @@ <name>out</name> <type>$type.output</type> </source> + <doc> +Rational Resampling Polyphase FIR filter + </doc> </block> diff --git a/grc/blocks/gr_single_pole_iir_filter_xx.xml b/grc/blocks/gr_single_pole_iir_filter_xx.xml index 50cf4a8..d5f55ba 100644 --- a/grc/blocks/gr_single_pole_iir_filter_xx.xml +++ b/grc/blocks/gr_single_pole_iir_filter_xx.xml @@ -48,4 +48,9 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc> +IIR filter + +This filter uses the Direct Form I implementation, where fftaps contains the feed-forward taps, and fbtaps the feedback ones. + </doc> </block> -- 1.7.4.1
From f1686b240ba12203b8f7e1237e6a186c6defbc99 Mon Sep 17 00:00:00 2001 From: Dimitrios Symeonidis <azim...@gmail.com> Date: Thu, 11 Aug 2011 14:56:48 +0200 Subject: [PATCH 09/11] grc documentation for modulators --- grc/blocks/blks2_am_demod_cf.xml | 10 ++++ grc/blocks/blks2_dxpsk2_demod.xml | 3 + grc/blocks/blks2_dxpsk2_mod.xml | 3 + grc/blocks/blks2_dxpsk_demod.xml | 3 + grc/blocks/blks2_dxpsk_mod.xml | 3 + grc/blocks/blks2_fm_deemph.xml | 3 + grc/blocks/blks2_fm_demod_cf.xml | 13 ++++++ grc/blocks/blks2_fm_preemph.xml | 3 + grc/blocks/blks2_gmsk_demod.xml | 17 +++++++ grc/blocks/blks2_gmsk_mod.xml | 10 ++++ grc/blocks/blks2_nbfm_rx.xml | 18 ++++++++ grc/blocks/blks2_nbfm_tx.xml | 12 +++++ grc/blocks/blks2_ofdm_demod.xml | 6 ++- grc/blocks/blks2_ofdm_mod.xml | 6 ++- grc/blocks/blks2_qamx_demod.xml | 3 + grc/blocks/blks2_qamx_mod.xml | 3 + grc/blocks/blks2_wfm_rcv.xml | 9 ++++ grc/blocks/blks2_wfm_rcv_pll.xml | 9 ++++ grc/blocks/blks2_wfm_tx.xml | 12 +++++ grc/blocks/gr_constellation_decoder_cb.xml | 3 + grc/blocks/gr_cpfsk_bc.xml | 65 +++++++++++++++------------ grc/blocks/gr_diff_decoder_bb.xml | 5 ++ grc/blocks/gr_diff_encoder_bb.xml | 5 ++ grc/blocks/gr_frequency_modulator_fc.xml | 3 + grc/blocks/gr_phase_modulator_fc.xml | 5 ++ grc/blocks/gr_quadrature_demod_cf.xml | 6 +++ grc/blocks/gr_vco_f.xml | 3 + 27 files changed, 210 insertions(+), 31 deletions(-) diff --git a/grc/blocks/blks2_am_demod_cf.xml b/grc/blocks/blks2_am_demod_cf.xml index 898c613..a82e3a0 100644 --- a/grc/blocks/blks2_am_demod_cf.xml +++ b/grc/blocks/blks2_am_demod_cf.xml @@ -44,4 +44,14 @@ <name>out</name> <type>float</type> </source> + <doc> +Generalized AM demodulation block with audio filtering. + +This block demodulates a band-limited, complex down-converted AM channel into the the original baseband signal, applying low pass filtering to the audio output. It produces a float stream in the range [-1.0, +1.0]. + +channel_rate: incoming sample rate of the AM baseband +audio_decim: input to output decimation rate +audio_pass: audio low pass filter passband frequency +audio_stop: audio low pass filter stop frequency + </doc> </block> diff --git a/grc/blocks/blks2_dxpsk2_demod.xml b/grc/blocks/blks2_dxpsk2_demod.xml index 7fe4be3..ddef000 100644 --- a/grc/blocks/blks2_dxpsk2_demod.xml +++ b/grc/blocks/blks2_dxpsk2_demod.xml @@ -149,4 +149,7 @@ <type>complex</type> <optional>1</optional> </source> + <doc> +differential B/Q-PSK demodulation + </doc> </block> diff --git a/grc/blocks/blks2_dxpsk2_mod.xml b/grc/blocks/blks2_dxpsk2_mod.xml index bf292be..46281ad 100644 --- a/grc/blocks/blks2_dxpsk2_mod.xml +++ b/grc/blocks/blks2_dxpsk2_mod.xml @@ -92,4 +92,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +differential B/Q-PSK modulation + </doc> </block> diff --git a/grc/blocks/blks2_dxpsk_demod.xml b/grc/blocks/blks2_dxpsk_demod.xml index 1c96b6c..327005b 100644 --- a/grc/blocks/blks2_dxpsk_demod.xml +++ b/grc/blocks/blks2_dxpsk_demod.xml @@ -124,4 +124,7 @@ <name>out</name> <type>byte</type> </source> + <doc> +differential B/Q/8-PSK demodulation + </doc> </block> diff --git a/grc/blocks/blks2_dxpsk_mod.xml b/grc/blocks/blks2_dxpsk_mod.xml index 77505d8..0a4213d 100644 --- a/grc/blocks/blks2_dxpsk_mod.xml +++ b/grc/blocks/blks2_dxpsk_mod.xml @@ -96,4 +96,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +differential B/Q/8-PSK modulation + </doc> </block> diff --git a/grc/blocks/blks2_fm_deemph.xml b/grc/blocks/blks2_fm_deemph.xml index 6f38dab..0f8e2df 100644 --- a/grc/blocks/blks2_fm_deemph.xml +++ b/grc/blocks/blks2_fm_deemph.xml @@ -28,4 +28,7 @@ <name>out</name> <type>float</type> </source> + <doc> +FM Deemphasis IIR filter. + </doc> </block> diff --git a/grc/blocks/blks2_fm_demod_cf.xml b/grc/blocks/blks2_fm_demod_cf.xml index 2ce1fb9..7bd8553 100644 --- a/grc/blocks/blks2_fm_demod_cf.xml +++ b/grc/blocks/blks2_fm_demod_cf.xml @@ -65,4 +65,17 @@ <name>out</name> <type>float</type> </source> + <doc> +Generalized FM demodulation block with deemphasis and audio filtering. + +This block demodulates a band-limited, complex down-converted FM channel into the the original baseband signal, optionally applying deemphasis. Low pass filtering is done on the resultant signal. It produces an output float strem in the range of [-1.0, +1.0]. + +channel_rate: incoming sample rate of the FM baseband +deviation: maximum FM deviation (default = 5000) +audio_decim: input to output decimation rate +audio_pass: audio low pass filter passband frequency +audio_stop: audio low pass filter stop frequency +gain: gain applied to audio output (default = 1.0) +tau: deemphasis time constant (default = 75e-6), specify 'None' to prevent deemphasis + </doc> </block> diff --git a/grc/blocks/blks2_fm_preemph.xml b/grc/blocks/blks2_fm_preemph.xml index 672a7a7..803136a 100644 --- a/grc/blocks/blks2_fm_preemph.xml +++ b/grc/blocks/blks2_fm_preemph.xml @@ -28,4 +28,7 @@ <name>out</name> <type>float</type> </source> + <doc> +FM Preemphasis IIR filter. + </doc> </block> diff --git a/grc/blocks/blks2_gmsk_demod.xml b/grc/blocks/blks2_gmsk_demod.xml index 13ecb33..9c9b775 100644 --- a/grc/blocks/blks2_gmsk_demod.xml +++ b/grc/blocks/blks2_gmsk_demod.xml @@ -85,4 +85,21 @@ <name>out</name> <type>byte</type> </source> + <doc> +Hierarchical block for Gaussian Minimum Shift Key (GMSK) demodulation. + +The input is the complex modulated signal at baseband. +The output is a stream of bits packed 1 bit per byte (the LSB) + +samples_per_symbol: samples per baud +verbose: Print information about modulator? +log: Print modualtion data to files? + +Clock recovery parameters. These all have reasonble defaults. + +gain_mu: controls rate of mu adjustment +mu: fractional delay [0.0, 1.0] +omega_relative_limit: sets max variation in omega +freq_error: bit rate error as a fraction + </doc> </block> diff --git a/grc/blocks/blks2_gmsk_mod.xml b/grc/blocks/blks2_gmsk_mod.xml index e80264f..8ccb1f9 100644 --- a/grc/blocks/blks2_gmsk_mod.xml +++ b/grc/blocks/blks2_gmsk_mod.xml @@ -64,4 +64,14 @@ <name>out</name> <type>complex</type> </source> + <doc> +Hierarchical block for Gaussian Minimum Shift Key (GMSK) modulation. + +The input is a byte stream (unsigned char) and the output is the complex modulated signal at baseband. + +samples_per_symbol: samples per baud >= 2 +bt: Gaussian filter bandwidth * symbol time +verbose: Print information about modulator? +debug: Print modualtion data to files? + </doc> </block> diff --git a/grc/blocks/blks2_nbfm_rx.xml b/grc/blocks/blks2_nbfm_rx.xml index d332b9a..4f8011a 100644 --- a/grc/blocks/blks2_nbfm_rx.xml +++ b/grc/blocks/blks2_nbfm_rx.xml @@ -45,4 +45,22 @@ <name>out</name> <type>float</type> </source> + <doc> +Narrow Band FM Receiver. + +Takes a single complex baseband input stream and produces a single float output stream of audio sample in the range [-1, +1]. + +audio_rate: sample rate of audio stream, >= 16k +quad_rate: sample rate of output stream +tau: preemphasis time constant (default 75e-6) +max_dev: maximum deviation in Hz (default 5e3) + +quad_rate must be an integer multiple of audio_rate. + +Exported sub-blocks (attributes): + squelch + quad_demod + deemph + audio_filter + </doc> </block> diff --git a/grc/blocks/blks2_nbfm_tx.xml b/grc/blocks/blks2_nbfm_tx.xml index 3aa7ede..7664659 100644 --- a/grc/blocks/blks2_nbfm_tx.xml +++ b/grc/blocks/blks2_nbfm_tx.xml @@ -45,4 +45,16 @@ <name>out</name> <type>complex</type> </source> + <doc> +Narrow Band FM Transmitter. + +Takes a single float input stream of audio samples in the range [-1,+1] and produces a single FM modulated complex baseband output. + +audio_rate: sample rate of audio stream, >= 16k +quad_rate: sample rate of output stream +tau: preemphasis time constant (default 75e-6) +max_dev: maximum deviation in Hz (default 5e3) + +quad_rate must be an integer multiple of audio_rate. + </doc> </block> diff --git a/grc/blocks/blks2_ofdm_demod.xml b/grc/blocks/blks2_ofdm_demod.xml index ac5ee47..5b12f56 100644 --- a/grc/blocks/blks2_ofdm_demod.xml +++ b/grc/blocks/blks2_ofdm_demod.xml @@ -118,5 +118,9 @@ <name>out</name> <type>$type</type> </source> - <doc>Payload Length: 0 for automatic.</doc> + <doc> +Demodulates a received OFDM stream. Based on the options fft_length, occupied_tones, and cp_length, this block performs synchronization, FFT, and demodulation of incoming OFDM symbols and passes packets up the a higher layer. + +Payload Length: 0 for automatic. + </doc> </block> diff --git a/grc/blocks/blks2_ofdm_mod.xml b/grc/blocks/blks2_ofdm_mod.xml index 2c54d10..c7f23b6 100644 --- a/grc/blocks/blks2_ofdm_mod.xml +++ b/grc/blocks/blks2_ofdm_mod.xml @@ -131,5 +131,9 @@ <name>out</name> <type>complex</type> </source> - <doc>Payload Length: 0 for automatic.</doc> + <doc> +Modulates an OFDM stream. Based on the options fft_length, occupied_tones, and cp_length, this block creates OFDM symbols using a specified modulation option. + +Payload Length: 0 for automatic. + </doc> </block> diff --git a/grc/blocks/blks2_qamx_demod.xml b/grc/blocks/blks2_qamx_demod.xml index e332495..895f47c 100644 --- a/grc/blocks/blks2_qamx_demod.xml +++ b/grc/blocks/blks2_qamx_demod.xml @@ -128,4 +128,7 @@ <name>out</name> <type>byte</type> </source> + <doc> +Quadrature Amplitude Modulation (QAM)-8/16/64/256 demodulator + </doc> </block> diff --git a/grc/blocks/blks2_qamx_mod.xml b/grc/blocks/blks2_qamx_mod.xml index 69a2e9e..15a7ef6 100644 --- a/grc/blocks/blks2_qamx_mod.xml +++ b/grc/blocks/blks2_qamx_mod.xml @@ -100,4 +100,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Quadrature Amplitude Modulation (QAM)-8/16/64/256 modulator + </doc> </block> diff --git a/grc/blocks/blks2_wfm_rcv.xml b/grc/blocks/blks2_wfm_rcv.xml index 37fb3ba..dddbdc7 100644 --- a/grc/blocks/blks2_wfm_rcv.xml +++ b/grc/blocks/blks2_wfm_rcv.xml @@ -30,4 +30,13 @@ <name>out</name> <type>float</type> </source> + <doc> +Hierarchical block for demodulating a broadcast FM signal. + +The input is the downconverted complex baseband signal (gr_complex). +The output is the demodulated audio (float). + +quad_rate: input sample rate of complex baseband input. +audio_decimation: how much to decimate quad_rate to get to audio. + </doc> </block> diff --git a/grc/blocks/blks2_wfm_rcv_pll.xml b/grc/blocks/blks2_wfm_rcv_pll.xml index 2771350..4fdcf55 100644 --- a/grc/blocks/blks2_wfm_rcv_pll.xml +++ b/grc/blocks/blks2_wfm_rcv_pll.xml @@ -34,4 +34,13 @@ <name>Rout</name> <type>float</type> </source> + <doc> +Hierarchical block for demodulating a broadcast FM signal. + +The input is the downconverted complex baseband signal (gr_complex). +The output is two streams of the demodulated audio (float) 0=Left, 1=Right. + +demod_rate: input sample rate of complex baseband input. +audio_decimation: how much to decimate demod_rate to get to audio. + </doc> </block> diff --git a/grc/blocks/blks2_wfm_tx.xml b/grc/blocks/blks2_wfm_tx.xml index cff92d8..ade7044 100644 --- a/grc/blocks/blks2_wfm_tx.xml +++ b/grc/blocks/blks2_wfm_tx.xml @@ -45,4 +45,16 @@ <name>out</name> <type>complex</type> </source> + <doc> +Wide Band FM Transmitter. + +Takes a single float input stream of audio samples in the range [-1,+1] and produces a single FM modulated complex baseband output. + +audio_rate: sample rate of audio stream, >= 16k +quad_rate: sample rate of output stream +tau: preemphasis time constant (default 75e-6) +max_dev: maximum deviation in Hz (default 75e3) + +quad_rate must be an integer multiple of audio_rate. + </doc> </block> diff --git a/grc/blocks/gr_constellation_decoder_cb.xml b/grc/blocks/gr_constellation_decoder_cb.xml index 99d897a..1888daa 100644 --- a/grc/blocks/gr_constellation_decoder_cb.xml +++ b/grc/blocks/gr_constellation_decoder_cb.xml @@ -27,4 +27,7 @@ <name>out</name> <type>byte</type> </source> + <doc> +Constellation Decoder + </doc> </block> diff --git a/grc/blocks/gr_cpfsk_bc.xml b/grc/blocks/gr_cpfsk_bc.xml index d5549d9..dea0d2c 100644 --- a/grc/blocks/gr_cpfsk_bc.xml +++ b/grc/blocks/gr_cpfsk_bc.xml @@ -5,33 +5,40 @@ ################################################### --> <block> - <name>CPFSK</name> - <key>gr_cpfsk_bc</key> - <import>from gnuradio import gr</import> - <make>gr.cpfsk_bc($k, $amplitude, $samples_per_symbol)</make> - <callback>set_amplitude($amplitude)</callback> - <param> - <name>K</name> - <key>k</key> - <type>real</type> - </param> - <param> - <name>Amplitude</name> - <key>amplitude</key> - <type>real</type> - </param> - <param> - <name>Samples/Symbol</name> - <key>samples_per_symbol</key> - <value>2</value> - <type>int</type> - </param> - <sink> - <name>in</name> - <type>byte</type> - </sink> - <source> - <name>out</name> - <type>complex</type> - </source> + <name>CPFSK</name> + <key>gr_cpfsk_bc</key> + <import>from gnuradio import gr</import> + <make>gr.cpfsk_bc($k, $amplitude, $samples_per_symbol)</make> + <callback>set_amplitude($amplitude)</callback> + <param> + <name>K</name> + <key>k</key> + <type>real</type> + </param> + <param> + <name>Amplitude</name> + <key>amplitude</key> + <type>real</type> + </param> + <param> + <name>Samples/Symbol</name> + <key>samples_per_symbol</key> + <value>2</value> + <type>int</type> + </param> + <sink> + <name>in</name> + <type>byte</type> + </sink> + <source> + <name>out</name> + <type>complex</type> + </source> + <doc> +Perform continuous phase 2-level frequency shift keying modulation on an input stream of unpacked bits. + +k modulation index +ampl output amplitude +samples_per_sym number of output samples per input bit + </doc> </block> diff --git a/grc/blocks/gr_diff_decoder_bb.xml b/grc/blocks/gr_diff_decoder_bb.xml index ea7cf17..ef48d6c 100644 --- a/grc/blocks/gr_diff_decoder_bb.xml +++ b/grc/blocks/gr_diff_decoder_bb.xml @@ -22,4 +22,9 @@ <name>out</name> <type>byte</type> </source> + <doc> +Differential decoder + +y[0] = (x[0] - x[-1]) % M + </doc> </block> diff --git a/grc/blocks/gr_diff_encoder_bb.xml b/grc/blocks/gr_diff_encoder_bb.xml index 21241ea..0152bff 100644 --- a/grc/blocks/gr_diff_encoder_bb.xml +++ b/grc/blocks/gr_diff_encoder_bb.xml @@ -22,4 +22,9 @@ <name>out</name> <type>byte</type> </source> + <doc> +Differential encoder + +y[0] = (x[0] + y[-1]) % M + </doc> </block> diff --git a/grc/blocks/gr_frequency_modulator_fc.xml b/grc/blocks/gr_frequency_modulator_fc.xml index d5f8fcf..2f02d9c 100644 --- a/grc/blocks/gr_frequency_modulator_fc.xml +++ b/grc/blocks/gr_frequency_modulator_fc.xml @@ -23,4 +23,7 @@ <name>out</name> <type>complex</type> </source> + <doc> +Frequency modulator block + </doc> </block> diff --git a/grc/blocks/gr_phase_modulator_fc.xml b/grc/blocks/gr_phase_modulator_fc.xml index 758c508..b23e147 100644 --- a/grc/blocks/gr_phase_modulator_fc.xml +++ b/grc/blocks/gr_phase_modulator_fc.xml @@ -22,4 +22,9 @@ <name>out</name> <type>complex</type> </source> + <doc> +Phase modulator block + +output=complex(cos(in*sensitivity),sin(in*sensitivity)) + </doc> </block> diff --git a/grc/blocks/gr_quadrature_demod_cf.xml b/grc/blocks/gr_quadrature_demod_cf.xml index fad0b38..2bcdbdd 100644 --- a/grc/blocks/gr_quadrature_demod_cf.xml +++ b/grc/blocks/gr_quadrature_demod_cf.xml @@ -23,4 +23,10 @@ <name>out</name> <type>float</type> </source> + <doc> +quadrature demodulator + +This can be used to demod FM, FSK, GMSK, etc. +The input is complex baseband. + </doc> </block> diff --git a/grc/blocks/gr_vco_f.xml b/grc/blocks/gr_vco_f.xml index e49c539..a3d79a7 100644 --- a/grc/blocks/gr_vco_f.xml +++ b/grc/blocks/gr_vco_f.xml @@ -32,4 +32,7 @@ <name>out</name> <type>float</type> </source> + <doc> +VCO - Voltage controlled oscillator + </doc> </block> -- 1.7.4.1
From 636e1214974f746f86483c5687849ae708b44f13 Mon Sep 17 00:00:00 2001 From: Dimitrios Symeonidis <azim...@gmail.com> Date: Thu, 11 Aug 2011 15:29:30 +0200 Subject: [PATCH 10/11] grc documentation for error correction, line coding and vocoders --- grc/blocks/blks2_cvsd_decode.xml | 5 +++++ grc/blocks/blks2_cvsd_encode.xml | 5 +++++ grc/blocks/gr_additive_scrambler_bb.xml | 10 ++++++++++ grc/blocks/gr_decode_ccsds_27_fb.xml | 14 ++++++++++++++ grc/blocks/gr_descrambler_bb.xml | 7 +++++++ grc/blocks/gr_encode_ccsds_27_bb.xml | 14 ++++++++++++++ grc/blocks/gr_scrambler_bb.xml | 7 +++++++ 7 files changed, 62 insertions(+), 0 deletions(-) diff --git a/grc/blocks/blks2_cvsd_decode.xml b/grc/blocks/blks2_cvsd_decode.xml index 6be7daa..b8d7ab2 100644 --- a/grc/blocks/blks2_cvsd_decode.xml +++ b/grc/blocks/blks2_cvsd_decode.xml @@ -29,4 +29,9 @@ <name>out</name> <type>float</type> </source> + <doc> +This is a wrapper for the CVSD decoder that performs decimation and filtering necessary to work with the vocoding. It converts an incoming CVSD-encoded short to a float, decodes it to a float, decimates it, and scales it (by 32000; slightly below the maximum value to avoid clipping). + +The sampling rate can be anything, though, of course, the higher the sampling rate and the higher the interpolation rate are, the better the sound quality. + </doc> </block> diff --git a/grc/blocks/blks2_cvsd_encode.xml b/grc/blocks/blks2_cvsd_encode.xml index 3123b1a..6f96f08 100644 --- a/grc/blocks/blks2_cvsd_encode.xml +++ b/grc/blocks/blks2_cvsd_encode.xml @@ -29,4 +29,9 @@ <name>out</name> <type>byte</type> </source> + <doc> +This is a wrapper for the CVSD encoder that performs interpolation and filtering necessary to work with the vocoding. It converts an incoming float (+-1) to a short, scales it (to 32000; slightly below the maximum value), interpolates it, and then vocodes it. + +The incoming sampling rate can be anything, though, of course, the higher the sampling rate and the higher the interpolation rate are, the better the sound quality. + </doc> </block> diff --git a/grc/blocks/gr_additive_scrambler_bb.xml b/grc/blocks/gr_additive_scrambler_bb.xml index a15d6ee..4146b10 100644 --- a/grc/blocks/gr_additive_scrambler_bb.xml +++ b/grc/blocks/gr_additive_scrambler_bb.xml @@ -41,4 +41,14 @@ <name>out</name> <type>byte</type> </source> + <doc> +Scramble an input stream using an LFSR. This block works on the LSB only of the input data stream, i.e., on an "unpacked binary" stream, and produces the same format on its output. + +mask Polynomial mask for LFSR +seed Initial shift register contents +len Shift register length +count Number of bits after which shift register is reset, 0=never + +The scrambler works by XORing the incoming bit stream by the output of the LFSR. Optionally, after 'count' bits have been processed, the shift register is reset to the seed value. This allows processing fixed length vectors of samples. + </doc> </block> diff --git a/grc/blocks/gr_decode_ccsds_27_fb.xml b/grc/blocks/gr_decode_ccsds_27_fb.xml index 03b31db..371114f 100644 --- a/grc/blocks/gr_decode_ccsds_27_fb.xml +++ b/grc/blocks/gr_decode_ccsds_27_fb.xml @@ -17,4 +17,18 @@ <name>out</name> <type>byte</type> </source> + <doc> +A rate 1/2, k=7 convolutional decoder for the CCSDS standard + +This block performs soft-decision convolutional decoding using the Viterbi algorithm. + +The input is a stream of (possibly noise corrupted) floating point values nominally spanning [-1.0, 1.0], representing the encoded channel symbols 0 (-1.0) and 1 (1.0), with erased symbols at 0.0. + +The output is MSB first packed bytes of decoded values. + +As a rate 1/2 code, there will be one output byte for every 16 input symbols. + +This block is designed for continuous data streaming, not packetized data. +The first 32 bits out will be zeroes, with the output delayed four bytes from the corresponding inputs. + </doc> </block> diff --git a/grc/blocks/gr_descrambler_bb.xml b/grc/blocks/gr_descrambler_bb.xml index 5cfbcc2..6088257 100644 --- a/grc/blocks/gr_descrambler_bb.xml +++ b/grc/blocks/gr_descrambler_bb.xml @@ -35,4 +35,11 @@ <name>out</name> <type>byte</type> </source> + <doc> +Descramble an input stream using an LFSR. This block works on the LSB only of the input data stream, i.e., on an "unpacked binary" stream, and produces the same format on its output. + +mask Polynomial mask for LFSR +seed Initial shift register contents +len Shift register length + </doc> </block> diff --git a/grc/blocks/gr_encode_ccsds_27_bb.xml b/grc/blocks/gr_encode_ccsds_27_bb.xml index f31e6b6..f624643 100644 --- a/grc/blocks/gr_encode_ccsds_27_bb.xml +++ b/grc/blocks/gr_encode_ccsds_27_bb.xml @@ -17,4 +17,18 @@ <name>out</name> <type>byte</type> </source> + <doc> +A rate 1/2, k=7 convolutional encoder for the CCSDS standard + +This block performs convolutional encoding using the CCSDS standard polynomial ("Voyager"). + +The input is an MSB first packed stream of bits. + +The output is a stream of symbols 0 or 1 representing the encoded data. + +As a rate 1/2 code, there will be 16 output symbols for every input byte. + +This block is designed for continuous data streaming, not packetized data. +There is no provision to "flush" the encoder. + </doc> </block> diff --git a/grc/blocks/gr_scrambler_bb.xml b/grc/blocks/gr_scrambler_bb.xml index d079c40..b884c72 100644 --- a/grc/blocks/gr_scrambler_bb.xml +++ b/grc/blocks/gr_scrambler_bb.xml @@ -35,4 +35,11 @@ <name>out</name> <type>byte</type> </source> + <doc> +Scramble an input stream using an LFSR. This block works on the LSB only of the input data stream, i.e., on an "unpacked binary" stream, and produces the same format on its output. + +mask Polynomial mask for LFSR +seed Initial shift register contents +len Shift register length + </doc> </block> -- 1.7.4.1
From 92779eae3a55ae76a69691fae3812151f5f62435 Mon Sep 17 00:00:00 2001 From: Dimitrios Symeonidis <azim...@gmail.com> Date: Thu, 11 Aug 2011 15:46:05 +0200 Subject: [PATCH 11/11] grc documentation for misc blocks --- grc/blocks/gr_copy.xml | 6 ++++++ grc/blocks/gr_delay.xml | 1 + grc/blocks/gr_head.xml | 1 + grc/blocks/gr_kludge_copy.xml | 5 +++++ grc/blocks/gr_nop.xml | 1 + grc/blocks/gr_repeat.xml | 1 + grc/blocks/gr_skiphead.xml | 5 +++++ grc/blocks/gr_throttle.xml | 7 +++++++ 8 files changed, 27 insertions(+), 0 deletions(-) diff --git a/grc/blocks/gr_copy.xml b/grc/blocks/gr_copy.xml index 8b12eac..d18e6f5 100644 --- a/grc/blocks/gr_copy.xml +++ b/grc/blocks/gr_copy.xml @@ -72,4 +72,10 @@ self.$(id).set_enabled($enabled)</make> <type>$type</type> <vlen>$vlen</vlen> </source> + <doc> +output[i] = input[i] + +When enabled (default), this block copies its input to its output. +When disabled, this block drops its input on the floor. + </doc> </block> diff --git a/grc/blocks/gr_delay.xml b/grc/blocks/gr_delay.xml index 5cc411a..36641e3 100644 --- a/grc/blocks/gr_delay.xml +++ b/grc/blocks/gr_delay.xml @@ -72,4 +72,5 @@ <vlen>$vlen</vlen> <nports>$num_ports</nports> </source> + <doc>delay the input by a certain number of samples</doc> </block> diff --git a/grc/blocks/gr_head.xml b/grc/blocks/gr_head.xml index e5ff7f6..5851757 100644 --- a/grc/blocks/gr_head.xml +++ b/grc/blocks/gr_head.xml @@ -62,4 +62,5 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc>copies the first N items to the output then signals done</doc> </block> diff --git a/grc/blocks/gr_kludge_copy.xml b/grc/blocks/gr_kludge_copy.xml index 8058b08..a640603 100644 --- a/grc/blocks/gr_kludge_copy.xml +++ b/grc/blocks/gr_kludge_copy.xml @@ -65,4 +65,9 @@ <vlen>$vlen</vlen> <nports>$num_ports</nports> </source> + <doc> +output[i] = input[i] + +This is a short term kludge to work around a problem with the hierarchical block impl. + </doc> </block> diff --git a/grc/blocks/gr_nop.xml b/grc/blocks/gr_nop.xml index bd884d6..15d4b73 100644 --- a/grc/blocks/gr_nop.xml +++ b/grc/blocks/gr_nop.xml @@ -65,4 +65,5 @@ <vlen>$vlen</vlen> <nports>$num_ports</nports> </source> + <doc>Does nothing. Used for testing only.</doc> </block> diff --git a/grc/blocks/gr_repeat.xml b/grc/blocks/gr_repeat.xml index ba652a4..c82b487 100644 --- a/grc/blocks/gr_repeat.xml +++ b/grc/blocks/gr_repeat.xml @@ -61,4 +61,5 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc>Repeat a sample 'interp' times in output stream</doc> </block> diff --git a/grc/blocks/gr_skiphead.xml b/grc/blocks/gr_skiphead.xml index 0849ad2..940dd6a 100644 --- a/grc/blocks/gr_skiphead.xml +++ b/grc/blocks/gr_skiphead.xml @@ -62,4 +62,9 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc> +skips the first N items, from then on copies items to the output + +Useful for building test cases and sources which have metadata or junk at the start + </doc> </block> diff --git a/grc/blocks/gr_throttle.xml b/grc/blocks/gr_throttle.xml index ab8506f..4620123 100644 --- a/grc/blocks/gr_throttle.xml +++ b/grc/blocks/gr_throttle.xml @@ -62,4 +62,11 @@ <type>$type</type> <vlen>$vlen</vlen> </source> + <doc> +throttle flow of samples such that the average rate does not exceed samples_per_sec. + +input: one stream of itemsize; output: one stream of itemsize + +N.B. this should only be used in GUI apps where there is no other rate limiting block. It is not intended nor effective at precisely controlling the rate of samples. That should be controlled by a source or sink tied to sample clock. E.g., a USRP or audio card. + </doc> </block> -- 1.7.4.1
_______________________________________________ Patch-gnuradio mailing list Patch-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/patch-gnuradio