Upload
hamdinho
View
88
Download
0
Embed Size (px)
Citation preview
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- ModulationA-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 500
20
40
60
80
100
plot(t,x,t,ydouble);
0 0.5 1 1.5 2 2.5-1.5
-1
-0.5
0
0.5
1
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-25
-20
-15
-10
-5
0
5
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 400
0.5
1random symbols
symbol index
inte
ger
valu
e