summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
Diffstat (limited to 'cesar')
-rw-r--r--cesar/ce/rx/bitloading/inc/ber.h4
-rw-r--r--cesar/ce/rx/bitloading/src/ber.c139
-rw-r--r--cesar/ce/rx/bitloading/src/import_poly_coeff.pl203
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_initial_final.data40
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_initial_final_with_carriers_masked.data40
-rw-r--r--cesar/ce/rx/bitloading/test/data/polynomial_coef.data15
-rw-r--r--cesar/ce/rx/bitloading/test/data/test_content.txt4
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_00_ber_margin.data74
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_01_ber_margin.data104
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_00_ber_margin.data64
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_01_ber_margin.data52
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_00_ber_margin.data52
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_01_ber_margin.data62
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_00_ber_margin.data44
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_01_ber_margin.data80
-rw-r--r--cesar/ce/rx/bitloading/test/data/tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data196
-rw-r--r--cesar/ce/rx/bitloading/test/src/polynomial_vector.sci31
-rw-r--r--cesar/ce/rx/bitloading/test/src/test_bl.c28
18 files changed, 708 insertions, 524 deletions
diff --git a/cesar/ce/rx/bitloading/inc/ber.h b/cesar/ce/rx/bitloading/inc/ber.h
index 732cd8c833..2d3b268e75 100644
--- a/cesar/ce/rx/bitloading/inc/ber.h
+++ b/cesar/ce/rx/bitloading/inc/ber.h
@@ -24,7 +24,7 @@
/**
* Degree maximum of polynomial.
*/
-#define CE_RX_BL_BER_POLY_MAX_DEGREE 5
+#define CE_RX_BL_BER_POLY_MAX_DEGREE 2
/**
* Default theoretical BER value when NSR is under range.
@@ -44,7 +44,7 @@
/**
* Number maximum of polynomial per modulation.
*/
-#define CE_RX_BL_BER_POLY_PER_MOD 3
+#define CE_RX_BL_BER_POLY_PER_MOD 10
/**
* Quantification factor for the bit per tone.
diff --git a/cesar/ce/rx/bitloading/src/ber.c b/cesar/ce/rx/bitloading/src/ber.c
index e40cf1811c..77d479a776 100644
--- a/cesar/ce/rx/bitloading/src/ber.c
+++ b/cesar/ce/rx/bitloading/src/ber.c
@@ -26,79 +26,126 @@
*/
s64 ce_rx_bl_ber_margin_[] = { 0ll, 0ll };
-/* Imported from
+/* Imported from 2 files:
* http://stestephe/svn/spidcom_digital_svn/projects/DSP_350/DSP_chain/SW/Bit_Loading/BER_vs_NSR/Polynomes_BERinq_vs_NSRq_normalises.m
- * Revision: 18241.
+ * http://stestephe/svn/spidcom_digital_svn/projects/DSP_350/DSP_chain/SW/Bit_Loading/BitAllocationNSRLines.m
+ * Revision: 19108.
*/
ce_rx_bl_ber_poly_coef_t ce_rx_bl_ber_poly_coef[CE_MOD_COUNT - 1] =
{
{
- 1,
- { 3 },
- {
- { 2ll, -614142ll, 69770329856ll, -362383471042474ll },
- },
- { 5461, 131070 },
+ 5,
+ { 1,1,1,1,1 },
+ {
+ { 48707229072ll, -231502078889845ll },
+ { 51034114569ll, -255095996583158ll },
+ { 49101951152ll, -221873016034784ll },
+ { 34830906051ll, 169909117254752ll },
+ { 31231854645ll, 327698216309011ll },
+ },
+ { 5461,10138,17193,27451,43840,133705 },
},
{
- 1,
- { 3 },
- {
- { 21ll, -3182001ll, 154673115663ll, -388385849742766ll },
- },
- { 2654, 35212 },
+ 8,
+ { 1,1,1,1,1,1,1,1 },
+ {
+ { 106867077906ll, -247035833261242ll },
+ { 115226016318ll, -288276656914692ll },
+ { 109008654922ll, -238837611246974ll },
+ { 87714814011ll, -20038024183413ll },
+ { 69036631737ll, 223512099062993ll },
+ { 58835483755ll, 396512911174249ll },
+ { 39647808559ll, 816495774781217ll },
+ { 40020862919ll, 805934726920136ll },
+ },
+ { 2654,4932,7950,10274,13038,16957,21887,28308,92392 },
},
{
- 1,
- { 3 },
- {
- { 445ll, -19298713ll, 343639234529ll, -279649449376397ll },
- },
- { 854, 29538 },
+ 7,
+ { 1,1,1,1,1,1,1 },
+ {
+ { 233587358663ll, -171155435491478ll },
+ { 277235450254ll, -238059028343662ll },
+ { 250979527275ll, -173894916650781ll },
+ { 170121467858ll, 138759948740058ll },
+ { 120561024923ll, 454916356836180ll },
+ { 73528170603ll, 941003011986941ll },
+ { 46281993046ll, 1388661227541923ll },
+ },
+ { 854,1531,2442,3865,6378,10334,16429,67302 },
},
{
- 1,
- { 3 },
- {
- { 2204ll, -55355989ll, 564885755970ll, -264069612527883ll },
- },
- { 491, 17534 },
+ 7,
+ { 1,1,1,1,1,1,1 },
+ {
+ { 416967936517ll, -189160325514678ll },
+ { 464351365540ll, -234875159184782ll },
+ { 396074764261ll, -130220392038170ll },
+ { 273650540604ll, 170471217490103ll },
+ { 185629177496ll, 509911263344670ll },
+ { 109564768618ll, 973610181232647ll },
+ { 75999460853ll, 1316904718037186ll },
+ },
+ { 607,963,1531,2455,3855,6095,10226,41929 },
},
{
- 1,
- { 4 },
- {
- { -10ll, 134707ll, -659991499ll, 1736969891776ll, -177145201462823ll },
- },
- { 107, 4225 },
+ 9,
+ { 1,1,1,1,1,1,1,1,1 },
+ {
+ { 1195842099902ll, -116472031098039ll },
+ { 1541877600934ll, -182922717796973ll },
+ { 1432873345932ll, -149753660819387ll },
+ { 1051908742909ll, 32981592496052ll },
+ { 723479068330ll, 285933360045175ll },
+ { 552405600686ll, 494199375182367ll },
+ { 416730011388ll, 758328584740550ll },
+ { 236934801623ll, 1311288936216613ll },
+ { 121246948902ll, 1880002881788720ll },
+ },
+ { 121,191,303,478,769,1216,1945,3074,4914,21637 },
},
{
- 2,
- { 5, 2 },
- {
- { 1ll, -3453ll, 7709283ll, -8478165747ll, 5556178345777ll, -134510842708508ll }, { -364008233ll, 1538554532136ll, 694716911324961ll },
- },
- { 26, 716, 2000 },
+ 7,
+ { 1,1,1,1,1,1,1 },
+ {
+ { 4928645393988ll, -136377286929978ll },
+ { 4256324898860ll, -84804952052015ll },
+ { 2698880614434ll, 154178754550135ll },
+ { 1686129960873ll, 463628500311706ll },
+ { 1057111588868ll, 848637525966814ll },
+ { 489834158584ll, 1535265641130321ll },
+ { 188319045722ll, 2275983211494540ll },
+ },
+ { 39,76,152,305,611,1209,2456,11828 },
},
{
- 3,
- { 5, 5, 2 },
- {
- { -2176940ll, 501510782ll, -42003152968ll, 1463943172712ll, -5749724784237ll, 7848129503347ll }, { 2ll, -8614ll, 15590615ll, -14246266067ll, 7477723391941ll, 320248474620364ll }, { -187676521ll, 983964789862ll, 1638081773113356ll },
- },
- { 2, 80, 800, 1200 },
+ 8,
+ { 1,1,1,1,1,1,1,1 },
+ {
+ { 15193205993312ll, -96041022323229ll },
+ { 15420451694819ll, -99599159146680ll },
+ { 10303752668273ll, 57836000947648ll },
+ { 6595162108049ll, 286536853846374ll },
+ { 3893159790166ll, 613725600089774ll },
+ { 2248929120557ll, 1009209348320871ll },
+ { 995369059154ll, 1606569684183974ll },
+ { 439141615597ll, 2153227132873060ll },
+ },
+ { 8,15,30,61,120,240,476,982,5351 },
},
};
static const s64
-ce_rx_bl_ber_consign_coefs_av[PHY_FEC_RATE_NB][CE_RX_BL_BER_POLY_MAX_DEGREE] = {
+ce_rx_bl_ber_consign_coefs_av[PHY_FEC_RATE_NB][CE_RX_BL_BER_POLY_MAX_DEGREE] =
+{
{ -106541828252ll, 841188148187808ll },
{ -5639041049ll, 127893477397182ll },
};
static const u8 ce_rx_bl_ber_consign_degrees_av[PHY_FEC_RATE_NB] = { 1, 1, };
static const s64
-ce_rx_bl_ber_consign_coefs_eoc[PHY_FEC_RATE_NB][CE_RX_BL_BER_POLY_MAX_DEGREE] = {
+ce_rx_bl_ber_consign_coefs_eoc[PHY_FEC_RATE_NB][CE_RX_BL_BER_POLY_MAX_DEGREE] =
+{
{ 520279884440399ll },
{ 39597018917606ll },
};
diff --git a/cesar/ce/rx/bitloading/src/import_poly_coeff.pl b/cesar/ce/rx/bitloading/src/import_poly_coeff.pl
index f69796f78f..ef4d12201c 100644
--- a/cesar/ce/rx/bitloading/src/import_poly_coeff.pl
+++ b/cesar/ce/rx/bitloading/src/import_poly_coeff.pl
@@ -3,8 +3,9 @@
# Load polynomial coefficients from the TNS team.
###
# It should be done by hand, using the folowing commands:
-# perl ce/rx/bitloading/src/import_poly_nsr.pl < Polynomes_BERinq_vs_NSRq_normalises.m
+# perl ce/rx/bitloading/src/import_poly_coeff.pl Polynomes_BERinq_vs_NSRq_normalises.m BitAllocationNSRLines.m
# http://stestephe/svn/spidcom_digital_svn/projects/DSP_350/DSP_chain/SW/Bit_Loading/BER_vs_NSR/Polynomes_BERinq_vs_NSRq_normalises.m
+# http://stestephe/svn/spidcom_digital_svn/projects/DSP_350/DSP_chain/SW/Bit_Loading/BitAllocationNSRLines.m
# Output of this script should be placed in ce/rx/bitloading/src/ber.c.
#####
@@ -20,20 +21,40 @@ my %fec_rate = ( "1/2" => 0, "16/21" => 1);
my $leaf_re = qr/{[^}]+}/;
# A set: a set of many some polynomials with their coefficients.
my $set_re = qr/(?:$leaf_re\s*,\s*)*$leaf_re/;
+# A leaf: a set of coefficients (new format).
+my $leaf_new = qr/[^\]]+/;
+#identifiers for BitAllocationNSRLines.m
+my $new_input_file = 0;
+my $new_params = 0;
+#identifier for Polynomes_BERinq_vs_NSRq_normalises.m
+my $old_input_file = 0;
# Decode input data.
sub process
{
my ($name, $value) = @_;
- # Support both formats.
+ # Support all formats.
die "bad format" unless
$value =~ /^{\s*{\s*($set_re)\s*}\s*,\s*{\s*($set_re)\s*}\s*}$/
- || $value =~ /^{\s*($leaf_re)\s*,\s*($leaf_re)\s*}$/;
+ || $value =~ /^{\s*($leaf_re)\s*,\s*($leaf_re)\s*}$/
+ || $value =~ /\[($leaf_new)\]/;
+
+ if ($new_input_file == 1 )
+ {
+ # This is for render part
+ $new_params = 1;
+ my ($fec1621, $fec12) = ($1, $1);
+ $values[$fec_rate{"16/21"}]->{$name} = [ $fec1621 =~ /$leaf_new/g ];
+ $values[$fec_rate{"1/2"}]->{$name} = [ $fec12 =~ /$leaf_new/g ];
+ }
# File from the TNS team are organised in the following way: firsts
# coefficients are FEC rate 16/21, second ones are for FEC rate 1/2.
- my ($fec1621, $fec12) = ($1, $2);
- $values[$fec_rate{"16/21"}]->{$name} = [ $fec1621 =~ /$leaf_re/g ];
- $values[$fec_rate{"1/2"}]->{$name} = [ $fec12 =~ /$leaf_re/g ];
+ else
+ {
+ my ($fec1621, $fec12) = ($1, $2);
+ $values[$fec_rate{"16/21"}]->{$name} = [ $fec1621 =~ /$leaf_re/g ];
+ $values[$fec_rate{"1/2"}]->{$name} = [ $fec12 =~ /$leaf_re/g ];
+ }
}
# Render in C decoded data.
@@ -45,50 +66,113 @@ sub render
{\n";
# Select one FEC rate.
my $rate = $fec_rate{"16/21"};
+
# For each modulation.
- for my $i (1, 2, 3, 4, 6, 8, 10)
+ if ( $new_params == 0)
{
- # Get arrays.
- my @polys = @{$values[$rate]->{'poly' . $i}};
- my @enss = @{$values[$rate]->{'ens' . $i}};
- # Count number of polynomials.
- my $poly_count = @polys;
- # Add "ll" at end of each number and count number of occurence.
- my @counts;
- push @counts, (s/(-?\d+)/ $1ll/g - 1) for @polys;
- # Convert ens (to remove continuous values).
- my $enss = join ', ', @enss;
- $enss =~ y/{}//d;
- @enss = split /\s*,\s*/, $enss;
- my @ens = shift @enss;
- my $ff = 1;
- for (@enss)
+ for my $i (1, 2, 3, 4, 6, 8, 10)
{
- if ($ff)
- {
- push @ens, $_;
- }
- else
- {
- die "non consecutive ensemble" unless $_ == $ens[-1] + 1;
- }
- $ff = !$ff;
+ # Get arrays.
+ my @polys = @{$values[$rate]->{'poly' . $i}};
+ my @enss = @{$values[$rate]->{'ens' . $i}};
+ # Count number of polynomials.
+ my $poly_count = @polys;
+ # Add "ll" at end of each number and count number of occurence.
+ my @counts;
+ push @counts, (s/(-?\d+)/ $1ll/g - 1) for @polys;
+ # Convert ens (to remove continuous values).
+ my $enss = join ', ', @enss;
+ $enss =~ y/{}//d;
+ @enss = split /\s*,\s*/, $enss;
+ my @ens = shift @enss;
+ my $ff = 1;
+ for (@enss)
+ {
+ if ($ff)
+ {
+ push @ens, $_;
+ }
+ else
+ {
+ die "non consecutive ensemble" unless $_ == $ens[-1] + 1;
+ }
+ $ff = !$ff;
+ }
+ # Cosmetic changes.
+ s/(\})/ $1/ for @polys;
+ # Render.
+ local $" = ', ';
+ print " {
+ $poly_count,
+ { @counts },
+ {
+ @polys,
+ },
+ { @ens },
+ },
+ "
}
- # Cosmetic changes.
- s/(\})/ $1/ for @polys;
- # Render.
- local $" = ', ';
- print " {
- $poly_count,
- { @counts },
+ print "};\n";
+ }
+ else
+ {
+ for my $i (1, 2, 3, 5, 6, 8, 10)
{
- @polys,
- },
- { @ens },
- },
-"
+ # Get arrays.
+ my @a_poly_part = @{$values[$rate]->{'a' . $i}};
+ my @b_poly_part = @{$values[$rate]->{'b' . $i}};
+ my @enss = @{$values[$rate]->{'x' . $i}};
+
+ # Add "ll" at end of each number and count number of occurence.
+ my @counts;
+ push @counts, (s/(-?\d+)/ $1ll/g ) for @a_poly_part;
+ push @counts, (s/(-?\d+)/ $1ll/g ) for @b_poly_part;
+ die "non consecutive polynom part" if $counts[0] != $counts[1] ;
+ # Convert ens (to remove continuous values).
+ my $enss = join ', ', @enss;
+ $enss =~ y/{}//d;
+ @enss = split /\s*,\s*/, $enss;
+ my @ens;
+ my $ff = 1;
+ for (@enss)
+ {
+ if ($ff)
+ {
+ push @ens, $_;
+ $ff = !$ff;
+ }
+ else
+ {
+ push @ens, ($_-1);
+ }
+ }
+ $a_poly_part[0] =~ s/ //g;
+ $b_poly_part[0] =~ s/ //g;
+ my @a_poly_part_tab = split(',',$a_poly_part[0]);
+ my @b_poly_part_tab = split(',',$b_poly_part[0]);
+ my $poly_count = @a_poly_part_tab;
+ my @polys;
+ my @poly_order;
+ for(my $j = 0; $j < $poly_count; $j++)
+ {
+ push @polys, "\n { $a_poly_part_tab[$j], $b_poly_part_tab[$j]}";
+ push @poly_order, "1";
+ }
+
+ # Cosmetic changes.
+ s/(\})/ $1/ for @polys;
+ # Render.
+ local $" = ',';
+ print " {
+ $poly_count,
+ { @poly_order },
+ {@polys,
+ },
+ { @ens },
+ },\n"
+ }
+ print "};\n";
}
- print "};\n";
# BER consign coefficients.
# For each project (AV, EoC).
@@ -99,7 +183,7 @@ sub render
local $" = ', ';
print "\nstatic const s64\n";
print "ce_rx_bl_ber_consign_coefs_" . $lp . "[PHY_FEC_RATE_NB]";
- print "[CE_RX_BL_BER_POLY_MAX_DEGREE] = {\n";
+ print "[CE_RX_BL_BER_POLY_MAX_DEGREE] =\n{\n";
my @count;
# For each rate.
for my $rate (sort values %fec_rate)
@@ -121,6 +205,8 @@ sub render
}
}
+$old_input_file = 1;
+
while (<>)
{
# Remove uneeded stuff from imput.
@@ -135,14 +221,35 @@ while (<>)
defined $prev and $_ = $prev . ' ' . $_;
undef $prev;
# If continued:
+ if (/^function/)
+ {
+ $new_input_file = 1;
+ $old_input_file = 0;
+ next;
+ }
+ if (/^return/)
+ {
+ $new_input_file = 0;
+ $old_input_file = 1;
+ next;
+ }
+ if (/^end/ or /^else/ or /^for/ or /^global/)
+ {
+ next;
+ }
if (/[^;]$/)
{
$prev = $_;
next;
}
- # Decode.
- die "invalid format, stoping" unless (/^([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.+)\s*;$/);
- process ($1, $2);
+ # new polynome identifier
+ if ((/^[abx][0-9]/ and $new_input_file == 1 ) or $old_input_file == 1 )
+ {
+ # Decode.
+ die "invalid format, stoping" unless (/^([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.+)\s*;$/);
+ process ($1, $2);
+ }
+
}
die "unexpected end of file, stoping" if defined $prev;
diff --git a/cesar/ce/rx/bitloading/test/data/bl_initial_final.data b/cesar/ce/rx/bitloading/test/data/bl_initial_final.data
index 242c65ae9e..384f23f37b 100644
--- a/cesar/ce/rx/bitloading/test/data/bl_initial_final.data
+++ b/cesar/ce/rx/bitloading/test/data/bl_initial_final.data
@@ -191,7 +191,7 @@
8
8
8
-8
+6
8
8
8
@@ -528,9 +528,8 @@
3
3
3
-2
3
-2
+3
2
2
2
@@ -551,6 +550,7 @@
2
2
1
+1
2
1
1
@@ -558,8 +558,8 @@
1
1
1
-0
-0
+1
+1
0
0
0
@@ -642,7 +642,6 @@
2
2
2
-2
3
3
3
@@ -679,9 +678,7 @@
3
3
3
-2
3
-2
3
3
3
@@ -700,10 +697,11 @@
3
3
3
-4
3
3
3
+4
+3
3
3
3
@@ -713,11 +711,14 @@
3
3
4
+3
+4
+4
+4
4
4
4
4
-3
4
4
4
@@ -743,7 +744,6 @@
4
4
4
-3
4
4
4
@@ -751,7 +751,7 @@
3
3
4
-3
+4
4
4
3
@@ -804,7 +804,7 @@
3
3
3
-2
+3
3
2
2
@@ -952,8 +952,7 @@
1
1
1
-0
-0
+1
0
0
0
@@ -980,14 +979,15 @@
1
1
1
-0
1
1
1
1
1
1
-0
+1
+1
+1
1
1
0
@@ -997,14 +997,14 @@
1
1
1
-0
1
1
1
-0
1
1
-0
+1
+1
+1
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/bl_initial_final_with_carriers_masked.data b/cesar/ce/rx/bitloading/test/data/bl_initial_final_with_carriers_masked.data
index d767928f70..8ef0409dd0 100644
--- a/cesar/ce/rx/bitloading/test/data/bl_initial_final_with_carriers_masked.data
+++ b/cesar/ce/rx/bitloading/test/data/bl_initial_final_with_carriers_masked.data
@@ -191,7 +191,7 @@
8
8
8
-8
+6
8
8
8
@@ -528,9 +528,8 @@
3
3
3
-2
3
-2
+3
2
2
2
@@ -551,6 +550,7 @@
2
2
1
+1
2
1
1
@@ -558,8 +558,8 @@
1
1
1
-0
-0
+1
+1
0
0
0
@@ -642,7 +642,6 @@
2
2
2
-2
3
3
3
@@ -679,9 +678,7 @@
3
3
3
-2
3
-2
3
3
3
@@ -700,10 +697,11 @@
3
3
3
-4
3
3
3
+4
+3
3
3
3
@@ -713,11 +711,14 @@
3
3
4
+3
+4
+4
+4
4
4
4
4
-3
4
4
4
@@ -743,7 +744,6 @@
4
4
4
-3
4
4
4
@@ -751,7 +751,7 @@
3
3
4
-3
+4
4
4
3
@@ -804,7 +804,7 @@
3
3
3
-2
+3
3
2
2
@@ -952,8 +952,7 @@
1
1
1
-0
-0
+1
0
0
0
@@ -980,14 +979,15 @@
1
1
1
-0
1
1
1
1
1
1
-0
+1
+1
+1
1
1
0
@@ -997,14 +997,14 @@
1
1
1
-0
1
1
1
-0
1
1
-0
+1
+1
+1
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/polynomial_coef.data b/cesar/ce/rx/bitloading/test/data/polynomial_coef.data
index 98aedecf3c..da610a610b 100644
--- a/cesar/ce/rx/bitloading/test/data/polynomial_coef.data
+++ b/cesar/ce/rx/bitloading/test/data/polynomial_coef.data
@@ -1,2 +1,13 @@
-3
--362383471042474 69770329856 -614142 2
+5
+1
+5461
+10138
+-231502078889845 48707229072
+17193
+-255095996583158 51034114569
+27451
+-221873016034784 49101951152
+43840
+169909117254752 34830906051
+133705
+327698216309011 31231854645
diff --git a/cesar/ce/rx/bitloading/test/data/test_content.txt b/cesar/ce/rx/bitloading/test/data/test_content.txt
index 21e6bb1bdb..85a96c2010 100644
--- a/cesar/ce/rx/bitloading/test/data/test_content.txt
+++ b/cesar/ce/rx/bitloading/test/data/test_content.txt
@@ -1,9 +1,9 @@
----------------------------- Script file information -----------------------------
-test generated on = 12-Oct-2012 at 11:59
+test generated on = 15-Nov-2012 at 14:34
test vectors generated using:
SubWCRev: 'E:\projet\PLC\DSP_chain_oct_2012\Simu\BitLoading\testVectorGeneration.m'
Last committed at revision 19029
-Updated to revision 19029
+Updated to revision 19108
Local modifications found
--------------------------------- bitloading test ---------------------------------
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_00_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_00_ber_margin.data
index c9ee38332c..995dfa71de 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_00_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_00_ber_margin.data
@@ -259,7 +259,10 @@
2
2
3
+2
+2
3
+2
3
3
3
@@ -279,11 +282,8 @@
3
3
3
-3
-3
-3
-4
4
+3
4
4
4
@@ -299,7 +299,7 @@
4
4
4
-4
+3
4
4
3
@@ -346,10 +346,9 @@
4
4
4
+3
4
4
-4
-3
3
3
3
@@ -409,15 +408,16 @@
2
2
2
-3
2
2
-3
+2
+2
+2
2
3
3
3
-3
+2
3
3
3
@@ -483,14 +483,12 @@
2
2
2
-2
-2
-2
1
2
1
+1
2
-2
+1
2
2
2
@@ -524,6 +522,7 @@
1
2
1
+2
1
1
1
@@ -539,7 +538,6 @@
1
0
0
-1
0
0
0
@@ -606,31 +604,36 @@
0
0
0
-1
-1
+0
0
1
1
+0
1
1
+0
1
1
1
1
0
-1
0
0
0
0
-1
+0
+0
+0
0
1
-1
-1
+0
+0
0
1
0
+0
+1
+1
1
1
1
@@ -647,8 +650,6 @@
1
1
1
-2
-2
1
2
2
@@ -659,10 +660,7 @@
2
2
2
-2
-2
-2
-2
+1
2
2
2
@@ -673,6 +671,8 @@
1
2
1
+1
+1
2
1
1
@@ -687,14 +687,10 @@
1
1
1
-2
1
-2
1
-2
-2
-2
-2
+1
+1
2
2
2
@@ -796,10 +792,8 @@
2
2
2
-2
-1
-1
1
+2
1
1
1
@@ -840,6 +834,7 @@
1
1
1
+0
1
1
1
@@ -894,13 +889,16 @@
1
1
1
+0
1
1
+0
1
1
1
1
1
+0
1
1
1
@@ -923,10 +921,12 @@
1
1
1
+0
1
1
0
-1
+0
+0
1
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_01_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_01_ber_margin.data
index 3b46eb53d4..8dc9ce4c7b 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_01_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_0db_nsr_margin_0_01_ber_margin.data
@@ -94,7 +94,7 @@
3
4
3
-3
+4
3
4
4
@@ -126,9 +126,9 @@
3
3
3
-3
-3
-3
+2
+2
+2
2
2
3
@@ -263,8 +263,8 @@
2
2
2
-3
-3
+2
+2
3
3
3
@@ -291,7 +291,7 @@
3
3
3
-3
+4
3
3
3
@@ -323,7 +323,7 @@
3
4
3
-3
+4
3
3
3
@@ -382,9 +382,9 @@
3
3
3
-3
2
-3
+2
+2
2
2
2
@@ -424,7 +424,7 @@
2
2
2
-3
+2
3
3
3
@@ -432,10 +432,10 @@
3
3
2
-3
-3
2
-3
+2
+2
+2
3
3
3
@@ -471,7 +471,7 @@
3
3
3
-3
+2
2
2
2
@@ -518,9 +518,9 @@
1
1
1
-2
1
-2
+1
+1
1
1
1
@@ -612,7 +612,7 @@
0
0
0
-1
+0
0
0
0
@@ -651,19 +651,19 @@
1
1
1
-2
+1
1
1
1
1
2
2
-2
+1
2
1
1
1
-2
+1
2
1
1
@@ -696,17 +696,17 @@
1
1
1
-2
-2
-2
+1
1
2
1
2
+1
2
1
1
1
+1
2
2
2
@@ -748,7 +748,7 @@
2
2
2
-2
+1
2
2
2
@@ -757,37 +757,35 @@
2
1
2
+1
+1
2
2
2
+1
2
+1
2
2
2
-2
-2
-2
-2
-2
+1
2
2
1
1
-2
1
-2
1
1
-2
-2
1
-2
1
-2
+1
2
1
1
1
+2
+1
+1
1
1
1
@@ -813,13 +811,14 @@
1
1
1
-0
1
1
0
1
0
+0
1
+0
1
1
1
@@ -830,10 +829,11 @@
0
0
0
-1
+0
+0
0
1
-1
+0
0
1
0
@@ -859,14 +859,10 @@
1
1
1
-1
-1
0
1
-1
-1
-1
-1
+0
+0
1
1
1
@@ -875,22 +871,26 @@
1
0
1
+0
1
+0
1
+0
1
+0
1
+0
+0
1
1
1
1
-1
-1
-1
+0
1
1
1
0
-1
+0
0
0
0
@@ -899,10 +899,10 @@
1
0
0
+0
1
1
-1
-1
+0
1
1
1
@@ -918,7 +918,7 @@
0
1
1
-1
+0
1
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_00_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_00_ber_margin.data
index 54e698ac45..7eb4e0d8f4 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_00_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_00_ber_margin.data
@@ -134,7 +134,7 @@
2
2
2
-3
+2
3
2
3
@@ -227,7 +227,7 @@
4
4
4
-4
+3
4
4
4
@@ -354,7 +354,7 @@
3
3
3
-3
+2
2
3
2
@@ -363,7 +363,7 @@
2
3
2
-3
+2
2
3
3
@@ -427,7 +427,7 @@
2
2
2
-3
+2
2
3
2
@@ -468,7 +468,7 @@
3
3
2
-3
+2
3
2
2
@@ -514,7 +514,7 @@
2
2
2
-2
+1
1
1
1
@@ -638,7 +638,7 @@
1
1
1
-1
+0
1
1
1
@@ -710,11 +710,14 @@
1
1
1
+1
+1
2
2
2
2
2
+1
2
2
2
@@ -740,18 +743,15 @@
2
2
2
-2
-2
-2
-2
+1
2
2
2
2
1
+1
2
-2
-2
+1
2
2
1
@@ -763,13 +763,12 @@
1
2
1
-2
1
-2
1
-2
1
1
+2
+1
1
1
1
@@ -817,12 +816,13 @@
0
0
0
+0
1
0
0
0
-1
-1
+0
+0
1
0
0
@@ -837,26 +837,26 @@
0
1
0
-1
0
0
0
0
0
-1
-1
0
1
+0
+0
1
1
0
-1
0
1
0
-1
+0
0
1
+0
+0
1
0
0
@@ -872,19 +872,19 @@
0
0
0
-1
+0
0
1
0
0
0
-1
+0
0
0
1
0
0
-1
+0
0
1
0
@@ -896,20 +896,20 @@
0
0
0
-1
0
0
0
-1
-1
0
1
1
+0
1
+0
+0
1
1
1
-1
+0
0
1
0
@@ -919,7 +919,7 @@
0
1
0
-1
+0
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_01_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_01_ber_margin.data
index 37b4f13977..2c173c40fd 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_01_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_1db_nsr_margin_0_01_ber_margin.data
@@ -82,8 +82,8 @@
2
2
2
-3
-3
+2
+2
3
3
3
@@ -213,7 +213,7 @@
4
4
4
-3
+4
3
4
4
@@ -221,7 +221,7 @@
3
3
3
-3
+4
3
3
3
@@ -239,7 +239,7 @@
3
3
3
-3
+4
3
3
3
@@ -270,7 +270,7 @@
2
2
2
-3
+2
2
2
2
@@ -372,8 +372,8 @@
3
2
2
-3
-3
+2
+2
3
3
3
@@ -447,7 +447,7 @@
2
2
2
-3
+2
2
2
2
@@ -455,7 +455,7 @@
2
2
2
-3
+2
3
2
2
@@ -498,6 +498,8 @@
2
1
2
+1
+1
2
2
2
@@ -507,10 +509,8 @@
2
2
2
-2
-2
-2
-2
+1
+1
2
1
1
@@ -714,12 +714,12 @@
1
1
1
-2
+1
2
1
1
-2
-2
+1
+1
1
2
2
@@ -733,20 +733,20 @@
2
2
2
+1
2
2
2
2
2
-2
-2
-2
-2
-2
+1
1
2
+1
+1
2
2
+1
2
1
1
@@ -807,8 +807,6 @@
1
1
1
-1
-1
0
1
0
@@ -881,6 +879,8 @@
0
0
0
+0
+0
1
0
0
@@ -901,13 +901,13 @@
0
0
0
-1
+0
0
1
0
0
0
-1
+0
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_00_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_00_ber_margin.data
index 67cb29e7ad..8f6bf152d4 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_00_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_00_ber_margin.data
@@ -98,7 +98,7 @@
3
3
3
-4
+3
3
3
3
@@ -123,7 +123,7 @@
3
3
2
-3
+2
2
2
2
@@ -143,6 +143,7 @@
3
2
3
+2
3
3
3
@@ -161,7 +162,6 @@
4
4
4
-4
3
4
3
@@ -210,12 +210,13 @@
4
4
4
-8
+4
+3
+4
+3
3
-8
3
3
-4
3
3
3
@@ -230,7 +231,6 @@
3
3
3
-10
3
4
4
@@ -248,7 +248,6 @@
3
3
3
-3
2
2
2
@@ -276,11 +275,13 @@
2
2
2
-3
2
3
2
2
+2
+2
+2
3
3
3
@@ -294,8 +295,7 @@
3
3
3
-3
-3
+2
3
3
3
@@ -369,20 +369,17 @@
2
2
2
-3
2
2
2
2
-3
-3
-3
2
3
3
2
2
2
+3
2
2
2
@@ -399,6 +396,9 @@
2
2
2
+1
+2
+2
2
2
2
@@ -460,9 +460,8 @@
2
2
2
-3
-3
2
+3
2
2
2
@@ -495,23 +494,24 @@
1
1
1
+1
2
1
2
1
1
2
+1
2
2
2
2
2
-2
-2
+1
2
1
1
-2
+1
1
1
1
@@ -641,6 +641,7 @@
0
0
0
+0
1
1
1
@@ -715,7 +716,6 @@
1
1
1
-2
1
1
1
@@ -723,10 +723,9 @@
1
2
2
-2
-2
1
2
+1
2
2
2
@@ -735,7 +734,7 @@
2
1
1
-2
+1
2
2
2
@@ -744,7 +743,8 @@
1
1
1
-2
+1
+1
1
1
2
@@ -752,7 +752,6 @@
1
1
1
-2
1
1
1
@@ -1534,3 +1533,4 @@
0
0
0
+0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_01_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_01_ber_margin.data
index 27f583bf77..642134780f 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_01_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_2db_nsr_margin_0_01_ber_margin.data
@@ -85,11 +85,11 @@
2
2
2
-3
2
2
2
-3
+2
+2
3
2
3
@@ -147,7 +147,7 @@
2
2
2
-3
+2
3
2
3
@@ -210,9 +210,7 @@
4
3
3
-8
3
-8
3
3
3
@@ -230,7 +228,8 @@
3
3
3
-10
+3
+3
3
3
3
@@ -284,24 +283,21 @@
2
2
2
-3
2
-3
+2
+2
+2
2
2
3
3
3
2
-3
-3
2
3
-3
2
2
2
-3
2
2
2
@@ -315,14 +311,18 @@
2
2
2
-3
2
-3
+2
+2
+2
+2
+2
+2
2
3
3
3
-3
+2
3
3
2
@@ -338,7 +338,7 @@
3
3
3
-3
+2
3
3
3
@@ -348,7 +348,6 @@
3
2
2
-3
2
2
2
@@ -400,7 +399,8 @@
1
1
1
-2
+1
+1
2
2
2
@@ -500,9 +500,9 @@
1
1
1
-2
1
-2
+1
+1
2
2
1
@@ -529,7 +529,6 @@
1
1
0
-1
0
0
0
@@ -643,10 +642,11 @@
0
0
0
-1
-1
+0
0
1
+0
+0
1
1
1
@@ -670,21 +670,21 @@
1
1
1
-1
-1
-1
-1
+0
1
1
1
1
1
0
-1
+0
0
0
1
+0
+0
1
+0
1
1
1
@@ -727,9 +727,7 @@
1
1
2
-2
1
-2
1
1
1
@@ -800,11 +798,11 @@
1
1
1
+0
1
1
1
1
-0
1
0
0
@@ -1534,3 +1532,5 @@
0
0
0
+0
+0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_00_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_00_ber_margin.data
index d28222b908..896f59842d 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_00_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_00_ber_margin.data
@@ -95,7 +95,7 @@
3
3
3
-3
+2
3
3
3
@@ -148,7 +148,7 @@
2
2
2
-3
+2
2
3
3
@@ -174,7 +174,7 @@
3
3
3
-4
+3
4
3
4
@@ -207,7 +207,7 @@
3
4
3
-4
+3
3
3
3
@@ -331,8 +331,8 @@
3
3
3
-3
-3
+2
+2
3
3
3
@@ -340,13 +340,12 @@
3
2
3
-3
2
-3
-3
+2
2
3
2
+3
2
2
2
@@ -402,7 +401,7 @@
1
1
1
-2
+1
2
2
2
@@ -486,10 +485,10 @@
1
1
1
-0
1
0
1
+0
1
1
1
@@ -503,8 +502,6 @@
1
1
1
-2
-1
1
1
1
@@ -524,6 +521,7 @@
1
1
1
+0
1
1
1
@@ -644,7 +642,9 @@
0
0
0
-1
+0
+0
+0
0
0
1
@@ -672,21 +672,23 @@
1
0
1
-1
-1
+0
1
1
0
0
0
0
+0
1
0
0
-1
+0
+0
0
1
1
+0
1
1
1
@@ -726,8 +728,6 @@
1
1
1
-2
-1
1
1
1
@@ -800,10 +800,10 @@
0
0
0
-1
-1
0
-1
+0
+0
+0
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_01_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_01_ber_margin.data
index f65179cb29..8a521825b7 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_01_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_3db_nsr_margin_0_01_ber_margin.data
@@ -103,8 +103,7 @@
3
2
3
-3
-3
+2
3
3
3
@@ -154,7 +153,8 @@
2
2
2
-3
+2
+2
2
3
3
@@ -220,17 +220,16 @@
2
3
3
-3
-3
2
3
2
-3
2
2
2
2
-3
+2
+2
+2
3
3
3
@@ -238,10 +237,10 @@
3
3
2
+2
3
3
-3
-3
+2
2
2
2
@@ -403,7 +402,12 @@
1
1
1
+1
+1
+1
+1
2
+1
2
2
2
@@ -472,11 +476,6 @@
2
2
2
-2
-2
-2
-2
-1
1
1
1
@@ -484,12 +483,13 @@
1
1
0
+0
1
0
0
0
0
-1
+0
0
1
1
@@ -515,9 +515,9 @@
1
1
1
-1
-1
-1
+0
+0
+0
1
0
1
@@ -652,8 +652,8 @@
0
0
1
-1
-1
+0
+0
0
0
1
@@ -662,14 +662,12 @@
1
0
0
-1
-1
+0
1
1
0
0
0
-1
0
0
0
@@ -691,19 +689,12 @@
0
0
0
-1
0
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
+0
+0
+0
+0
+0
0
1
1
@@ -713,6 +704,9 @@
1
1
1
+0
+0
+0
1
1
1
@@ -761,7 +755,7 @@
1
1
1
-1
+0
1
1
1
@@ -778,20 +772,26 @@
1
1
0
+0
1
+0
1
+0
+0
1
1
-1
-1
+0
1
0
1
1
0
-1
0
-1
+0
+0
+0
+0
+0
0
0
0
diff --git a/cesar/ce/rx/bitloading/test/data/tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data b/cesar/ce/rx/bitloading/test/data/tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data
index da8a9eddc3..54acaa2e96 100644
--- a/cesar/ce/rx/bitloading/test/data/tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data
+++ b/cesar/ce/rx/bitloading/test/data/tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data
@@ -79,6 +79,7 @@
2
2
2
+2
3
3
3
@@ -91,8 +92,7 @@
3
3
3
-3
-3
+4
3
3
3
@@ -138,10 +138,7 @@
3
2
3
-3
-3
-3
-3
+2
3
3
3
@@ -155,7 +152,6 @@
3
3
4
-3
4
4
4
@@ -224,12 +220,8 @@
4
4
4
-3
4
4
-3
-3
-3
4
4
4
@@ -237,20 +229,28 @@
4
4
4
-3
+4
+4
+4
+4
+4
+4
+4
+4
+4
4
4
4
4
4
3
+4
3
3
3
3
3
-3
-3
+2
3
2
2
@@ -265,17 +265,19 @@
2
2
2
-3
2
-3
2
3
+2
+2
3
+2
3
3
3
3
3
+2
3
3
3
@@ -319,25 +321,22 @@
3
3
3
-3
-3
-3
+4
3
3
3
3
3
4
+4
3
+4
3
3
3
3
3
-3
-3
-3
-3
+4
3
3
3
@@ -356,12 +355,15 @@
3
2
2
-3
2
2
2
2
-3
+2
+2
+2
+2
+2
2
2
2
@@ -378,9 +380,7 @@
3
3
3
-3
-3
-3
+2
3
2
2
@@ -429,26 +429,26 @@
2
2
2
-3
2
2
2
2
2
2
-3
2
-3
2
2
2
-3
-3
-3
+2
+2
2
3
+2
+2
+2
+2
3
-3
+2
3
3
3
@@ -458,18 +458,18 @@
3
3
2
+2
+2
3
3
-3
-3
-3
-3
-3
+2
+2
+2
3
3
2
2
-3
+2
2
2
2
@@ -484,16 +484,15 @@
2
1
1
-2
1
1
1
1
1
1
-2
1
-2
+1
+1
2
2
2
@@ -533,6 +532,7 @@
1
1
1
+0
1
1
0
@@ -638,6 +638,15 @@
1
1
1
+0
+1
+0
+1
+1
+1
+1
+1
+1
1
1
1
@@ -659,12 +668,10 @@
1
1
1
-2
1
1
1
1
-2
1
1
1
@@ -700,29 +707,17 @@
1
1
1
-2
1
-2
1
1
1
1
2
+1
2
2
2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
-2
+1
2
2
2
@@ -753,24 +748,17 @@
2
2
2
-2
+1
+1
2
1
2
1
1
-2
-2
-2
1
2
1
-2
-2
-2
1
-2
-2
1
1
1
@@ -783,7 +771,6 @@
1
1
1
-2
1
1
1
@@ -813,14 +800,13 @@
1
1
1
-0
1
-0
-0
1
-0
1
-0
+1
+1
+1
+1
1
1
1
@@ -831,11 +817,11 @@
0
0
0
+1
0
0
0
0
-1
0
1
0
@@ -843,51 +829,65 @@
0
0
0
-1
-1
0
-1
-1
-1
-1
-1
0
-1
0
-1
0
-1
-1
+0
+0
1
0
0
0
0
0
-1
-1
0
-1
-1
0
1
0
+0
+0
1
0
+0
1
0
+0
+0
1
0
+0
1
0
0
+0
+0
+0
+0
+0
1
+0
1
1
+0
+0
+0
+0
+0
1
0
+0
+0
+0
+0
+0
1
+0
+0
+0
+0
1
+0
1
0
0
@@ -896,28 +896,26 @@
0
0
0
-1
0
0
0
-1
-1
0
1
1
+0
1
-1
+0
+0
1
1
1
0
-1
-1
+0
1
0
0
0
-1
+0
0
1
0
@@ -1534,3 +1532,5 @@
0
0
0
+0
+0
diff --git a/cesar/ce/rx/bitloading/test/src/polynomial_vector.sci b/cesar/ce/rx/bitloading/test/src/polynomial_vector.sci
index a877554fb5..ec529dfea0 100644
--- a/cesar/ce/rx/bitloading/test/src/polynomial_vector.sci
+++ b/cesar/ce/rx/bitloading/test/src/polynomial_vector.sci
@@ -6,8 +6,6 @@ raw_min = 0;
raw_max = 65535;
raw_step = 7;
// NSR polynomial.
-nsr_min = 5461;
-nsr_max = 131070;
nsr_step = 11;
// Load coefficients.
@@ -15,21 +13,34 @@ coef_fd = file ('open', 'data/polynomial_coef.data', 'unknown');
if coef_fd < 0
exit ();
end
-nsr_deg = read (coef_fd, 1, 1);
-nsr_coef = read (coef_fd, 1, nsr_deg + 1);
-
-file ('close', coef_fd);
// Build polynomials.
-nsr_poly = poly (nsr_coef, "i", ["coeff"]);
raw_poly = poly ([1, -2, 3, -15], "i", ["coeff"]);
// First polynomial
index = 1;
-for i = [nsr_min:nsr_step:nsr_max]
- nsr_result (index) = horner (nsr_poly, i);
- index = index + 1;
+mod_index = 1;
+nsr_nb_poly = read (coef_fd, 1, 1);
+nsr_deg = read (coef_fd, 1, 1);
+nsr_min = read (coef_fd, 1, 1);
+for j = 1:1:nsr_nb_poly
+
+ nsr_max = read (coef_fd, 1, 1);
+ nsr_max = nsr_max - nsr_step;
+ nsr_coef = read (coef_fd, 1, nsr_deg + 1);
+ // Build polynomials.
+ nsr_poly = poly (nsr_coef, "i", ["coeff"]);
+ for i = [nsr_min:nsr_step:nsr_max]
+ nsr_result (index) = horner (nsr_poly, i);
+ nsr_val(index) = i;
+ nsr_poly_index(index) = j;
+ index = index + 1;
+ end
+ nsr_min = nsr_max + nsr_step + 1;
end
+
+file ('close', coef_fd);
+
// Second polynomial
index = 1;
for i = [raw_min:raw_step:raw_max]
diff --git a/cesar/ce/rx/bitloading/test/src/test_bl.c b/cesar/ce/rx/bitloading/test/src/test_bl.c
index 4943122e38..c2825b0a63 100644
--- a/cesar/ce/rx/bitloading/test/src/test_bl.c
+++ b/cesar/ce/rx/bitloading/test/src/test_bl.c
@@ -327,7 +327,7 @@ test_suite_ce_rx_bl_nsr_sum (test_t t)
TONEMAP_READ_END;
#undef TONEMAP_READ_OPEN
#undef TONEMAP_READ_CLOSE
- test_fail_if (tone_diff != 0, "%d computed tone(s) differs from test "
+ test_fail_if (tone_diff > TONE_TOLERATED_ERROR, "%d computed tone(s) differs from test "
"vector", tone_diff);
} test_end;
tonemap_free (tm);
@@ -423,18 +423,26 @@ test_suite_ce_rx_bl_ber (test_t t)
test_begin (t, "BER polynomial")
{
- uint i;
+ uint i,j;
const uint nsr_step = 11;
- const uint nsr_start = 5461;
+ const u32 *nsr_polychange = &ce_rx_bl_ber_poly_coef[0].range[0];
uint nsr;
- /* Go through each entry of the vector. */
- for (i = 1, nsr = nsr_start + nsr_step;
- i < polynomial_nsr_height; i++, nsr += nsr_step)
+ i = 1;
+ j = 0;
+ nsr = (*nsr_polychange++) + nsr_step;
+ while ( j < ce_rx_bl_ber_poly_coef[0].poly_count )
{
- /* Compute BER. */
- s64 ber = ce_rx_bl_ber_for_mod_initial (nsr, 1);
- /* Test failed if difference over tolerated error. */
- test_fail_if (ABS (ber - polynomial_nsr[i][0]) != 0);
+ /* Go through each entry of the vector. */
+ for (;
+ i < polynomial_nsr_height && nsr <= (nsr_polychange[j] - nsr_step);
+ i++, nsr += nsr_step)
+ {
+ /* Compute BER. */
+ s64 ber = ce_rx_bl_ber_for_mod_initial (nsr, 1);
+ /* Test failed if difference over tolerated error. */
+ test_fail_if (ABS (ber - polynomial_nsr[i][0]) != 0);
+ }
+ nsr = nsr_polychange[j++] + 1 ;
}
} test_end;