Vous êtes sur la page 1sur 18

Recueil de textes d’examens

Ecole Supérieure des Communications de Tunis

Examen des travaux pratiques en Traitement du Signal

Date : 12 Mai 2018


Classe : INDP1
Durée : 1h30
Documents : sur PC autorisés
Enseignants : H. Ahmadi, L. Haj Slama, S. Ben Jebara, N. Boubaker, H. Boujemaa, N. Ouni

Recommandations :
Chaque étudiant doit créer un répertoire mentionnant son nom, prénom et sa classe
NOM Prénom Classe.
Exemple : MASMOUDI Ali INDP1E. L’étudiant doit sauvegarder TOUTES ses réponses dans un
code Matlab sous ce répertoire.

Détection radar

Le radar (RAdio Detection And Eanging ou ’détection et estimation de la distance par ondes
radio’ en Français) a trois fonctions de base : la détection, le suivi et l’imagerie. La figure 1 montre
une illustration simple du suivi radar. L’antenne de l’avion transmet un signal qui frappe la cible et
qui est ensuite réfléchi vers l’antenne de l’avion. La détection consiste à déterminer si un objet se
trouve ou non dans un espace de portée. La décision est basée sur le traitement du signal de retour en
présence de bruit de réception, d’échos et brouillage possible.
Le travail à réaliser durant cet examen de TP es la détection de présence de cible et de détermination
de sa position.

Géneration du signal
Le signal radar qui sera utilisé dans cette étude est un signal sinusoı̈dal en rafale courte ayant
une amplitude constante et une fréquence qui varie linéairement au cours du temps. Ce signal chirp,
1
appelé LFM (Linear Frequency Modulated) a pour expression :
 
β 2
x(t) = a(t) sin 2 ∗ πFT .t + π t , (1)
τd
où FT est la fréquence de transmission, τd est la durée ”d’explosion de l’impulsion”, β est la plage de
balayage de la fréquence et a(t) est l’amplitude du signal.
On se place dans le cas où a(t) = 1, τd = 5 µs, β = 10 MHz, FT =? MHz. Le signal est échantillonné
à la fréquence d’échantillonnage est fixée à f s = 200 MHz et a une durée égale à T = 25 µs.
1. Générer le signal LFM dans le domaine temporel et tracer le en utilisant un vrai axe de temps
en µs.
2. Calculer son spectre d’amplitude et tracer le en utilisant un vrai axe fréquentiel en M Hz.
3. Tracer son spectrogramme et expliquer la nature de l’évolution de sa fréquence caractéristique
au cours du temps.
Utiliser la commande spectrogram(x, 256, 250, 256, f s,0 yaxis0 ).

Simulation de la transmission/réception
On suppose qu’il y a une cible à détecter. Le signal LFM transmis sera reflété sur la cible et re-
acheminé vers le récepteur. Ce signal de retour sera affaibli (énergie du signal diminue avec la distance
parcourue) et sera corrompu par un bruit additif. Le signal de retour prendra la forme suivante :
 
β 2
r(t) = b(t − t0 ) sin 2 ∗ πFT (t − t0 ) + π (t − t0 ) + n(t), (2)
τd
où n(t) est un bruit blanc Gaussien additif centré de variance 0.5.
On se place dans le cas où b(t − t0 ) = 0.2 et t0 = 20 µs.
4) Générer le bruit additif n(t).
 
β 2
5) Générer sin 2 ∗ πFT (t − t0 ) + π τd (t − t0 ) à partir de x(t) en insérant le nombre adéquat de
valeurs nulles N au début du signal. Utiliser une commande de ce type : r = [zeros(1, N )x].
6) Créer le signal r(t).
2
Filtre adapté
Le filtre adapté est capable de récupérer ce signal en présence de beaucoup de bruit et d’in-
terférences. Sa réponse impulsionnelle est déterminé à partir du signal LFM :

h = if f t(conj(f f t(x)) (3)

7) Déterminer la réponse impulsionnelle h(n) et tracer la en utilisant la commande stem.


8) En déduire sa représentation spectrale en utilisant la commande f reqz ;
9) Appliquer ce filtre au signal r(n). Utiliser la fonction conv.
10) Quelle est la caractéristique principale du signal obtenu ?

Estimation de la distance de la cible


11) Selon la sortie du filtre adapté, proposer une mesure du temps de propagation du signal LFM
tp .
12) La distance de la cible est exprimée comme suit :

c(tp − τd )
R= , (4)
2
où c = 3.108 m/s est la vitesse de la lumière Mesurer cette distance.

3
%Indications pour la correction

clear all
close all
clc

c=3e8;
tau_d=5e-6;
beta=10e6;
fs=200e6;
F_T=1e6;
duree=25e-6;

t=0:1/fs:duree;
x=sin(2*pi*F_T*t+pi*beta*t.^2/tau_d);

figure(1)
plot(x)

X=abs(fftshift(fft(x)));
N=(length(X)-1)/2;
F=(-N:N)*fs/length(X);
figure(2)
plot(F,X)
figure(3)
spectrogram(x,256,250,256,fs,'yaxis')

time_delay=2e-5;
N=ceil(time_delay*fs);
y = [zeros(1,N) x];
r=0.2*y+sqrt(0.5)*randn(size(y));

h = ifft(conj(fft(x)));
figure(4)
stem(h)

yy=conv(r,h);

figure(5)
plot(r)

figure(6)
plot(yy)
%plot(t,%yy(1:length(t))
[M,I] =max(yy);
tp=I/fs;

R=c*(tp-tau_d)/2

Année universitaire :
2016/2017
Examen de TP Signal

Filtrage d’un Signal Bruité INDP1

Délivrable : Chaque étudiant doit créer un répertoire mentionnant son nom, prénom et
sa classe (NOM_Prénom_Classe). Exemple : MASMOUDI_Ali_INDP1E. L’étudiant doit
sauvegarder TOUTES ses réponses dans un code Matlab sous ce répertoire.

On considère le signal suivant


signal_transmis( t )  A sin(2 f 0 t )  2 A sin(4 f 0 t )

à transmettre sur un canal caractérisé par un bruit additif blanc Gaussien, ayant une densité
spectrale de puissance constante, où A est une amplitude strictement positive et f 0 est une
fréquence porteuse positive. A la réception, le signal reçu sera traité par un filtre.

1. Signal Transmis:

Générez la version numérique signal_transmis( n) en prenant comme amplitude

A  0.1 , fréquence porteuse: f 0  500 Hz , fréquence

d’échantillonnage Fe  8 kHz et durée d  64 ms .


a. Représentez ce signal dans le temps et représentez son spectre d’amplitude
centré en utilisant un vrai axe de fréquence en Hz (Figure 1 avec deux
subplots). Déterminez ses fréquences caractéristiques. Interprétez.
b. Faites varier la fréquence d’échantillonnage en considérant 2 valeurs :
Fe1  500 Hz et Fe 2  1200 Hz . Représentez le spectre centré de chaque

signal sur un intervalle fréquentiel de largeur Fe (Figure 2). Conclure.

2. Bruit:

On fixe Fe  8 kHz .

Utiliser la commande Matlab randn() pour générer un vecteur aléatoire Gaussien


blanc de même nombre d’échantillons que le signal transmis, de moyenne zéro et de
variance 0.05 qu’on appellera bruit .
3. Signal Reçu:

Le signal reçu, qui sera appelé signal_recu , résulte de la somme du signal_transmis


et du bruit ( signal_recu  signal_transmis bruit ).
a. Représenter le signal reçu (Figure 3, subplot 1).
b. Représenter le spectre d’amplitude de ce signal reçu (Figure 3, subplot 2).
4. Filtre à la Réception:

On considère le filtre de réponse impulsionnelle obtenu comme suit :


epsi  0.001;
Nh  200;
h_temps  fir1  Nh, 2 f0 /Fe  epsi, 2 f0 /Fe  epsi, 4 f0 /Fe  epsi, 4 f 0 /Fe  epsi  ;

a. Tracer h_temps .
b. Déterminer la réponse fréquentielle de ce filtre. Utiliser la commande suivante :

 H_frequence, F  freqz  h_temps,1, N, Fe  , où N est la longueur de la FFT.


Tracer le module de la réponse fréquentielle de h_temps en fonction de l’axe fréquentiel F
(Figure 4).
5. Signal Filtré :

Le signal reçu sera filtré par le filtre h_temps mentionné précédemment.


a. Représenter le signal filtré obtenu en fonction du temps en le superposant aux
signaux de la figure 1 et de la figure 3 précédentes.
b. Refaire la même chose dans le domaine fréquentiel.
c. Interpréter les résultats et conclure.
d. Faites varier Nh à Nh  20 et Nh  1000 . Interpréter et conclure;


% Execution Examen TP Mai 2017

A = 0.1;
f0 = 500; % 500 Hz
Fe = 8000;% 8 kHz
d = 64e-3; % 64 ms
Te = 1/Fe;

%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 1. Signal Transmis %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%
n = d*Fe;
t = (0:n-1)*Te;
signal_transmis = A*sin(2*pi*f0*t) + 2*A*sin(4*pi*f0*t);

%%%%%%%%%
%%% a %%%
%%%%%%%%%
figure;
% ReprÈsentation du signal transmis
subplot(1,2,1);
plot(t, signal_transmis);
xlabel('temps [secondes]');
ylabel('signal transmis');
title('Figure 1-Subplot 1')
x = axis;
x(2) = n*Te;
x(3) = -x(4);
axis(x);
% ReprÈsentation du spectre d'amplitude du signal transmis
TFsignal_transmis = fft(signal_transmis);
TFsignal_transmis = fftshift(TFsignal_transmis);
AbsTFsignal_transmis = abs(TFsignal_transmis);
f = (-1/2:1/n:1/2-1/n)*Fe;
subplot(1,2,2);
plot(f, AbsTFsignal_transmis);
xlabel('frequence [Hz]');
ylabel('Sepctre d''amplitude du signal transmis');
title('Figure 1-Subplot 2')
%%%%%%%%%
%%% b %%%
%%%%%%%%%
figure;
%%% Fe1 = 500 Hz %%%
Fe1 = 500;% 500 Hz
Te1 = 1/Fe1;
n1 = d*Fe1;
t1 = (0:n1-1)*Te1;
signal_transmis1 = A*sin(2*pi*f0*t1) + 2*A*sin(4*pi*f0*t1);
TFsignal_transmis1 = fft(signal_transmis1);
TFsignal_transmis1 = fftshift(TFsignal_transmis1);
AbsTFsignal_transmis1 = abs(TFsignal_transmis1);
f1 = (-1/2:1/n1:1/2-1/n1)*Fe1;
subplot(1,2,1);
plot(f1, AbsTFsignal_transmis1);
xlabel('frequence [Hz]');
ylabel('Sepctre d''amplitude du signal transmis, F_e = 500 Hz');
title('Figure 2-Subplot1');
%%% Fe2 = 1200 Hz %%%
Fe2 = 1200;% 1200 Hz
Te2 = 1/Fe2;
n2 = d*Fe2;
t2 = (0:n2-1)*Te2;
signal_transmis2 = A*sin(2*pi*f0*t2) + 2*A*sin(4*pi*f0*t2);
TFsignal_transmis2 = fft(signal_transmis2);
TFsignal_transmis2 = fftshift(TFsignal_transmis2);
AbsTFsignal_transmis2 = abs(TFsignal_transmis2);
f2 = (-1/2:1/n2:1/2-1/n2)*Fe2;
subplot(1,2,2);
plot(f2, AbsTFsignal_transmis2);
xlabel('frequence [Hz]');
ylabel('Sepctre d''amplitude du signal transmis, F_e = 1200 Hz');
title('Figure 2-Subplot 2');

%%%%%%%%%%%%%%%%
%%% 2. Bruit %%%
%%%%%%%%%%%%%%%%
variance = 0.05;
bruit = sqrt(variance)*randn(1, n);
%%%%%%%%%%%%%%%%%%%%%%
%%% 3. Signal reÁu %%%
%%%%%%%%%%%%%%%%%%%%%%
signal_recu = signal_transmis + bruit;
figure;
% ReprÈsentation du signal transmis
subplot(1,2,1);
plot(t, signal_recu);
xlabel('temps [secondes]');
ylabel('signal reÁu');
title('Figure 3-Subplot 1')
x = axis;
x(2) = n*Te;
%x(3) = -x(4);
axis(x);
% ReprÈsentation du spectre d'amplitude du signal reÁu
TFsignal_recu = fft(signal_recu);
TFsignal_recu = fftshift(TFsignal_recu);
AbsTFsignal_recu = abs(TFsignal_recu);
f = (-1/2:1/n:1/2-1/n)*Fe;
subplot(1,2,2);
plot(f, AbsTFsignal_recu);
xlabel('frequence [Hz]');
ylabel('Sepctre d''amplitude du signal recu');
title('Figure 3-Subplot 2')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 4. Filtre ‡ la rÈception %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure;
%%% a %%%
epsi = 0.001;
Nh = 200;
h_temps = fir1(Nh, [2*f0/Fe-eps, 2*f0/Fe+eps, 4*f0/Fe-eps,
4*f0/Fe+eps]);
th = (0:Nh)*Te;
subplot(1, 2, 1);
plot(th, h_temps);
x = axis;
x(2) = Nh*Te;
axis(x);
xlabel('temps [secondes]');
ylabel('h_{temps}');
title('Figure 4-Subplot 1');

%%% b %%%
N = n;
[H_frequence, F] = freqz(h_temps, 1, N, Fe);
subplot(1, 2, 2);
plot(F, abs(H_frequence));
xlabel('frÈquence [Hz]');
ylabel('h_{temps}');
title('Figure 4-Subplot 2');

%%%%%%%%%%%%%%%%%%%%%
%%% Signal filtrÈ %%%
%%%%%%%%%%%%%%%%%%%%%

signal_filtre = conv(h_temps, signal_recu);

%%% a %%%
tfiltre = (0:n+Nh-1)*Te;
figure;
plot(t, signal_transmis, 'b', t, signal_recu, 'r', tfiltre, signal_filtre, 'k');
xlabel('temps [secondes]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');

%%% b %%%
TFsignal_filtre = fft(signal_filtre);
TFsignal_filtre = fftshift(TFsignal_filtre);
AbsTFsignal_filtre = abs(TFsignal_filtre);
ffiltre = (-1/2:1/(n+Nh):1/2-1/(n+Nh))*Fe;
figure;
plot(f, AbsTFsignal_transmis, 'b', f, AbsTFsignal_recu, 'r', ffiltre,
AbsTFsignal_filtre, 'k');
xlabel('frÈquence [Hz]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');

%%% d %%%
% Nh = 20
Nh = 20;
h_temps = fir1(Nh, [2*f0/Fe-eps, 2*f0/Fe+eps, 4*f0/Fe-eps,
4*f0/Fe+eps]);
signal_filtre = conv(h_temps, signal_recu);
tfiltre = (0:n+Nh-1)*Te;
figure;
plot(t, signal_transmis, 'b', t, signal_recu, 'r', tfiltre, signal_filtre, 'k');
xlabel('temps [secondes]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');
TFsignal_filtre = fft(signal_filtre);
TFsignal_filtre = fftshift(TFsignal_filtre);
AbsTFsignal_filtre = abs(TFsignal_filtre);
ffiltre = (-1/2:1/(n+Nh):1/2-1/(n+Nh))*Fe;
figure;
plot(f, AbsTFsignal_transmis, 'b', f, AbsTFsignal_recu, 'r', ffiltre,
AbsTFsignal_filtre, 'k');
xlabel('frÈquence [Hz]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');

% Nh = 1000
Nh = 1000;
h_temps = fir1(Nh, [2*f0/Fe-eps, 2*f0/Fe+eps, 4*f0/Fe-eps,
4*f0/Fe+eps]);
signal_filtre = conv(h_temps, signal_recu);
tfiltre = (0:n+Nh-1)*Te;
figure;
plot(t, signal_transmis, 'b', t, signal_recu, 'r', tfiltre, signal_filtre, 'k');
xlabel('temps [secondes]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');
TFsignal_filtre = fft(signal_filtre);
TFsignal_filtre = fftshift(TFsignal_filtre);
AbsTFsignal_filtre = abs(TFsignal_filtre);
ffiltre = (-1/2:1/(n+Nh):1/2-1/(n+Nh))*Fe;
figure;
plot(f, AbsTFsignal_transmis, 'b', f, AbsTFsignal_recu, 'r', ffiltre,
AbsTFsignal_filtre, 'k');
xlabel('frÈquence [Hz]');
ylabel('signaux transmis, reÁu et filtrÈ');
legend('Signal transmis', 'Signal reÁu', 'Signal filtrÈ');


Année
universitaire :
Examen de TP Signal 2015/2016

I. Objectif
L’objectif de ce TP est d’analyser l’effet de modification de la taille d’un signal 2D sur sa qualité
temporelle et spectrale. Les opérations de sous-échantillonnage et sur-échantillonnage seront utilisés.

II. Données
On dispose un signal à deux dimensions généré sous MATLAB de la façon suivante :

[X,Y] = meshgrid(-8:.1:8);
R = sqrt(X.^2 + Y.^2) + eps;
Im = sin(R)./R;

III. Analyse temporelle du signal (11 points)

1) Quelles sont les dimensions de ce signal ?


2) Créer une figure à 4 fenêtres (2 lignes et 2 colonnes) et tracer ce signal 2D en 3 dimensions
dans le fenêtre 1. Utiliser la commande mesh.
3) Extraire les échantillons de la ligne numéro 41 de ce signal dans un vecteur. Tracer ce et
interpréter l’allure du signal obtenu.
4) On désire modifier la qualité du signal en réduisant sa dimension. Pour cela, on sous-
échantillonne par un facteur de 2 en prenant un échantillon sur 2 par ligne (sous
échantillonnage des colonnes) et une ligne sur 2 (sous échantillonnage des lignes). Le nouveau
signal 2D est appelé Im_1_2.
Cette opération se fait en une seule ligne de code MATLAB ou bien avec une suite de lignes
de code faisant apparaître des boucles.
a) Ecrire le code MATLAB de cette opération et afficher le nouveau signal en 3 dimensions
dans la fenêtre 2 de la figure précédente.
b) Interpréter l’allure obtenue.

5) On se propose de revenir à la dimension de départ du signal 2D. Etant donné que des
échantillons ont été perdus et qu’ils sont irrécupérables, on se propose de les remplacer par des
zéros.
a. Créer un signal 2D ayant la dimension du signal de départ.
b. Remplir ces colonnes et ces lignes d’indices pairs par ceux du signal Im_1_2. Ce
nouveau signal est appelé Im_2_1.
c. Afficher ce signal dans la fenêtre 3.

IV. Analyse fréquentielle du signal (6 pts)

6) Calculer la transformée de Fourier des 3 signaux précédents.


7) Tracer leurs amplitudes spectrales en 3 dimensions sur une figure ayant 4 fenêtres (2 lignes et
2 colonnes).
8) Interpréter les différences.

V. Filtrage du signal (3 pts)

9) Afin d’approche la représentation spectrale du signal Im_2_1 de celle du signal original Im,
on effectue un filtrage. Pour cela, on conçoit d’abord un filtre 2D et on l’applique sur Im_2_1,
selon les commandes MATLAB suivantes:
h = fspecial('disk',9);
Y = filter2(h,Img_rest);

Exécuter ce code, compléter les sous figures manquantes dans les représentations temporelles et
fréquentielles.

10) Interpréter visuellement et conclure.


Année universitaire :
Examen de TP Signal
2015/2016

Analyse d’un signal sismique INDP1

Objectif

Le but de cette expérience est d’analyser un signal sismique et d’étudier l’influence de la nature du
milieu d’enregistrement sur le signal obtenu.

Données sismiques
Il s’agit d’examiner des données de tremblement de terre qui ont été recueillies lors d'une étude
d'évaluation des risques de tremblement de terre à Wellington en Nouvelle-Zélande. Le fichier de
données de tremblement de terre, appelé quake_data.mat, comprend 10 secondes d'enregistrement des
ondes sismiques acquis sur 3 sites différents pour le même tremblement de terre. La colonne 1 du
fichier comprend les instants d’acquisition des données sismiques. La Colonne 2 correspond aux
données acquises sur un site rocheux, la colonne 3 est enregistré sur un site de bassin sédimentaire et
la colonne 4 est située sur un site citadin.

Travail à réaliser

Partie 1 (2 pts par question)

1. Tracer les 3 sismogrammes en fonction du temps sur une même figure à trois fenêtres
différentes.
2. Comparer les signaux obtenus en termes d’amplitudes et nature d’évolution.
3. En s’intéressant à l’écart temporel en deux échantillons, déterminer la fréquence
d’échantillonnage.
4. Calculer le spectre d’amplitude des trois séquences et tracer les sur la même figure avec des
couleurs différentes. Utiliser un vrai axe de fréquence en Hz.
5. Comparer les représentations spectrales. Faites des ‘zooms’ si nécessaire.
6. Quelle est la gamme de fréquences du signal sismique dans le cas du site rocheux?
7. Quelles sont les fréquences pour lesquelles il y a un maximum pour les autres sites ?
Déterminer les manuellement.
8. Détecter les automatiquement. Utiliser la fonction findpeaks.

Partie 2 (4 points):

On s’intéresse maintenant aux données recueillies sur les sites non rocheux. Un bassin sédimentaire,
par exemple, peut vibrer comme un bol. Un bassin peut résonner à des fréquences particulières comme
un oscillateur harmonique simple. La résonance se poursuit longtemps après que l'énergie sismique est
dissipée au niveau du site de la roche à proximité.
La fréquence d'oscillation d'un bassin cylindrique simple est liée à la vitesse du matériau et la
profondeur du bassin. Une onde dont la longueur d'onde est de quatre fois l'épaisseur du bassin
résonnera dans le bassin selon la formule suivante :

4 x épaisseur = longueur d'onde = vitesse / fréquence.

La vitesse des ondes pour le site bassin (colonne 3 des données) a été mesurée à 110 m/s, tandis que
pour le site dans la colonne 4, elle est égale à 80 m/s.

9. Quelle est l'épaisseur approximative de chacun des deux bassins?

Vous aimerez peut-être aussi