Comparaison de synthèses : modulation de phase et modulation de fréquence
- 39 réponses
- 8 participants
- 12 925 vues
- 8 followers
Dr Pouet
Voilà, j'espère que les choses sont plus claires maintenant. Vivement que l'on s'intéresse à la modulation de fréquence (ou de phase, qui n'est pas la même chose, du moins mathématiquement)
Que veut tu dire par "qui n'est pas la même chose" ?
Parce qu'a l'oreille c'est identique à partir de quelques Hz du moins. Et j'avais lu que c'était équivalent mathematiquement.
http://cours.musique.umontreal.ca/mus1321/Notes_de_cours/Csound_04_SynthMod.html
Mais il faut savoir que modulation de fréquence et modulation de phase sont équivalentes. En effet, moduler la phase avec la fonction m(t) revient à moduler la fréquence avec m'(t), la dérivée de m(t). Donc, si une fonction sinus module la phase, une fonction cosinus (sa dérivée) module la fréquence.
On peut facilement montrer qu'une modulation de phase d'amplitude I est équivalente à modulation de fréquence d'amplitude D = I M, sachant que la dérivée en fonction du temps t du sinus de (ω t) est le cosinus (ω t) multiplié par la fréquence angulaire ω :
(sin ω t)' = ω cos ω t
Ainsi, en dérivant par rapport au temps le signal modulant la phase
Φ = I sin(ωM t )
on obtient le signal modulant la fréquence :
Φ' = I ωM cos(ωM t )
Ce qui donne l'expression suivante pour y :
y = A sin[ (ωC + I ωM cos(ωM t )) t ]
[ Dernière édition du message le 05/08/2010 à 10:07:47 ]
Choc
Je suis pas assez callé sur la question...en tout cas lorsque fm=fp on obtient bien directement la decomposition en série de fourier d' un signal périodique de période 1/fm
Site personnel: https://www.enib.fr/~choqueuse/
[ Dernière édition du message le 24/08/2010 à 20:46:40 ]
Danguit
Pour en revenir à la question initiale, l'une des conclusions dès le premier post était que pour une fréquence de modulation sinusoïdale, les deux types de modulations sont équivalents (avec quand même un déphasage quelque part).
Après quelques petits calculs, je me suis fait un petit script Scilab. Celui-ci me permet pour l'instant de générer les modulations, de modifier les paramètres (Fp, Fm, m), de visualiser la forme temporelle et le module du spectre, et d'écouter en stéréo d'un côté la PM de l'autre la FM. Accessoirement, cela permet aussi de constater l'effet du repliement quand l'indice de modulation induit des fréquences > fe/2.
On constate bien que les formes temporelles sont légèrement différentes et que les module des spectres sont identiques.
A l'écoute au casque, les deux sons me paraissent identiques, mais le positionnement par rapport au centre varie en fonction des paramètres.
On peut évidemment arriver à ces conclusions de façon purement mathématique, mais je trouve que l'expérimentation a aussi de bons côtés, notamment quand on veut faire de la musique.
Choc
Oui oui, je suis d'accord...ce qui compte c'est le resultat sonore...
Site personnel: https://www.enib.fr/~choqueuse/
plutonak
Danguit, peux-tu partager ton code scilab ? merci
Danguit
plutonak
ah. En fait, je pensais directement sur le forum. Ça peut intéresser plusieurs personnes, non ? Je me demande dans quelle mesure une section scilab sur AF ne serait pas recommandée. On pourrait s'échanger des morceaux de code qui font des sons bizarres...
Danguit
Bon, on va essayer :
// exemple PM&FM - DQ 20100825 -
// Init
gstacksize('max');
stacksize('max');
// Prélim
fs=44100;
dt=1/fs;
npts=2^16
npf=npts/2;
npgr0=500; // Par défaut : loupe pour graphe temporel
df=fs/npts;
fr=[1:npf].*df;
ts=[1:npts].*dt;
// Param init
f0=100*sqrt(5);
fm=1000//*sqrt(2);
pham=1//2.4048;
choix=1;
// Boucle Calcul
while choix==1
clf(0); clf(1);
Sp1=[]; xmpm=[]; xmfm=[]; Stereo=[];
txt=["Porteuse";"Modulation";"Indice"];
sig=x_mdialog('Paramètres Modulation',txt,[string(f0);string(fm);string(pham)])
f0=evstr(sig(1))
fm=evstr(sig(2))
pham=evstr(sig(3))
param='Fp='+sig(1)+'Hz - Fm='+sig(2)+'Hz - Ind='+sig(3);
Bp=2*(pham+1)*fm // Estimation grossière de la bande
// Signaux
xmpm=cos(2*%pi*fm*ts);
xmfm=sin(2*%pi*fm*ts);
Stereo(1,:)=cos(2*%pi*f0*ts+pham*xmpm); // PM
Stereo(2,:)=cos(2*%pi*f0*ts+pham*xmfm); // FM
//Spectre
Sp1=fft(Stereo(1,1:npts)); // Fenêtre rectangulaire pour l'instant
Sp1=Sp1(1:npf);
// Essai d'optimisation de la fenêtre temporelle
[ma,ka]=max(abs(Sp1));
npgr=min(max(5/(ka*df)/dt,npgr0),npgr0*5);
//Graphe Temporel
subplot(2,1,1)
xtitle(param,'t (s)');
coul='b';
if Bp>fs/2 then
coul='r'; // Attention au repliement !
legends('Attention au repliement !',1,2);
end
plot(ts(1:npgr),Stereo(1,1:npgr),coul);
//Graphe Spectre
subplot(2,1,2)
xtitle('Spectre','F (Hz)');
plot(fr,abs(Sp1),coul);
a=gca(); a.log_flags = "lln";
// Ecoute
playsnd(Stereo,fs);
// Fin ?
choix=x_choose(['Autre calcul'],['Choix'],'Fin')
end
//********************
Choc
Site personnel: https://www.enib.fr/~choqueuse/
Danguit
Si je ne m'abuse, si je ne suis pas trompé dans mon petit calcul, et comme le rappelle le premier post, Citation :
Donc, si une fonction sinus module la phase, une fonction cosinus (sa dérivée) module la fréquence.
Le fait que j'ai utilisé la même variable (pham) pour les 2 peut effectivement prêter à confusion.
EDIT du 26/8 :
Le script a été écrit pour mon usage et n'avait pas de vocation pédagogique. Quelques précisions sont donc peut-être utiles.
Le signal modulant est cos(Om_m*ts) avec Om_m=2*%pi*fm.
Dans le cas d'une modulation de phase, on retrouve bien ce cosinus multiplié par pham correspondant à l'excursion max de phase (qui est aussi l'indice de modulation).
Dans le cas d'une modulation de fréquence, il faut intégrer le signal modulant, ce qui donne 1/(Om_m)*sin(Om_m*ts) à multiplier par l'excursion Delta_Om.
Comme l'indice de modulation est égal à Delta_Om/Om_m, on retrouve bien la même formule qu'en modulation de phase, mais avec un sinus à la place du cosinus.
[ Dernière édition du message le 26/08/2010 à 09:31:29 ]
Anonyme
j'ai lu en détail les docs originales rédigées par J CHOWNING, pour vous épargner la lecture en anglais j'ai trouvé 2 sites qui résume la FM :
http://cours.musique.umontreal.ca/mus1321/Notes_de_cours/Csound_04_SynthMod.html
qui contient d'ailleurs bcp de choses : http://cours.musique.umontreal.ca/mus1321/
et
http://dept-info.labri.u-bordeaux.fr/~sm/Enseignements/Master/2/ASSM/modulation.pdf
Quand vous aurez lu (et compris) tout ça : ya plus qu'à...
- < Liste des sujets
- Charte