summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-channels/lib/flat_fader_impl.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/gr-channels/lib/flat_fader_impl.cc b/gr-channels/lib/flat_fader_impl.cc
index 5755247c75..8f950a4e95 100644
--- a/gr-channels/lib/flat_fader_impl.cc
+++ b/gr-channels/lib/flat_fader_impl.cc
@@ -15,15 +15,12 @@ namespace gr {
namespace channels {
flat_fader_impl::flat_fader_impl(uint32_t N, float fDTs, bool LOS, float K, uint32_t seed)
- : rng_1(seed),
- dist_1(-GR_M_PI, GR_M_PI),
- rng_2(seed + 1),
+ : dist_1(-GR_M_PI, GR_M_PI),
dist_2(0, 1),
d_N(N),
d_fDTs(fDTs),
- d_theta(dist_1(rng_1)),
- d_theta_los(dist_1(rng_1)),
+
d_step(powf(0.00125 * fDTs, 1.1)), // max step size approximated from Table 2
d_m(0),
d_K(K),
@@ -38,6 +35,13 @@ flat_fader_impl::flat_fader_impl(uint32_t N, float fDTs, bool LOS, float K, uint
scale_los(sqrtf(d_K) / sqrtf(d_K + 1)),
scale_nlos(1 / sqrtf(d_K + 1))
{
+ rng_1 = std::mt19937(seed);
+ rng_2 = std::mt19937(seed + 1);
+
+ d_theta = dist_1(rng_1);
+ d_theta_los = dist_1(rng_1);
+
+
// generate initial phase values
for (int i = 0; i < d_N + 1; i++) {
d_psi[i] = dist_1(rng_1);