COMPARAISON DES RÉSULTATS DE HELMHOLTZ AVEC CEUX DE SON "ACTUALISATION" PSYCHOPHYSIOLOGIQUE
Dans
cette feuille de calcul je compare les résultats de Helmholtz avec ceux
de la théorie psychophysiologique que j'ai établie. Pour être comprise,
cette feuille suppose la connaissance préalable des deux
précédentes : "Reconstitution
des calculs de Helmholtz" et
"Théorie psychophysiologique des
consonnances et dissonances".
> | restart; |
> | deh:=(A,f2)->A/(A+(2*3.14*(264-f2)/(264+f2))^2)*(60*(f2-264)/(900+(f2-264)^2))^2; |
![]() |
(1) |
> | plot(deh(0.1,f2),f2=264..396,thickness=4,color=black); |
![]() |
1.2. Dans la théorie psychophysiologique, la dissonance élémentaire est donnée par la fonction :
> | de:=x->118*x^2*exp(-8*x); |
![]() |
(2) |
> | abs(f2-f1)/bc((f1+f2)/2); |
![]() |
(3) |
Ici f1 = 264, f2 varie de 264 à 396 et bc est la bande critique donnée par la fonction :
> | bc:=f->0.2022*(1408969+f^2)^.5-150; |
![]() |
(4) |
> | depsy:=f2->118*(abs(f2-264)/bc((264+f2)/2))^2*exp(-8*abs(f2-264)/bc((264+f2)/2)); |
![]() |
(5) |
> | plot(depsy,264..396,thickness=4,color=blue); |
![]() |
> | IBh:=(m1,m2)->1/m1/m2; |
![]() |
> | plot3d(IBh(m1,m2),m1=1..10,m2=1..10,axes=frame); |
![]() |
2.2. Théorie psychophysiologique :
> | IBpsy:=(m1,m2)->(1/m1/m2)^0.3; |
![]() |
(6) |
> | plot3d(IBpsy(m1,m2),m1=1..10,m2=1..10,axes=frame); |
![]() |
> | evalf(IBh(1,10));evalf(IBh(10,10)); |
![]() |
|
![]() |
(7) |
> | evalf(IBpsy(1,10));evalf(IBpsy(10,10)); |
![]() |
|
![]() |
(8) |
3. Dissonance de deux sons en "dents de scie"
> | dissh:=(A,m1,m2,k)->1/(m1*m2)*A/(A+(2*3.14*(m1-m2*k)/(m1+m2*k))^2)*(60*(m2*264*k-m1*264)/(900+(m2*264*k-m1*264)^2))^2; |
![]() |
(9) |
> | dissonanceh:=A->add(add(dissh(A,m1,m2,k),m1=1..10),m2=1..10); |
![]() |
(10) |
> | plot(dissonanceh(0.1),k=1..2,color=black); |
![]() |
3.2. Théorie psychophysiologique
> | depsy:=(f1,f2)->118*(abs(f2-f1)/bc((f1+f2)/2))^2*exp(-8*abs(f2-f1)/bc((f1+f2)/2)); |
![]() |
(11) |
On prend alors pour f1 et f2 les fréquences des partiels m1.264 et k.m2.f2 :
> | disspsy:=(m1,m2,k)->
if m1+m2<=8 then IBpsy(m1,m2)*depsy(264*m1,264*k*m2) elif m1+m2<=14 then 0.6*IBpsy(m1,m2)*depsy(264*m1,264*k*m2) else 0.4*IBpsy(m1,m2)*depsy(264*m1,264*k*m2) fi; |
![]() ![]() ![]() |
(12) |
> | dissonancepsy:=add(add(disspsy(m1,m2,k),m1=1..10),m2=1..10): |
> | plot(dissonancepsy,k=1..2,color=blue); |
![]() |
> | plot([4.2*dissonanceh(0.1),dissonancepsy],k=1..2,color=[black,blue]); |
![]() |
Patrice Bailhache, 28/11/2014