TRAITEMENT DE SIGNAL
FICHE DE RAPPORT
SÉANCE #3 (TP3)
Modulations et Multiplex fréquentiels
NOM ET PRÉNOM CLASSE
#1
#2
OBJECTIFS
Réaliser la modulation et la démodulation des signaux audio.
1
TRAVAIL A FAIRE
I. Compléter le programme fourni pour réaliser la manipulation décrite ci-après
Quatre signaux sont préalablement enregistrés (environ 3 secondes de signal audio) à l’aide de
fonctions Matlab spécifiques et stockés dans un fichier « signaux_audio ».
Ces signaux ont une bande passante comprise dans l’intervalle fréquentiel [-B, +B]
(B=2000Hz).
Les quatre signaux audios sont ensuite modulés autour de 4 fréquences porteuses fp(k).
fp(1)=1.1XB = 2200Hz
fp(2)=3.3XB = 6600Hz
fp(3)=5.5XB = 11000Hz
fp(4)=7.7XB = 15400Hz
Les signaux modulés sont appelés xm(k, :).
Les 4 signaux xm(k, :) sont sommés pour donner le signal y
Le signal y est démodulé pour obtenir les 4 signaux originaux x(k, :). Pour cela on multiplie le
signal y par un signal cosinusoïdal de fréquence fp(k) pour récupérer le signal x(k, :).
Après multiplication par le cosinus on filtre le signal résultant (ymult(k, :) ) par un filtre
passe-bas de bande [-B, +B]. la commande xdemod(k,:)=filter(B1,1,ymult(k,:)); est
suggéré à cet effet.
Les signaux générés avec le logiciel Matlab sont des signaux échantillonnés. La fréquence
d'échantillonnage utilisée dans ce programme sera de Fe=80000Hz. Cela veut dire que l'on
calculera la valeur des signaux tous les 1/80000 secondes soit Te=12.5µs.
La fréquence Fe=80KHz a été choisie afin de ne pas avoir de repliement de spectre des différents
signaux. La fréquence maximale de tous les signaux de la simulation Matlab doit être
inférieure à Fe/2 pour respecter la condition Shannon.
Les signaux modulants, xk(t) ont une bande comprise entre [-B, +B].Le premier signal modulé
xm1(t) a une bande comprise entre [-B-fp(1), +B-fp(1)] et [-B+fp(1),+B+fp(1)] Le quatrième signal
modulé xm4(t) a une bande comprise entre [-B-fp(4), +B-fp(4)] et [-B+fp(4),+B+fp(4)].
Le signal y(t) qui est la somme des quatre signaux modulés xmk(t) a une fréquence maximale
égale à +B+fp(4)
Lors de l'opération de démodulation on multipliera le signal y(t) par des cosinus aux fréquences
respectives: fp(1), fp(2), f(3) et fp(4).
Après multiplication par le cosinus à la fréquence fp(4), le signal ymult4(t)=y(t).cos([Link](4).t)
aura une fréquence maximale égale à : +B+fp(4)+fp(4). La fréquence maximale qui sera
rencontrée dans la simulation est donc égale à Fmax=+B+fp(4)+fp(4). Afin de ne pas avoir de
repliement de spectre il faut que Fe > [Link] soit Fe > (2.B+[Link](4)) Avec B=2000Hz et
fp(4)=15400Hz, cela donne Fmax=32800Hz et Fe > 65600Hz. Le choix de prendre Fe=80KHz
permet de respecter cette contrainte.
II. Modification du programme
modifiez le programme complété de manière à utiliser une même fréquence porteuse
pour les signaux 1 et 4 (fp(4)=fp(1)= 2200Hz). Ecoutez et comparez les quatre signaux
originaux et démodulés. Conclure
Fixez maintenant la fréquence d’échantillonnage Fe= 40 KHz. Ecoutez et comparez
les quatre signaux originaux et démodulés. Conclure.
2
PROGRAMME A COMPLETER
Fe=80000; % Définition de la fréquence d'échantillonnage
Te=1/Fe; % Période d'échanillonnage Te=1/Fe
B=2000; % Valeur de B en Hz
nptsfft=5000; % Densité spectrale de puissance calculée sur (nptsfft+1) points
%**************************************************************
% Les signaux seront visualisés sur une plage temporelle correspondant à 2*npts
échantillons.
npts=200000 ; % Nombre d'échantillons total de la
simulation
temps=(0:Te:(npts-1)*Te); % les valeurs du temps pour lesquelles on calculera d(t)
freq=linspace(0,Fe,npts+1);
freq=freq(1:end-1);
freq=freq-Fe/2;
couleur(1)='b'; % Couleur des signaux
couleur(2)='r'; % Couleur des signaux
couleur(3)='g'; % Couleur des signaux
couleur(4)='m'; % Couleur des signaux
couleuro(1,:)='b-*'; % Couleur des signaux
couleuro(2,:)='r-*'; % Couleur des signaux
couleuro(3,:)='g-*'; % Couleur des signaux
couleuro(4,:)='m-*'; % Couleur des signaux
%**************************************************************
% GENERATION DES SIGNAUX TEMPORELS
%**************************************************************
%==============================================================
% Chargement des signaux xk(t)
nbsignaux=4;
load('signaux_audio');
%**************************************************************
% MODULATION DES SIGNAUX : xm(t) = x(t).cos([Link].t)
%**************************************************************
fp=zeros(1,nbsignaux);
fp(1)=1.1*B;
xm=zeros(nbsignaux,length(temps));
for k=1:nbsignaux
fp(k)=fp(1)+(k-1)*2.2*B;
xm(k,:)= ;
end
%**************************************************************
% SOMME DES SIGNAUX : y(t) = x1(t)+x2(t)+ x3(t)+...
%**************************************************************
y=zeros(1,npts);
for k=1:nbsignaux
y= ;
end
%**************************************************************
% DEMODULATION DES SIGNAUX
%**************************************************************
%==============================================================
% Multiplication de y(t) par des cosinus de fréquences fp(k)
% ymult(t) = y(t).[Link]([Link].t)
ymult=zeros(nbsignaux,length(temps));
for k=1:nbsignaux
3
ymult(k,:)= ;
end
%==============================================================
% Filtrage de ymult(t) par un filtre passe-bas
% xdemod(t) = ymult(t)* h(t)
B1=fir1(501,B*2/Fe);
xdemod=zeros(nbsignaux,length(temps));
for k=1:nbsignaux
xdemod(k,:)= ;
end
%**************************************************************
% CALCUL DES TRANSFORMEES DE FOURIER DES SIGNAUX
%**************************************************************
xdemod_f=zeros(nbsignaux,length(temps));
ymult_f=zeros(nbsignaux,length(temps));
xm_f=zeros(nbsignaux,length(temps));
x_f=zeros(nbsignaux,length(temps));
for k=1:nbsignaux
x_f(k,:)=abs(fftshift(fft(x(k,:))));
xm_f(k,:)=abs(fftshift(fft(xm(k,:))));
ymult_f(k,:)=abs(fftshift(fft(ymult(k,:))));
xdemod_f(k,:)=abs(fftshift(fft(xdemod(k,:))));
end
y_f=abs(fftshift(fft(y)));
%**************************************************************
% TRACE DES ALLURES TEMPORELLES ET FREQUENTIELLES DES SIGNAUX
%**************************************************************
figure
hold on;
for k=1:nbsignaux
plot(temps, x(k,:)+2*k,couleur(k))
end
hold off
grid
title('Tracé temporel des signaux xk(t) k=1 à 4')% Titre de la figure
xlabel('Temps en secondes') % Label de l'axe des abcisses
ylabel('Amplitudes') % Label de l'axe des ordonnées
legend('Signal 1','Signal 2','Signal 3','Signal 4')
%==============================================================
%*** Allure fréquentielle des signaux xk(t), échelle linéaire
figure
plot(freq, xm_f(1,:),'b')
hold on
for k=2:nbsignaux
plot(freq, xm_f(k,:),couleur(k));
end
hold off
grid
title('Tracé fréquentiel des signaux xk(t) modulés, échelle lin');
xlabel('Fréquence en Hz')
ylabel('Module des TF')
legend('Signal 1','Signal 2','Signal 3','Signal 4')
4
%==============================================================
%*** Allure fréquentielle des signaux ymult(t), échelle logarithmique
figure
semilogy(freq, ymult_f(1,:),'b');
hold on
for k=2:nbsignaux
semilogy(freq, ymult_f(k,:),couleur(k));
end
hold off
grid
title('Tracé fréquentiel des signaux ymult(t), échelle log');
xlabel('Fréquence en Hz')
ylabel('Module des TF')
legend('Signal 1','Signal 2','Signal 3','Signal 4')
%==============================================================
%*** Allure fréquentielle des signaux xdemod(t), échelle logarithmique
for k=1:nbsignaux
figure
semilogy(freq, x_f(k,:),'b');
hold on
semilogy(freq, xdemod_f(1,:),'m');
hold off
grid
title('Tracé fréquentiel des signaux xk(t) et xdemodk(t), échelle log');
xlabel('Fréquence en Hz')
ylabel('Module des TF')
legend('Signal original','Signal démodulé')
end
%==============================================================
%*** Allure temporelle des signaux xdemod(t)
figure
hold on
for k=1:nbsignaux
plot(temps, x(k,:),couleur(k))
plot(temps, [xdemod(k,length(B1)/2:end) zeros(1,length(B1)/2-1)],couleuro(k,:))
end
hold off
grid
title('Tracé temporel des signaux xk(t) et xdemodk(t)(*) (1=b 2=r 3=v 4=m)')
xlabel('Temps en secondes')
ylabel('Amplitudes')
legend('S1','S1-demod','S2','S2-demod','S3','S3-demod','S4','S4-demod')
figure
hold on
for k=1:nbsignaux
plot(x(k,100000:101000),couleur(k))
plot(xdemod(k,length(B1)/2+100000:length(B1)/2+101000),couleuro(k,:))
end
hold off
grid
title('Tracé temporel des signaux xk(t) et xdemodk(t)(*)')
xlabel('1000 échantillons de signal temporel')
ylabel('Amplitudes')
legend('S1','S1-demod','S2','S2-demod','S3','S3-demod','S4','S4-demod')
5
%**************************************************************
% ECOUTE DES DIFFERENTS SIGNAUX
%Avant écoute des signaux audios, on passe de Fe=80000Hz à Fe=8000Hz. Pour cela on
%décime les signaux par un facteur 10.
**************************************************************
% Signal n°k ORIGINAL
% Signal n°k ORIGINAL
sound(x(k,1:10:end),Fe/10);
% Signal n°k après démodulation
sound(xdemod(k,1:10:end),Fe/10);
Contenu du Rapport
Le Rapport doit contenir :
I. Prémière partie
Les quatre (04) commandes Matlab qui ont permis de compléter le programme ci-
dessus ;
Toutes les figures illustrant la représentation temporelle et fréquentielles du multiplex
modulé et démodulé ;
Votre conclusion après écoute des 04 signaux modulés et démodulés.
II. Deuxième partie
Les commandes Matlab modifiées ;
Les conclusions ainsi que les figures illustrant la représentation fréquentielle des
phénomènes écoutés.