[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3582 - in gnuradio/branches/developers/trondeau/digit
From: |
trondeau |
Subject: |
[Commit-gnuradio] r3582 - in gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src: lib/general python/gnuradio/blksimpl |
Date: |
Tue, 19 Sep 2006 00:38:39 -0600 (MDT) |
Author: trondeau
Date: 2006-09-19 00:38:39 -0600 (Tue, 19 Sep 2006)
New Revision: 3582
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
Log:
dbpsk working with discon without AGC loop; qpsk not receiving but
constellation looks good
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.cc
2006-09-19 06:38:39 UTC (rev 3582)
@@ -48,7 +48,7 @@
float gain_mu, float
omega_relative_limit)
: gr_block ("clock_recovery_mm_cc",
gr_make_io_signature (1, 1, sizeof (gr_complex)),
- gr_make_io_signature (1, 1, sizeof (gr_complex))),
+ gr_make_io_signature (1, 2, sizeof (gr_complex))),
d_mu (mu), d_omega(omega), d_gain_omega(gain_omega),
d_omega_relative_limit(omega_relative_limit),
d_gain_mu(gain_mu), d_last_sample(0), d_interp(new
gri_mmse_fir_interpolator_cc()),
@@ -119,6 +119,9 @@
{
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
+ gr_complex *foptr = (gr_complex *) output_items[1];
+
+ bool write_foptr = output_items.size() >= 2;
int ii = 0; // input index
int oo = 0; // output index
@@ -165,6 +168,10 @@
printf("%f\t%f\n", d_omega, d_mu);
}
+ // write the error signal to the second output
+ if (write_foptr)
+ foptr[oo-1] = gr_complex(d_mu,0);
+
if (ii < 0) // clamp it. This should only happen with bogus input
ii = 0;
}
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/lib/general/gr_costas_loop_cc.cc
2006-09-19 06:38:39 UTC (rev 3582)
@@ -118,8 +118,6 @@
else if (d_freq < d_min_freq)
d_freq = d_min_freq;
- // fprintf(stderr, "Costas frequency = %f\terror = %f\n", d_freq,
error);
- // d_freq_out << d_freq << std::endl;
if (write_foptr)
foptr[i] = gr_complex(d_freq,0);
}
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/bpsk.py
2006-09-19 06:38:39 UTC (rev 3582)
@@ -279,13 +279,13 @@
help="set RRC excess bandwith factor
[default=%default]")
parser.add_option("", "--no-gray-code", action="store_false",
default=True,
help="Don't use gray coding on modulated bits
[default=%default]")
- parser.add_option("", "--costas-alpha", type="float", default=0.005,
+ parser.add_option("", "--costas-alpha", type="float", default=0.05,
help="set Costas loop alpha value
[default=%default]")
parser.add_option("", "--gain-mu", type="float", default=0.05,
help="set M&M symbol sync loop gain mu value
[default=%default] (GMSK/PSK)")
parser.add_option("", "--mu", type="float", default=0.5,
help="set M&M symbol sync loop mu value
[default=%default] (GMSK/PSK)")
- parser.add_option("", "--omega-relative-limit", type="float",
default=0.0002,
+ parser.add_option("", "--omega-relative-limit", type="float",
default=0.5,
help="M&M clock recovery omega relative limit
[default=%default] (GMSK/PSK)")
add_options=staticmethod(add_options)
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dbpsk.py
2006-09-19 06:38:39 UTC (rev 3582)
@@ -87,7 +87,7 @@
# pulse shaping filter
self.rrc_taps = gr.firdes.root_raised_cosine(
self._samples_per_symbol, # gain (samples_per_symbol since we're
- # interpolating by samples_per_symbol)
+ # interpolating by samples_per_symbol)
self._samples_per_symbol, # sampling rate
1.0, # symbol rate
self._excess_bw, # excess bandwidth (roll-off factor)
@@ -162,7 +162,7 @@
class dbpsk_demod(gr.hier_block):
def __init__(self, fg, samples_per_symbol, excess_bw=0.35,
costas_alpha=0.05,
- gain_mu=0.03, mu=0.05, omega_relative_limit=0.5,
+ gain_mu=0.03, mu=0.05, omega_relative_limit=0.005,
gray_code=True, verbose=True, log=False):
"""
Hierarchical block for RRC-filtered differential BPSK demodulation
@@ -207,7 +207,8 @@
# Automatic gain control
self.preamp = gr.multiply_const_cc(10e-5)
- self.agc = gr.agc_cc(1e-3, 1, 1, 1000)
+ #self.agc = gr.agc_cc(1e-4, 1, 1, 1000)
+ self.agc = gr.multiply_const_cc(1)
# Costas loop (carrier tracking)
# FIXME: need to decide how to handle this more generally; do we pull
it from higher layer?
@@ -234,7 +235,6 @@
self._omega_relative_limit)
# find closest constellation point
- #rot = .707 + .707j
rot = 1
rotated_const = map(lambda pt: pt * rot, psk.constellation[arity])
print "rotated_const =", rotated_const
@@ -270,7 +270,9 @@
print "bits per symbol = %d" % self.bits_per_symbol()
print "RRC roll-off factor = %.2f" % self._excess_bw
print "Costas Loop alpha = %.5f" % self._costas_alpha
- print "M&M symbol sync gain = %.5f" % self._gain_mu
+ print "M&M symbol sync gain = %.5f" % self._gain_mu
+ print "M&M symbol sync mu = %.5f" % self._mu
+ print "M&M omega relative limit = %.5f" % self._omega_relative_limit
def _setup_logging(self):
print "Modulation logging turned on."
@@ -284,6 +286,8 @@
gr.file_sink(gr.sizeof_gr_complex, "rrc_filter.dat"))
self._fg.connect(self.clock_recovery,
gr.file_sink(gr.sizeof_gr_complex,
"clock_recovery.dat"))
+ self._fg.connect((self.clock_recovery,1),
+ gr.file_sink(gr.sizeof_gr_complex,
"clock_recovery_error.dat"))
self._fg.connect(self.diffdec,
gr.file_sink(gr.sizeof_gr_complex, "diffdec.dat"))
self._fg.connect(self.slicer,
@@ -301,13 +305,13 @@
help="set RRC excess bandwith factor
[default=%default] (PSK)")
parser.add_option("", "--no-gray-code", action="store_false",
default=True,
help="Don't use gray coding on modulated bits
[default=%default] (PSK)")
- parser.add_option("", "--costas-alpha", type="float", default=0.005,
+ parser.add_option("", "--costas-alpha", type="float", default=0.05,
help="set Costas loop alpha value [default=%default]
(PSK)")
parser.add_option("", "--gain-mu", type="float", default=0.05,
help="set M&M symbol sync loop gain mu value
[default=%default] (GMSK/PSK)")
parser.add_option("", "--mu", type="float", default=0.5,
help="set M&M symbol sync loop mu value
[default=%default] (GMSK/PSK)")
- parser.add_option("", "--omega-relative-limit", type="float",
default=0.0002,
+ parser.add_option("", "--omega-relative-limit", type="float",
default=0.005,
help="M&M clock recovery omega relative limit
[default=%default] (GMSK/PSK)")
add_options=staticmethod(add_options)
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/dqpsk.py
2006-09-19 06:38:39 UTC (rev 3582)
@@ -159,7 +159,7 @@
class dqpsk_demod(gr.hier_block):
def __init__(self, fg, samples_per_symbol, excess_bw=0.35,
costas_alpha=0.05,
- gain_mu=0.03, mu=0.05, omega_relative_limit=0.5,
+ gain_mu=0.03, mu=0.05, omega_relative_limit=0.005,
gray_code=True, verbose=True, log=False):
"""
Hierarchical block for RRC-filtered DQPSK demodulation
@@ -224,13 +224,14 @@
self.rrc_filter=gr.fir_filter_ccf(1, self.rrc_taps)
# symbol clock recovery
- omega = samples_per_symbol
- gain_omega = .25 * gain_mu * gain_mu
+ omega = self._samples_per_symbol
+ gain_omega = .25 * self._gain_mu * self._gain_mu
self.clock_recovery=gr.clock_recovery_mm_cc(omega, gain_omega,
self._mu, self._gain_mu,
self._omega_relative_limit)
# find closest constellation point
+ #rot = 1
rot = .707 + .707j
rotated_const = map(lambda pt: pt * rot, psk.constellation[arity])
print "rotated_const = %s" % rotated_const
@@ -266,7 +267,9 @@
print "bits per symbol = %d" % self.bits_per_symbol()
print "RRC roll-off factor = %.2f" % self._excess_bw
print "Costas Loop alpha = %.5f" % self._costas_alpha
- print "M&M symbol sync gain = %.5f" % self._gain_mu
+ print "M&M symbol sync gain = %.5f" % self._gain_mu
+ print "M&M symbol sync mu = %.5f" % self._mu
+ print "M&M omega relative limit = %.5f" % self._omega_relative_limit
def _setup_logging(self):
print "Modulation logging turned on."
@@ -297,11 +300,11 @@
help="set RRC excess bandwith factor
[default=%default] (PSK)")
parser.add_option("", "--no-gray-code", action="store_false",
default=True,
help="Don't use gray coding on modulated bits
[default=%default] (PSK)")
- parser.add_option("", "--costas-alpha", type="float", default=0.005,
+ parser.add_option("", "--costas-alpha", type="float", default=0.05,
help="set Costas loop alpha value [default=%default]
(PSK)")
parser.add_option("", "--gain-mu", type="float", default=0.05,
help="set M&M symbol sync loop gain mu value
[default=%default] (PSK)")
- parser.add_option("", "--mu", type="float", default=0.5,
+ parser.add_option("", "--mu", type="float", default=0.005,
help="set M&M symbol sync loop mu value
[default=%default] (PSK)")
add_options=staticmethod(add_options)
Modified:
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
2006-09-19 05:57:02 UTC (rev 3581)
+++
gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src/python/gnuradio/blksimpl/gmsk.py
2006-09-19 06:38:39 UTC (rev 3582)
@@ -145,8 +145,8 @@
class gmsk_demod(gr.hier_block):
def __init__(self, fg, samples_per_symbol=2,
- omega=None, gain_mu=0.03, mu=0.5,
- omega_relative_limit=0.000200, freq_error=0.0,
+ omega=None, gain_mu=0.05, mu=0.5,
+ omega_relative_limit=0.005, freq_error=0.0,
verbose=True, log=False):
"""
Hierarchical block for Gaussian Minimum Shift Key (GMSK)
@@ -255,11 +255,11 @@
"""
parser.add_option("", "--omega", type="float", default=None,
help="M&M clock recovery omega [default=%default]
(GMSK)")
- parser.add_option("", "--gain-mu", type="float", default=0.03,
+ parser.add_option("", "--gain-mu", type="float", default=0.05,
help="M&M clock recovery gain mu [default=%default]
(GMSK/PSK)")
parser.add_option("", "--mu", type="float", default=0.5,
help="M&M clock recovery mu [default=%default]
(GMSK/PSK)")
- parser.add_option("", "--omega-relative-limit", type="float",
default=0.0002,
+ parser.add_option("", "--omega-relative-limit", type="float",
default=0.005,
help="M&M clock recovery omega relative limit
[default=%default] (GMSK/PSK)")
parser.add_option("", "--freq-error", type="float", default=0.0,
help="M&M clock recovery frequency error
[default=%default] (GMSK)")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3582 - in gnuradio/branches/developers/trondeau/digital-wip/gnuradio-core/src: lib/general python/gnuradio/blksimpl,
trondeau <=