[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3648 - gnuradio/branches/developers/trondeau/digital-
From: |
trondeau |
Subject: |
[Commit-gnuradio] r3648 - gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general |
Date: |
Mon, 25 Sep 2006 17:46:54 -0600 (MDT) |
Author: trondeau
Date: 2006-09-25 17:46:54 -0600 (Mon, 25 Sep 2006)
New Revision: 3648
Modified:
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
Log:
updated log agc with better accumulator
Modified:
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
===================================================================
---
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
2006-09-25 23:03:46 UTC (rev 3647)
+++
gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general/gr_agc_log_cc.cc
2006-09-25 23:46:54 UTC (rev 3648)
@@ -38,10 +38,9 @@
: gr_sync_block ("gr_agc_log_cc",
gr_make_io_signature (1, 1, sizeof (gr_complex)),
gr_make_io_signature (1, 2, sizeof (gr_complex))),
- d_gain(gain), d_reference(reference), d_limit(limit),
+ d_gain(gain), d_reference(log2(reference)), d_limit(limit),
d_v1(0), d_vx(10), d_loop_gain(1)
{
- fprintf(stdout, "reference = %f \t gain = %f\n", d_reference, d_gain);
set_history(2);
}
@@ -65,7 +64,6 @@
gr_complex *err = (gr_complex *) output_items[1];
float mag=0;
- float alpha = 0.001;
bool write_err = output_items.size() >= 2;
@@ -75,18 +73,17 @@
mag = sqrt_mag_squared(out[i]);
if(mag == 0)
mag = 1e-5;
- d_v1 = -log10(mag) + d_reference;
- d_v1 = (d_gain * d_v1);
+ d_v1 = (d_reference - log2(mag));
+ d_vx += d_gain * d_v1;
- d_vx = (alpha*d_v1) + (1-alpha)*d_vx;
-
- d_loop_gain = pow(10, d_vx);
+ d_loop_gain = pow(2, d_vx);
if((d_limit > 0.0) && (d_loop_gain > d_limit)) {
d_loop_gain = d_limit;
}
- if(write_err)
- err[i] = gr_complex(-log10(mag), d_loop_gain);
+ if(write_err) {
+ err[i] = gr_complex(d_vx, d_loop_gain);
+ }
}
return noutput_items;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3648 - gnuradio/branches/developers/trondeau/digital-wip2/gnuradio-core/src/lib/general,
trondeau <=