summaryrefslogtreecommitdiff
path: root/gr-digital
diff options
context:
space:
mode:
authorJohnathan Corgan2013-01-18 09:46:03 -0800
committerJohnathan Corgan2013-01-18 09:46:03 -0800
commit530fc0be11e6dc560a32aeda26baf3c451090d30 (patch)
tree327bc50a6826e6ea67652374b8c9e2b409aa7935 /gr-digital
parent5873f2bf659e785422640f964980fd7b57096e85 (diff)
parentad65dd6c70d11dba26ecbad07a6290801151e044 (diff)
downloadgnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.tar.gz
gnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.tar.bz2
gnuradio-530fc0be11e6dc560a32aeda26baf3c451090d30.zip
Merge branch 'maint'
Diffstat (limited to 'gr-digital')
-rwxr-xr-xgr-digital/examples/narrowband/digital_bert_rx.py2
-rw-r--r--gr-digital/grc/digital_pfb_clock_sync.xml15
-rw-r--r--gr-digital/include/digital_constellation_receiver_cb.h28
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);