moyenne sur des décibels

cabrette13

XLDnaute Nouveau
bonjour,

je voudrais écrire dans Excel une formule me permettant de calculer la moyenne de plusieurs valeurs en dB
je pense qu'il s'agit de la formule de moyenne énergétique mais je ne sais comment l'écrire dans une cellule Excel
la formule serait du type : M = 10 log 1/3 (10 exp. a/10 + 10 exp.b/10 + 10 exp. c/10 )

merci de vos conseils
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : moyenne sur des décibels

Bonsoir cabrette et bienvenu :)

Pour ce que j'en ai compris: si vos données sont par exemple en A1:A3 alors essayez cette formule matricielle:
Code:
=10*LOG10(SOMME((PUISSANCE(10;A1:A3/10)))/NBVAL(A1:A3))

Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.

NB: la formule ci-dessus n'est correcte que si aucune cellule vide n'est présente dans la plage A1:A3

Edit: pour ne pas tenir compte des cellules vides ou non numériques de la plage, essayez cette formule matricielle:
Code:
=10*LOG10(SOMME(SI(ESTNUM(A1:A3);PUISSANCE(10;A1:A3/10);0))/SOMME(--ESTNUM(A1:A3)))
 

Pièces jointes

  • moyenne sur des décibels v1.xls
    27 KB · Affichages: 199
Dernière édition:

magicfab38

XLDnaute Nouveau
Re : moyenne sur des décibels

Non, malheureusement votre formule ne convient pas... ce serait trop simple !
Pour n échantillons, il faudrait écrire : = 10 log (1 / n) + 10 log ( 10 ^ (L1 / 10) + 10 ^ (L2 / 10) + .... + 10 ^ (Ln / 10))
Mais comme ça n'est pas utilisable dans Excel, le plus simple est de repasser des valeurs en dB vers les pressions en Pascal, d'en faire la moyenne arithmétique, puis de revenir à un affichage en dB.

Au final nous avons écrit une fonction Excel, qui vous pouvez ajouter dans votre classeur Excel.

- Afficher la barre d'outils "Développeur"
- Visualiser le code
- Insérer un nouveau module au classeur
- Coller le code ci-dessous
- Enregistrer

Alors, si dans une cellule vous utiliser la formule =calcul_log(A1:A3) vous obtiendrez la moyenne énergétique sur la plage sélectionnée
Code :

Function calcul_log(rng As Range)
Dim cell As Range
Dim a As Variant
Dim b As Variant
Dim c As Variant

For Each cell In rng
a = a + ((10) ^ (cell / 10))
b = b + 1
Next cell

c = 10 * Application.WorksheetFunction.Log10(a / b)
calcul_log = c

End Function
 

Discussions similaires

Statistiques des forums

Discussions
314 221
Messages
2 107 464
Membres
109 835
dernier inscrit
Marie Bénédicte