Toujours pour mon p'tit utilitaire(voir "l'arc-en-ciel"), j'ai voulu moduler en fréquence un sinus :
fonction du type y=amplitude*sin(2*#pi*f(t)) avec f(t), fréquence variable
Ben voilà, essayez le code :
(courbe n°1 en haut, ce que j'ai obtenu



(courbe n°2 en bas, ce que je pensais obtenir)
Code : Tout sélectionner
;Bizarrerie du sinus modulé ?
;auteur Huitbit
;PureBasic 4.30 (Windows - x86)
#largeur_ecran=1024
#hauteur_ecran=768
#marge=12
;-données courbe n°1
x1_ancien.f=#marge
y1_ancien.f=#hauteur_ecran*0.25
frequence1.f=100
;-données courbe n°2
x2_ancien.f=#marge
y2_ancien.f=#hauteur_ecran*0.75
frequence2.f=100
x2_0=#marge
sym=1
frequence_echantillonnage.f=1000
OpenWindow(0, 0, 0, #largeur_ecran, #hauteur_ecran, "Bizarre !", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StartDrawing(WindowOutput(0))
;-dessin des écrans
Box(0,#hauteur_ecran*0.5,#largeur_ecran,#hauteur_ecran*0.5,RGB(0,0,0))
Box(0,0,#largeur_ecran,#hauteur_ecran*0.5-#marge,RGB(0,0,0))
;-tracé des courbes
For x=12 To 1000
;-courbe n°1 *******************************************************************************
frequence1=(100-0.1*x)
y1=#hauteur_ecran*0.25-120*Sin(2*#PI*frequence1*x/frequence_echantillonnage)
LineXY(x1_ancien,y1_ancien,x,y1,RGB(255,0,0))
x1_ancien=x
y1_ancien=y1
;-courbe n°2 ********************************************************************************
If x<x2_0+frequence_echantillonnage/frequence2*0.5
y2=#hauteur_ecran*0.75-120*sym*Sin(2*#PI*frequence2*(x-x2_0)/frequence_echantillonnage)
Else
x2_0=x2_0+frequence_echantillonnage/frequence2*0.5
frequence2=100-0.1*x2_0
sym=-sym
EndIf
LineXY(x2_ancien,y2_ancien,x,y2,RGB(255,0,0))
x2_ancien=x
y2_ancien=y2
Next x
StopDrawing()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Pour obtenir la courbe n°2, j'ai dû découper la courbe en demi-sinusoïdes et faire varier de manière discrète la fréquence.
Imaginez un son qui correspondrait à ces courbes:
courbe n°1 : un son aigu qui devient grave puis ...qui remonte dans les aigus
courbe n°2 un son aigu qui devient grave (ce que je souhaite!)
Il y a pas mal de phénomènes physiques avec les ondes (effet Doppler,diffraction, interférences, battements...etc).
Pour la courbe n°1 je ne vois pas d'équivalent physique.
Si quelqu'un a déjà vu ça (acoustique, traitement du signal, optique...), un petit article serait sympa !
Hasta la vista !