Project

General

Profile

Actions

Task #3985

open

Test du chargement forcé des KCOEFF par défaut : écrasement des KCOEFF à bord

Added by bruno katra 4 months ago. Updated 2 months ago.

Status:
Feedback
Priority:
Normal
Category:
-
Target version:
Start date:
12/10/2022
Due date:
% Done:

0%

Estimated time:
revision:
r0

Description

Demande de Thomas (mails du 11/10/2022) :

Hello Bruno,

As-tu le fichier des kcoeff correspondant au kcoef par defaut ? On pourrait déjà commencer par vérifier que cela marche, comme avec les valeurs par défaut (cohérence entre les SWF et les ASM). Non ?

Thomas

Voici ce que j'enverrais à Diane. C'est dans le même format que le fichier que je t'avais fourni pour le cas des kcoeff unitaires. Par rapport à ce que j'avais déjà produit au moment de la définition des kcoeff par défaut pour Alexis (fichiers datant du 2021-09-08), j'ai juste rajouté 3 décimales supplémentaires.

Thomas


Files

kcoefficients_FSW_R3.3.0.10_AC_DIFF_G5_or_DC_DIFF_G1_R=0-0-0_kappa=1e-04_2022-10-11.csv (16.7 KB) kcoefficients_FSW_R3.3.0.10_AC_DIFF_G5_or_DC_DIFF_G1_R=0-0-0_kappa=1e-04_2022-10-11.csv bruno katra, 12/10/2022 05:44 PM
kcoefficients_FSW_R3.3.0.10_AC_DIFF_G5_or_DC_DIFF_G1_R=0-0-0_kappa=1e-04_2022-10-11.txt (21.9 KB) kcoefficients_FSW_R3.3.0.10_AC_DIFF_G5_or_DC_DIFF_G1_R=0-0-0_kappa=1e-04_2022-10-11.txt bruno katra, 12/10/2022 05:44 PM
ASM default loaded versus SWF calibrated interp_F0.png (122 KB) ASM default loaded versus SWF calibrated interp_F0.png thomas chust, 13/10/2022 10:43 AM
ASM default loaded versus SWF calibrated full_F0.png (130 KB) ASM default loaded versus SWF calibrated full_F0.png thomas chust, 13/10/2022 10:43 AM
ASM default loaded versus SWF calibrated interp_F1.png (157 KB) ASM default loaded versus SWF calibrated interp_F1.png thomas chust, 13/10/2022 03:37 PM
ASM default loaded versus SWF calibrated full_F1.png (88.2 KB) ASM default loaded versus SWF calibrated full_F1.png thomas chust, 13/10/2022 03:37 PM
ASM default loaded versus SWF calibrated interp_F2.png (150 KB) ASM default loaded versus SWF calibrated interp_F2.png thomas chust, 13/10/2022 03:39 PM
ASM default loaded versus SWF calibrated full_F2.png (77.3 KB) ASM default loaded versus SWF calibrated full_F2.png thomas chust, 13/10/2022 03:39 PM
ASM default loaded versus SWF calibrated interp+4s_F2.png (150 KB) ASM default loaded versus SWF calibrated interp+4s_F2.png thomas chust, 14/10/2022 02:53 PM
ASM default loaded versus SWF calibrated interp cub_F0.png (116 KB) ASM default loaded versus SWF calibrated interp cub_F0.png thomas chust, 03/11/2022 02:06 PM
ASM default loaded versus SWF calibrated interp cub_F1.png (99.9 KB) ASM default loaded versus SWF calibrated interp cub_F1.png thomas chust, 03/11/2022 02:06 PM
ASM default loaded versus SWF calibrated interp cub_F2.png (87.1 KB) ASM default loaded versus SWF calibrated interp cub_F2.png thomas chust, 03/11/2022 02:06 PM

Related issues

Related to Task #3987: Tests avec KCOEFF distordusNewbruno katra14/10/2022

Actions
Actions #1

Updated by bruno katra 4 months ago

CTC-960 : SWEEP @F0 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés, les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-960&fileid=2730817

Actions #2

Updated by thomas chust 4 months ago

bruno katra wrote in #note-1:

CTC-960 : SWEEP @F0 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés, les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-960&fileid=2730817

C'est bon. Lorsque je calibre l'ASM calculée à partir d'un SWF de la même manière que fait à bord, c'est à dire en interpolant les kcoeff, je trouve un accord à 0.4 % près. Lorsque je calibre à partir des kcoeff full résolution (donc sans interpolation) on observe des écarts jusqu'à 25%. Cela montre la limite de précision introduit par l'interpolation. Voir les 2 plots joints.

Bruno tu peux continuer à F1 et F2.

Actions #3

Updated by bruno katra 4 months ago

Bruno tu peux continuer à F1 et F2.

Le test @F1 est en cours depuis ce matin

Actions #4

Updated by bruno katra 4 months ago

  • Status changed from New to In Progress
Actions #5

Updated by bruno katra 4 months ago

CTC-961 : SWEEP @F1 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés :

/!\ Cette fois ci j'ai rajouté une étape préparatoire où j'uploade d'abord les KCOEFF unitaires puis ensuite je réécrase avec le fichier de Thomas qui contient les KCOEFF par défaut, ceci afin d'être sûr que les valeurs à bord ont bien été changée une fois car écraser les KCOEFF par défaut à bord avec les mêmes valeurs directement ne permet pas de discriminer si l'upload est bien pris en compte. Je fais ça avant de dumper les données donc Thomas ça ne change rien au nombre de fichier et l'ordre dans lequel tu les traites d'habitude.

Les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-961&fileid=2731310

Actions #6

Updated by bruno katra 4 months ago

CTC-962 : SWEEP @F2 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés :

/!\ Cette fois ci j'ai rajouté une étape préparatoire où j'uploade d'abord les KCOEFF unitaires puis ensuite je réécrase avec le fichier de Thomas qui contient les KCOEFF par défaut, ceci afin d'être sûr que les valeurs à bord ont bien été changée une fois car écraser les KCOEFF par défaut à bord avec les mêmes valeurs directement ne permet pas de discriminer si l'upload est bien pris en compte. Je fais ça avant de dumper les données donc Thomas ça ne change rien au nombre de fichier et l'ordre dans lequel tu les traites d'habitude.

Les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-962&fileid=2731519

Actions #7

Updated by thomas chust 4 months ago

bruno katra wrote in #note-5:

CTC-961 : SWEEP @F1 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés :

/!\ Cette fois ci j'ai rajouté une étape préparatoire où j'uploade d'abord les KCOEFF unitaires puis ensuite je réécrase avec le fichier de Thomas qui contient les KCOEFF par défaut, ceci afin d'être sûr que les valeurs à bord ont bien été changée une fois car écraser les KCOEFF par défaut à bord avec les mêmes valeurs directement ne permet pas de discriminer si l'upload est bien pris en compte. Je fais ça avant de dumper les données donc Thomas ça ne change rien au nombre de fichier et l'ordre dans lequel tu les traites d'habitude.

Les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-961&fileid=2731310

Résultats similaire qu'à F0 (#note-2); voir plots attachés.

Actions #8

Updated by thomas chust 4 months ago

bruno katra wrote in #note-6:

CTC-962 : SWEEP @F2 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés :

/!\ Cette fois ci j'ai rajouté une étape préparatoire où j'uploade d'abord les KCOEFF unitaires puis ensuite je réécrase avec le fichier de Thomas qui contient les KCOEFF par défaut, ceci afin d'être sûr que les valeurs à bord ont bien été changée une fois car écraser les KCOEFF par défaut à bord avec les mêmes valeurs directement ne permet pas de discriminer si l'upload est bien pris en compte. Je fais ça avant de dumper les données donc Thomas ça ne change rien au nombre de fichier et l'ordre dans lequel tu les traites d'habitude.

Les résultats :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-962&fileid=2731519

Résultats similaire qu'à F0 (#note-2); voir plots attachés.

Actions #9

Updated by bruno katra 4 months ago

  • Status changed from In Progress to Feedback
Actions #10

Updated by thomas chust 4 months ago

thomas chust wrote in #note-8:

bruno katra wrote in #note-6:

CTC-962 : SWEEP @F2 en 3.3.0.10 avec LOAD KCOEFF des KCOEFF avec les mêmes valeurs que ceux à bord par défaut + Analog discovery avec splitter sur Channel 0 afin d'assurer le phasage parfait des signaux injectés :

https://ao.lpp.polytechnique.fr/index.php/apps/files/?dir=/LFR/3.3.0.10/CTC-962&fileid=2731519

Résultats similaire qu'à F0 (#note-2); voir plots attachés.

J'ai refait l'analyse en extrayant des SWF de 8 s les 4 s qui coïncident avec les 4 s des ASM. Résultats identiques, les différences étant infimes avec les calculs qui prennent les SWF en entier. Plot attaché.

Cela signifierait que la précision de 0.1-0.4 % (et jamais mieux) observée jusqu'à présent dans nos comparaisons relatives, est essentiellement due aux coefficient de la la fenêtre de Hanning codée en VHDL (nombre de bit fini et précision limitée par rapport à des float)

Actions #11

Updated by thomas chust 3 months ago

  • Related to Task #3987: Tests avec KCOEFF distordus added
Actions #12

Updated by thomas chust 3 months ago

thomas chust wrote in #note-2:

C'est bon. Lorsque je calibre l'ASM calculée à partir d'un SWF de la même manière que fait à bord, c'est à dire en interpolant les kcoeff, je trouve un accord à 0.4 % près. Lorsque je calibre à partir des kcoeff full résolution (donc sans interpolation) on observe des écarts jusqu'à 25%. Cela montre la limite de précision introduit par l'interpolation. Voir les 2 plots joints.

Alexis, on avait dit qu'on essayerait de faire mieux qu'une interpolation linéaire. Je te propose de faire une interpolation à l'aide de spline cubiques: https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html#scipy.interpolate.CubicSpline
Lorsque je l'utilise et compare avec la calibration faite à bord actuellement (interpolation linéraire) je trouve des écarts immitant ceux que j'ai trouvé avec les kcoeff pleine résolution (les plots "ASM default loaded versus SWF calibrated full_Fj"). Voir les plots attachés "ASM default loaded versus SWF calibrated interp cub_Fj". Cela signifie que l'interpolation avec splines cubiques donne des résultats plus proches des courbes pleines résolutions que l'interpolation linéaire (on s'en doutait, c'est juste une confirmation). A priori l'interpolation avec splines cubiques est une méthode classique que tu devrais trouver dans des package C, tu confirmes ?

Actions #13

Updated by Alexis Jeandet 2 months ago

Alexis, on avait dit qu'on essayerait de faire mieux qu'une interpolation linéaire. Je te propose de faire une interpolation à l'aide de spline cubiques: https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.CubicSpline.html#scipy.interpolate.CubicSpline
Lorsque je l'utilise et compare avec la calibration faite à bord actuellement (interpolation linéraire) je trouve des écarts immitant ceux que j'ai trouvé avec les kcoeff pleine résolution (les plots "ASM default loaded versus SWF calibrated full_Fj"). Voir les plots attachés "ASM default loaded versus SWF calibrated interp cub_Fj". Cela signifie que l'interpolation avec splines cubiques donne des résultats plus proches des courbes pleines résolutions que l'interpolation linéaire (on s'en doutait, c'est juste une confirmation). A priori l'interpolation avec splines cubiques est une méthode classique que tu devrais trouver dans des package C, tu confirmes ?

Des packages C, ça existe pas vraiment, si on utilise ça, alors il faut totalement le coder en s'inspirant éventuellement de (bouts de) codes en ligne. Pour le moment, j'ai trouvé ça https://gist.github.com/svdamani/1015c5c4b673c3297309.

Actions #14

Updated by bruno katra 2 months ago

On a les sources au labo quelques part d'un ancienne version des numerical recipes en C mais c'est propriétaire.
Chez Boost il y a de l'interpolation bicubique mais c'est du C++ : https://www.boost.org/doc/libs/1_65_0/libs/math/doc/html/math_toolkit/interpolate/cubic_b.html

Sinon en cherchant du côté de la GNU Scientific Library cela semble exister aussi : https://www.gnu.org/software/gsl/doc/html/interp.html#id2
et là on devrait pouvoir taper dans le code source nan?

Des packages C, ça existe pas vraiment, si on utilise ça, alors il faut totalement le coder en s'inspirant éventuellement de (bouts de) codes en ligne. Pour le moment, j'ai trouvé ça https://gist.github.com/svdamani/1015c5c4b673c3297309.

Actions

Also available in: Atom PDF