diff options
author | Johnathan Corgan | 2013-01-18 09:46:03 -0800 |
---|---|---|
committer | Johnathan Corgan | 2013-01-18 09:46:03 -0800 |
commit | 530fc0be11e6dc560a32aeda26baf3c451090d30 (patch) | |
tree | 327bc50a6826e6ea67652374b8c9e2b409aa7935 /gr-digital | |
parent | 5873f2bf659e785422640f964980fd7b57096e85 (diff) | |
parent | ad65dd6c70d11dba26ecbad07a6290801151e044 (diff) | |
download | gnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.tar.gz gnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.tar.bz2 gnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.zip |
Merge branch 'maint'
Diffstat (limited to 'gr-digital')
-rwxr-xr-x | gr-digital/examples/narrowband/digital_bert_rx.py | 2 | ||||
-rw-r--r-- | gr-digital/grc/digital_pfb_clock_sync.xml | 15 | ||||
-rw-r--r-- | gr-digital/include/digital_constellation_receiver_cb.h | 28 |
3 files changed, 9 insertions, 36 deletions
diff --git a/gr-digital/examples/narrowband/digital_bert_rx.py b/gr-digital/examples/narrowband/digital_bert_rx.py index ab7e988eb..4055aa244 100755 --- a/gr-digital/examples/narrowband/digital_bert_rx.py +++ b/gr-digital/examples/narrowband/digital_bert_rx.py @@ -114,7 +114,7 @@ class rx_psk_block(gr.top_block): if(options.rx_freq is not None): symbol_rate = options.bitrate / self._demodulator.bits_per_symbol() - self._source = uhd_receiver(options.args, options.bitrate, + self._source = uhd_receiver(options.args, symbol_rate, options.samples_per_symbol, options.rx_freq, options.rx_gain, options.spec, diff --git a/gr-digital/grc/digital_pfb_clock_sync.xml b/gr-digital/grc/digital_pfb_clock_sync.xml index 9e2a4cd5e..255eb7f7a 100644 --- a/gr-digital/grc/digital_pfb_clock_sync.xml +++ b/gr-digital/grc/digital_pfb_clock_sync.xml @@ -8,11 +8,9 @@ <name>Polyphase Clock Sync</name> <key>digital_pfb_clock_sync_xxx</key> <import>from gnuradio import digital</import> - <make>digital.pfb_clock_sync_$(type)($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev, $osps) -self.$(id).set_beta($beta)</make> + <make>digital.pfb_clock_sync_$(type)($sps, $loop_bw, $taps, $filter_size, $init_phase, $max_dev, $osps)</make> <callback>set_taps($taps)</callback> - <callback>set_alpha($alpha)</callback> - <callback>set_beta($beta)</callback> + <callback>set_loop_bandwidth($loop_bw)</callback> <param> <name>Type</name> @@ -40,13 +38,8 @@ self.$(id).set_beta($beta)</make> <type>real</type> </param> <param> - <name>Alpha</name> - <key>alpha</key> - <type>real</type> - </param> - <param> - <name>Beta</name> - <key>beta</key> + <name>Loop Bandwidth</name> + <key>loop_bw</key> <type>real</type> </param> <param> diff --git a/gr-digital/include/digital_constellation_receiver_cb.h b/gr-digital/include/digital_constellation_receiver_cb.h index 3a14bb5de..92c31311f 100644 --- a/gr-digital/include/digital_constellation_receiver_cb.h +++ b/gr-digital/include/digital_constellation_receiver_cb.h @@ -41,36 +41,18 @@ digital_make_constellation_receiver_cb (digital_constellation_sptr constellation float loop_bw, float fmin, float fmax); /*! - * \brief This block takes care of receiving generic modulated signals - * through phase, frequency, and symbol synchronization. + * \brief This block does fine-phase and frequency locking and decision making. * \ingroup sync_blk * \ingroup demod_blk * \ingroup digital * - * This block takes care of receiving generic modulated signals - * through phase, frequency, and symbol synchronization. It performs - * carrier frequency and phase locking as well as symbol timing - * recovery. - * * The phase and frequency synchronization are based on a Costas loop * that finds the error of the incoming signal point compared to its * nearest constellation point. The frequency and phase of the NCO are * updated according to this error. * - * The symbol synchronization is done using a modified Mueller and - * Muller circuit from the paper: - * - * "G. R. Danesfahani, T.G. Jeans, "Optimisation of modified Mueller - * and Muller algorithm," Electronics Letters, Vol. 31, no. 13, 22 - * June 1995, pp. 1032 - 1033." - * - * This circuit interpolates the downconverted sample (using the NCO - * developed by the Costas loop) every mu samples, then it finds the - * sampling error based on this and the past symbols and the decision - * made on the samples. Like the phase error detector, there are - * optimized decision algorithms for BPSK and QPKS, but 8PSK uses - * another brute force computation against all possible symbols. The - * modifications to the M&M used here reduce self-noise. + * The decicision making itself is performed by the appropriate method of the + * passed constellation object. * */ @@ -87,13 +69,11 @@ protected: /*! * \brief Constructor to synchronize incoming M-PSK symbols * - * \param constellation constellation of points for generic modulation + * \param constellation constellation object for generic demodulation * \param loop_bw Loop bandwidth of the Costas Loop (~ 2pi/100) * \param fmin minimum normalized frequency value the loop can achieve * \param fmax maximum normalized frequency value the loop can achieve * - * The constructor also chooses which phase detector and decision maker to use in the - * work loop based on the value of M. */ digital_constellation_receiver_cb (digital_constellation_sptr constellation, float loop_bw, float fmin, float fmax); |