moyen
Moyenne Mobile
Un accéléromètre permet de déterminer les mouvements d'un objet. Lorsque l'on effectue une série de mesures issues de ce capteur, on récupère sur le micro-contrôleur des valeurs qui varient rapidement, ou avec des imperfections, des variations parasites appelées bruit .
Il est ainsi difficile d'interpréter les informations brutes issues de ce capteur :
Il convient alors d'appliquer un filtre à ce signal afin de le lisser et supprimer les variations rapides, comme représenté ci-dessous :
Un filtre simple à mettre en place est la moyenne glissante ou mobile . Une valeur filtrée est obtenue en faisant la moyenne des N dernières mesures.
Avec une moyenne glissante, on ne calcule pas la moyenne sur l'ensemble des valeurs de la série, mais sur un sous-ensemble de N éléments consécutifs. Ainsi ce sous-ensemble, parfois appelé fenêtre , utilisé pour calculer chaque moyenne glisse sur l'ensemble des données.
Imaginons une fenêtre de \(4\) éléments :
Il est nécessaire d'avoir \(4\) éléments pour calculer une moyenne : cette série de \(6\) valeurs nous permet de calculer uniquement \(3\) moyennes.
Écrire la fonction moyenne_mobile. Cette fonction prend en paramètres un tableau de nombres serie contenant les mesures et un entier N qui vaut la taille de la fenêtre. Cette fonction renvoie la liste des moyennes glissantes calculées sur serie avec une fenêtre de taille N.
On assure que le nombre d'éléments de la série est supérieur à N.
Contraintes
On n'utilisera ni sum, ni mean ni les tranches (comme par exemple liste[i:i+7])
Exemples
>>> moyenne_mobile ([ 1 , 2 , 3 , 4 , 5 , 6 ], 4 )
[2.5, 3.5, 4.5]
Version vide Version à trous
.128013s3_8èufvy n7aêS1me(P2C4:jtwi][h)6o;bcdUg/0lqp.r-,=+Nk95Ré050M0s0A0n0C0R0b0k0L0R0n0b0b0Y010A0C0T010406050b0g0r0r0n0V0j040p0I0R0g0}0I0l0k020n0r0T0J0k0(0s170V0S0g0s0b050P1416181a120T041y1F051I0P1I1K1F120M0C0i0=0@0_0{0F0C0O0F0R1Y0F0A10050-0K0R0s1T0^0`011X1Z1#1Z0A1+1-1)0A0K0I0M1a1*0V1G0A0F0=1d0b0T0n0l0{0v011/1V010h0/0s0l1l0s1)2a2c2h1;2k1-2n0r2p040a0k0u0V0I0T0I0b0C1g1i0+280V0V0s0L2K1y2r0l1G0P262W0A2423250M2t0{1#0l2m2H1)1Q1S0?1:2*0C2,0l201R1)0T2P1G2U2W31132b1i2=2i2`0V170R100k0q2T3511342s371;393b3d0v3g2c3i2U2)013n0n3c040k0c3r2V123u3l0{3x3z0k0x3D3t353v3J3d0%3N3F3P3H3w0I3a3y3d0H3U3j361U3m3Z3o3A0m3(3G3+3I3-3#3A0e3;3W3?3Y3!3K0$3|3k3~3R040q0Q433*2?3 3.0q3f1z3h3V444c460q3q4h3s4j4b383^3z0q3C4p3E3)3Q4u100q3M4y3O4k4t404D3T4G4r4B4K473%4N4A3X4m3:4G1H2 1y2:2Z0M2%3v0L202z0*1R1G2~0s303h3N054+0+4?4I1;0#100+0h4^3=4c0B3d533}4l0h100r0I0j2m2,0d5d0K2l584}0{0 040t5m4s3m100b0s0V0C0s5s3v5p0X3N0k4U45100!5B3X5p0G0y3U0k5R5G5438100l0K2P5i5e5g1w5F5H4c0I100Y5(5U3m0K102w5L3~5p5r4Y5/3I5v5x5z5@4c5N5.592i5+040W645n3w5J6a5t0{670Z6e3v0r0C4D5Q5S5)5V042P140R0-0A1x4G5T651;675-6z6q1;5p0E612i6l10496F5|014 040h3Z6j4V100d6W3~0I56042^6!4l5;6s2c0O5A5{6B5o105`336Q0l5W5Y0s5!5f0l2,6y6_6=015N0D6o5R6G5}040b0I166:316A6b6D6*6L6m046O31065S7j6f6R106U0V7m5u6(7A6g6%6)6P755X100V6.7h4@6Q5_6K7B5K6;6b5N5P4N7t7t7b6c7d7f2y7D017l7H6b6{7%7g7*6h7*7/5w5y7N3s7#6I7R7c0C7 7610787Y6p6`7K1w0g6v0n6x827~7U7v6M7p8f847=5,7@5v7(7{2V7u3v670P8p047T7r7!886(0l1Q0L6~7e0V0-0l0A8n046E7i7#8j7q4i8C7I102^8G6~2m2!2c8N7-7v7,8R8D8A8V878X8E8!6 5$8O8Q3h8u3X8j4g8B8;6b6S7y8y8Z0C8H7=7F0l7@6,7L0l6/8l5q827/5X5Z5d70728267698h6k7o907O757W797Z7#7^8r8`8y7e7;8*8v106i9K6X7d5 8s4|7v8g747.8Y8F988#8M9f8)9W9U8m9O6#109t8-8=7_609u5M106J9@5I8?9!0d8J8L9(9y7V9+917Z8}9|6t8b6w73a39*049`9)3Q9Y8@9o8_9{62a58|7#8,ar8D9I7)9,5*108xay6r8/4qa77a8D978H9 3Za18O0Z8{3sa84c8 9B8W9X9}aK8$9%aOaQ8t8S9waV927v7/aJ6~am719SaS669Ma%3Aa)6n86aH756S2P0A0g0V9caC7Baa8c8e4T0P4`4=4Zbf0P4$1y0A4(bk2#2X1 212Z0n1,bh4$1E9T3v2P0r0d0h0n0#6~0F0c101q1s1u1w0k7X331L3i1F1q0L3y0L8b5x0k0@0kaw1.2Gb40=0F0nbM0k2`0g0i0s0R1-0k0h2m0o2!b(5x2y0A0k0M000I0K0A2m0C0Vb!1.0V0)6u6w0X0k170C0;1wc10T0s0g0k0s0h2kbV8H0=18c21r2c2M0+0;bV0RbX0:0k1u0Cb$1hc12mb_0.c12^1f2l0b0U1H3i2:3v1?1!1$1(by3X2v2m2o102B0p0L5y0Tc10u0j261h4^4;9T324@bec*3~6S51826%5Gao385b04a;5h5j5lda6H6@9k5~7`9i5Eb77caE2V7}105O9B9D6|9n5#a=adaRas8odq3w6,5?di6?9jdL7$9=9Sdu040G8O9/au8=dsa{6Q7?dHaUa~a@b88abadDa(d#dG9:a4ag828T7*946VdH7/6ZdH6$9Y9d7K7M9i6^aeaj049ma:dB9qdO773U7sa,3vd{7zd}ak9!9ae2d}9ee5efdkdO9l6}8^dC9idwd)aWa-8q9Jd=8+d;dX6bd_eEej3Xel96eq8Ee36-9gdR7Pewai9Pa/do969Z99dOd$e$9|dZdSeDa6aGa aXb%9Gen7:axeJ9L049Nf09PdQ9iahe8e%9i85e@eFe9b9acf7dlaYeZ9zaqdEd:8P9H9Fe0aA8ydZ06eie_7vb10,b4b6f4a9d,fhbcd2bg2Wbw1J040N1i3y0O3Z2J0F2y0k0T1eclct980n8Hch2~ce8$0)cr363Z2P2R0C1hchcmcbb$0g1R8(bOd91O058b3i1#041hcxcGbY0k0g2,fYbA0C0f2Pb_0Ickb!0ncied0sch1yg612g6b)ca1-0;debN14f~8M1wchg8140T2~0CfXb#0i3ycpgygofZ0g0;2c0L5za=c2cq0A0I0-0Rf*f}0;g80j0k0n0z0I1f1.gOgQb*b#gU0;cd8HgFcX0Pgu1yg4bx0w0,g:0RfT5y26fX2P2G5wf|gyb(5y0lgYcoczgn5T2!1h0O042~0I0O7L1B2Kc20j2x0CbM2Tht9g04h2g2bi0,0.0:04.
L'algorithme est ici le suivant :
on calcule une première fois la moyenne,
pour les moyennes suivantes, on supprime la valeur la plus ancienne du total, puis on y ajoute la valeur la plus récente.
.128013s3_8èufvy n7aêS1me(P2C4:jtwi][h)6o;bcdUg/0lqp.r-,=+Nk95Ré050M0s0A0n0C0R0b0k0L0R0n0b0b0Y010A0C0T010406050b0g0r0r0n0V0j040p0I0R0g0}0I0l0k020n0r0T0J0k0(0s170V0S0g0s0b050P1416181a120T041y1F051I0P1I1K1F120M0C0i0=0@0_0{0F0C0O0F0R1Y0F0A10050-0K0R0s1T0^0`011X1Z1#1Z0A1+1-1)0A0K0I0M1a1*0V1G0A0F0=1d0b0T0n0l0{0v011/1V010h0/0s0l1l0s1)2a2c2h1;2k1-2n0r2p040a0k0u0V0I0T0I0b0C1g1i0+280V0V0s0L2K1y2r0l1G0P262W0A2423250M2t0{1#0l2m2H1)1Q1S0?1:2*0C2,0l201R1)0T2P1G2U2W31132b1i2=2i2`0V170R100k0q2T3511342s371;393b3d0v3g2c3i2U2)013n0n3c040k0c3r2V123u3l0{3x3z0k0x3D3t353v3J3d0%3N3F3P3H3w0I3a3y3d0H3U3j361U3m3Z3o3A0m3(3G3+3I3-3#3A0e3;3W3?3Y3!3K0$3|3k3~3R040q0Q433*2?3 3.0q3f1z3h3V444c460q3q4h3s4j4b383^3z0q3C4p3E3)3Q4u100q3M4y3O4k4t404D3T4G4r4B4K473%4N4A3X4m3:4G1H2 1y2:2Z0M2%3v0L202z0*1R1G2~0s303h3N054+0+4?4I1;0#100+0h4^3=4c0B3d533}4l0h100r0I0j2m2,0d5d0K2l584}0{0 040t5m4s3m100b0s0V0C0s5s3v5p0X3N0k4U45100!5B3X5p0G0y3U0k5R5G5438100l0K2P5i5e5g1w5F5H4c0I100Y5(5U3m0K102w5L3~5p5r4Y5/3I5v5x5z5@4c5N5.592i5+040W645n3w5J6a5t0{670Z6e3v0r0C4D5Q5S5)5V042P140R0-0A1x4G5T651;675-6z6q1;5p0E612i6l10496F5|014 040h3Z6j4V100d6W3~0I56042^6!4l5;6s2c0O5A5{6B5o105`336Q0l5W5Y0s5!5f0l2,6y6_6=015N0D6o5R6G5}040b0I166:316A6b6D6*6L6m046O31065S7j6f6R106U0V7m5u6(7A6g6%6)6P755X100V6.7h4@6Q5_6K7B5K7H6b5N5P4N7t7t7b6c7d7f2y7D017l7U7v6{7%7g7*6h7*7/5w5y7N3s7#6I7R7c0C7 7610787Y6p6`7K1w0g6v0n6x827~6;6b6M7p8f847=5,7@5v7(7{2V7u3v670P8p047T7r7!886(0l1Q0L6~7e0V0-0l0A8n046E7i7#8j7q4i8C7I102^8G6~2m2!2c8N7-8v8o8*6X8z798u8.8Z0C8H6 5$8O8Q3h8;3~8j4g8B87756S7y8y8?8H7=7F0l7@6,7L0l6/8l5q827/5X5Z5d70728267698h7v909i5O8:8W6b7^8r8{8y7e7;8-6#106i9I4l5~7`9i6J9u3Q8Y8F8@8#8M9f8)747V8m9M66109t8R8D7_609S5M109R9#7.9U8!0d8J8L9!7O755p85927Z8~9N6s8a8c8e9:5^9=9k9_9W8_718s4|7va19E9(7B9G7)ao6g108xas7$8A8Va4a56r988I3Z9}8O0Z8|3saB1;9w86a47#7/aD0d8$9ZaHaJ8t8S7o91azaP8DaS9o8`aw6haX3AaZ6naOaL0{6S2P0A0g0V9caw7/6t8b6w734i1y4`4=4Zb70P4$1y0A4(bc2#2X1 212Z0n1,b94$1Eak3v2P0r0d0h0n0#6~0F0c101q1s1u1w0k7X331L3i1F1q0L3y0L8b5x0k0@0kaq1.2Ga{0=0F0nbE0k2`0g0i0s0R1-0k0h2m0o2!bW5x2y0A0k0M000I0K0A2m0C0VbS1.0V0)6u6w0X0k170C0;1wb_0T0s0g0k0s0h2kbN8H0=18b`1r2c2M0+0;bN0RbP0:0k1u0CbU1hb_2mb.0.b_2^1f2l0b0U1HbK040N1i3y0O3Z2J0F2y0k0T1ecdcl8@0n8Hc92~c68$0)cj363Z2P2R0C1hc9cec3bU0g1R8(bG5GbJ128b3i1#041hcpcybQ0k0g2,c#bs0C0f2Pb.0IccbS0nca5#aic91yd912d9bXc21-0;a*ai0;14d18M1wc9db140T2~0Cc!bT0i3ychdBdrc$0g0;2c0L5zaib`ci0A0I0-0Rc-d00;db0j0k0n0z0I1f1.dSdUbYbTdY0;c58HdJcP0Pdx1yd7bp0w0,d@0RcW5y26c!2P2G5wc dBbW5y0ld$cgcrdq5T2!1h0O042~0I0O7L1B2Kb`0j2x0CbE2Tex9g04e61O4#0,0.0:04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)