diff options
Diffstat (limited to 'gr-trellis/src/lib/core_algorithms.cc')
-rw-r--r-- | gr-trellis/src/lib/core_algorithms.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gr-trellis/src/lib/core_algorithms.cc b/gr-trellis/src/lib/core_algorithms.cc index b81e14965..c1bafa379 100644 --- a/gr-trellis/src/lib/core_algorithms.cc +++ b/gr-trellis/src/lib/core_algorithms.cc @@ -786,6 +786,7 @@ void sccc_decoder_combined( float (*p2mymin)(float,float), int D, const std::vector<Ti> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const Ti *observations, To *data ) { @@ -802,8 +803,10 @@ std::vector<float> oposti(blocklength*FSMo.I()); std::vector<float> oposto(blocklength*FSMo.O()); // turn observations to neg-log-priors -for(int k=0;k<blocklength;k++) +for(int k=0;k<blocklength;k++) { calc_metric(FSMi.O(), D, TABLE, &(observations[k*D]), &(iprioro[k*FSMi.O()]),METRIC_TYPE); + iprioro[k*FSMi.O()] *= scaling; +} for(int rep=0;rep<repetitions;rep++) { // run inner SISO @@ -896,6 +899,7 @@ void sccc_decoder_combined<float,unsigned char>( float (*p2mymin)(float,float), int D, const std::vector<float> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const float *observations, unsigned char *data ); @@ -907,6 +911,7 @@ void sccc_decoder_combined<float,short>( float (*p2mymin)(float,float), int D, const std::vector<float> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const float *observations, short *data ); @@ -918,6 +923,7 @@ void sccc_decoder_combined<float,int>( float (*p2mymin)(float,float), int D, const std::vector<float> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const float *observations, int *data ); @@ -929,6 +935,7 @@ void sccc_decoder_combined<gr_complex,unsigned char>( float (*p2mymin)(float,float), int D, const std::vector<gr_complex> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const gr_complex *observations, unsigned char *data ); @@ -940,6 +947,7 @@ void sccc_decoder_combined<gr_complex,short>( float (*p2mymin)(float,float), int D, const std::vector<gr_complex> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const gr_complex *observations, short *data ); @@ -951,6 +959,7 @@ void sccc_decoder_combined<gr_complex,int>( float (*p2mymin)(float,float), int D, const std::vector<gr_complex> &TABLE, trellis_metric_type_t METRIC_TYPE, + float scaling, const gr_complex *observations, int *data ); |