Ministère de l’Enseignement Supérieur, de la Recherche Scientifique et de la 
Technologie 
Université de Carthage 
Institut National des Sciences Appliquées et de Technologie 
Département de Génie Physique et Instrumentation 
Compte rendu : Communication Optique 
Modulation des signaux 
Elaboré par : -GUENBRI Mohamed 
-ELKHADHRAOUI Hamdi
I- Partie 1 : 
A- La fonction FMMOD et FMDEMOD: 
y=fmmod(x,fc,fs,freq_dev); 
z=fmdemod(x,fc,fs,freq_dev); 
Soit le programme matlab suivant de la fonction modfm et fmdemod qui 
permet de modulé un double signal x[s1 s2]sous forme de y puis les démodulé 
sous forme de z: 
La variable t est un vecteur colonne variant de 0 à fs-1 avec une pas de 100
B- LA FONCTION AMMODET AMDEMOD: 
ydouble=ammod(x,fc,fs); 
La fonction ammod permet la modulation du signal message x en utilisant la 
modulation d’amplitude avec fc représnte la fréquence de la porteuse et fs la 
fréquence d’échantionnage.La fonction amdemod permet la démodulation du 
signal message x en utilisant la modulation d’amplitude avec fc représnte la 
fréquence de la porteuse et fs la fréquence d’échantionnage. 
Soit le programme matlab suivant de la fonction modam qui permet de modulé 
unsignal x sous forme de y puis faire sa transformé de fourrier de l’afficher 
sous forme de zdouble: 
cc 
ydouble = ammod(x,Fc,Fs) : permet de moduler x à une seul bande 
La commande zdouble = fft(ydouble); permet de calculer la transformée de 
fourrier de ydouble. 
Resultat sur MATLAB
c-LA FONCTION TRANS ET BODE: 
La fonction trans est une fonction de transfert tel que: 
[h]=trans(w)=k*w^2/(w0^2+2*j*phi*w0*(w-w0^2) 
Le code matlab est le suivant: 
La fonction bode es une fonction qui utilise la fonction trans et semilog et qui 
prend fmax,fmin et n comme variable d’entrée et qui retourne le tracé semi 
logarthmique du diagramme de bode(gain en db): 
Le code matlab est le suivant:
II- Modulation 
A-modulation d'amplitude : 
>> fs=100; 
>> t=[0:2*fs+1]'/fs; 
>> fc=10; 
>> x=sin(2*pi*t); 
>> ydouble=ammod(x,fc,fs); 
>> zdouble=fft(ydouble); 
>> zdouble=abs(zdouble(1:length(zdouble)/2+1)); 
>> subplot(2,1,1); 
>> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; 
>> title('spectrum of double side-bandsignal'); 
>> plot(frqdouble,zdouble); 
>> subplot(2,1,1); 
>> ydouble=ammod(x,fc,fs,0,1); 
>> plot(frqdouble,zdouble); 
>> subplot(2,1,1); 
>> ydouble=ammod(x,fc,fs,0,1); 
>> zdouble=fft(ydouble); 
>> zdouble=abs(zdouble(1:length(zdouble)/2+1)); 
>> subplot(2,1,1); 
>> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; 
>> title('spectrum of double side-bandsignal'); 
>> plot(frqdouble,zdouble); 
>> ydouble=ssbmod(x,fc,fs); 
>> zdouble=fft(ydouble);
>> zdouble=abs(zdouble(1:length(zdouble)/2+1)); 
>> subplot(2,1,1); 
>> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; 
>> plot(frqdouble,zdouble); 
>> ydouble=ssbmod(x,fc,fs,1,'upper'); 
>> zdouble=fft(ydouble); 
>> zdouble=abs(zdouble(1:length(zdouble)/2+1)); 
>> subplot(2,1,1); 
>> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; 
>> plot(frqdouble,zdouble); 
Aprés la modulation le signal est translaté autour de Fc: 
0 5 10 15 20 25 30 35 40 45 50 
100 
80 
60 
40 
20 
0 
plot(t,x,t,ydouble); 
0 0.5 1 1.5 2 2.5 
1 
0.5 
0 
-0.5 
-1 
-1.5
B-modulation de fréquence d'un signal 
fs=8000; 
>> fc=3000; 
>> t=[0:50:fs]'/fs; 
>> s1=sin(2*pi*300*t)+2*sin(2*pi*600*t); 
>> s2=sin(2*pi*150*t)+2*sin(2*pi*900*t); 
>> x=[s1,s2]; 
>> dev=50; 
>> y=fmmod(x,fc,fs,dev); 
>> z=fmdemod(y,fc,fs,dev); 
>> figure(1),plot(y);title 
0 20 40 60 80 100 120 140 160 180 
1 
0.5 
0 
-0.5 
-1 
figure(2),plot(z);tilte
0 20 40 60 80 100 120 140 160 180 
5 
0 
-5 
-10 
-15 
-20 
-25 
m=16; 
>> k=log2(m); 
>> n=3e4; 
>> x=randint(n,1); 
>> stem(x(1:40),'filed'); 
>> stem(x(1:40),'filled'); 
>> title('random bits'); 
>> xlabel('bit index'); 
>> ylabel('binarg value'); 
>> Nxsym=length(xsym);* 
>> xsym=bi2de(reshape(x,k,length(x)/k).','left-msb'); 
>> Nxsym=length(xsym); 
>> title('random symbols'); 
>> xlabel('symbol index') 
>> ylabel('integer value'); 
>> xlabel('symbol index');
0 5 10 15 20 25 30 35 40 
1 
0.5 
0 
random symbols 
symbol index 
integer value

Final communication optique

  • 1.
    Ministère de l’EnseignementSupérieur, de la Recherche Scientifique et de la Technologie Université de Carthage Institut National des Sciences Appliquées et de Technologie Département de Génie Physique et Instrumentation Compte rendu : Communication Optique Modulation des signaux Elaboré par : -GUENBRI Mohamed -ELKHADHRAOUI Hamdi
  • 2.
    I- Partie 1: A- La fonction FMMOD et FMDEMOD: y=fmmod(x,fc,fs,freq_dev); z=fmdemod(x,fc,fs,freq_dev); Soit le programme matlab suivant de la fonction modfm et fmdemod qui permet de modulé un double signal x[s1 s2]sous forme de y puis les démodulé sous forme de z: La variable t est un vecteur colonne variant de 0 à fs-1 avec une pas de 100
  • 4.
    B- LA FONCTIONAMMODET AMDEMOD: ydouble=ammod(x,fc,fs); La fonction ammod permet la modulation du signal message x en utilisant la modulation d’amplitude avec fc représnte la fréquence de la porteuse et fs la fréquence d’échantionnage.La fonction amdemod permet la démodulation du signal message x en utilisant la modulation d’amplitude avec fc représnte la fréquence de la porteuse et fs la fréquence d’échantionnage. Soit le programme matlab suivant de la fonction modam qui permet de modulé unsignal x sous forme de y puis faire sa transformé de fourrier de l’afficher sous forme de zdouble: cc ydouble = ammod(x,Fc,Fs) : permet de moduler x à une seul bande La commande zdouble = fft(ydouble); permet de calculer la transformée de fourrier de ydouble. Resultat sur MATLAB
  • 5.
    c-LA FONCTION TRANSET BODE: La fonction trans est une fonction de transfert tel que: [h]=trans(w)=k*w^2/(w0^2+2*j*phi*w0*(w-w0^2) Le code matlab est le suivant: La fonction bode es une fonction qui utilise la fonction trans et semilog et qui prend fmax,fmin et n comme variable d’entrée et qui retourne le tracé semi logarthmique du diagramme de bode(gain en db): Le code matlab est le suivant:
  • 6.
    II- Modulation A-modulationd'amplitude : >> fs=100; >> t=[0:2*fs+1]'/fs; >> fc=10; >> x=sin(2*pi*t); >> ydouble=ammod(x,fc,fs); >> zdouble=fft(ydouble); >> zdouble=abs(zdouble(1:length(zdouble)/2+1)); >> subplot(2,1,1); >> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; >> title('spectrum of double side-bandsignal'); >> plot(frqdouble,zdouble); >> subplot(2,1,1); >> ydouble=ammod(x,fc,fs,0,1); >> plot(frqdouble,zdouble); >> subplot(2,1,1); >> ydouble=ammod(x,fc,fs,0,1); >> zdouble=fft(ydouble); >> zdouble=abs(zdouble(1:length(zdouble)/2+1)); >> subplot(2,1,1); >> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; >> title('spectrum of double side-bandsignal'); >> plot(frqdouble,zdouble); >> ydouble=ssbmod(x,fc,fs); >> zdouble=fft(ydouble);
  • 7.
    >> zdouble=abs(zdouble(1:length(zdouble)/2+1)); >>subplot(2,1,1); >> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; >> plot(frqdouble,zdouble); >> ydouble=ssbmod(x,fc,fs,1,'upper'); >> zdouble=fft(ydouble); >> zdouble=abs(zdouble(1:length(zdouble)/2+1)); >> subplot(2,1,1); >> frqdouble=[0:length(zdouble)-1]*fs/length(zdouble)/2; >> plot(frqdouble,zdouble); Aprés la modulation le signal est translaté autour de Fc: 0 5 10 15 20 25 30 35 40 45 50 100 80 60 40 20 0 plot(t,x,t,ydouble); 0 0.5 1 1.5 2 2.5 1 0.5 0 -0.5 -1 -1.5
  • 8.
    B-modulation de fréquenced'un signal fs=8000; >> fc=3000; >> t=[0:50:fs]'/fs; >> s1=sin(2*pi*300*t)+2*sin(2*pi*600*t); >> s2=sin(2*pi*150*t)+2*sin(2*pi*900*t); >> x=[s1,s2]; >> dev=50; >> y=fmmod(x,fc,fs,dev); >> z=fmdemod(y,fc,fs,dev); >> figure(1),plot(y);title 0 20 40 60 80 100 120 140 160 180 1 0.5 0 -0.5 -1 figure(2),plot(z);tilte
  • 9.
    0 20 4060 80 100 120 140 160 180 5 0 -5 -10 -15 -20 -25 m=16; >> k=log2(m); >> n=3e4; >> x=randint(n,1); >> stem(x(1:40),'filed'); >> stem(x(1:40),'filled'); >> title('random bits'); >> xlabel('bit index'); >> ylabel('binarg value'); >> Nxsym=length(xsym);* >> xsym=bi2de(reshape(x,k,length(x)/k).','left-msb'); >> Nxsym=length(xsym); >> title('random symbols'); >> xlabel('symbol index') >> ylabel('integer value'); >> xlabel('symbol index');
  • 10.
    0 5 1015 20 25 30 35 40 1 0.5 0 random symbols symbol index integer value