NOTES DE COURS DE BIOMÉCANIQUE Formation :...

Post on 15-Sep-2018

226 views 0 download

Transcript of NOTES DE COURS DE BIOMÉCANIQUE Formation :...

NOTES DE COURS DE BIOMÉCANIQUE

Formation : M2 (R) MPS

UE : APPROCHE BIOMÉCANIQUE ET PHYSIOLOGIQUE DE LAPERFORMANCE

2014-2015, Automne

Jérôme BASTIEN

Document compilé le 6 juin 2014

Ce document est mis à disposition selon les termes de la licence Creative Commons : Paternité - Pasd’Utilisation Commerciale - Pas de Modification ; 3.0

http://creativecommons.org/licenses/by-nc-nd/3.0/ou en françaishttp://creativecommons.org/licenses/by-nc-nd/3.0/deed.fr

Identification Apogée

Matière BiomécaniqueFormation Master 2 M.P.S (R)Formation (code) SPM209UE 3MMPS5.1 Approche bioméca et physio de la perf spoUE (code) SPT3051M

i

Table des matières

Identification Apogée i

Avant-propos v

Chapitre 1. Lecture et traitement (bruts) de kinogrammes 11.1. Introduction 11.2. Rappels sur les calculs exacts et approchés de vitesses et d’accélérations 11.3. Vitesses et accélérations d’un point matériel 21.4. Lecture et traitement (bruts) de kinogrammes 31.5. Calcul des angles segmentaires et articulaires 51.6. Calcul des coordonnées du centre de gravité 71.7. Ensemble des figures (courbes) 9

Chapitre 2. Lissage et interpolation de données 212.1. Introduction 212.2. Rappels sur l’interpolation de fonctions de R dans R 212.3. «Enrichissement» de kinogrammes 232.4. Lissage de données représentant des fonctions de R dans R 252.5. Lissage de données de kinogrammes 262.6. Lissages "adaptés" 262.7. Ensemble des figures (courbes) 27

Chapitre 3. Espaces de travail plans 413.1. Introduction 413.2. Définitions 413.3. Comportement de la jacobienne de Φp sur la frontière de l’espace de travail 423.4. Définition des arcs de cercles recouvrant la frontière de l’espace de travail 443.5. Quelques tracés d’espace de travail 443.6. Conclusion 46

Chapitre 4. Descriptions des angles articulaires en dimensions 2 et 3 474.1. Introduction 474.2. Rappels sur les angles en deux dimensions 474.3. En trois dimemsions 56

Chapitre 5. Dynamique inverse plane 57Exemple d’application 57

Annexe A. Formules de dérivation numérique d’ordre plus élevés 59

Annexe B. Analyse fréquentielle de signaux 61B.1. Introduction 61

iii

iv TABLE DES MATIÈRES

B.2. Rappels sur l’analyse et la synthèse de Fourier de fonctions de R dans R 61

Annexe C. Ensemble des preuves des résultats de l’annexe B 79

Bibliographie 81

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

Avant-propos

Ces notes de cours constituent un support de cours de Biomécanique pour l’UE Approche Biomécaniqueet Physiologique de la performance du M2 (R) MPS (2014-2015, Automne).

Ce polycopié de cours , des archives de sujets et de corrigés d’examens et des softs matlab (zipé parchapitre) sont normalement disponibles à la fois

• en ligne sur http://utbmjb.chez-alice.fr/UFRSTAPS/index.html à la rubrique habituelle ;• en cas de problème internet, sur le réseau de l’université Lyon I : il faut aller sur :

– ’Poste de travail’,– puis sur le répertoire ’P:’ (appelé aussi ’\\teraetu\Enseignants’),– puis ’jerome.bastien’,– enfin sur ’M2 (R) MPS’.

On trouvera quelques références bibliographiques (voir page 82).

Jérôme BASTIEN

v

CHAPITRE 1

Lecture et traitement (bruts) de kinogrammes

1.1. Introduction

On explique dans ce chapitre comment exploiter de façon «élémentaires» les données fournies par leskinogrammes.

Ceux-ci permettent notamment de déterminer vitesses et accélérations à partir des coordonnées des diffé-rents capteurs. Ils est donc important de rappeler quelques définitions sur les vitesses et les dérivées.

Pour ce chapitre, on pourra consulter– pour la section 1.2, l’ouvrage [Str91] et le chapitre 1 des notes de cours [Bas03] ;– pour la section 1.3, le chapitre 3 (section 3.6) des notes de cours [Bas07].Par soucis de présentation du texte, toutes les figures de courbes sont regroupées dans la section 1.7 page 9.

1.2. Rappels sur les calculs exacts et approchés de vitesses et d’accélérations

1.2.1. La théorie

On se donne une fonction f définie (sans perte de généralité) d’un intervalle [0, T ] de R dans R.Soit fe la fréquence d’échantillonage (en Hz) de la fonction f . On pose

h = 1/fe. (1.1)

On suppose connues les valeurs (fi)0≤i≤n de f aux instants ti avec

∀i ∈ {0, ..., n}, ti = hi. (1.2)

Comment évaluer les valeurs des dérivées premières et secondes de f aux instant ti, uniquement à partirdes (fi)0≤i≤n ?

On approche en fait la dérivée première en un point par un taux d’accroissement. Par exemple (on pourraconsulter la section 3.4.2 du chapitre 3 de [BM03], on peut montrer que, pour tout i ∈ {0, ..., n− 1},

f ′((ti + ti+1)/2) ≈ fi+1 − fi

h, (1.3a)

avec de plus la majoration∣∣∣∣f ′((ti + ti+1)/2

)− fi+1 − fih

∣∣∣∣ ≤ h2

6sup

ξ∈[0,T ]

∣∣f3(ξ)∣∣ . (1.3b)

On a remplacé en fait la valeur exacte de la dérivée de f au point (ti+ ti+1)/2 par le taux d’accroissementde f entre ti et ti+1 voir figure 1.1). En terme de vitesse, la vitesse instantanée a été remplacée par une vitessemoyenne.

De même, pour la dérivée seconde, on a, pour tout i ∈ {1, ..., n− 1},

f ′′(ti) ≈ fi−1 − 2fi + fi+1

h2, (1.4a)

1

2 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

ti (ti + ti+1)/2 ti+1

f(ti)

f(ti+1)

Figure 1.1. Approximation de la dérivée de f en (ti + ti+1)/2.

avec de plus la majoration ∣∣∣∣f ′′(ti)− fi−1 − 2fi + fi+1

h2

∣∣∣∣ ≤ h2

12sup

ξ∈[0,T ]

∣∣f4(ξ)∣∣ . (1.4b)

Remarque 1.1. On peut justifier formellement l’approximation (1.4a) en utilisant deux fois (1.3a) et enécrivant

f ′′(ti) ≈ f ′(ti + h/2)− f ′(ti − h/2)

h,

≈ 1

h

(fi+1 − fi

h− fi − fi−1

h

)Sous matlab, si on connaît les valeurs de fi stockées dans un tableaux A et fe stockée dans fe, il suffira

d’utiliser la fonction diff.

Exemple 1.2. Voir par exemple le fichier exemple_calculapproch_vi_acc.m. d’approximation des déri-vées premières et secondes de la fonction f définie par f(x) = ex + cos(x) sur [0, 2].

Ce script a produit les figures 1.4 page 11.On rappelle que, par soucis de présentation du texte, toutes les figures de courbes sont regroupées dans la

section 1.7 page 9.Pour une faible fréquence d’échantillonnage (6Hz), on constate un éccart entre les valeurs exactes et

approchées (voir figure 4(a)), qui disparaît si la fréquence est plus élevée (50 Hz) (voir figure 4(b)) (autrementdit h plus faible).

On pourra aussi utiliser d’autres formules d’approximation plus précises (voir annexe A), qui ne serontpas utilisées dans ce cours.

1.2.2. La pratique

En fait, le signal f est inconnue et seules les données fi sont connues, souvent issues de l’expérience. Parexemple, le fichier exemple_vitacc_donnees.m, permet de lire les données du fichier donneeshanche.txt quicontient les abscisses et les ordonnées de la hanche mesurées lors d’un mouvement de barre parallèles, avec unefréquence d’échantillonnage égale à fe = 25Hz.

Ce script a produit les figures 1.5 page 11. On constate sur ces figures que les dérivées première et surtoutsecondes sont «chahutées», ce que l’on étudiera au cours du chapitre 2.

1.3. Vitesses et accélérations d’un point matériel

On se donne(0,�i,�j

)un repère orthonormé (direct) du plan.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.4. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES 3

On se donne maintenant une fonction f définie (sans perte de généralité) d’un intervalle [0, T ] de R dansR2, ce qui revient à se donner deux fonctions x et y de [0, T ] de dans R avec F (t) =

(x(t), y(t)). Ces deux

fonctions représente l’abscisse et l’ordonnées d’un point matériel ayant un mouvement plan paramétré par letemps.

À tout instant t de [0, T ], la position−−→OM (t) du point M(t) est donnée par−−→OM(t) = x(t)�i + y(t)�j, (1.5a)

la vitesse (instantannée) �v(t) est donnée par

�v(t) = x′(t)�i+ y′(t)�j, (1.5b)

tandis que l’accélération �a(t) est donnée par

�a(t) = x′′(t)�i+ y′′(t)�j. (1.5c)

Soit fe la fréquence d’échantillonage (en Hz) de la fonction F . On considère h défini par (1.1) On supposeconnues les valeurs (xi)0≤i≤n et (yi)0≤i≤n de F de f aux instants ti avec (1.2). Ces valeurs représentent doncles abscisses et les ordonnées du points M aux aux instants ti.

Comme dans la section 1.2, on cherche à évaluer la vitesse et l’accélération du point M respectivementaux instant (ti + ti+1)/2 et ti uniquement à partir des (xi)0≤i≤n et (yi)0≤i≤n. En appliquant (1.3a) et (1.4a),on a donc

∀i ∈ {0, ..., n− 1}, �v((ti + ti+1)/2

) ≈ xi+1 − xih

�i+yi+1 − yi

h�j, (1.6a)

∀i ∈ {1, ..., n− 1}, �a(ti) ≈ xi−1 − 2xi + xi+1

h2�i+

yi−1 − 2yi + yi+1

h2�j. (1.6b)

Remarque 1.3. La formule (1.6a) peut aussi s’interpréter en disant que la vitesse instantanée du pointM à l’instant (ti + ti+1)/2 est remplacée par sa vitesse moyenne entre ti et ti+1.

On en déduit aussi les approximations de la norme de la vitesse vi et l’accélération :

∀i ∈ {0, ..., n− 1}, ∥∥�v((ti + ti+1)/2)∥∥ �vi ≈ 1

h

√(xi+1 − xi)

2 + (yi+1 − yi)2, (1.7a)

∀i ∈ {1, ..., n− 1}, ‖�a(ti)‖ ≈ 1

h2

√(xi−1 − 2xi + xi+1)

2+ (yi−1 − 2yi + yi+1)

2 (1.7b)

Comme dans la section 1.2.2 page ci-contre, le fichier exemple_vitaccnorm_donnees.m, permet de lire lesdonnées du fichier donneeshanche.txt.

Ce script a produit les figures 1.6 page 12.

1.4. Lecture et traitement (bruts) de kinogrammes

Venons-en au cœur de ce chapitre : la lecture et le traitement (bruts) de kinogramme.On étudie le kinogramme d’un individu ou d’une portion d’un individu modélisé comme une suite de seg-

ments articulaires avec p points, notés (Aj)1≤j≤p (voir figure 1.2). On se donne une fréquence d’échantillonnage(en Hz) et h et (ti)0≤i≤n définis par (1.1) et (1.2). Le kinogramme peut être, après digitalisation, stocké sousla forme d’un tableaux à n+ 1 lignes et 2p colonnes : pour tout i dans {0, ..., n} et pour tout j dans {1, ..., p},la i+1-ième ligne de ce tableaux est formé des nombres x1i , y1i , x2i , y2i , ..., xp−1

i , yp−1i , xpi , y

pi qui représentent

les abscisses et les ordonnées des points A1, A2, ..., Ap−1 et Ap à l’instant ti.Voir par exemple le fichier donneeskinogbarrefix.txt ou donneeskinogtapoint.txt, qui contient les

mesures sur un bras lors d’une tâche de pointage plane, réalisé par Clément Villars. Le début de ce dernierfichier texte est le suivant :

4 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

A1

A2

A3

Ap−2

Ap−1

Ap

Figure 1.2. Les segments étudiés.

%Filetype SIMI Text Export%Version 100%Copyright (c) 1999 SIMI Reality Motion Systems GmbH%Address Postfach 1518, D-85705 Unterschleissheim%Internet http://www.simi.com, E-Mail: simi@simi.com%Tâche de pointage réalisé par Clément Villars%Number of frames 36%Number of points 4Frequency 29.96%Epaule DX Epaule DY Coude DX Coude DYPoignet DX Poignet D Y Index DX Index Dy0.3032 -0.2068 0.6117 -0.1857 0.4273 -0.00157 0.3476 0.17780.3035 -0.207 0.6105 -0.1847 0.4276 -0.00143 0.3476 0.17780.3038 -0.2072 0.6092 -0.1839 0.4285 -0.00115 0.3475 0.17870.3037 -0.2069 0.6079 -0.184 0.4302 -0.00071 0.3492 0.17950.3033 -0.2064 0.6077 -0.1862 0.4327 -0.0003 0.3532 0.18180.3028 -0.2065 0.608 -0.1889 0.436 0.00015 0.3607 0.18420.3027 -0.2071 0.6082 -0.1908 0.4384 0.00043 0.3663 0.18670.3026 -0.2079 0.6087 -0.1926 0.4415 0.00096 0.3745 0.189

On peut stocker dans les matrices Xet Y de Mn+1,p(R) les nombres x1i , y1i , x2i , y2i , ..., xp−1i , yp−1

i , xpi , ypi

de telle sorte que pour tout i dans {0, ..., n} et pour tout j dans {1, ..., p},

Xi+1,j soit l’abscisse de Aj à l’instant ti, (1.8a)

Yi+1,j soit l’ordonnée de Aj à l’instant ti (1.8b)

Ainsi, grâce aux formules (1.6), on peut construire les matrices des vitesses approchées Xa et Y a de Mn,p(R)

et les matrices des accélérations approchées Xa et Y a de Mn−1,p(R) de la façon suivante :

∀i ∈ {0, ..., n− 1}, ∀j ∈ {1, ..., p}, Xai+1,j =

Xi+2,j −Xi+1,j

h, (1.9a)

Y ai+1,j =

Xi+2,j −Xi+1,j

h, (1.9b)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.5. CALCUL DES ANGLES SEGMENTAIRES ET ARTICULAIRES 5

et

∀i ∈ {1, ..., n− 1}, ∀j ∈ {1, ..., p}, Xai+1,j =

Xi,j − 2Xi+1,j +Xi+2

h2, (1.9c)

Xai+1,j =

Yi,j − 2Yi+1,j + Yi+2

h2. (1.9d)

Ainsi, pour tout i dans {1, ..., n} et pour tout j dans {1, ..., p},Xa

i,j est l’abscisse de la vitesse approchée de Aj à l’instant (ti−1 + ti)/2, (1.10a)

Y ai,j est l’ordonnée de la vitesse de approchée de Aj à l’instant (ti−1 + ti)/2, (1.10b)

et tout i dans {1, ..., n− 1} et pour tout j dans {1, ..., p},Xa

i,j est l’abscisse de l’accélération de approchée de Aj à l’instant ti, (1.11a)

Y ai,j est l’ordonnée de l’accélération approchée de Aj à l’instant ti, (1.11b)

Sous matlab, on pourra écrire ces formules de façon vectorielle : par exemple, si fe représente la fréquenced’acquisition, X et Y, tableau de taille (n + 1) × p représentent Xet Y , alors pour stocker Xa, Y a, Xa et Y a

respectivement dans dXa, dYa, ddXa et ddYa, il suffira d’écrire :

dXa=(di f f (X))∗ f e ;dYa=(di f f (Y))∗ f e ;ddXa=(X( 1 :end−2 ,:)−2∗X(2 :end−1 ,:)+X(3 :end , : ) ) ∗ ( f e ^2) ;ddYa=(Y( 1 :end−2 ,:)−2∗Y(2 :end−1 ,:)+Y(3 :end , : ) ) ∗ ( f e ^2) ;

Exemple 1.4. Voir la fonction matlab traitekinogramme qui lit un fichier de données et trace les kino-grammes éventuellement les vitesses et les accélérations.

Les figures 1.7 page 12 à 1.18 page 18 ont été obtenues à partir des fichiers de données donneeskinogbarrefix.txt et donneeskinogtapoint.txt, grâce aux script demo01 et demo02.

Des fichiers d’animations ont aussi été crée par matlab (voir fichier donneeskinogbarrefix.avi et donneeskinogtapoint.avi).

Sur ces figures, on constate la nécessité de «nettoyer» les signaux obtenue (ce qui relève de la théorie delissage de données) ou, au contraire de les enrichir artificiellement (ce qui relève de la théorie de l’interpola-tion) ; ces deux notions constitueront l’objet du chapitre 2. La théorie du lissage de données est aussi liée àl’interprétation fréquentielle des signaux, ce qui sera étudié au cours du chapitre B.

1.5. Calcul des angles segmentaires et articulaires

On reprend les notations du début de la section 1.4. On introduit les angles segmentaires et les anglesarticulaires :

Définition 1.5 (Angles segmentaires et articulaires).On définit les p − 1 angles segmentaires comme les angles de vecteurs entre chaque segment [AjAj+1] et

l’horizontale :

∀j ∈ {1, ..., p− 1}, φj =(

�i,−−−−−→AjAj+1

). (1.12)

et les p− 1, angles articulaires comme les angles de vecteurs de deux segments successifs :

∀j ∈ {2, ..., p− 1}, θj =(−−−−−→

Aj−1Aj ,−−−−−→AjAj+1

)∈]− π, π], (1.13a)

et en posant par convention

θ1 = φ1 ∈]− π, π]. (1.13b)

6 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

Aj

Aj+1

φj

�i

(a) : segmentaire

Aj−1Aj

Aj+1

θj

(b) : articulaire

Figure 1.3. Angles.

Voir figure 1.3.

Remarque 1.6. Les angles sont définis à 2π près et le fait d’imposer à chaque angle articulaires d’appar-tenir à ]−π, π], n’est que conventionnel. Cependant, on remarquera que les valeurs ±π sont rarement atteintesen pratique !

Il est clair que grâce à la relation de Chasles, (1.13) devient

∀j ∈ {2, ..., p− 1}, θj = φj − φj−1, (1.14a)

θ1 = φ1 ∈]− π, π]. (1.14b)

On introduit les longueurs des segments [AjAj+1] :

∀j ∈ {1, ..., p− 1}, lj = AjAj+1. (1.15)

On note, pour tout j dans {1, ..., p}, xj et yj les coordonnées du point Aj . On en déduit alors que

x2 − x1 = l1 cosφ1,

y2 − y1 = l1 sinφ1,

puis que

x3 − x2 = l2 cosφ2,

y3 − y2 = l2 sinφ2,

et de façon générale que

∀j ∈ {1, ..., p− 1}, lj cosφj = xj+1 − xj , (1.16a)

lj sinφj = yj+1 − yj . (1.16b)

Les formules (1.16) permettent donc de calculer les lj et les φj en fonction des xj et des yj . On en déduitalors les angles θj .

Réciproquement, si l’on connaît x1, y1, les longueurs lj et les angles θj , on peut calculer les xj et des yjen utilisant (1.16) à l’envers. Plus précisément : on connaît φ1 = θ1. De θ2 = φ2 − φ1, on déduit φ2 = θ1 + θ2,puis de θ3 = φ3 − φ2, on déduit φ3 = φ2 + θ3 = θ1 + θ2 + θ3 et ainsi de suite jusqu’à φp−1 = θ1 + ...+ θp−1. Onen déduit alors

x2 = x1 + l1 cosφ1,

y2 = y1 + l1 sinφ1,

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.6. CALCUL DES COORDONNÉES DU CENTRE DE GRAVITÉ 7

puis que

x3 = x2 + l2 cosφ2 = x1 + l1 cosφ1 + l2 cos(φ2),

y3 = y2 + l2 sinφ2 = y1 + l1 sinφ1 + l2 sin(φ2),

et de façon générale que

∀j ∈ {1, ..., p− 1}, φj =

j∑k=1

θk, (1.17a)

∀j ∈ {2, ..., p}, xj = x1 +

j−1∑k=1

lk cosφk, (1.17b)

yj = y1 +

j−1∑k=1

lk sinφk. (1.17c)

Si on suppose maintenant connu le kinogramme sous la forme (1.8), on peut construire une matrice Θ deMn+1,p−1(R) telle que pour tout i dans {0, ..., n} et pour tout j dans {1, ..., p− 1},

Θi+1,j soit l’angle θj à l’instant ti (1.18)

et un vecteur (lj)1≤j≤p−1 des longueurs.Comme précédement, on pourra aussi calculer les approximations des dérivées premières et secondes des

angles.

Remarque 1.7. En toute rigueur, on peut calculer chacune des longueur à tout instant ti ; puisque celles-ci sont supposées être invariables dans le temps, on fera la moyenne temporelle de ces longueurs. Il faudradonc prendre garde que si l’on choisit comme paramètres descriptifs du mouvement les valeurs de x1, y1, leslongueurs lj et les angles θj , les valeurs initiales de x2, y2, .... xp et yp (lues à partir du kinogramme) serontremplacées par leurs expressions (a priori différentes) données par (1.17).

Voir les fonction (programmées de façon vectorielle) long_angle et reconst_angle et le script test_angle.

Remarque 1.8. On prendra garde au fait que les angles calculés au cours du temps peuvent présenter desdiscontinuités, puisque les angles articulaires ont été déterminés modulo 2π dans ]− π, π] (grâce à la fonctionmodulo2pi). On a utilisé la fonction matlab unwrap qui permet de palier cette difficulté. Voir la fonction test_unwrap, qui montre des angles θ définit par θ(t) = t2 − π, pour t ∈ [0, 6], leurs détermination modulo 2πdans] − π, π] et le traitement par unwrap qui rend de nouveau ces angles continu. (voir figure 1.19 page 18). Lafonction long_angle utilise donc cette fonction.

Exemple 1.9. Les figures 1.20 page 19 et 1.21 ont été obtenues à partir des fichiers de données donneeskinogbarrefix.txt et donneeskinogtapoint.txt, grâce aux script demo01b et demo02b.

1.6. Calcul des coordonnées du centre de gravité

1.6.1. Calcul des coordonnées du centre de gravité de chacun des segments

De façon générale, si on calcule les coordonnées du centre de gravité G du segment [PD] où P désignel’extrémité proximale et D l’extrémité distale, on utilise les coefficients kD ou kP (dont la somme vaut 1) etqui sont définis par

kP =GP

PD, kD =

GD

DP.

8 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

Les coefficients kP et kD sont donnés par exemple dans les tableaux anthropométriques de Winter (voir[Win90]). On déduit de l’équation précédente les deux formules équivalentes (O désigne l’origine du repère) :

−−→OG = kP

−−→PD +

−−→OP,

−−→OG = kD

−−→DP +

−−→OD.

Elles s’écrivent aussi sous les deux formes équivalentes suivantes :{xG = kP (xD − xP ) + xP ,

yG = kP (yD − yP ) + yP ,(1.19a)

{xG = kD(xP − xD) + xD,

yG = kD(yP − yD) + yD.(1.19b)

Ces deux formules sont équivalentes puisque kD + kP = 1. Elles sont aussi équivalentes à{xG = kDxP + kPxD,

yG = kDyP + kP yD.

1.6.2. Calcul des coordonnées du centre de gravité de l’ensemble d’un individu

On considère un individu modélisé par une suite de segments A1, . . . , Ap. On considère pour i dans{1, . . . , p− 1}, le coefficient tabulé (proximal ou distal) du segment [Ai, Ai+1] noté αi. Ce coefficient est égal àAiGi/AiAi+1. L’équation (1.19a) devient{

xGi = αi(xi+1 − xi) + xi,

yGi = αi(yi+1 − yi) + yi.(1.20)

où Gi est le centre de gravité du segment [Ai, Ai+1].Grâce a matlab, si X et Y désignent les matrices des abscisses et des coordonnées des points Ai au cours

du temps et alpha celles des coefficients αi, il suffit d’écrire :

XG=(di f f (CX. ’ ) ) . ’ . ∗ alphaa ( ones (1 , q ) , : )+CX( : , 1 : end−1);YG=(di f f (CY. ’ ) ) . ’ . ∗ alphaa ( ones (1 , q ) , : )+CY( : , 1 : end−1);

Voir la fonction CG_segments.Pour l’ensemble du corps, on écrira ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨

⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

xG =

p−1∑i=1

mixGi

M,

yG =

p−1∑i=1

miyGi

M,

ou ⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎩

xG =

p−1∑i=1

mi

MxGi,

yG =

p−1∑i=1

mi

MyGi,

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.7. ENSEMBLE DES FIGURES (COURBES) 9

où, pour chaque i, mi est la masse du segment i et (xGi, yGi) les coordonnées du centre de gravité du segmenti et M =

∑imi est la somme des masses de chacun des segments. On peut encore les écrire sous la forme⎧⎪⎪⎪⎪⎨

⎪⎪⎪⎪⎩xG =

p−1∑i=1

βixGi ,

yG =

p−1∑i=1

βiyGi ,

(1.21)

où βi désigne le rapport de la masse du segment [Ai, Ai+1] par la masse totale. Eux aussi sont donnés dans[Win90].

Voir la fonction CG_total, ainsi que l’exemple exemple_calcul_CG qui utilise les données du fichierdonneeskinogbarrefixB.txt.

1.7. Ensemble des figures (courbes)

1.7. ENSEMBLE DES FIGURES (COURBES) 11

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

2

4

6

8Fonction

fonctionvaleurs échantillonnées

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−20

0

20

40Dérivée

exacteapprochée

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−500

0

500Dérivée seconde

exacteapprochée

(a) : fe = 6Hz

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

2

4

6

8Fonction

fonctionvaleurs échantillonnées

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−20

0

20

40Dérivée

exacteapprochée

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−500

0

500Dérivée seconde

exacteapprochée

(b) : fe = 50Hz

Figure 1.4. Comparaison entre calculs exactes et approchés de dérivées.

0 0.2 0.4 0.6 0.8 1 1.2 1.41.5

2

2.5Abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.40

0.5

1

1.5

2Dérivée de l’abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−10

0

10

20Dérivée seconde de l’abscisse de la hanche

(a) : abscisse

0 0.2 0.4 0.6 0.8 1 1.2 1.4−2

−1.5

−1

−0.5Ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.40

0.5

1

1.5

2Dérivée de l’ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−20

0

20

40Dérivée seconde de l’ordonnée de la hanche

(b) : ordonnée

Figure 1.5. Calcul de dérivées à partir de données expérimentales.

12 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4−2

−1.5

−1

−0.5Positions de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.40

1

2

3Norme de la vitesse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.40

10

20

30Accélération de la hanche

Figure 1.6. Vitesse et accélérations approchées.

2.5 3 3.5 4 4.5 5 5.5

1.5

2

2.5

3

3.5

4

kinogramme de donneeskinogbarrefix

Figure 1.7. Kinogramme.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.7. ENSEMBLE DES FIGURES (COURBES) 13

2 2.5 3 3.5 4 4.5 5

1.5

2

2.5

3

3.5

4

vitesse de donneeskinogbarrefix Facteur d’échelle : 50

Figure 1.8. Kinogramme et vitesse spatiales.

2 2.5 3 3.5 4 4.5 5

1.5

2

2.5

3

3.5

4

accélération de donneeskinogbarrefix Facteur d’échelle : 1250

Figure 1.9. Kinogramme et accélérations au spatiales.

14 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.22

3

4

5

6abscisse de donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−100

−50

0

50abscisse de la vitesse approchée de donneeskinogbarrefix

12345

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18−2000

0

2000

4000abscisse de l’accélération de approchée de donneeskinogbarrefix

12345

Figure 1.10. Abscisses au cours du temps.

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.21

2

3

4

5ordonnée de donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−50

0

50

100ordonnée de la vitesse approchée de donneeskinogbarrefix

12345

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18−2000

−1000

0

1000

2000ordonnée de l’accélération de approchée de donneeskinogbarrefix

12345

Figure 1.11. Ordonnées au cours du temps.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.7. ENSEMBLE DES FIGURES (COURBES) 15

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

20

40

60

80

100norme de la vitesse approchée de donneeskinogbarrefix

12345

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.180

500

1000

1500

2000

2500

3000

3500norme de l’accération approchée de donneeskinogbarrefix

12345

Figure 1.12. Normes au cours du temps.

0.3 0.4 0.5 0.6 0.7 0.8

−0.25

−0.2

−0.15

−0.1

−0.05

0

0.05

0.1

0.15

0.2kinogramme de donneeskinogtapoint

Figure 1.13. Kinogramme.

16 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.3

−0.25

−0.2

−0.15

−0.1

−0.05

0

0.05

0.1

0.15

0.2

vitesse de donneeskinogtapoint Facteur d’échelle : 2.5

Figure 1.14. Kinogramme et vitesse spatiales.

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

accélération de donneeskinogtapoint Facteur d’échelle : 20

Figure 1.15. Kinogramme et accélérations au spatiales.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.7. ENSEMBLE DES FIGURES (COURBES) 17

0 0.2 0.4 0.6 0.8 1 1.2 1.40.2

0.4

0.6

0.8

1abscisse de donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.5

0

0.5

1abscisse de la vitesse approchée de donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−10

−5

0

5

10abscisse de l’accélération de approchée de donneeskinogtapoint

1234

Figure 1.16. Abscisses au cours du temps.

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.4

−0.2

0

0.2

0.4ordonnée de donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.3

−0.2

−0.1

0

0.1ordonnée de la vitesse approchée de donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−4

−2

0

2

4ordonnée de l’accélération de approchée de donneeskinogtapoint

1234

Figure 1.17. Ordonnées au cours du temps.

18 1. LECTURE ET TRAITEMENT (BRUTS) DE KINOGRAMMES

0 0.2 0.4 0.6 0.8 1 1.2 1.40

0.2

0.4

0.6

0.8

1norme de la vitesse approchée de donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.40

2

4

6

8

10norme de l’accération approchée de donneeskinogtapoint

1234

Figure 1.18. Normes au cours du temps.

0 1 2 3 4 5 6−1000

0

1000

2000Angles bruts (°)

0 1 2 3 4 5 6−200

0

200Angles modulo 360 (°)

0 1 2 3 4 5 6−1000

0

1000

2000Angles développés (°)

0 1 2 3 4 5 60

2

4

6Différences/360

Figure 1.19. Des angles dont l’amplitude dépasse 2π (convertis en degré).

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

1.7. ENSEMBLE DES FIGURES (COURBES) 19

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−300

−200

−100

0

100angles (en degrés) au cours du temps pour donneeskinogbarrefix

1234

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−4000

−2000

0

2000

4000vitesses angulaires (en degrés/s) approchées au cours du temps pour donneeskinogbarrefix

1234

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18−2

−1

0

1

2x 10

5accélération angulaires (en degrés/s2) approchées au cours du temps pour donneeskinogbarrefix

1234

Figure 1.20. Angles articulaires et leurs dérivées.

0 0.2 0.4 0.6 0.8 1 1.2 1.4−50

0

50

100

150angles (en degrés) au cours du temps pour donneeskinogtapoint

123

0 0.2 0.4 0.6 0.8 1 1.2 1.4−100

−50

0

50vitesses angulaires (en degrés/s) approchées au cours du temps pour donneeskinogtapoint

123

0 0.2 0.4 0.6 0.8 1 1.2 1.4−2000

−1000

0

1000

2000accélération angulaires (en degrés/s2) approchées au cours du temps pour donneeskinogtapoint

123

Figure 1.21. Angles articulaires et leurs dérivées.

CHAPITRE 2

Lissage et interpolation de données

Par soucis de présentation du texte, toutes les figures de courbes sont regroupées dans la section 2.7 page 27

2.1. Introduction

2.2. Rappels sur l’interpolation de fonctions de R dans R

Dans cette section, on se donne un intervalle [a, b] de R, f une fonction de I = [a, b] dans R, n ∈ N∗.On suppose que l’on connaît les valeurs de f uniquement en n + 1 points distincts de I notés x0, ..., xn (nonnécessairement équirépartis, ni croissants). On cherche à interpoler f , c’est-à-dire à trouver une fonction g

définie sur I, qui prennent les mêmes valeurs que f aux points xi. Pour toute la suite, on note

∀i ∈ {0, ..., n}, fi = f(xi). (2.1)

Naturellement, la fonction g n’est pas unique. Voyons quelques méthodes classiques.

2.2.1. Interpolation polynômiale

On cherche une fonction pn, polynômiale de degré au plus n telle que

∀i ∈ {0, ..., n}, pn(xi) = fi (2.2)

Dans ce cas, pn est unique. Nous renvoyons par exemple au chapitre 2 de [BM03] pour la théorie et laconstruction de pn. Sur le web, à l’adresse de Dunod, les sources matlab permettant de construire pn sontdisponibles (voir http://www.dunod.com). Parmi celles-ci, on pourra utiliser les fonctions test_diff_div_dist, diff_div_dist et eval_horner.

Exemple 2.1. Considérer l’exemple du fichier exemple_interpolation_poly qui interpole la fonctionf(x) = 1/(1+x2) sur [−3, 3] avec 6 points (voir figure 2(a) page 29) et avec 17 points (voir figure 2(b) page 29).Sur la deuxième figure, on constate que la fonction oscille au bord, d’où la nécessité d’envisager d’autres typesd’interpolation.

2.2.2. Interpolation au sens des moindres carrés

Pour palier la difficulté de la méthode de la section 2.2.1, on peut aussi au lieu de chercher une fonctionpn, polynômiale de degré au plus n vérifiant (2.2), rechercher une fonction de plus bas degré. Cependant, (2.2)ne sera plus vrai qu’au «sens des moindres carrés». C’est-à-dire, si q est un entier plus petit que n, on cherchepq polynômiale de degré au plus q, minimisant la distance entre son graphe et le nuage de point donné, soitencore trouver pq minimisant

n∑i=0

(pq(xi)− f(xi))2. (2.3)

Naturellement, le cas limite p = n correspond à la section 2.2.1.On ne donne pas non plus de théorie. On renvoie à [Cia85]. Seuls, quelques exemples sous matalb seront

proposés, grâce à la fonction polyfit. Voir par exemple la fonction exemple_interpolation_polyfit.

21

22 2. LISSAGE ET INTERPOLATION DE DONNÉES

Exemple 2.2. Ce fichier traite de nouveau l’interpolation de la fonction f(x) = 1/(1 + x2) [−3, 3] avec 6points et q = 3 (voir figure 3(a) page 29) et avec 17 points (voir figure 3(b) page 29). Sur la deuxième figure,les oscillations de la fonction interpolante exacte ont disparu. En revanche, cette interpolation devient moinsprécise, puisqu’elle ne passe plus par le nuage de point initial.

2.2.3. Interpolation par des splines

Une autre idées est de définir une fonction polynômiale par morceaux, c’est-à-dire définie sur chaqueintervalle [xi, xi+1]. Sur chacun de ces intervalles, elle sera de degré «petit». On interpolera en assurant ensuitela continuité de la fonction obtenue ainsi qu’un certain nombre de ses dérivées aux nœuds xi.

On ne donnera pas ici de théorie. Seuls, quelques exemples sous matalb seront proposés, grâce à la fonctioninterp1, qui utilise 4 types d’interpolation différents, que nous commentons sommairement :

• ’nearest’ : interpolation par plus proche voisin : linéaire ou constant entre deux points selon les cas ;• ’linear’ : interpolation linéaire : linéaire entre deux points ;• ’pchip’ : interpolation par morceaux cubiques d’Hermite : (c’est aussi ce que fait la fonction pchip)

sur chaque intervalle [xk, xk+1], un polynôme pk de degré 3 est déterminé, de telle façon que :– pk interpole les valeurs fk et fk+1 en xk et xk+1 (soit pk(xk) = fk et pk(xk+1) = fk+1), ainsi que

les valeurs des dérivées aux deux points extrémaux x0 et xn ;– il y a continuité de la dérivée des pk en chaque point xk, c’est-à-dire p′k−1(xk) = p′k(xk).– de plus, les pentes en xk sont définies afin d’assurer la monotonie de pk : si les données sont

montones sur un intervalle, il en est de même pour pk ; si un point présente un extrémum, il enest de même pour pk.

• ’spline’ : interpolation par spline cubique (c’est aussi ce que fait la fonction spline) : sur chaqueintervalle [xk, xk+1], un polynôme pk de degré 3 est déterminé, de telle façon que :

– pk interpole les valeurs fk et fk+1 en xk et xk+1 (soit pk(xk) = fk et pk(xk+1 = fk+1), ainsi queles valeurs des dérivées aux deux points extrémaux x0 et xn ;

– il y a continuité des dérivées première et secondes des pk en chaque point xk, c’est-à-dire p′k−1(xk) =

p′k(xk) et p′′k−1(xk) = p′′k(xk).– de plus, les pentes en xk sont définies afin d’assurer la monotonie de p′′k en chaque xk.

−3 −2 −1 0 1 2 3−1.5

−1

−0.5

0

0.5

1

1.5

datapchipspline

Figure 2.1. Comparaison de pchip et de spline.

Apparement, les deux fonctions pchip et spline sont très proches et construites de façon analogue. Seulesles pentes aux xk sont différentes. La fonction spline est plus lisse, puisque elle préserve la continuité de ladérivée seconde, ce qui n’est pas le cas de pchip. La fonction spline est plus précise si les données sont lisses,tandis que la fonction pchip présente moins d’oscillations si les données ne sont pas lisses. Pour comparer ces

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.3. «ENRICHISSEMENT» DE KINOGRAMMES 23

deux, fonctions, on pourra faire tourner le script compar_pchip_spline, directement issu de l’aide de matlabet qui fournit la figure 2.1.

Pour la théorie complète des splines, on pourra consulter [Boo78].

Exemple 2.3. Voir par exemple la fonction exemple_interpolation_interp1. Ce fichier traite de nou-veau l’interpolation de la fonction f(x) = 1/(1 + x2) sur [−3, 3] avec 6 points ou 17 points avec différentesméthodes. Voir la figure 2.4 page 30. Comparer les résultats de l’interpolation par spline cubique bien meilleursque précédemment avec 17 points.

Comparées aux méthode des deux sections précédentes, ces methodes (surtout splines cubique et interpo-lation d’Hermite) associe souplesse et précision.

2.2.4. Calculs des dérivées premières et secondes dans le cadre des sections 2.2.2 et 2.2.3

Concluons cette section par une remarque sur le calcul des dérivées exactes dans le cadre de l’interpolationpar spline, Hermite ou moindres carrés. Dans chacun de ces trois cas, les fonctions calculées par matlab sontstockées sous forme de tableaux, qui représentent les coefficients de polynômes. On pourra consulter l’aide dematlab pour les mots-clés suivants : polyval, polyder, fnder, fnval, mkpp et unmkpp. On pourra don ainsicalculer les dérivées exactes des fonctions interpolée et les assimiler aux dérivées du nuage de point étudiés.

Exemple 2.4. On pourra consulter le script exemple_interpolation_der_poly, proche du script exemple_interpolation_interp1. Ce fichier traite de nouveau l’interpolation de la fonction f(x) = 1/(1+x2) sur [−3, 3]

avec 6, 17 et 1000 points, accompagné du calcul des dérivées successives exactes de f , des dérivées exactes desfonctions interpolantes et de leur écart, pour les trois méthodes suivantes : moindres carrés, spline et pchip.Voir la figure 2.5 page 31. Conformément à ce qui a été annoncé, on constate la précision de l’interpolationpar spline cubique, qui respecte la continuité de la dérivée deuxième et pour laquelle l’écart entre les dérivéesexacte et les dérivées de interpolatrice est très petit pour 1000 points.

2.2.5. Autres méthodes

Il existe d’autres méthodes d’interpolation. Parmi elle, citons– l’approximation des fonctions par des fractions rationnelles (fractions continues). Voir [Pat91].– le recours aux fonctions périodiques (séries de Fourier). Voir [Sch01] ou [AF89]. On évoquera cette

méthode dans le chapitre B.– l’utilisation des ondelettes. Voir [KLR98]. On évoquera cette méthode dans le chapitre B.

2.3. «Enrichissement» de kinogrammes

Reprenons le fichier donneeskinogbarrefix.txt dont on a vu au cours de la section 1.4 qu’on pouvaitl’enrichir, c’est-à-dire rajouter des données non stockés. Nous alons nous servir des résultats de l’interpolationet de dérivation pour parvenir à cet objectif. Naturellement, les informations que l’on calcule sont déterminéespar l’une des théorie de l’interpolation vue et ne sont pas nécessairement en rapport avec les vrais mouvements !

Soit fe la fréquence d’échantillonage (en Hz) du kinogramme initial. On connaît donc toutes les valeursdes déplacements (abscisses xi et ordonnées yi) aux instants

∀i ∈ {0, ..., n}, ti = hi, (2.4)

où h est défini par (1.1). On souhaite obtenir une fréquence d’échantillonnage fer plus grande. Pour simplifier,on se donne se donne un entier q ≥ 1 et on suppose que

ferfe

= q. (2.5)

24 2. LISSAGE ET INTERPOLATION DE DONNÉES

On veut déterminer des valeurs de façon «plus riche», c’est-à-dire à tous les instants

∀i ∈ {0, ..., qn}, ti = heri =i

qfe, (2.6)

Nous allons donc calculer les fonctions interpolatrices x et y des valeurs (ti, xi) et (ti, yi) en utilisant l’une destrois méthodes suivantes :

– la théorie de l’interpolation linéaire de la section 2.2.1 ;– l’une des deux théorie spline ou pchip de la section 2.2.3.

Nous déterminons alors les dérivées premieres et secondes des fonctions interpolatrices calculées grâce auxrésultats de la section 2.2.4 en calculant les valeurs de x, x′, x′′ et y, y′ et y′′ aux valeurs définies par (2.6).

Remarque 2.5. Reprenons la remarque 1.7 page 7 du chapitre 1. Si les paramètres descriptifs du mou-vement sont les xi et les yi, on calculera leurs dérivées comme expliqué ci-dessus. En revanche, si on choisitcomme paramètres descriptifs du mouvement les valeurs de x1, y1, les longueurs lj et les angles θj , les valeursinitiales de x2, y2, .... xp et yp (lues à partir du kinogramme) seront remplacées par leurs expressions (a prioridifférentes) données par (1.17). De même, les dérivées premières et secondes de x2, y2, .... xp et yp doivent êtrecalculées à partir de (1.17), qui donnent après calculs simples (en notant les dérivées temporelles premières etsecondes u et u) :

∀j ∈ {1, ..., p− 1}, φj =

j∑k=1

θk, (2.7a)

∀j ∈ {2, ..., p}, xj = x1 −j−1∑k=1

lkφk sinφk, (2.7b)

yj = y1 +

j−1∑k=1

lkφk cosφk. (2.7c)

et

∀j ∈ {1, ..., p− 1}, φj =

j∑k=1

θk, (2.8a)

∀j ∈ {2, ..., p}, xj = x1 −j−1∑k=1

lk

(φk sinφk + φ2k cosφk

), (2.8b)

yj = y1 +

j−1∑k=1

lk

(φk cosφk − φ2k sinφk

). (2.8c)

On procédera donc ainsi :– Déterminer les valeurs des déplacements x1 et y1 et des angles θk et en déduire les dérivées premières

et secondes des interpolées ;– En déduire alors les valeurs des angles φk et des dérivées premières et secondes grâce à (1.17a), (2.7a)

et (2.8b).– En déduire alors les valeurs et les les dérivées premières et secondes de x2, y2, .... xp et yp grâce à

(1.17b), (1.17c), (2.7b), (2.7c), (2.8b) et (2.8c).

Voir la fonction matlab traitekinogrammeB qui lit un fichier de données et trace les kinogrammes éven-tuellement les vitesses et les accélérations, après avoir enrichi le kinogramme.

Exemple 2.6. En choisissant l’option spline, on obtient les figures 2.6 page 32 à 2.11 page 34 à partir dufichiers de données donneeskinogbarrefix.txt et en utilisant le script demo10.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.4. LISSAGE DE DONNÉES REPRÉSENTANT DES FONCTIONS DE R DANS R 25

Si on veut considérer comme pararamètres descriptifs du mouvement les valeurs de x1, y1, les longueurslj et les angles θj , on utilisera le script demo10b. Les angles calculés et leurs dérivées sont représentés en figure2.12. Un fichier d’animations a aussi été crée par matlab (voir fichier donneeskinogbarrefixB.avi. On pourracomparer ces figures aux figures de la section 1.4.

2.4. Lissage de données représentant des fonctions de R dans R

Nous avons constaté au cours du chapitre 1 la nécessité de nettoyer un fichier de données. Deux raisonspour cela ; tout d’abord des imprécisions de mesures peuvent perturber le signal et donc lui donner un bruitartificiel. De plus, les calculs des dérivées premières et secondes peut s’avérer désastreux si les signaux sonttrop bruités.

On se place de nouveau dans le cadre de la section 2.2 Dans cette section, on se donne un intervalle [a, b]

de R, f une fonction de I = [a, b] dans R, n ∈ N∗. On suppose que l’on connaît fi, les valeurs de f uniquementen n + 1 points distincts de I notés x0, ..., xn (non nécessairement équirépartis, ni croissants). On cherche àdéterminer une fonction g qui passe «près des points» xi et qui soit moins bruitées, c’est-à-dire qui soit pluslisse. On peut donner la définition intuitive d’un lisseur :

Définition 2.7. Un lisseur est défini à partir d’un paramètre α qui dévrit un ensemble J . Il renvoie àà partir des données x0, ..., xn et f0, ...., fn, une fonction g de I dans R en effectuant un compromis entrela proximité avec les données, c’est-à-dire en minimisant la quantité

∑ni=0 (g(xi)− fi)

2 et la régularité de lafonction g. Si p est à une extrémité de J , ce lisseur est totalement impuissant, c’est-à-dire que pour tout i,g(xi) = fi mais la fonction g n’est pas lisse ; au contraire, p est à l’autre extrémité de J , alors ce lisseur esttrop puissant, c’est-à-dire que la fonction g est très lisse mais très éloignée des données.

Nous ne donnerons pas de théorie mais seulement quelques méthodes classiques et les sources matlabcorrespondantes. Trois méthodes usuelles :

– La manière la plus simple est la moyenne glissante à coefficients constants ou variables. On pourra consul-ter la fonction matlab tsmovavg (renommée OLDtsmovavg) et l’exemple associé exemple_moyenne_glissante. Ce script utilise les données stockées dans le fichier faes_lift_filtre.txt, qui proviennentd’enregistrements d’EMG. Ce type de lissage, beaucoup utilisé pour le traitement d’EMG ne sera pasutilisé dans ce cours.

Remarque 2.8. Attention, la fonction tsmovavg n’est pas vectorielle, donc non optimale. Elle adisparu, pour cela, des versions suivantes de matlab. Voir les deux fonctions relation_lineaire ettest_relation_lineaire.

– On peut aussi utiliser la méthode de la section 2.2.2. Le polynôme obtenu par interpolation au sens desmoindres carrés peut dans certains cas, moins osciller que les données. Dans, ce cas, α est le degré dupolynôme au sens des moindres carrés p ; s’il est égal à n+1, p passe par chacun des points, mais oscillebeaucoup. Au contraire, si p est constant, il est trés éloigné des données mais très lisse.

– Enfin, citons deux méthodes puissante fondées de nouveau sur les splines et qui utilisent, sous matlab,les fontions csaps et spaps. Nous utiliseront uniquement la fonction csaps (renommée OLDcsaps). Lapremière d’entre elle utilise une spline cubique lisse (smooth en anglais) et est définie par un paramètrep ∈ [0, 1]. La seconde utilise une spline plus générale un paramètre de tolérance, qui doit être proche dezéro. Pour la fonction csaps, elle renvoie la spline cubique g qui minimise

p

n∑i=0

(fi − g(xi))2+ (1 − p)

∫(g′′(x))2dx.

Si p = 0, la spline obtenue est la droite aux moindres carrés des données, tandis que si p = 1, la splineobtenue passe exactement par tous les points et correspond exactement par la spline cubique interpolantces points. Les autres valeurs de p correspondent à différents lissages de données.

26 2. LISSAGE ET INTERPOLATION DE DONNÉES

Pour chacune des trois méthodes, nous pouvons obtenir les dérivées de la fonction interpolatrice calculée.

Exemple 2.9. Voir l’exemple exemple_lissage qui lisse les données du fichier donneeshanche.txt. Lesdifférentes figures produites sont données en figures 2.13 page 36 et 2.14 page 37. Les vitesses et les déplace-ments obtenus sont bien plus lisses que ceux obtenus en section 1.2.2 page 2 (voir figures 1.6 page 12), selonles valeurs de p et du degrés du polynôme au moindres carrés.

Retenons qu’il n’existe pas de lissage universel. Chaque méthode proposée est paramétrée par un paramètre(degré du polynôme choisi pour les moindres carrés ou valeur de p pour les slines cubiques) qui correspond àla «puissance» du lissage obtenu. Si le lissage est trop puissant (degré 0 au moindre carrés ou p = 0 pour laspline, ce qui revient au même), les données sont trop éloignées des données initiales ; au contraire, s’il est troppeu puissant (degré maximum pour les moindres carrés ou p = 1) les données ne sont plus lissés et le lissageressort les données initiales. Il y aura toujours un compromis à faire entre la fidélité des données lissées parrapport aux données initiales et la puissance du lissage. Attention aussi à ne pas choisir le paramètre du lissagepour obtenir les données que l’on souhaite voir apparaître !

On reviendra sur cette notion de filtrage au cours du chapitre B.

2.5. Lissage de données de kinogrammes

Appliquons la méthode de lissage par spline cubique de la section 2.4 pour le lissage de kinogramme. Onpourra aussi enrichir le kinogramme obtennu en interpolant les données et en calculant les dérivées en utilisantles technique de la section 2.3.

Remarque 2.10. Comme pour les remarques 1.7 page 7 et 2.5 page 24, il faut prendre garde au fait que siles paramètres descriptifs du mouvement sont les xi et les yi, on les lissera et on calculera leurs dérivées commeexpliqué ci-dessus. En revanche, si on choisit comme paramètres descriptifs du mouvement les valeurs de x1, y1,les longueurs lj et les angles θj , les valeurs initiales de x2, y2, .... xp et yp (lues à partir du kinogramme) serontremplacées par leurs expressions (a priori différentes) données par (1.17). De même, les dérivées premières etsecondes de x2, y2, .... xp et yp doivent être calculées à partir de (2.7) et (2.8).

On procédera donc ainsi :– Lisser les valeurs des déplacements x1 et y1 et des angles θk et en déduire les dérivées premières et

secondes des interpolées lisées ;– En déduire alors les valeurs des angles φk et des dérivées premières et secondes grâce à (1.17a), (2.7a)

et (2.8b).– En déduire alors les valeurs et les les dérivées premières et secondes de x2, y2, .... xp et yp grâce à

(1.17b), (1.17c), (2.7b), (2.7c), (2.8b) et (2.8c).

Voir la fonction matlab traitekinogrammeC qui lit un fichier de données et trace les kinogrammes éven-tuellement les vitesses et les accélérations et les angles, après avoir filtré et enrichi le kinogramme.

Exemple 2.11. On obtient les figures 2.15 page 38 à 2.18 page 39 à partir du fichiers de données donneeskinogtapoint.txt et en utilisant le script demo11.

Si on veut considérer comme pararamètres descriptifs du mouvement les valeurs de x1, y1, les longueurslj et les angles θj , on utilisera le script demo11b. Les angles calculés et leurs dérivées sont représentés en figure2.19.

Un fichier d’animations a aussi été crée par matlab (voir fichier donneeskinogtapointB.avi. On pourracomparer ces figures aux figures de la section 1.4.

2.6. Lissages "adaptés"

Dans certains cas, on peut prévoir le type de courbes auquel s’attendre et utiliser cette propriété pourlisser "intelligemment" les données. On consultera par exemple [CBVL12, CBVL13].

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 27

2.7. Ensemble des figures (courbes)

2.7. ENSEMBLE DES FIGURES (COURBES) 29

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(a) : 6 points−3 −2 −1 0 1 2 3

−1.5

−1

−0.5

0

0.5

1

fonction interpolatricefonction initiale

(b) : 17 points

Figure 2.2. Interpolation de la fonction f(x) = 1/(1 + x2) sur [−3, 3] .

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(a) : 6 points et q = 3

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(b) : 17 points et q = 5

Figure 2.3. Interpolation de la fonction f(x) = 1/(1 + x2) sur [−3, 3] au sens des moindres carrés.

30 2. LISSAGE ET INTERPOLATION DE DONNÉES

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(a) : 6 points avec une interpola-tion linéaire

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(b) : 17 points avec une interpola-tion linéaire

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1fonction interpolatricefonction initiale

(c) : 6 points avec une interpolationla plus proche

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1fonction interpolatricefonction initiale

(d) : 17 points avec une interpola-tion la plus proche

−3 −2 −1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(e) : 6 points avec une interpolationspline cubique

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(f) : 17 points avec une interpola-tion spline cubique

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(g) : 6 points avec une interpola-tion d’Hermite

−3 −2 −1 0 1 2 30.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

fonction interpolatricefonction initiale

(h) : 17 points avec une interpola-tion d’Hermite

Figure 2.4. Interpolation de la fonction f(x) = 1/(1 + x2) sur [−3, 3] avec différentes mé-thodes .

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 31

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 0.3641

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 0.57573

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−2

−1

0

1Dérivée d’ordre2 ; écart : 1.8672

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−5

0

5Dérivée d’ordre3 ; écart : 4.6686

fonction interpolatricefonction initiale

(a) : 6 points avec une interpolation au moindrescarré de degré 3

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 0.042737

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 0.79794

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−10

−5

0

5Dérivée d’ordre2 ; écart : 9.6493

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−100

0

100Dérivée d’ordre3 ; écart : 65.8453

fonction interpolatricefonction initiale

(b) : 17 points avec une interpolation au moindrescarré de degré 10

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 0.26471

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 0.64952

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−2

0

2Dérivée d’ordre2 ; écart : 2

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−5

0

5Dérivée d’ordre3 ; écart : 4.6686

fonction interpolatricefonction initiale

(c) : 6 points avec une interpolation avec pchip

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 9.017e−006

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 0.00594

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−10

−5

0

5Dérivée d’ordre2 ; écart : 4.6306

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−2000

0

2000Dérivée d’ordre3 ; écart : 1331.9993

fonction interpolatricefonction initiale

(d) : 1000 points avec une interpolation avecpchip

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 0.1807

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 0.41242

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−2

−1

0

1Dérivée d’ordre2 ; écart : 1.5333

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−5

0

5Dérivée d’ordre3 ; écart : 4.6686

fonction interpolatricefonction initiale

(e) : 6 points avec une interpolation avecspline

−3 −2 −1 0 1 2 30

0.5

1Dérivée d’ordre0 ; écart : 8.133e−011

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−1

0

1Dérivée d’ordre1 ; écart : 4.1691e−008

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−2

−1

0

1Dérivée d’ordre2 ; écart : 7.1128e−005

fonction interpolatricefonction initiale

−3 −2 −1 0 1 2 3−5

0

5Dérivée d’ordre3 ; écart : 0.07146

fonction interpolatricefonction initiale

(f) : 1000 points avec une interpolation avecspline

Figure 2.5. Interpolation de la fonction f(x) = 1/(1 + x2) sur [−3, 3] avec différentes mé-thodes et comparaison entre les dérivées exacte et les dérivées des fonctions interpolatrices.

32 2. LISSAGE ET INTERPOLATION DE DONNÉES

1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5

1.5

2

2.5

3

3.5

4

kinogramme de ../lecture kinogramme/donneeskinogbarrefix

Figure 2.6. Kinogramme.

1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5

1.5

2

2.5

3

3.5

4

vitesse de ../lecture kinogramme/donneeskinogbarrefix Facteur d’échelle : 76.9231

Figure 2.7. Kinogramme et vitesse spatiales.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 33

1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5

1.5

2

2.5

3

3.5

4

accélération de ../lecture kinogramme/donneeskinogbarrefix Facteur d’échelle : 3333.3333

Figure 2.8. Kinogramme et accélérations au spatiales.

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.22

3

4

5

6abscisse de ../lecture kinogramme/donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−100

0

100

200abscisse de la vitesse approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−1

−0.5

0

0.5

1x 10

4 abscisse de l’accélération de approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

Figure 2.9. Abscisses au cours du temps.

34 2. LISSAGE ET INTERPOLATION DE DONNÉES

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.21

2

3

4

5ordonnée de ../lecture kinogramme/donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−100

−50

0

50

100ordonnée de la vitesse approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−5000

0

5000ordonnée de l’accélération de approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

Figure 2.10. Ordonnées au cours du temps.

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

20

40

60

80

100

120norme de la vitesse approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

2000

4000

6000

8000

10000norme de l’accération approchée de ../lecture kinogramme/donneeskinogbarrefix

12345

Figure 2.11. Normes au cours du temps.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 35

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−300

−200

−100

0

100angles (en degrés) au cours du temps pour ../lecture kinogramme/donneeskinogbarrefix

1234

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−5000

0

5000

10000vitesses angulaires (en degrés/s) approchées au cours du temps pour ../lecture kinogramme/donneeskinogbarrefix

1234

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2−5

0

5x 10

5accélération angulaires (en degrés/s2) approchées au cours du temps pour ../lecture kinogramme/donneeskinogbarrefix

1234

Figure 2.12. Angles au cours du temps.

36 2. LISSAGE ET INTERPOLATION DE DONNÉES

0 0.2 0.4 0.6 0.8 1 1.2 1.41.5

2

2.5Abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−1

0

1

2Dérivée de l’abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−20

−10

0

10

20Dérivée seconde de l’abscisse de la hanche

(a) : abscisses

0 0.2 0.4 0.6 0.8 1 1.2 1.4−2

−1.5

−1

−0.5

0Ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−4

−2

0

2

4Dérivée de l’ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−40

−20

0

20

40Dérivée seconde de l’ordonnée de la hanche

(b) : ordonnées

Figure 2.13. Lissage de données par moindres carrés.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 37

0 0.2 0.4 0.6 0.8 1 1.2 1.41

1.5

2

2.5Abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−1

0

1

2Dérivée de l’abscisse de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−40

−20

0

20

40Dérivée seconde de l’abscisse de la hanche

(a) : abscisses

0 0.2 0.4 0.6 0.8 1 1.2 1.4−2

−1.5

−1

−0.5Ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−4

−2

0

2

4Dérivée de l’ordonnée de la hanche

0 0.2 0.4 0.6 0.8 1 1.2 1.4−50

0

50Dérivée seconde de l’ordonnée de la hanche

(b) : ordonnées

Figure 2.14. Lissage de données par splines cubiques.

38 2. LISSAGE ET INTERPOLATION DE DONNÉES

0.3 0.4 0.5 0.6 0.7 0.8

−0.25

−0.2

−0.15

−0.1

−0.05

0

0.05

0.1

0.15

kinogramme de ../lecture kinogramme/donneeskinogtapoint

Figure 2.15. Kinogramme.

0 0.2 0.4 0.6 0.8 1 1.2 1.40.2

0.4

0.6

0.8

1abscisse de ../lecture kinogramme/donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.5

0

0.5

1abscisse de la vitesse approchée de ../lecture kinogramme/donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−10

−5

0

5

10abscisse de l’accélération de approchée de ../lecture kinogramme/donneeskinogtapoint

1234

Figure 2.16. Abscisses au cours du temps.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

2.7. ENSEMBLE DES FIGURES (COURBES) 39

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.4

−0.2

0

0.2

0.4ordonnée de ../lecture kinogramme/donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.3

−0.2

−0.1

0

0.1ordonnée de la vitesse approchée de ../lecture kinogramme/donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.4−4

−2

0

2

4ordonnée de l’accélération de approchée de ../lecture kinogramme/donneeskinogtapoint

1234

Figure 2.17. Ordonnées au cours du temps.

0 0.2 0.4 0.6 0.8 1 1.2 1.40

0.2

0.4

0.6

0.8

1norme de la vitesse approchée de ../lecture kinogramme/donneeskinogtapoint

1234

0 0.2 0.4 0.6 0.8 1 1.2 1.40

2

4

6

8

10norme de l’accération approchée de ../lecture kinogramme/donneeskinogtapoint

1234

Figure 2.18. Normes au cours du temps.

40 2. LISSAGE ET INTERPOLATION DE DONNÉES

0 0.2 0.4 0.6 0.8 1 1.2 1.4−50

0

50

100

150angles (en degrés) au cours du temps pour ../lecture kinogramme/donneeskinogtapoint

123

0 0.2 0.4 0.6 0.8 1 1.2 1.4−100

−50

0

50vitesses angulaires (en degrés/s) approchées au cours du temps pour ../lecture kinogramme/donneeskinogtapoint

123

0 0.2 0.4 0.6 0.8 1 1.2 1.4−2000

−1000

0

1000

2000accélération angulaires (en degrés/s2) approchées au cours du temps pour ../lecture kinogramme/donneeskinogtapoint

123

Figure 2.19. Angles au cours du temps.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

CHAPITRE 3

Espaces de travail plans

On pourra consulter les publications originales [BLM07, BLM10].

3.1. Introduction

Dans un organisme humain, il existe plusieurs chaînes articulaires formées de segments rigides ouvertes,c’est-à-dire, fixées à une extrémité et libres à l’autre (par exemple, le membre supérieur). L’espace décritpar l’extrémité libre de cette chaîne (par exemple le doigt) est appelé « espace de travail » (workspace).On s’intéresse aux limites de cet espace de travail (reach envelop) [Mol98]. Les définitions précises sousforme d’équations de ces limites sont fondamentales pour l’étude de nombreux phénomènes en bioméca-nique. Par exemple, ces définitions mettent en jeu des hypothèses concernant le contrôle du mouvementhumain (redondance des degrés de liberté) et interviennent dans les tâches de pointage. De nombreux tra-vaux existent pour définir ces limites de l’espace de travail [Ber67, SvGv95, GBvT95]. En robotique oubiomécanique, l’une des méthodes utilisées consiste à écrire la position du doigt comme fonction des anglesarticulaires 1 et à en déterminer les limites en exécutant des cacluls symboliques sur les dérivées partielles[AMAYH97, AMY97, AMYS98, AMYZT04, YZCAM04, DPH01]. Ces méthodes sont complexes etcoûteuses. On propose une méthode fondée sur une propriété géométrique simple (dans un contexte plan) pourdéterminer les limites des espaces de travail.

En robotique ou en biomécanique, les applications sont nombreuses : pour déplacer un bras humain oude robot, il est important de savoir si la cible à atteindre est atteignable ! De nombreux travaux sont relatifsà la cinématique inverse (voir par exemple [BNdFPS06, BPV04]) : comment trouver une façon explicited’atteindre un point de l’espace ?

Plus précisément, en biomécanique, les tâches de pointage sont souvent étudiées. Il s’agit de déterminercomment un bras se déplace d’un point à un autre [TS05, SS99, SSL00]. Cependant, les auteurs n’étudientpas toujours si les positions initiale et finale sont bien dans l’espace de travail.

3.2. Définitions

Soient(O,�i,�j

)un repère orthonormé direct, p un entier supérieur ou égal à deux, (li)1≤i≤p p nombres

strictement positifs, et(θ+i)1≤i≤p

et(θ−i)1≤i≤p

2p angles vérifiant

∀i ∈ {1, ..., p}, −π < θ−i < θ+i ≤ π. (3.1)

On définit l’espace de travail comme l’ensemble des points Ap vérifiant (voir figure 3.1 page suivante).

A0 = 0,(�j,−−→0A1

)= θ1, (3.2a)

∀i ∈ {2, ..., p}, (−−−−−−→Ai−2Ai−1,

−−−−→Ai−1Ai

)= θi, ∀i ∈ {1, ..., p}, Ai−1Ai = li, (3.2b)

1. C’est-à-dire l’angle entre un segment et le suivant.

41

42 3. ESPACES DE TRAVAIL PLANS

�j

�iO

A1

A2

Ap−1

Ap

l1

l2

l3

lp

θ1

θ2

θ3

θp

Figure 3.1. Le sytème plan considéré.

avec les contraintes sur les angles articulaires

∀i ∈ {1, ..., p}, θi ∈ [θ−i , θ+i ]. (3.2c)

On considère la fonction Φp de F vers R2, d’ensemble de définition

F =

p∏i=1

[θ−i , θ+i ], (3.3)

et définie par

∀(θ1, ..., θp) ∈ F, Φp

(θ1, ..., θp

)= Ap. (3.4)

On donne la définition suivante :

Définition 3.1. Pour tout x = (θ1, ...., θp) ∈ F , pour tout i ∈ {1, ..., p}, la i-ième contrainte (3.2c)est active si θi ∈ {θ−i , θ+i } et inactive si θi ∈]θ−i , θ+i [, soit, en d’autres termes, θi ∈ {θ−i , θ+i } est saturé etθi ∈]θ−i , θ+i [ est libre.

On cherche à définir la frontière ∂D = D \◦D de D = Φp(F ) où F est le pavé de Rp défini par (3.3). Ici,

D = Φp(F ) désigne l’ensemble des points atteints par Φp. Sa frontière est l’ensemble des points qui sont sur lafrontière de D, c’est-à-dire les points qui sont dans D mais pas à l’intérieur de D.

3.3. Comportement de la jacobienne de Φp sur la frontière de l’espace de travail

Dans [BLM10, section 3], on donne des conditions nécessaires exprimées de façon géométrique permettantde traduire simplement qu’un point est sur la frontière de l’espace de travail. Ces conditions sont des consé-quences géométriques de résultats très classiques (voir [AMAYH97, AMY97, AMYZT04]) portant sur la

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

3.3. COMPORTEMENT DE LA JACOBIENNE DE Φp SUR LA FRONTIÈRE DE L’ESPACE DE TRAVAIL 43

matrice jacobienne 2 de Φp : sur la frontière de l’espace de travail, le rang de cette matrice est nécessairementstrictement plus petit que la dimension n de l’espace dans lequel on est (n = 2 ou n = 3). En effet, si le rangest égal à n, localement Φp(x) décrit un boule ouverte, contredisant le fait que l’on est au bord de l’espace detravail.

Dorénavant, on suppose que l’on est dans le plan (n = 2).Cette propriété peut s’énoncer de façon purement géométrique. C’est d’ailleurs l’idée simple suivante qui

a sous-tendu ce travail !

�j

�iO

Ai

Aj

Ap

λ

μ

Figure 3.2. Deux angles λ et μ varient.

On suppose que deux angles λ et μ associés à deux points Ai et Aj (voir figure 3.2) peuvent varier, lesautres étant fixes. Si λ varie seul, Ap décrit un arc de cercle de centre Ai et localement sur une directionperpendiculaire à (AiAp). Si, au contraire, μ varie seul, Ap décrit un arc de cercle de centre Aj et localementsur une direction perpendiculaire à (AjAp). Si le point Ap est sur la frontière, les deux directions (AiAp) et(AjAp) ne peuvent être que confondues. En effet, sinon, Ap décrit une boule ouverte, ce qui contredit le faitque Ap est sur la frontière. Les trois points Ai, Aj et Ap sont donc alignés.

Cette idée est présente par exemple pour le cas particulier d’un robot dans [MGM98] mais ne semble pasêtre exploitée de façon systématique pour définir les limites d’espace de travail plan dans la littérature.

À cette idée s’ajoute l’idée simple suivante qui permet de donner un algorithme de construction de lafrontière comme réunion finie d’arcs de cercle.

Si Ap appartient à la frontière de l’espace de travail et si au moins deux angles correspondant aux pointsAi sont libres, alors, grâce à l’idée de la page 43, ces différents points Ai et le point Ap sont alignés (voir figure3.3). Ainsi, dans ce cas, on peut montrer qu’un seul des angles peut finalement varier, les autres étant soitsaturés soit déterminés grâce à la condition d’alignement. Ainsi, ces points appartiennent à une réunion finied’arcs de cercle.

Si, au plus, l’un des angles est libre, on a encore l’appartenance de Ap à un arc de cercle.Cette seconde idée a permis de donner un construction algorithmique d’une réunion finie d’arcs de cercle

recouvrant totalement la frontière de l’espace de travail. Elle ne semble pas avoir été utilisée dans la littérature.Naturellement, on retrouve les mêmes courbes que dans [AMAYH97, AMY97, AMYZT04] mais l’énormeavantage de cette description est qu’elle donne une propriété géométrique simple et intrinsèque permettant la

2. Elle est définie par

∀(i, j) ∈ {1, . . . , n} × {1, . . . , p}, (dΦ(x))i,j =∂φi

∂xj(x). (3.5)

44 3. ESPACES DE TRAVAIL PLANS

�j

�iO

Ai1−1

Ai2−1

Aik−1

Aiq−1Ap

Figure 3.3. Interprétation géométrique d’alignement : le point Ap et les points Ai correspon-dant à des angles libres sont réprésentés par des •, tandis que les points Aj correspondant àdes angles saturés sont réprésentés par des ◦.

construction de courbes, ailleurs construites en écrivant que le rang de la jacobienne est inférieur ou égal à 1et en déterminant, grâce au calcul symbolique, les différentes courbes obtenues, ce qui est beaucoup plus long !

3.4. Définition des arcs de cercles recouvrant la frontière de l’espace de travail

On peut alors définir un ensemble fini d’arcs de cercles recouvrant la frontière de l’espace de travail (voir[BLM07, section 3] ou [BLM10, section 4]) et ce, de façon algorithmique [BLM10, Annexes B et C].

3.5. Quelques tracés d’espace de travail

Pour les simulations, le membre supérieur droit d’un sujet de taille 1.80 m. est considéré. Ce membresupérieur est contraint de se déplacer dans le plan transverse, c’est-à-dire perpendiculairement à la colonnevertébrale. Les longueurs des membre supérieurs sont des données anthropométriques [Win90]. Les longueursdes segments sont données par leur rapport sur la taille de l’individu (0.108, 0.146 et 0.186 pour la main, l’avans-bras et le bras). Les angles correspondent aux minimas et aux maximas des articulations des membres supérieurshumains, c’est-à-dire, pour l’épaule : abduction/adduction (−60◦/120◦), pour le coude : flexion/extension(0◦/130◦) et pour le poignet abduction/adduction (−10◦/25◦). Voir le tableau 3.1.

Voir la figure 3.1, où p = 3 et O est l’épaule, A1 est le coude et A2 est le poignet, c’est-à-dire, le segment[0A1] est l’avant-bras, [A1A2] est le bras et [A2A3] est la main.

cas p longueur du segment/ taille du sujet(θ−i)1≤i≤p

(◦)(θ+i)1≤i≤p

(◦) figures

1 1 0.440 -60 120 3.4.(a)2 2 0.186 ; 0.254 -60 ; 0 120 ; 130 3.4.(b)3 3 0.186 ; 0.146 ; 0.108 -60 ; 0 ; -10 120 ; 130 ; 25 3.4.(c)

Table 3.1. Paramètres utilisés

(1) Le cas 1 correspond à un bras libre et le bras et la main fixés (entre eux et à l’avant-bras) ;

(2) Le cas 2 correspond à un bras et un avant-bras libres et la main fixée (à l’avant-bras) ;

(3) Le cas 3 correspond à tous les segments libres.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

3.5. QUELQUES TRACÉS D’ESPACE DE TRAVAIL 45

−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

(a)−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

(b)

−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

(c)

Figure 3.4. Simulations correspondant aux cas 1 (a), 2 (b) et 3 (c). La réunion des arcsde cercle tracés recouvre la frontière de l’espace de travail et donc une partie de certains deces arcs de cercle n’est pas contenue sur la frontière. L’espace de travail (discret) est tracé enjaune. L’arc de cercle tracé en bleu correspond aux points pour lesquels les trois angles sontlibres. Les arcs de cercle tracés en vert correspondent aux points pour lesquels un angle auplus est libre.

Chaque figure (voir figure 3.4) présente les arcs de cercles déterminés et, pour p ≥ 2, l’espace de travail(dicret) a été obtenu en traçant Φp(θ

q1, . . . , θ

qp) où (θq1, . . . , θ

qp) décrit un ensemble fini inclus dans [θ−1 , θ

+1 ] ×

[θ−2 , θ+2 ]× · · · × [θ−p , θ

+p ]. Pour une meilleure lecture, le membre supérieur a été dessiné dans une position fixée.

Sur les figures, on peut constater qu’il existe des arcs de cercles superflus. En effet, l’algorithme utiliséfournit des conditions nécessaires, mais non suffisantes d’être sur la frontière. Ces difficultés ont aussi été misesen évidences dans [AMAYH97, AMY97, AMYS98].

Nous avons aussi tracé un espace de travail (totalement artificiel !) pour un membre supérieur à 6 degrésde liberté (voir figure 3.5 page suivante).

Voir aussi [BLM10, section 5].

46 3. ESPACES DE TRAVAIL PLANS

−1.5 −1 −0.5 0 0.5 1 1.5

−1

−0.5

0

0.5

1

Figure 3.5. Un espace de travail pour un bras à 6 degrés de liberté.

3.6. Conclusion

Une description intrinsèque d’une courbe du plan, sous forme de réunion finie d’arcs de cercle, a doncété fournie, grâce à une propriété géométrique très simple, cette courbe recouvrant totalement la frontière del’espace de travail (plan) recherché.

Puisque seule une condition nécessaire a été trouvée, il reste à éliminer les parties d’arcs de cercle superfluesqui ne sont pas incluses dans la frontière. Par ailleurs, les définitions et algorithmes présentés dans ce chapitre etdans [BLM10] sont valables pour des problèmes bidimensionnels mais ils peuvent être étendus à des problèmestridimensionnels. Les idées restent les mêmes mais leur traduction est plus difficile à mettre en œuvre, à causedes définitions des angles articulaires. Il faut alors utiliser les angles d’Euler, les matrices de rotations et lesmatrices (4, 4) homogènes, dites de Denavit-Hartenberg. Voir [DH55] repris par exemple dans [LCRZ96] ouchapitre 4 de ce cours, avec les recommandations de [WvdHV+05].

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

CHAPITRE 4

Descriptions des angles articulaires en dimensions 2 et 3

4.1. Introduction

On reprend la problématique du chapitre 3, mais le membre supérieur est considéré cette fois-ci dansl’espace. Les articulations ont alors plus de «degrés de liberté» :

– Poignet : 2 rotations possibles.– coude : 3 rotations possibles.– épaule 3 : rotations possibles.Nous allons, dans la section 4.2, établir de nouveau les relations (1.17) entre angles articulaires et coor-

données des articulations du chapitre 1, par un moyen différent, mais qui permettre d’introduire les notionsde coordonnées homogènes en deux dimensions et les matrices de changement de repère. Ces notions serontensuite appliquées dans la section 4.3 pour un modèle complet en trois dimensions.

4.2. Rappels sur les angles en deux dimensions

4.2.1. Changements de repères affines

�i

�j

0

P�i′

�j′

�j′

0′

Figure 4.1. le changement de repère affine

On considère deux repères quelconques(0,�i,�j

)et(0′,�i′,�j′

)du plan (affine). Soit un point P du point de

coordonnées (x, y) et (x′, y′) dans chacun des deux répères(0,�i,�j

)et(0′,�i′,�j′

). Voir figure 4.1.

On suppose que l’on connaît les coordonnées de O′ dans le repère(0,�i,�j

)grâce à

−−→OO′ = A�i+B�j, (4.1a)

47

48 4. DESCRIPTIONS DES ANGLES ARTICULAIRES EN DIMENSIONS 2 ET 3

et les coordonnées des vecteurs �i′ et �j′ dans la base (vectorielle)(�i,�j)

grâce à

{�i′ = a�i+ b�j,

�j′ = c�i+ d�j(4.1b)

Exprimons x′ et y′ en en fonction de x et de y. Nos hypothèses s’expriment donc par−−→OP = x�i + y�j,−−→O′P = x′�i′ + y′�j′.

Grâce à (4.1), on a donc

x�i+ y�j =−−→OP,

=−−→OO′ +

−−→O′P ,

= A�i+B�j + x′�i′ + y′�j′,

= A�i+B�j + x′(a�i+ b�j

)+ y′

(c�i+ d�j

),

= (x′a+ y′c+A)�i+ (x′b+ y′d+ B)�j,

et donc grâe à l’unicité de la décomposition

x = x′a+ y′c+A, (4.2a)

y = x′b+ y′d+B (4.2b)

4.2.2. Produit matriciels

Les matrices sont des «tableaux» que l’on additionne composantes par composantes, que l’on multipliepar une règle particulière (expliquée en cours).

On pourra consulter le chapitre 3 de [Bas03]. Voir notamment la page 44 pour le produit matrice-vecteur.

4.2.3. Expression matricielle

On notant les matrices M et T

M =

(a c

b d

)(4.3)

T =

(A

B

)(4.4)

X =

(x

y

)(4.5)

X ′ =(x′

y′

)(4.6)

on peut écrire l’équation (4.2) sous la forme «condensée» matricielle

X =MX ′ + T (4.7)

Remarque 4.1. Pour les habitués de l’algèbre linéaire, cette égalité peut se traduire de deux façon :– c’est la formule de changement de repère, de «l’ancien» repère

(0,�i,�j

)vers le nouveau repère

(0′,�i′,�j′

);

la formule (4.1b) fournit les composantes des vecteurs �i′ et �j′ en fonction des vecteurs �i et �j.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

4.2. RAPPELS SUR LES ANGLES EN DEUX DIMENSIONS 49

– c’est la formule de l’expression analytique de l’application affine f qui envoie le repère(0,�i,�j

)vers le

repère(0′,�i′,�j′

); la formule (4.1b) fournit les composantes des vecteurs �i′ = f

(�i)

et �j′ = f(�j)

en

fonction des vecteurs �i et �j.

4.2.4. Expression matricielle en coordonnées homogènes

L’équation (4.7) n’est pas linéaire (par sommation). On introduit donc les coordonnées homogènes (quiproviennent d’une opération algèbrique un peu difficile, l’espace quotient). Au lieu de noter

X =

(x

y

)

on introduit une troisième composante égale à 1 et on note

X =

⎛⎝xy1

⎞⎠ =

(X

1

)(4.8)

Considérons les coordonnées homogènes de M dans le repère(0′,�i′,�j′

):

X ′ =

⎛⎝x′y′

1

⎞⎠ =

(X ′

1

)(4.9)

L’équation (4.2) peut se réécrire

x = x′a+ y′c+A× 1,

y = x′b+ y′d+B × 1,

1 = 0× x+ 0× y + 1× 1

autrement dit de façon matricielle

X = MX ′, (4.10)

M =

⎛⎝a c A

b d B

0 0 1

⎞⎠ (4.11)

Remarque 4.2. On pourra consulter le chapitre «espace projectifs» de [Mar00] pour une présentationplus complète et générale des coordonnées homogènes.

Remarque 4.3. On pourra reconnaître dans (4.11) le produit

M =

⎛⎝a c A

b d B

0 0 1

⎞⎠ =

⎛⎝1 0 A

0 1 B

0 0 1

⎞⎠⎛⎝a c 0

b d 0

0 0 1

⎞⎠

qui correspond à une translation suivie d’à une rotation. Voir le chapitre «espace projectifs» de [Mar00].

Remarque 4.4. La matrice M peut être notée «par bloc» sous la forme

M =

(M T

0 1

)(4.12)

50 4. DESCRIPTIONS DES ANGLES ARTICULAIRES EN DIMENSIONS 2 ET 3

où ici 0 est noté pour (0, 0) L’équation (4.2) peut aussi se retrouver par un calcul «par bloc» à partir de (4.10)

X = MX ′,

=

(M T

0 1

)(X

1

)

=

(MX + T × 1

0×X + 1× 1

)

=

(MX + T × 1

(0, 0)×X + 1× 1

)

=

(MX + T

1

)

L’équation (4.10) est donc linéaire contrairement à (4.7).

4.2.5. Pour deux changements de repère ou plus

Si on considère maintenant trois repères(0,�i,�j

),(0′,�i′,�j′

)et(0′′,�i′′,�j′′

). Soit un point P du point de

coordonnées (x, y), (x′, y′) et (x′′, y′′) dans chacun des trois répères(0,�i,�j

),(0′,�i′,�j′

)et(0′′,�i′′,�j′′

).

On suppose qu’outre les notations précédentes (4.1), on a

−−−→O′O′′ = A′�i′ +B′�j′, (4.13a){

�i′′ = a′�i′ + b′�j′,�j′′ = c′�i′ + d′�j′

(4.13b)

On notant les matrices M ′, T ′ et X ′′

M ′ =(a′ c′

b′ d′

)

T ′ =(A′

B′

)

X ′′ =(x′′

y′′

)

On fait de nouveau un changement du repère(0,�i,�j

)au repère

(0′,�i′,�j′

)et du repère

(0′,�i′,�j′

)au repère(

0′′,�i′′,�j′′).

Quelles sont les formules de changement de repère de(0,�i,�j

)au(0′′,�i′′,�j′′

)?

En reprenant les cacluls précédents, on a alors

x′ = x′′a′ + y′′c′ +A′,

y′ = x′′b′ + y′′d′ + B′

x = x′a+ y′c+A,

y = x′b+ y′d+B

ce qui implique

x = (x′′a′ + y′′c′ +A′) a+ (x′′b′ + y′′d′ +B′) c+A,

y = (x′′a′ + y′′c′ +A′) b+ (x′′b′ + y′′d′ +B′) d+B

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

4.2. RAPPELS SUR LES ANGLES EN DEUX DIMENSIONS 51

et donc

x = (aa′ + cb′)x′′ + (ac′ + cd′) y′′ + (aA′ + cB′ +A)

y = (ba′ + db′)x′′ + (bc′ + dd′) y′′ + (bA′ + dB′ +B)

Cela est compliqué mais grâce au calcul matriciel cela va devenir très simple ! En effet, notons que

MM ′ =(aa′ + cb′ ac′ + cd′

ba′ + db′ bc′ + dd′

)et que

MT ′ + T =

(aA′ + cB′ +A

bA′ + dB′ +B

)Autrement dit, les deux formules donnent directement de façon matricielle

X = (MM ′)X ′′ +MT ′ + T (4.14)

Cela se retrouve très rapidement grâce à (4.7) et son homologue qui donnent

X ′ =MX ′′ + T ′

et doncX =M (MX ′′ + T ′) + T =MMX ′′ +MT ′ + T

On peut faire encore plus rapidement (et cela justifie aussi l’intérêt des notations sous forme de coordonnéeshomogènes) : Notons

M′ =(M ′ T ′

0 1

)(4.15)

et introduisons X ′′ de façon analogue à X ′. On a grâce à (4.10) et son homologue

X ′ = M′X ′′

X = MX ′ = MM′X ′′

soit encore

X = M′′X ′′ (4.16a)

M′′ = MM′ (4.16b)

Calculons MM′ grâce à un calcul par blocs :

M′′ =(M T

0 1

)(M ′ T ′

0 1

)

=

(MM ′ + T × 0 MT ′ + T × 1

0×M ′ + 1× 0 0× T ′ + 1× 1

)

=

(MM ′ MT ′ + T

0 1

)

On retrouve donc bien la matrice en notations homogènes définie à partir de (4.12) par

M′′ =(M ′′ T ′′

0 1

)(4.17)

où M ′′ =MM ′ et T ′′ =MT ′ + T .Retenons de tout cela que si l’on fait deux changement de repère successifs on multiplie les matrices

homogène dans l’ordre des repère, c’est-à-dire de la gauche vers la droite.

52 4. DESCRIPTIONS DES ANGLES ARTICULAIRES EN DIMENSIONS 2 ET 3

4.2.6. Applications au changement de repère obtenu par rotation et translation

Plaçons-nous maintenant dans le cas particuliers où les deux repères(0,�i,�j

)et(0′,�i′,�j′

)sont orthornor-

més directs. On passe des vecteurs �i et �j aux vecteurs �i′ et �j′ par une rotation d’angle θ.Voir figure 4.2.

θ

�i

�j

0

P�i′�j′

0′

Figure 4.2. le changement de repère affine quand les deux repères(0,�i,�j

)et(0′,�i′,�j′

)sont

orthornormés directs.

On a alors avec les notations précédentes :

{�i′ = cos θ�i+ sin θ�j,

�j′ = − sin θ�i+ cos θ�j(4.18)

et donc

M =

(cos θ − sin θ

sin θ cos θ

)(4.19)

et

M =

⎛⎝cos θ − sin θ A

sin θ cos θ B

0 0 1

⎞⎠ (4.20)

Remarque 4.5. Les spéclialistes de l’algèbre linéaire reconnaîtront dans (4.20) l’expression de la matricede la rotation (plane) vectorielle d’angle θ, qui est une matrice orthogonale. Voir les chapitres 7 et 8 de [Bas07].

Plaçons-nous maintenant dans le cas particuliers où les deux repères(0,�i,�j

)et(0′,�i′,�j′

)sont orthornor-

més directs. On passe des vecteurs �i et �j aux vecteurs �i′ et �j′ par une rotation d’angle θ. De plus, on supposequ’il existe l > 0 tels que −−→

OO′ = A�i+B�j = l�i′ = l cos θ�i + l sin θ�j. (4.21)

Voir figure 4.3.On a alors avec les notations précédentes :

{�i′ = cos θ�i+ sin θ�j,

�j′ = − sin θ�i+ cos θ�j(4.22)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

4.2. RAPPELS SUR LES ANGLES EN DEUX DIMENSIONS 53

θ

�i

�j

0

P

�i′�j′0′

l

Figure 4.3. le changement de repère affine quand les deux repères(0,�i,�j

)et(0′,�i′,�j′

)sont

orthornormés directs avec de plus l’hypothèse (4.21).

et donc

M =

(cos θ − sin θ

sin θ cos θ

)(4.23)

et

M =

⎛⎝cos θ − sin θ l cos θ

sin θ cos θ l sin θ

0 0 1

⎞⎠ (4.24)

4.2.7. De retour aux formules (1.17)

Reprenons les notations de la section 1.5 page 5. On rappelle que l’on étudie une chaîne de points quimodèlise un individu ou d’une portion d’un individu. Elle est notée (Aj)1≤j≤p. On a introduuit les anglessegmentaires et articulaires (définition 1.5 page 5) et montré les formules (1.17) page 7.

Pour chaque segment [Aq, Aq+1] pour 1 ≤ q ≤ p − 1, on définit un repère orthonormé direct(�iq,�jq

)de

telle sorte que �iq soit colinéaire à−−−−−−→Aq, Aq+1 et de Aq vers Aq+1. On introduit

(�i0,�j0

)un repère global. Voir

figure 4.4 page suivante.Pour 1 ≤ q ≤ p, notons Xq et Xq les coordonnées homogènes du point Aq.Remarquons que l’on passe– du repère

(�i0,�j0

)au repère

(�i1,�j1

)par une rotation vectorielle d’angle θ1,

– du repère(�i1,�j1

)au repère

(�i2,�j2

)par une rotation vectorielle d’angle θ2,

– du repère(�ip−2,�jp−2

)au repère

(�ip−1,�jp−1

)par une rotation vectorielle d’angle θp−1 ;

Donc, de façon générale, pour q ∈ {1, . . . , p− 1},

on passe du repère(�iq−1,�jq−1

)au repère

(�iq,�jq

)par une rotation vectorielle d’angle θq. (4.25)

Pour tout q ∈ {1, . . . , p− 1}, notons

Mi =

⎛⎝ Mi

(licilisi

)0 0 1

⎞⎠ (4.26a)

54 4. DESCRIPTIONS DES ANGLES ARTICULAIRES EN DIMENSIONS 2 ET 3

O

A1

A2

A3

Ap−2

Ap−1

Ap

�i0

�j0

�i1

�j1�i2

�j2

�ip−2

�jp−2

�ip−1�jp−1

θ1

θ2

θ3

θp−2

θp−1

Figure 4.4. Les segments étudiés et les repères((�iq,�jq

))0≤q≤p−1

.

ci = cos θi (4.26b)

si = sin θi (4.26c)

et

Mi =

(ci −sisi ci

)(4.26d)

Dans le repère(Ap,�ip−1,�jp−1

), on a

Xp =

⎛⎝0

0

1

⎞⎠

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

4.2. RAPPELS SUR LES ANGLES EN DEUX DIMENSIONS 55

Donc d’après les formules des sections 4.2.5 et 4.2.6, dans le repère(Ap−1,�ip−2,�jp−2

), on a

Xp−1 =

⎛⎝0

0

1

⎞⎠ ,

Xp = Mp−1

⎛⎝0

0

1

⎞⎠ ,

dans le repère(Ap−2,�ip−3,�jp−3

), on a

Xp−2 =

⎛⎝0

0

1

⎞⎠ ,

Xp−1 = Mp−2

⎛⎝0

0

1

⎞⎠ ,

Xp = Mp−2Mp−1

⎛⎝0

0

1

⎞⎠ ,

et ainsi de suite (ce qui peut se montrer rigoureusement par une récurrence) jusqu’à dans le repère(A1,�i0,�j0

)

X1 =

⎛⎝0

0

1

⎞⎠ ,

X2 = M1

⎛⎝0

0

1

⎞⎠ ,

X3 = M1M2

⎛⎝0

0

1

⎞⎠ ,

...

Xp = M1M2 . . .Mp−1

⎛⎝0

0

1

⎞⎠ .

On a donc montré que dans le repère(A1,�i0,�j0

)

∀q ∈ {1, . . . , p}, Xq = M1M2 . . .Mq−1

⎛⎝0

0

1

⎞⎠ =

(q−1∏i=1

Mi

)⎛⎝0

0

1

⎞⎠ (4.27)

Attention ici au produit(∏q−1

i=1 Mi

)qui se fait dans l’ordre des i croissants de la gauche vers la droite.

56 4. DESCRIPTIONS DES ANGLES ARTICULAIRES EN DIMENSIONS 2 ET 3

On peut montrer que

∀q ∈ {1, . . . , p},q−1∏i=1

Mi =

⎛⎝∏q−1

i=1 Ri

(Uq

Vq

)0 0 1

⎞⎠ (4.28a)

où avec les notations de la section 1.5

Uq =

q−1∑k=1

lk cosφk (4.28b)

Vq =

q−1∑k=1

lk sinφk (4.28c)

On en déduit donc que dans le repère(A1,�i0,�j0

)

∀q ∈ {1, . . . , p}, Xq =

⎛⎝Uq

Vq1

⎞⎠ (4.29)

et donc dans le repère(0,�i0,�j0

)∀q ∈ {1, . . . , p}, xq = Uq + x1,

yq = Vq + x1

ce qui n’est autre que (1.17).

4.3. En trois dimemsions

La problématique est la même. On passe cette fois d’un repère au suivant par la composée (dans un ordreprécis) de trois rotations dans l’espace de matrice homogène du type

Mi

(Mi Ti0 1

)où M est une matrice de rotation dans l’espace qui sera elle-même de la forme du produit des trois matricessuivantes (chacune autour d’un des axes du repère)

Mzi =

⎛⎝cos θi − sin θi 0

sin θi cos θi 0

0 0 1

⎞⎠ ,

Myi =

⎛⎝cosφi 0 − sinφi

0 1 0

sinφi 0 cosφi

⎞⎠ ,

Mxi =

⎛⎝1 0 0

0 cosψi − sinψi

0 sinψi cosψi

⎞⎠ .

Il restera alors à calculer le produit matriciel :

M = M1 . . .Mp−1

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

CHAPITRE 5

Dynamique inverse plane

Chapitre non rédigé.

Exemple d’application

Voir l’énoncé et le corrigé du CCF2 (donné à l’automne 2012) sur la page habituellehttp://utbmjb.chez-alice.fr/UFRSTAPS/index.htmlou bien voir directement l’énoncé surhttp://utbmjb.chez-alice.fr/UFRSTAPS/M2ReMPS/CCF2M2RMPSbiomecaA12.pdfet le corrigé surhttp://utbmjb.chez-alice.fr/UFRSTAPS/M2ReMPS/corCCF2M2RMPSbiomecaA12.pdf

57

ANNEXE A

Formules de dérivation numérique d’ordre plus élevés

On connait les deux formules usuelles des approximations des dérivées première et seconde d’une fonction :

f ′(t) � f(t+ h)− f(t− h)

2h, (A.1a)

où l’erreur est donnée par

E = −h2

6f (3) (ξ) avec ξ ∈ ]t− h, t+ h[ . (A.1b)

et

f ′′(t) � f(t− h)− 2f(t) + f(t+ h)

h2, (A.2a)

où l’erreur est donnée par

E = −h2

12f (4) (ξ2) avec ξ ∈ ]t− h, t+ h[ . (A.2b)

Ces deux formules sont dites d’ordre 2 : les erreurs, définie comme la différence entre f ′(t) ou f ′′(t) et leursapproximations, sont en O

(h2). La première est une formule à deux points, la seconde à trois points.

On peut améliorer ces formules en obtenant des erreurs en O (hp) avec p ≥ 3. Plus précises, les formulesutilisées ont besoin de plus de points. On pourra consulter par exemple [BM03] (notamment section 3.4). Onpeut déterminer grâce au calcul sumbolique différentes formules avec plus de points ; voir de nouveau [BM03](TP 3.E, dont les sources matlab sont disponibles sur le web).

Plus généralement, l’approximation de la dérivée k-ième d’une fonction f en t par une une formule à ppoints est

f (k)(t) � 1

hk

n2∑i=n1

αif (t+ ih) , (A.3)

où les p points t + ih, pour n1 ≤ i ≤ n2 interviennent par les valeurs de f en ces points et les coefficients αi

sont donnés.On admet que les meilleures formules correspondent à une distribution de points symétrique autour de

t. Ainsi, pour la suite, pour q ≥ 1 on notera l’ensemble {−q,−q + 1, . . . , 0, . . . , q − 1, q} sous la forme Iq. Onnotera donc (A.3) sous la forme

f (k)(t) � 1

hk

∑i∈Iq

αif (t+ ih) . (A.4)

On se restreindra au cas où k ∈ {1, 2} ; dans ce cas, les formules sont des formules à p+1 points avec p = 2q+1

et q ≥ 1. Il suffit donc de donner les valeurs des coefficients αi. Par exemple, la formule (A.1) correspond àk = 1, q = 1, p = 2, α = (−1/2, 0, 1/2) La formule (A.2) correspond à k = 2, q = 1, p = 2, α = (1,−2, 1).De façon plus générale, on choisira p ∈ {2, 4, 6, 8, 10}. Les formules correspondantes sont des formules à p + 1

points. On admet que l’ordre de ces formules sont égaux à p.Pour k = 1, les coefficients α sont respectivement donnés dans le tableau suivant

59

60 A. FORMULES DE DÉRIVATION NUMÉRIQUE D’ORDRE PLUS ÉLEVÉS

p α

2 -1/2 0 1/24 1/12 -2/3 0 2/3 -1/126 -1/60 3/20 -3/4 0 3/4 -3/20 1/608 1/280 -4/105 1/5 -4/5 0 4/5 -1/5 4/105 -1/28010 -1/1260 5/504 -5/84 5/21 -5/6 0 5/6 -5/21 5/84 -5/504 1/1260

Pour k = 2, les coefficients α sont respectivement donnés par

p α

2 1 -2 14 -1/12 4/3 -5/2 4/3 -1/126 1/90 -3/20 3/2 -49/18 3/2 -3/20 1/908 -1/560 8/315 -1/5 8/5 -205/72 8/5 -1/5 8/315 -1/56010 1/3150 -5/1008 5/126 -5/21 5/3 -5269/1800 5/3 -5/21 5/126 -5/1008 1/3150

En pratique, seules sont données les valeurs f1, f2, . . . , fN correspondant aux valeurs de f en des instantsti équirépartis d’éccart h > 0. Pour une formule d’ordre p ∈ {2, 4, 6, 8, 10} à p + 1 points, pour déterminerune approximation de f ′(ti) ou f ′′(ti), il faut p/2 points avant ti et p/2 points après ti. Ainsi, les dérivéesne pourront être évaluées qu’aux instants tp/2+1, . . . , tN−p/2. Aux instants t2, . . . , tp/2 et tn−p/2+1, . . . , tN−1,il faudra utiliser des formules centrées avec moins de points. Enfin, en t1 et tN , on ne pourra pas utiliser deformules centrées. On admettra les formules suivantes que l’on utilisera en ces points (voir théorèmes 3.64 et3.67 de [BM03]) ; pour les dérivées premières, on donne les deux formules d’ordre 2 suivantes :

f ′(t) � −3f(t) + 4f(t+ h)− f(t+ 2h)

2h, (A.5)

f ′(t) � f(t− 2h)− 4f(t− h) + 3f(t)

2h. (A.6)

pour les dérivées deuxièmes, on donne les deux formules d’ordre 1 suivantes :

f ′′(t) � f(t)− 2f(t+ h) + f(t+ 2h)

h2, (A.7)

f ′′(t) � f(t− 2h)− 2f(t− h) + f(t)

h2. (A.8)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

ANNEXE B

Analyse fréquentielle de signaux

Cette Annexe, donnée à titre d’information, ne sera pas traitée en cours

B.1. Introduction

Exemple concret, celui de l’equalizer de sa chaîne hifi.

B.2. Rappels sur l’analyse et la synthèse de Fourier de fonctions de R dans R

Toutes les preuves techniques de ce chapitre sont données en annexe C page 79.Cette section rappelle sommairement des résultats classiques sur l’analyse et la synthèse de Fourier de

fonctions de R dans R. Elle est fortement inspirée de [GW00] (voir leçons 4, 7 et 8).Dans toute cette section, on n’envisage pas les aspecst théoriques de convergence de sommes ; on consultera

par exemple [GW00] pour les résultats précis. On supposera à chaque fois les fonctions suffisament régulièrespour donner un sens aux objects mathématiques introduits.

B.2.1. Série de Fourier d’un signal périodique quelconque

Soit f une fonction de R dans C, de période T . On définit pour tout entier n ∈ Z son coefficient de Fouriercn par

cn =1

T

∫ T

0

f(t)e−2iπn tT dt. (B.1)

Pour tout entier N ∈ N, on définit la somme partielle de Fourier fN (elle est T périodique)

fN (t) =

N∑n=−N

cne2iπn t

T . (B.2)

Si f est suffisament régulière, cn tend vers 0 quand n tend vers ±∞, la fonction fN converge vers f quand Ntend vers ∞, soit encore :

f(t) =∞∑

n=−∞cne

2iπn tT . (B.3)

Remarque B.1. La convergence de fN vers f n’est pas toujours ponctuelle ; c’est-à-dire que la valeur dela somme n’est pas nécessairement f(t). Plus f est régulière, plus les coefficients cn tendent vers zéro et plusla convergence de fN vers f est rapide.

Si f est à valeur réelle, on peut montrer que (B.3) se réécrit :

f(t) =a02

+

∞∑n=1

an cos

(2πn

t

T

)+ bn sin

(2πn

t

T

), (B.4)

61

62 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

avec la définition suivante des réelles an et bn :

∀n ∈ N, an =2

T

∫ T

0

f(t) cos

(2πn

t

T

)dt, (B.5a)

∀n ∈ N∗, bn =2

T

∫ T

0

f(t) sin

(2πn

t

T

)dt. (B.5b)

On a la relation suivante :

∀n ∈ Z, c−n = cn, (B.6)

et les liens suivants entre les complexes cn et les réels an et bn

c0 =1

2a0, (B.7a)

∀n ∈ N∗, cn =1

2(an − ibn) , (B.7b)

∀n ∈ N∗, c−n =1

2(an + ibn) . (B.7c)

Toutes les preuves de (B.4), (B.5), (B.6) et (B.7) sont données en annexe C page 79.La relation (B.1) exprime l’analye de Fourier tandis que la relation (B.3) exprime l’analye de Fourier.

Remarque B.2. Dans le cas où f est à valeur réelle, compte tenu de (B.6), seule la connaissance des cnpour n ≥ 0 est suffisante pour recomposer f , soit encore, seuls suffisent a0, (an)n≥1 et (bn)n≥1.

B.2.2. Fréquence et spectre

Définition B.3. Pour un signal f de période T et développé en série de Fourier sous la forme (B.3) ; onappelle spectre de f l’ensemble des couples

(nT , cn

)n∈Z

La fréquence 1/T est appelée la fréquence fondamentale et les autres fréquences ses harmoniques.

−1/T−2/T 0 1/T 2/T 3/T

|c0|

|c1| |c2||c3|

|c−1||c−2|

Amplitude

Figure B.1. Spectre d’amplitude.

Définition B.4. On appelle le spectre d’amplitude l’ensemble des couples(nT , |cn|

)n∈Z

et le spectre dephase l’ensemble des couples

(nT , θn

)n∈Z

où cn = |cn| eiθn où θn ∈ [−π, π[. Ces deux spectres sont constituésde raies régulièrement espacées de la fréquence 1/T (voir figure B.1).

Si f est à valeur réelle, compte tenu de (B.6), le spectre pourra être réduit aux fréquences positives.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 63

B.2.3. La transformée de Fourier discrète et la transformée de Fourier discrète inverse

Soit f une fonction de R dans C, de période T . On se place de nouveau dans le cadre de la section 2.2 :on ne connaît de f qu’en un nombre N ∈ N∗ fini de points cette fois-ci régulièrement espacés sur [0, T [ : Onconnaît

∀k ∈ {0, ..., N − 1}, f

(kT

N

)= yk. (B.8)

Ayant N données, il est logique de chercher à calculer N coefficients de Fourier de f . Ceux-ci tendantvers zéro quand n tend vers ±∞, nous ne déterminerons que les coefficients correspondant à des fréquencesappartenant à un ensemble centré autour de 0, c’est-à-dire cn pour n appartenant à :

• {−N/2 + 1, ..., N/2} si N est pair ;• {−(N − 1)/2, ..., (N − 1)/2} si N est impair ;

soit encore pour

pour n appartenant à {nmin, ..., nmax} avec, (B.9a)

nmin = −N2

+ 1, nmax =N

2, si N est pair, (B.9b)

nmin = −N − 1

2, nmax =

N − 1

2, si N est impair, (B.9c)

soit encore dans les deux cas (en notant E désigne la partie entière)

nmin = −E(N − 1

2

), (B.10a)

nmax = E(N

2

). (B.10b)

Naturellement, on ne pourra pas calculer exactement tous les coefficients cn, mais uniquement ceux corres-pondant aux indices définis ci-dessus. On calcule en fait les coefficients de Fourier du polynôme trigonométrique

fN (t) =

nmax∑n=nmin

cNn e2iπn t

T . (B.11)

Si N devient grand, l’erreur entre f et fN est petit et il est légitime de procéder ainsi. Ainsi, on admettra queles coefficients approchés cNn de f seront d’autant plus proches des coefficients exacts cn de f que N est grand.Nous remplacerons donc l’égalité (B.8) par

∀k ∈ {0, ..., N − 1}, fN

(kT

N

)= yk. (B.12)

On a alors le résultat suivant :

Lemme B.5. Si on pose :

Yn =

{cNn , si 0 ≤ n ≤ nmax,

cNn−N , si nmax + 1 ≤ n ≤ N − 1,(B.13)

et si on considère une racine N -ième de l’unité

ω = e2iπN (B.14)

alors, (B.12) est équivalente à

∀k ∈ {0, ..., N − 1}, yk =

N−1∑n=0

ωnkYn, (B.15a)

64 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

ou encore à

∀n ∈ {0, ..., N − 1}, Yn =1

N

N−1∑k=0

ω−nkyk. (B.15b)

Toutes les preuves techniques de ce chapitre sont données en annexe C page 79.On peut réécrire (B.13) sous la forme :

cNn =

{Yn, si 0 ≤ n ≤ nmax,

Yn+N , si nmin ≤ n ≤ −1.(B.16)

On introduit alors la définition suivante :

Définition B.6 (Transformation de Fourier discrète). On définit la transformation de CN dans lui-même

y = (yk)0≤k≤N−1

FN−→ Y = (Yn)0≤n≤N−1 (B.17)

par l’équation (B.15b). La transformation de Fourier discrète inverse est alors donnée par (B.15a). On noteraY = FN (y) ou y = F−1

N (Y ).

Ainsi, le calcul des coefficients(cNn)nmin≤n≤nmax

à partir des valeurs (yk)0≤k≤N−1 de f en kT/N est lesuivant :

• Déterminer Y = FN(y) grâce à (B.15b) ;• en déduire

(cNn)nmin≤n≤nmax

grâce à (B.16).Réciproquement, le calcul des valeurs (yk)0≤k≤N−1 de f en kT/N à partir des coefficients

(cNn)nmin≤n≤nmax

estle suivant :

• Déterminer (Yn)0≤n≤N−1 grâce à (B.13) ;• en déduire y = F−1

N (Y ) grâce à (B.15a).On notera TFD et TFDI pour la transformée de Fourier discrète et la transformée de Fourier discrète inverse.(en anglais DFT et IDFT pour discrete Fourier transform et inverse discrete Fourier transform).

Remarque B.7. Attention, les conventions (ici issue de [GW00] ou de [Bel06]) ne sont pas standartquant à la place du facteur 1/N dans les équations (B.15) ! On trouve parfois la définition suivante de latransformée de Fourier discrète

∀n ∈ {0, ..., N − 1}, Yn =N−1∑k=0

ω−nkyk, (B.18a)

et la définition suivante de la transformée de Fourier discrète inverse :

∀k ∈ {0, ..., N − 1}, yk =1

N

N−1∑n=0

ωnkYn. (B.18b)

C’est par exemple la convention utilisée pour matlab (voir section B.2.4) dans [BM98], ou sur Wikipédia(anglais ou français, voir les rubriques «Transformée de Fourier discrète» surhttp://fr.wikipedia.org/wiki/Transformée_de_Fourier_discrète ou «Discrete Fourier transform» surhttp://en.wikipedia.org/wiki/Discrete_Fourier_transform.)

B.2.4. La transformée de Fourier rapide et la transformée de Fourier rapide inverse

Les formules définissant la tranformée de Fourier discrète et inverse (B.15b) ou (B.15a) ont un coût enO(N2) multiplications (on fait grosso modo N2 multiplications 1) ce qui n’est pas possible de faire en tempsréel si les données atteignent une taille de N = 1000, ce qui est fréquement le cas ! Heureusement James W.Cooley et John W. Tukey, ont montré que le nombre d’opération peut être réduit à un coût de O(N log(N))

1. pour une définition précise de O, voir par exemple le chapitre 1 de [BM03].

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 65

ce qui est devient possible de faire en temps réel ! Voir l’article «Transformée de Fourier rapide» de wikipédiahttp://fr.wikipedia.org/wiki/Transformée_de_Fourier_rapide ou l’article original [CT65]. On parlealors de transformée de Fourier rapide (TFR) et la transformée de Fourier rapide inverse (en anglais FFT etIFFT pour fast Fourier transform et inverse fast Fourier transform).

Remarque B.8. Sous matlab, les deux fonctions à utiliser sont fft et ifft. Attention, voir la remarqueB.7.

Exemple B.9. On pourra consulter les deux fonctions filtrefourier et recomfourier et le script demo_fft01.m qui illustre le calcul des coefficients de Fourier approchés de la fonction

f(t) = 2e2iπt×(−4) + (17.3 + 3i)e2iπt×9

et sa reconstruction à partir de ses coefficients de Fourier. En théorie, ses seuls coefficients de Fourier non nulssont c−4 = 2 et c9 = 17.3+3i. On pourra faire tourner ce script pour les valeurs de N ∈ {1, 2, 8, 9, 17, 18, 19, 20,49, 50, 103, 106} et voir ce qui se passe.

B.2.5. Cas où les données sont réelles

Plaçons-nous maintenant dans le cas où f est à valeurs réelles et donc dans le cas où y est un vecteur deRN . Des simplifications analogues aux formules (B.4), (B.5), (B.6) et (B.7) apparaissent.

Il faut cependant distinguer le cas où N est pair du cas où N est impair.

Lemme B.10. Si N est pair, alors cN0 et cNN/2 sont réels et on a

∀n ∈ {1, ..., N/2− 1}, cN−n = cNn . (B.19)

Ainsi, seuls les coefficients à retenir sont cN0 ,(cNn)1≤n≤N/2−1

et cNN/2 ; on considère alors les N réels aN0 , aNN/2,(aNn)1≤n≤N/2−1

et(bNn)1≤n≤N/2−1

définis par

cN0 =1

2aN0 , (B.20a)

cNN/2 =1

2aNN/2, (B.20b)

∀n ∈ {1, ..., N/2− 1}, cn =1

2

(aNn − ibNn

). (B.20c)

De plus, on a

fN (t) =aN02

+

N/2−1∑n=1

aNn cos

(2πn

t

T

)+ bNn sin

(2πn

t

T

)

+1

2aNN/2

(cos

(πN

t

T

)+ i sin

(πN

t

T

)). (B.21)

Dans le cas où N est impair, la situation est plus symétrique

Lemme B.11. Si N est impair, alors cN0 est réel et on a

∀n ∈ {1, ..., (N − 1)/2}, cN−n = cNn . (B.22)

Ainsi, seuls les coefficients à retenir sont cN0 et(cNn)1≤n≤(N−1)/2

; on considère alors les N réels aN0(aNn)1≤n≤(N−1)/2

et(bNn)1≤n≤(N−1)/2

définis par

cN0 =1

2aN0 , (B.23a)

∀n ∈ {1, ..., (N − 1)/2}, cn =1

2

(aNn − ibNn

). (B.23b)

66 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

De plus, on a

fN(t) =aN02

+

(N−1)/2∑n=1

aNn cos

(2πn

t

T

)+ bNn sin

(2πn

t

T

). (B.24)

Voir les preuves en annexe C.

Remarque B.12. Attention, dans le cas où N est pair, l’interpolation fN de f a une composante

1

2aNN/2

(cos

(πN

t

T

)+ i sin

(πN

t

T

)).

non réelle ! Naturellement aux instant kT/N , cette composante devient de nouveau réelle (ce qui est logiquepuisqu’en ces points fN vaut yk et est réelle !). Si N est impair, fN est toujouts à valeurs réelles.

Les algorithmes précédemment vus deviennent alors :Ainsi, le calcul des coefficients aN0 , aNN/2,

(aNn)1≤n≤N/2−1

et(bNn)1≤n≤N/2−1

si N est pair ou des coefficientsaN0 ,

(aNn)1≤n≤(N−1)/2

et(bNn)1≤n≤(N−1)/2−1

si N est impair à partir des valeurs (yk)0≤k≤N−1 de f en kT/N

est le suivant• Déterminer Y = FN(y) grâce à (B.15b) ;• en déduire

(cNn)nmin≤n≤nmax

grâce à (B.16) ;• ne conserver que les N réels définis par (B.20) ou (B.23).

Réciproquement, le calcul des valeurs (yk)0≤k≤N−1 de f en kT/N à partir des aNn et des bNn est le suivant estle suivant :

• Définir les (cn)nmin≤n≤nmaxgrâce à (B.20) ou (B.23) et (B.19) ou (B.22).

• Déterminer (Yn)0≤n≤N−1 grâce à (B.13) ;• en déduire y = F−1

N (Y ) grâce à (B.15a).Il existe des algorithmes de constructions divisant par 2 les longueurs des TFD et TFDI utilisées : voir

par exemple le dernier exercice de la leçon 9 de [GW00] les ou sections 3.3.1 ou 3.3.2 de [Bel06].

Remarque B.13. Par la suite on aura en fait interêt à «oublier» les coefficients c et à ne travailler qu’entreles données y, Y = FN (y) et les coefficients a et b. On peut montrer en effet que le calcul des coefficients aNnet des bNn à partir des valeurs (yk)0≤k≤N−1 de f en kT/N est le suivant

• Déterminer Y = FN(y) grâce à (B.15b) ;• en déduire aN0 , aNN/2,

(aNn)1≤n≤N/2−1

et(bNn)1≤n≤N/2−1

si N est pair grâce à

aN0 = 2Y0, (B.25a)

aNN/2 = 2YN/2, (B.25b)

∀n ∈ {1, ..., N/2− 1}, aNn − ibNn = 2Yn, (B.25c)

ou aN0 ,(aNn)1≤n≤(N−1)/2

et(bNn)1≤n≤(N−1)/2−1

si N est impair grâce à

aN0 = 2Y0, (B.26a)

∀n ∈ {1, ..., (N − 1)/2}, aNn − ibNn = 2Yn, (B.26b)

Réciproquement, le calcul des valeurs (yk)0≤k≤N−1 de f en kT/N à partir des aNn et des bNn est le suivant estle suivant :

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 67

• Déterminer (Yn)0≤n≤N−1 si N pair grâce à

Y0 =1

2aN0 , (B.27a)

YN/2 =1

2aNN/2, (B.27b)

∀n ∈ {1, ..., N/2− 1}, Yn =1

2

(aNn − ibNn

), (B.27c)

∀n ∈ {N/2 + 1, ..., N − 1}, Yn =1

2

(aNN−n + ibNN−n

), (B.27d)

ou si N pair grâce à

Y0 =1

2aN0 , (B.28a)

∀n ∈ {1, ..., (N − 1)/2}, Yn =1

2

(aNn − ibNn

), (B.28b)

∀n ∈ {(N − 1)/2 + 1, ..., N − 1}, Yn =1

2

(aNN−n + ibNN−n

), (B.28c)

• En déduire y = F−1N (Y ) grâce à (B.15a).

Exemple B.14. On pourra consulter les deux fonctions filtrefourierre et recomfourierre et le scriptdemo_fft02.m qui illustre le calcul des coefficients de Fourier approchés de la fonction

f(t) = 17/2 + 2 cos(2πt× 4) + 17.3 sin(2πt× 9),

et sa reconstruction à partir de ses coefficients de Fourier. En théorie, ses seuls coefficients de Fourier non nulssont a0 = 17, a4 = 2 et b9 = 17.3. On pourra faire tourner ce script pour les valeurs deN ∈ {1, 2, 8, 9, 17, 18, 19, 20,49, 50, 103, 106} et voir ce qui se passe.

B.2.6. En pratique ...

En pratique, nous ne disposerons pas de la fonction f mais de ses valeurs (yk)0≤k≤N−1 correspondant auxvaleurs échantillonnées avec une fréquence d’échantillonage fe aux instants tk avec

∀k ∈ {0, ..., N − 1}, tk =k

fe. (B.29)

De N et de fe, on déduit T

T =N

fe. (B.30)

On considérera la fréquence fondamentale ffo = 1/T soit encore

ffo =feN, (B.31)

et on pose∀n ∈ {nmin, ..., nmax}, fn = nffo (B.32)

On donne alors l’analogue de la définition B.3

Définition B.15 (Spectre discret (complexe)). Pour un signal f à valeurs complexes échantillonnée enN valeurs à la fréquence fe, on appelle spectre (discret) de f l’ensemble des couples

(fn, c

Nn

)n∈{nmin,...,nmax},

où nmin et nmax sont définis par (B.10).

Avec ces notations, (B.11) devient

fN(t) =

nmax∑n=nmin

cNn e2iπfnt. (B.33)

68 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

Définition B.16 (Spectre discret (réel)). Dans le cas où f est à valeurs réelles, d’après (B.19), il suffitde ne donner que le spectre correspondant aux fréquences positives ou nulles, soit l’ensemble des couples(fn, c

Nn

)n∈{0,...,nmax} avec nmax = E(N/2).

Avec ces notations, (B.21) et (B.24) deviennent si N est pair

fN (t) =aN02

+

N/2−1∑n=1

aNn cos (2πfnt) + bNn sin (2πfnt) +1

2aNN/2

(cos(2πfN/2t

)+ i sin

(2πfN/2t

)), (B.34a)

et si N est impair

fN (t) =aN02

+

(N−1)/2∑n=1

aNn cos (2πfnt) + bNn sin (2πfnt)) . (B.34b)

B.2.7. Différents outils liés à la TFD et la TFDI

Nous allons voir maintenant différents calculs sur un signal :– Interpolation (sous section B.2.7.1) ;– Dérivation (sous section B.2.7.2) ;– Énergie (sous section B.2.7.3).Ces différents calculs se font très facilement «dans l’espace de Fourier discret», c’est à dire en ne travaillant

pas sur les valeurs ponctuelles de f , yk mais directement sur ses coefficients de Fourier discret cNn , ou encoremieux directement sur les coefficients Yn.

B.2.7.1. Interpolation et «Enrichissement».On se place dans le cadre de la section 2.3 page 23 Soit fe la fréquence d’échantillonage (en Hz) du signal

initial. On connaît donc toutes les valeurs fk de f aux instants aux instants

∀k ∈ {0, ..., N − 1}, tk =k

fe, (B.35)

On souhaite obtenir une fréquence d’échantillonnage fer plus grande. Pour simplifier, on se donne se donne unentier q ≥ 1 et on suppose que l’on a (2.5). On veut déterminer des valeurs de façon «plus riche», c’est-à-direà tous les instants τk

∀k ∈ {0, ..., qN − 1}, τk =k

qfe, (B.36)

L’idée la plus naturelle est de déterminer la fonction fN définie par (B.11), à partir des valeurs y = (yk)0≤k≤N−1,puis de déterminer les g = (gk)0≤k≤qN−1 définis par

∀k ∈ {0, ..., qN − 1}, gk = fN(τk) =

nmax∑n=nmin

cNn e2iπn

τkT =

nmax∑n=nmin

cNn e2iπ kn

qN . (B.37)

On définit les entiers pmin ≤ nmin et pmax ≥ nmax par une formule analogue à (B.10) :

pmin = −E(qN − 1

2

), (B.38a)

pmax = E(qN

2

). (B.38b)

Introduisons les coefficients (dn)pmin≤n≤pmaxpar

∀p ∈ {pmin, ..., pmax}, dn =

{cNn , si n ∈ {nmin, ..., nmax},0, si n ∈ {nmin, ..., nmax}.

(B.39)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 69

Ainsi, la formule (B.37) devient tout simplement

∀k ∈ {0, ..., qN − 1}, gk =

pmax∑n=pmin

dne2iπ kn

qN .

soit encore, en introduisant Z = (zn)0≤n≤qN−1 définit par une formule analogue à (B.13),

Zn =

{dn, si 0 ≤ n ≤ pmax,

dn−qN , si pmax + 1 ≤ n ≤ qN − 1,(B.40)

on a

∀k ∈ {0, ..., qN − 1}, gk =

qN∑n=0

ΩnkZn, (B.41)

Ω = e2iπqN (B.42)

Si on compare cette formule avec la formule (B.15a), on constate que l’on a

g = F−1qN (Z). (B.43)

Rappelons qu’en calculant Y = FN (y), on peut en déduire les coefficients cNn grâce à (B.16). En fait, onpeut passer directement des coefficients Y = (yn)0≤n≤N−1 aux coefficients Z = (zn)0≤n≤qN−1 en montrantgrâce à (B.16),(B.39) et (B.40) que

∀n ∈ {0, ..., qN − 1}, Zn =

⎧⎪⎪⎨⎪⎪⎩Yn, si 0 ≤ n ≤ nmax,

0 si nmax + 1 ≤ n ≤ nmin + qN − 1,

Yn−qN+1 si nmin + qN ≤ n ≤ qN − 1.

(B.44)

Ainsi, le calcul des valeurs g = (gk)0≤k≤qN−1 à partir des valeurs y = (yk)0≤k≤N−1 est le suivant :• Déterminer Y = FN(y)

• en déduire Z = (Zn)0≤n≤qN−1 grâce à (B.44) ;• en déduire g = F−1

qN (Z).

Remarque B.17. Cet algorithme est particulièrement simple. Il nous montre que l’opération d’interpo-lation se fait uniquement sur les données Y grâce à (B.44) (moyennant une TFD de longueur N et une TFDIde longeur qN) Autrement dit, on ne travaille que «dans l’espace de Fourier». De plus, son coût ne correspondqu’aux opérations de TFD et de TFDI : l’étape (B.44) ne coûte rien. Le coût total est donc en O (qN log(qN))

beaucoup plus faible que le coût en O (qN2)

de la formule initiale (B.37) !

Remarque B.18. Pour simplifier la présentation, la simplification dûe au fait que les données sont réellesn’a pas été prise en compte. Ainsi l’algorithme s’applique naturellement aux données complexes. Dans le casoù les données sont réelles selon la remarque B.12 page 66, la fonction fN peut prendre entre les tk des valeurscomplexes non réelles. Autrement dit, si les données sont réelles, il faut prendre soin de prendre la partie réelledes g calculés.

Exemple B.19. On pourra consulter la fonction interpft_perso et le script test_interpft_perso.L’interpolation traitée est identique à celle des exemples 2.1, 2.2, 2.3 et 2.4 du chapitre 2 sauf que la fonctiontraitée est égale à f(x) = ex sur [−1, 1]. Voir les figures B.2.

Nous constatons sur la dernière figure un «saut» appelé aussi phénomène de Gibbs.

70 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.80.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

fonction interpolatricefonction initiale

(a) : N = 3 et q = 2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 10

0.5

1

1.5

2

2.5

3fonction interpolatricefonction initiale

(b) : N = 3 et q = 103

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 10

0.5

1

1.5

2

2.5

3

3.5fonction interpolatricefonction initiale

(c) : N = 103 et q = 103

Figure B.2. Interpolation trigonométrique de f(x) = ex sur [−1, 1].

B.2.7.2. Dérivation.Reprenons maintenant l’optique de la section 2.2.4 page 23. Comme dans la section précédentes, nous

dériverons la fonction interpolante fN . Soit fe la fréquence d’échantillonage (en Hz) du signal initial. Onconnaît donc toutes les valeurs fk de f aux instants aux instants (B.35). On en déduit donc fN sous la forme(B.11). Par dérivation, on en déduit

f ′N (t) =

nmax∑n=nminn=0

2iπn

TcNn e

2iπn tT .

Il faut en effet enlever le terme correspondant à n = 0, qui par dérivation est nul. Grâce à (B.30), on a donc :

f ′N (t) =

nmax∑n=nminn=0

2iπnfeN

cNn e2iπn t

T . (B.45)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 71

Introduisons les coefficients (dn)nmin≤n≤nmaxpar

∀n ∈ {nmin, ..., nmax}, dn =

{2iπnfe

N cNn , si n = 0,

0, si n = 0.(B.46)

On a alors

f ′N(t) =

nmax∑n=nmin

dne2iπn t

T . (B.47)

On veut déterminer

∀k ∈ {0, ..., N − 1}, gk = f ′N(tk) =

nmax∑n=nmin

dne2iπ kn

N , (B.48)

ce qui revient à déterminer en introduisant les Z = (zn)0≤n≤N−1 définit par

Zn =

{dn, si 0 ≤ n ≤ nmax,

dn−N , si nmax + 1 ≤ n ≤ N − 1,(B.49)

à déterminer g = F−1N (Z).

Comme dans la section B.2.7.1, on peut passer directement des coefficients Y = (yn)0≤n≤N−1 aux coeffi-cients Z = (zn)0≤n≤N−1 en montrant que

∀n ∈ {0, ..., N − 1}, Zn =

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

0, si n = 0,

2iπnfeN

Yn, si 1 ≤ n ≤ nmax,

2iπ(n−N)feN

Yn, si nmax + 1 ≤ n ≤ N − 1.

(B.50)

On a de même pour la dérivée seconde

∀n ∈ {0, ..., N − 1}, Zn =

⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩

0, si n = 0,

−(2πnfeN

)2

Yn, si 1 ≤ n ≤ nmax,

−(2π(n−N)fe

N

)2

Yn, si nmax + 1 ≤ n ≤ N − 1.

(B.51)

Comme dans la section B.2.7.1, Ainsi, le calcul des valeurs g = (gk)0≤k≤N−1 à partir des valeurs y =

(yk)0≤k≤N−1 est le suivant :• Déterminer Y = FN(y)

• en déduire Z = (Zn)0≤n≤N−1 grâce à (B.50) ;• en déduire g = F−1

N (Z).Grâce aux résultats de la section B.2.7.1, on peut donc à la fois dériver (une ou deux fois) et interpoler

très simplement.

Remarque B.20. Comme dans le cas de la remarque B.17, cet algorithme est particulièrement simple.Il nous montre que l’opération d’interpolation se fait uniquement sur les données Y grâce à (B.50) et (B.51)Autrement dit, on ne travaille que «dans l’espace de Fourier». De plus, son coût ne correspond qu’aux opérationsde TFD et de TFDI : l’étape (B.50) ou (B.51) ne coûte rien.

72 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

Remarque B.21. Comme dans le cas de la remarque B.18, pour simplifier la présentation, la simplificationdûe au fait que les données sont réelles n’a pas été prise en compte. Ainsi l’algorithme s’applique naturellementaux données complexes. Dans le cas où les données sont réelles selon la remarque B.12 page 66, la fonction fNou ses dérivées peuvent prendre entre les tk des valeurs complexes non réelles. Autrement dit, si les donnéessont réelles, il faut prendre soin de prendre la partie réelle des g calculés.

Exemple B.22. On pourra consulter la fonction interpftder et le script test_interpftder, qui permetà la fois de dériver une ou deux fois et d’interpoler les dérivées obtenues. L’interpolation traitée est identiqueà celle de l’exemple B.19 sauf que la fonction traitée est égale à l’un des cinq premiers polynômes de Bernoullidéfinis par :

B0(X) = 1, (B.52)

B1(X) = X − 1

2, (B.53)

B2(X) = X2 −X +1

6, (B.54)

B3(X) = X3 − 3

2X2 +

1

2X, (B.55)

B4(X) = X4 − 2X3 +X2 − 1

30, (B.56)

interpolé sur [0, 1].Voir les figures B.3, B.4 et B.5.Nous constatons sur la dernière figure un «saut» appelé aussi phénomène de Gibbs.

B.2.7.3. Énergie et densité spectrale d’énergie.Rappelons, pour une fonction f à valeurs complexes, de période T , l’égalité de Parseval : pour tout entier

Z, on définit le coefficient de Fourier cn par (B.1) page 61. On a alors

1

T

∫ T

0

|f(t)|2dt =n=+∞∑n=−∞

|cn|2. (B.57)

Si f est à valeurs réelle, alors grâce aux simplifications (B.7), on a

1

T

∫ T

0

|f(t)|2dt = 1

T

∫ T

0

f2(t)dt =1

4a20 +

1

2

n=+∞∑n=1

(a2n + b2n

). (B.58)

Ces égalités traduit la «conservation de l’énergie» : la quantité 1T

∫ T

0 |f(t)|2dt est appelée l’énergie de f . Onvérifie que, pour tout n, l’énergie de cne2iπn

tT est égale à |cn|2. Autrement dit, grâce à la formule (B.3), on

constate que l’énergie de f est égale à la somme des énergies de ses harmoniques. En reprenant une définitionanalogue à la définition B.4 page 62, on donne alors la définition

Définition B.23. On appelle la densité spectrale d’énergie l’ensemble des couples(

nT , |cn|2

)n∈Z

Dans le cas où f est à valeurs réelles, on peut se contenter des couples(

nT , |cn|2

)n∈N

.

Qu’en est-il maitenant, si f n’est plus connue, mais que seules sont connues les valeurs yk de f en kT/N

pour N ∈ {0, ..., N − 1}, c’est-à-dire dans le cadre de la section B.2.3 ? On a vu que l’on remplaçait f parson polynôme trigonométrique fN défini par (B.11). On peut donc approcher l’énergie de f par celle de fN .L’égalité (B.57) appliquée à fN est encore valable et fournit donc

1

T

∫ T

0

|fN(t)|2dt =n=nmax∑n=nmin

∣∣cNn ∣∣2. (B.59)

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 73

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.5

0

0.5Dérivée d’ordre 0 ; écart : 0.5

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−4

−2

0

2

4Dérivée d’ordre 1 ; écart : 3.4184

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−20

−10

0

10

20Dérivée d’ordre 2 ; écart : 13.1595

fonction interpolatricefonction initiale

(a) : N = 3 et q = 2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1

−0.5

0

0.5Dérivée d’ordre 0 ; écart : 0.99926

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−4

−2

0

2

4Dérivée d’ordre 1 ; écart : 3.4184

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−20

−10

0

10

20Dérivée d’ordre 2 ; écart : 15.1953

fonction interpolatricefonction initiale

(b) : N = 3 et q = 103

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1

−0.5

0

0.5

1Dérivée d’ordre 0 ; écart : 0.99931

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1500

−1000

−500

0

500Dérivée d’ordre 1 ; écart : 1166.2441

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−2

−1

0

1

2x 10

6 Dérivée d’ordre 2 ; écart : 1748273.9206

fonction interpolatricefonction initiale

(c) : N = 103 et q = 103

Figure B.3. Interpolation trigonométrique de B1 sur [0, 1].

D’autre part, on peut montrer que pour tout y = (yk) ∈ CN et si Y = FN (y), alors on a

1

N

N−1∑k=0

|yk|2 =N−1∑n=0

|Yn|2. (B.60)

Le terme de gauche de (B.60) n’est autre que l’approximation de l’énergie de f par la méthode d’intégrationnumérique des rectangles à gauche (voir par exemple le chapitre 3 de [BM03]). Si on pose Y = FN(yk) oùyk = f(kT/N), alors on constate grâce à (B.13) que les deux égalités (B.59) ou (B.60) traduisent que l’énergiede f est approchée par

SN =

n=nmax∑n=nmin

∣∣cNn ∣∣2 =

N−1∑n=0

|Yn|2. (B.61)

74 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.05

0

0.05Dérivée d’ordre 0 ; écart : 0.0092593

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.5

0

0.5Dérivée d’ordre 1 ; écart : 0.23129

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−4

−2

0

2Dérivée d’ordre 2 ; écart : 3

fonction interpolatricefonction initiale

(a) : N = 3 et q = 2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.05

0

0.05Dérivée d’ordre 0 ; écart : 0.010921

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.5

0

0.5Dérivée d’ordre 1 ; écart : 0.23129

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−4

−2

0

2

4Dérivée d’ordre 2 ; écart : 3

fonction interpolatricefonction initiale

(b) : N = 3 et q = 103

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.05

0

0.05Dérivée d’ordre 0 ; écart : 1.1446e−007

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.5

0

0.5Dérivée d’ordre 1 ; écart : 0.00075

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−4

−2

0

2

4Dérivée d’ordre 2 ; écart : 3

fonction interpolatricefonction initiale

(c) : N = 103 et q = 103

Figure B.4. Interpolation trigonométrique de B3 sur [0, 1].

Si f est à valeurs réelle, alors, on peut montrer grâce à (B.20) et (B.23) que

SN =1

4

(aN0)2

+1

2

n=N/2−1∑n=1

((aNn)2

+(bNn)2)

+1

4

(aNN/2

)2, (B.62a)

si N est pair et

SN =1

4

(aN0)2

+1

2

n=(N−1)/2∑n=1

((aNn)2

+(bNn)2)

, (B.62b)

si N est impair.Par analogie avec la définition B.23, on donne alors la définition :

Définition B.24. On appelle la densité spectrale d’énergie (discrète) l’ensemble des couples(

nT , |cn|2

)n∈{nmin,...,nmax}

,

soit encore, avec les notations de la section B.2.6, l’ensemble des couples(fn, |cn|2

)n∈{nmin,...,nmax}

.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 75

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.04

−0.02

0

0.02

0.04Dérivée d’ordre 0 ; écart : 0.0033436

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−0.2

−0.1

0

0.1

0.2Dérivée d’ordre 1 ; écart : 0.030993

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−2

−1

0

1

2Dérivée d’ordre 2 ; écart : 0.7003

fonction interpolatricefonction initiale

(a) : N = 3 et q = 2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.04

−0.02

0

0.02

0.04Dérivée d’ordre 0 ; écart : 0.0033436

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.4

−0.2

0

0.2

0.4Dérivée d’ordre 1 ; écart : 0.031039

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−2

−1

0

1

2Dérivée d’ordre 2 ; écart : 0.7003

fonction interpolatricefonction initiale

(b) : N = 3 et q = 103

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.04

−0.02

0

0.02

0.04Dérivée d’ordre 0 ; écart : 6.9137e−011

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.2

−0.1

0

0.1

0.2Dérivée d’ordre 1 ; écart : 2.2801e−007

fonction interpolatricefonction initiale

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−1

0

1

2Dérivée d’ordre 2 ; écart : 0.002

fonction interpolatricefonction initiale

(c) : N = 103 et q = 103

Figure B.5. Interpolation trigonométrique de B4 sur [0, 1].

Dans le cas où f est à valeurs réelles, on peut se contenter des couples(0,

1

4

(aN0)2)

,

(fn,

1

2

((aNn)2

+(bNn)2))

n∈{1,...,N/2−1},

(fN/2,

1

4

(aNN/2

)2), (B.63a)

si N est pair et

(0,

1

4

(aN0)2)

,

(fn,

1

2

((aNn)2

+(bNn)2))

n∈{1,...,(N−1)/2}, (B.63b)

si N est impair, soit encore grâce à (B.27) et (B.28) des couples

(0, Y 2

0

),(fn, 2|Yn|2

)n∈{1,...,N/2−1}

,(fN/2, Y

2N/2

), (B.64a)

76 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

si N est pair et (0, Y 2

0

),(fn, 2|Yn|2

)n∈{1,...,(N−1)/2}

. (B.64b)

On pourra consulter la fonction dsere, qui donne la densité spectrale d’énergie.

Exemple B.25. On se donne α, β et γ trois réels positifs ou nuls ; on définit la fonction par

f(t) = α sin(2πt× 50) + β cos(2πt× 120) + γN (t), (B.65)

où N (t) est un «bruit», constitué par un tirage aléatoire de nombres suivant une loi normale centrée réduite.Ces nombes seront pris en autant de valeurs que l’on aura échantillonné α sin(2πt× 50) + β cos(2πt × 120) etrajouté aux valeurs échantillonnée. Pour réaliser ce «bruit», on utilise la fonction randn de matlab.

−5 −4 −3 −2 −1 0 1 2 3 4 50

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45tirageloi

Figure B.6. tirage aléatoire suivant une loi normale centrée réduite

Voir le script test_randn, qui a produit la figure B.6, où sont donnés l’histogramme (en densité, c’est àdire que le nombre des éléments d’une classe est divisé par le produit du nombre total de tirage et de la largeurde la classe). et la densité de la loi de probabilité d’une variable aléatoire normale centrée réduite définie par

g(x) =1√2πe−

x2

2 .

On pourra voir les scripts test_dsere et test_dsereB qui déterminent la densité spectrale d’énergie def définie par (B.65) pour différentes valeurs de α, β et γ :

α = 1, , β = 1, γ = 0, (B.66a)

α = 0, , β = 0, γ = 1, (B.66b)

α = 1, , β = 1, γ = 1. (B.66c)

On peut aussi afficher pour chacune de ces trois simulations l’énergie totales, ainsi que celle des fréquencescomprises entre 40 et 60 Hz (qui contiennent donc la fréquence 50 Hz) et celle des fréquences comprises entre100 et 140 Hz (qui contiennent donc la fréquence 120 Hz). On obtient les résultats donnés dans le tableau B.1.

Commentons ces résultats !– Pour α = 1, β = 1 et γ = 0, il n’y a pas de bruit blanc et les deux signaux sinusoïdaux ont pour énergie(α2 +β2)/2 que l’on retrouve bien approchée par l’énergie totale ; on la retrouve aussi dans chacune desdeux plages de fréquence [40, 60] et [100, 140].

– Pour α = 0, β = 0 et γ = 1, c’est le contraire : pas de signal sinusoïdal, seul un bruit blanc dont l’énergie«couvre toute la gamme des fréquences» (voir figure 8(b)). On peut montrer que l’énergie du bruit blancvaut 1, ce qui est bien approché par 1.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

B.2. RAPPELS SUR L’ANALYSE ET LA SYNTHÈSE DE FOURIER DE FONCTIONS DE R DANS R 77

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5densité spectrale d’énergie

Fréquence (Hz)

(a) totale

0 20 40 60 80 100 120 140 160 180 2000

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5densité spectrale d’énergie

Fréquence (Hz)

(b) jusqu’à 200 Hz

Figure B.7. Densité spectrale d’énergie pour f définie par (B.65) et α = 1, β = 1 et γ = 0.

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

1

2

3

4

5

6x 10

−3 densité spectrale d’énergie

Fréquence (Hz)

(a) totale

0 20 40 60 80 100 120 140 160 180 2000

0.5

1

1.5

2

2.5

3

3.5x 10

−3 densité spectrale d’énergie

Fréquence (Hz)

(b) jusqu’à 200 Hz

Figure B.8. Densité spectrale d’énergie pour f définie par (B.65) et α = 0, β = 0 et γ = 1.

– Pour α = 1, β = 1 et γ = 1, c’est tout simplement la somme des deux phénomènes précédents.Grâce à la notion d’énergie, on a donc «facilement» mis en évidence les deux fréquences 50 et 120 Hz,

malgrè la présence du bruit blanc. On n’a pas exactements les fréquences exactes 50 et 120 Hz car la fréquencefondamentale est ici égale à 3.9984 Hz.

78 B. ANALYSE FRÉQUENTIELLE DE SIGNAUX

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5densité spectrale d’énergie

Fréquence (Hz)

(a) totale

0 20 40 60 80 100 120 140 160 180 2000

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5densité spectrale d’énergie

Fréquence (Hz)

(b) jusqu’à 200 Hz

Figure B.9. Densité spectrale d’énergie pour f définie par (B.65) et α = 1, β = 1 et γ = 1.

α β γ figure E totale E entre 40 et 60 Hz E entre 100 et 140 Hz1 1 0 B.7 0.9893 0.4577 0.49000 0 1 B.8 0.9949 0.0034 0.00851 1 1 B.9 0.4454 0.5469 2.0265

Table B.1. Différentes energies pour les simulations (B.66).

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

ANNEXE C

Ensemble des preuves des résultats de l’annexe B

Preuves de (B.4), (B.5), (B.6) et (B.7). Non rédigée �

Preuve du lemme B.5. Étudions chacun des deux cas, selon la parité de N .• Supposons N pair. L’équation (B.12) devient donc

∀k ∈ {0, ..., N − 1},N/2∑

n=−N/2+1

cNn e2iπn

k TNT = yk,

soit encore, compte tenu de (B.14),

∀k ∈ {0, ..., N − 1},N/2∑

n=−N/2+1

cNn ωnk = yk.

On définit Yn par (B.13) et on effectue une translation de N sur la première moitié des indices de lasomme en y posant n′ = n+N :

−1∑n=−N/2+1

cNn ωnk =

N−1∑n′=N/2+1

cNn′−Nω(n′−N)k =

N−1∑n=N/2+1

cNn−Nωnkω−Nk =

N−1∑n=N/2+1

Y Nn ωnk,

puisque que ω−Nk = 1 et compte tenu de (B.13). On a donc

∀k ∈ {0, ..., N − 1}, yk =

N−1∑n=0

ωnkYn. (C.1)

• Supposons N impair. Les calculs sont identiques L’équation (B.12) devient donc

∀k ∈ {0, ..., N − 1},(N−1)/2∑

n=−(N−1)/2

cNn e2iπn

k TNT = yk,

soit encore, compte tenu de (B.14),

∀k ∈ {0, ..., N − 1},(N−1)/2∑

n=−(N−1)/2

cNn ωnk = yk.

On définit de même Yn par (B.13) et on effectue une translation de N sur la première moitié des indicesde la somme en y posant n′ = n+N :

−1∑n=−(N−1)/2

cNn ωnk =

N−1∑n′=(N−1)/2

cNn′−Nω(n′−N)k =

N−1∑n=(N−1)/2

cNn−Nωnkω−Nk =

N−1∑n=(N−1)/2

Y Nn ωnk,

puisque que ω−Nk = 1 et compte tenu de (B.13). On a donc de nouveau l’équation (C.1).

79

80 C. ENSEMBLE DES PREUVES DES RÉSULTATS DE L’ANNEXE B

Bref, on a montré la première assertion (B.15a).Montrons maintenant (que N soit pair ou non) que (B.15a) est équivalente à (B.15b). Nous montrerons

que (B.15a) implique (B.15b) ; la réciproque est admise. Soit un entier p compris entre 0 et N − 1. Calculonsla somme suivante :

N−1∑k=0

ω−kpyk =

N−1∑k=0

ω−kpN−1∑n=0

ωnkYn =

N−1∑k=0

N−1∑n=0

ωk(n−p)Yn =

N−1∑n=0

Yn

N−1∑k=0

ωk(n−p).

Cette somme est la somme d’une progression géométrique de raison ρ = ωn−p :N−1∑k=0

ρk =

{N, si ρ = 1, c’est-à-dire si p = n,ωN(n−p)−1ωn−p−1 = 0, si ρ = 1, c’est-à-dire si p = n

On a doncN−1∑k=0

ω−kpyk = NYp,

ce qui prouve (B.15b). �

Preuve du lemme B.10. Non rédigée �

Preuve du lemme B.11. Non rédigée �

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN

Bibliographie

[AF89] J.M. Arnaudiès et H. Fraysse. Cours de mathématiques, tome 3 : compléments d’analyse. Dunod Université, Paris,1989.

[AMAYH97] Karim Abdel-Malek, Frederick Adkins, Harn-You Yeh et Edward Haug. On the determination of boundaries tomanipulator workspaces. Robotic and Computer Integrated Manufacturing, 13(1) :63–72, 1997.

[AMY97] Karim Abdel-Malek et Harn-You Yeh. Geometric representation of the swept volum using jacobain rank-deficiencyconditions. Computer Aided Design, 29(6) :457–468, 1997.

[AMYS98] Karim Abdel-Malek, Harn-You Yeh et Othman Saeb. Swept volumes : void and boundary identification. Computer-Aided Design, 30(13) :1009–1018, 1998.

[AMYZT04] Karim Abdel-Malek, Jingzhou Yang, Brand Zhang et Emad Tanbours. Towards understanding the workspace ofhuman limbs. Ergonomics, 47(13) :1386–1405, 2004.

[Bas03] Jérôme Bastien. Mathématiques : Applications. Notes de cours de MT31 de l’UTBM, disponible sur le web :http://utbmjb.chez-alice.fr/UTBM/index.html , rubrique MT31, 2003.

[Bas07] Jérôme Bastien. Applications de l’algèbre et d’analyse à la géométrie. Notes de cours de MT25 de l’UTBM, disponiblesur le web : http://utbmjb.chez-alice.fr/UTBM/index.html , rubrique MT25, 2007.

[Bel06] Maurice Bellanger. Traitement numérique du signal : Théorie et pratique. Dunod, 2006.

[Ber67] N. Bernstein. The coordination and regulation of mouvements. Pergamon Press, New York, 1967.

[BLM07] Jérôme Bastien, Pierre Legreneur et Karine Monteil. Caractérisation géométrique de la frontière de l’espace de travaild’un système polyarticulé dans le plan. Comptes Rendus de l’Académie des Sciences (Mécanique), 335(3) :181–186,2007.

[BLM10] Jérôme Bastien, Pierre Legreneur et Karine Monteil. A geometrical alternative to jacobian rank deficiency methodfor planar workspace characterisation. Mechanism and Machine Theory, 45 :335–348, 2010. DOI information :10.1016/j.mechmachtheory.2009.09.007.

[BM98] Gérard Blanchet et Charbit Maurice. Traitement numérique du signal : simulation sous matlab. Hermès, 1998.

[BM03] Jérôme Bastien et Jean-Noël Martin. Introduction à l’analyse numérique ; applications sous matlab. Dunod, Paris,2003.

[BNdFPS06] Paulo Roberto Bergamaschi, Antônio Carlos Nogueira et Sezimária de Fátima Pereira Saramago. Design and opti-mization of 3R manipulators using the workspace features. Appl. Math. Comput., 172(1) :439–463, 2006.

[Boo78] De Boor. A partical guide to splines. Springer-Verlag, 1978.

[BPV04] Franco Blanchini, Felice Andrea Pellegrino et Luca Visentini. Control of manipulators in a constrained workspaceby means of linked invariant sets. Internat. J. Robust Nonlinear Control, 14(13-14) :1185–1205, 2004.

[CBVL12] Thomas Creveaux, Jérôme Bastien, Clément Villars et Pierre Legreneur. Model of joint displacement usingsigmoid function. Experimental approach for planar pointing task and squat jump, 2012. disponible surhttp://arxiv.org/abs/1207.2627 .

[CBVL13] Thomas Creveaux, Jérôme Bastien, Clément Villars et Pierre Legreneur. Model of joint displacement using sigmoidfunction. experimental approach for planar pointing task and squat jump. In Dries Goossens, Frits Spieksma et PhilScarf, editors, 4th International Conference on Mathematics in Sport, Leuven, Belgique, juillet 2013. KU Leuven,Faculty of Business and Economics. ISBN : 9789081409964.

[Cia85] P.G. Ciarlet. Introduction à l’analyse numérique matricielle et à l’optimisation. Masson, Paris, 1985.

[CT65] James W. Cooley et John W. Tukey. An algorithm for the machine calculation of complex Fourier series. Math.Comp., 19 :297–301, 1965.

[DH55] J. Denavit et R. S. Hartenberg. A kinematic notation for lower-pair mechanisms based on matrices. J. Appl. Mech.,22 :215–221, 1955.

81

82 BIBLIOGRAPHIE

[DPH01] E. Dupuis, E. Papadopoulos et V. Hayward. The Singular Vector Algorithm for the Computation of Rank- DeficiencyLoci of Rectangular Jacobians. In International Conference on Intelligent Robots and Systems, Maui, Hawai, USA,Oct 29 - Nov 03 2001.

[GBvT95] C.C.A.M. Gielen, B.M. Bolhuis van et M. Theeuvwen. On the control of biologically and kinematically redundantmanipulators. Human Movement Science, 14 :443–446, 1995.

[GW00] Claude Gasquet et Patrick Witomski. Analyse de Fourier et applications : Filtrage, calcul numérique et ondelettes.Dunod, 2000.

[KLR98] J-P. Kahane et P-G. Lemarié-Rieusset. Séries de Fourier et ondelettes. Cassini, 1998.

[LCRZ96] Giovanni Legnani, Federico Casolo, Paolo Righettini et Bruno Zappa. A homogeneous matrix approach to 3d kine-matics and dynamics - i. theory. Mechanism and Machine Theory, 31(5) :573–587, 1996.

[Mar00] Jean-Noël Martin. Mathématiques pour l’image. Notes de cours de MT51 de l’UTBM, 2000.

[MGM98] Jean-Pierre Merlet, Clément M. Gosselin et Nicolas Mouly. Workspaces of planar parallel manipulators. Mech. Mach.Theory, 33(1-2) :7–20, 1998.

[Mol98] J.F.M. Molenbroek. Reach envelopes of older adults. In The 42-nd Annual Meeting of the «Human Factors andErgonomics Society», pages 166–170, Chicago, USA, Oct 5 - 9 1998.

[Pat91] J. Patry. Les fractions continues. Technip, 1991.

[Sch01] Michelle Schatzmann. Analyse numérique, une approche mathématique, Cours et exercices. Dunod, 2001.

[SS99] John P. Scholz et Gregor Schöner. The uncontrolled manifold concept : identifying control variables for a functionaltask. Exp. Brain. Res., pages 289–306, 1999.

[SSL00] John P. Scholz, Gregor Schöner et Mark L. Latash. Identifying the control structure of multijoint coordinationduring pistol shooting. Exp. Brain. Res., pages 382–404, 2000.

[Str91] G. Strang. Calculus. Wellesley, Wellesley-Cambridge Press, Box 812060, Wellesley MA 02181, USA, 1991.

[SvGv95] A.J. Soest van et G.P. Galen van. Coordination of multi-joint movements : an introduction to emerging views.Human Movement Science, 14 :391–400, 1995.

[TS05] Ya-weng Tseng et John P. Scholz. The effect of workspace on the use of motor abundance. Motor Control, 9 :75–100,2005.

[Win90] D.A. Winter. Biomechanics and Motor Control of Human Movement. Wiley, Canada, 1990.

[WvdHV+05] G. Wu, F.C.T van der Helm, M. Veeger, H.E.J. Makhsous, P. Van Roy, C. Anglin, J. Nagels, A.R. Karduna,K. McQuade, X. Wang et al. Isb recommendation on definitions of joint coordinate systems of various joints for thereporting of human joint motion–part ii : shoulder, elbow, wrist and hand. Journal of Biomechanics, 38(5) :981–992,2005.

[YZCAM04] Jingzhou Yang, Yunqing Zhang, Liping Chen et Karim Abdel-Malek. Reach envelope of human extremities. TsinghuaSci. Technol., 9(6) :653–666, 2004.

UCBL/UFRSTAPS 2014-2015 Automne M2 (R) MPS Cours de Biomécanique Jérôme BASTIEN