0% ont trouvé ce document utile (0 vote)
423 vues30 pages

Corrections Traitement Signal

Le document présente un cours sur le traitement du signal, abordant des concepts tels que la modélisation de circuits RC, la réponse temporelle, la numérisation, et le filtrage numérique. Il inclut des exercices pratiques sur la conception de filtres, l'analyse de signaux composites, et l'utilisation de MATLAB pour simuler des systèmes. Les différentes parties du cours examinent les équations différentielles, les fonctions de transfert, et les performances des filtres dans divers contextes.

Transféré par

edanintech
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
423 vues30 pages

Corrections Traitement Signal

Le document présente un cours sur le traitement du signal, abordant des concepts tels que la modélisation de circuits RC, la réponse temporelle, la numérisation, et le filtrage numérique. Il inclut des exercices pratiques sur la conception de filtres, l'analyse de signaux composites, et l'utilisation de MATLAB pour simuler des systèmes. Les différentes parties du cours examinent les équations différentielles, les fonctions de transfert, et les performances des filtres dans divers contextes.

Transféré par

edanintech
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
### Partie A : Modélisation
1. Considérez un circuit RC série où R = 10 kΩ et C = 100 nF.
a) Établissez l'équation différentielle reliant la tension d'entrée Ve(t) à la tension de sortie Vs(t).
b) Résolvez cette équation pour déterminer la solution générale.
c) Trouvez la transformée de Laplace du système.
d) Déterminez la fonction de transfert H(p) = Vs(p)/Ve(p).

2. À partir de la fonction de transfert calculée :


a) Déterminez la fréquence de coupure fc du filtre.
b) Calculez le gain en décibels à f = fc, f = fc/10 et f = 10×fc.
c) Quelle est la pente d'atténuation en dB/décade dans la zone des hautes fréquences?

### Partie B : Réponse temporelle


1. Calculez et représentez la réponse indicielle du système (réponse à un échelon unitaire).
2. Si l'entrée est un signal sinusoïdal Ve(t) = 5sin(2π×500t) V :
a) Déterminez l'amplitude du signal de sortie.
b) Calculez le déphasage entre l'entrée et la sortie.
3. Expliquez pourquoi ce circuit peut être considéré comme un filtre passe-bas.

### Partie C : Numérisation


1. Si l'on souhaite numériser ce système avec une période d'échantillonnage T₀ = 0,1 ms :
a) Cette fréquence d'échantillonnage est-elle suffisante pour respecter le théorème de Nyquist si le
signal d'entrée contient des fréquences jusqu'à 4 kHz?
b) Déterminez la fonction de transfert en z, D(z), correspondant à ce système.

### Partie A : Étude d'un signal composite


Soit le signal x(t) = 2sin(2π×100t) + 4sin(2π×4000t).

1. Déterminez la fréquence maximale présente dans ce signal.


2. Quelle est la fréquence d'échantillonnage minimale théorique nécessaire selon le théorème de
Nyquist?
3. Pour une application pratique, on choisit f₀ = 20 kHz comme fréquence d'échantillonnage :
a) Écrivez l'expression du signal échantillonné x(nT₀).
b) Représentez graphiquement les 5 premiers échantillons de ce signal.
4. Calculez la valeur moyenne et la valeur efficace de ce signal sur une période de 10 ms.

### Partie B : Transformées


1. Calculez la transformée de Fourier X(f) du signal x(t).
2. Représentez le spectre d'amplitude |X(f)|.
3. Calculez la puissance spectrale P₍ₓ₎(f) = |X(f)|² du signal.
4. Si on applique ce signal à l'entrée d'un filtre passe-bas de fréquence de coupure fc = 1 kHz :
a) Quelle sera l'allure du spectre en sortie du filtre?
b) Écrivez l'expression temporelle du signal de sortie y(t).

### Partie C : Filtrage numérique


On considère un filtre numérique dont la fonction de transfert est :
D(z) = (1 - e⁻ᵃᵀ⁰)/(z - e⁻ᵃᵀ⁰) avec a = 625
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
1. Écrivez l'équation de récurrence correspondant à ce filtre.
2. Déterminez la réponse impulsionnelle de ce filtre.
3. Étudiez la stabilité de ce filtre.
% Définition des paramètres figure;
fs1 = 100; % Fréquence du premier signal en subplot(2,1,1);
Hz plot(t(1:50), x(1:50), 'b.-');
fs2 = 4000; % Fréquence du second signal en title('Signal échantillonné (50 premiers
Hz échantillons)');
Am1 = 2; % Amplitude du premier signal xlabel('Temps (s)');
Am2 = 4; % Amplitude du second signal ylabel('Amplitude');
f0 = 20000; % Fréquence d'échantillonnage en grid on;
Hz
T0 = 1/f0; % Période d'échantillonnage en % Calcul du spectre à l'aide de la FFT
secondes X = fft(x)/N;
N = 256; % Nombre d'échantillons f = f0*(0:N/2-1)/N; % Axe des fréquences
jusqu'à la fréquence de Nyquist
% Génération des échantillons temporels
n = 0:N-1; % Affichage du spectre d'amplitude
t = n*T0; % Vecteur de temps discret subplot(2,1,2);
plot(f, 2*abs(X(1:N/2)), 'r');
% Génération du signal échantillonné title('Spectre d''amplitude du signal');
x = Am1*sin(2*pi*fs1*t) + Am2*sin(2*pi*fs2*t); xlabel('Fréquence (Hz)');
ylabel('|X(f)|');
% Affichage du signal grid on;

### Partie A : Étude théorique


On considère un signal d'entrée composé de deux composantes sinusoïdales :
x(nT₀) = sin(2π×100×nT₀) + 2sin(2π×4000×nT₀)
avec une fréquence d'échantillonnage f₀ = 10 kHz.

1. Quelle est la fréquence maximale contenue dans ce signal ?


2. La condition de Nyquist est-elle respectée ? Justifiez.
3. Représentez graphiquement l'allure du spectre d'amplitude théorique |X(f)|.

### Partie B : Conception d'un filtre


On souhaite concevoir un filtre numérique qui élimine la composante à 4 kHz tout en conservant la
composante à 100 Hz.

1. Quel type de filtre est adapté à cette application ? Justifiez.


2. Proposez une fonction de transfert analogique H(p) qui permettrait de réaliser ce filtrage.
3. Calculez la fréquence de coupure appropriée pour ce filtre.
4. Convertissez cette fonction de transfert analogique en fonction de transfert numérique D(z) en
utilisant la méthode de la transformation bilinéaire.
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
5. Établissez l'équation de récurrence correspondant à ce filtre numérique.

### Partie C : Simulation MATLAB


Développez un script MATLAB qui :

1. Génère le signal d'entrée x(nT₀) sur 1024 échantillons.


2. Implémente le filtre numérique conçu à la partie B.
3. Filtre le signal d'entrée pour obtenir le signal de sortie y(nT₀).
4. Affiche dans une figure à double fenêtre les signaux d'entrée et de sortie dans le domaine temporel.
5. Affiche dans une autre figure à double fenêtre les spectres d'amplitude des signaux d'entrée et de
sortie.

Analysez les résultats obtenus en commentant l'efficacité du filtrage et en vérifiant que les
spécifications sont respectées.

## Épreuve 4 : Analyse Complète d'un Filtre Passe-Bas du Premier Ordre

### Partie A : Étude du filtre RC


On considère un filtre RC passe-bas avec R = 5 kΩ et C = 1 μF.

1. Établissez l'équation différentielle liant la tension de sortie Vs(t) à la tension d'entrée Ve(t).
2. Déterminez la fonction de transfert H(p) = Vs(p)/Ve(p) du filtre.
3. Calculez :
a) La pulsation de coupure ωc
b) La fréquence de coupure fc
c) Le gain en décibels à la fréquence de coupure
4. Tracez le diagramme de Bode asymptotique (gain et phase) de ce filtre.
5. Déterminez l'expression du gain en décibels GdB en fonction de la fréquence normalisée (ω/ωc).

### Partie B : Réponse temporelle


1. Calculez la réponse indicielle du filtre (réponse à un échelon unitaire).
2. Déterminez la constante de temps τ du filtre.
3. Si l'entrée est un signal carré de fréquence f = fc/10 et d'amplitude 10V, déterminez l'allure du signal
de sortie (vous pouvez utiliser la décomposition en série de Fourier).

### Partie C : Conversion en filtre numérique


1. En utilisant la transformation : p = (1-z⁻¹)/(1+z⁻¹), déterminez la fonction de transfert numérique D(z)
qui approxime le comportement du filtre RC.
2. Pour une fréquence d'échantillonnage f₀ = 20×fc :
a) Écrivez l'équation de récurrence correspondante.
b) Déterminez les conditions de stabilité du filtre numérique.
c) Comparez la réponse fréquentielle du filtre numérique avec celle du filtre analogique.

## Épreuve 5 : Projet Complet d'Analyse de Signal avec MATLAB

### Partie A : Génération et analyse d'un signal


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
Considérez le signal défini par :
x(t) = sin(2π×fs×t) + 2sin(2π×40fs×t), avec fs = 100 Hz

1. Écrivez un script MATLAB qui génère ce signal sur une durée de 0,1 seconde avec une fréquence
d'échantillonnage f₀ = 20 kHz.
2. Calculez et affichez la valeur moyenne et la valeur efficace de ce signal.
3. Représentez graphiquement ce signal dans le domaine temporel.
4. Calculez et représentez le spectre d'amplitude de ce signal à l'aide de la fonction FFT de MATLAB.

### Partie B : Conception et implémentation d'un filtre numérique (8 points)


On souhaite filtrer le signal x(t) pour extraire uniquement la composante basse fréquence (à fs = 100
Hz).

1. Concevez un filtre numérique passe-bas avec les caractéristiques suivantes :


- Fréquence de coupure à 500 Hz
- Atténuation minimale de 40 dB à 4 kHz
2. Implémentez ce filtre en utilisant la fonction de transfert en z suivante :
D(z) = (1-e⁻ᵃᵀ)/(z-e⁻ᵃᵀ) avec a = 625 et T = 1/f₀
3. Utilisez la fonction `dlsim` de MATLAB pour simuler la réponse du filtre au signal d'entrée x(t).
4. Représentez graphiquement le signal filtré y(t) dans le domaine temporel.
5. Calculez et représentez le spectre d'amplitude du signal filtré.

### Partie C : Analyse des performances du filtre


1. Évaluez l'efficacité du filtrage en calculant :
a) Le rapport signal/bruit (SNR) avant et après filtrage
b) La distorsion harmonique totale (THD) du signal filtré
2. Modifiez la fréquence de coupure du filtre et observez l'impact sur la qualité du filtrage.
3. Proposez des améliorations possibles pour optimiser les performances du filtre.
4. Rédigez un rapport d'analyse de 1 à 2 pages comprenant :
- Une description du signal et du filtre
- Une analyse des résultats obtenus
- Des commentaires sur l'efficacité du filtrage
- Des suggestions d'amélioration

```matlab % Analyse du filtre


% Paramètres du signal [h, w] = freqz(num, den, 1000, f0);
fs = 100; % Fréquence du 1er signal en figure(2);
Hz subplot(2,1,1);
f_high = 40*fs; % Fréquence du second plot(w/(2*pi), 20*log10(abs(h)));
signal (40*fs = 4000 Hz) title('Réponse en fréquence du filtre numérique');
f0 = 20000; % Fréquence xlabel('Fréquence (Hz)');
d'échantillonnage en Hz ylabel('Gain (dB)');
T0 = 1/f0; % Période d'échantillonnage grid on;
en secondes xlim([0 5000]);
duration = 0.1; % Durée du signal en
secondes % Phase du filtre
N = duration*f0; % Nombre d'échantillons subplot(2,1,2);
plot(w/(2*pi), unwrap(angle(h))*180/pi);
% Génération du signal title('Phase du filtre numérique');
n = 0:N-1; % Indices des échantillons xlabel('Fréquence (Hz)');
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
t = n*T0; % Vecteur temps ylabel('Phase (degrés)');
x = sin(2*pi*fs*t) + 2*sin(2*pi*f_high*t); grid on;
xlim([0 5000]);
% Analyse temporelle
mean_x = mean(x); % Valeur moyenne % Application du filtre avec dlsim
rms_x = sqrt(mean(x.^2)); % Valeur efficace y = dlsim(num, den, x);

% Affichage du signal temporel % Affichage du signal filtré


figure(1); figure(3);
subplot(2,1,1); subplot(2,1,1);
plot(t(1:500), x(1:500)); plot(t(1:500), y(1:500));
title('Signal d''entrée x(t) - 500 premiers title('Signal filtré y(t) - 500 premiers échantillons');
échantillons'); xlabel('Temps (s)');
xlabel('Temps (s)'); ylabel('Amplitude');
ylabel('Amplitude'); grid on;
grid on;
text(0.01, 2.5, ['Moyenne: ' % Analyse fréquentielle du signal filtré
num2str(mean_x) ' / RMS: ' Y = fft(y)/N;
num2str(rms_x)]); subplot(2,1,2);
plot(f, 2*abs(Y(1:N/2)));
% Analyse fréquentielle title('Spectre d''amplitude du signal filtré');
X = fft(x)/N; % Transformée de Fourier xlabel('Fréquence (Hz)');
f = f0*(0:N/2-1)/N; % Axe des fréquences ylabel('|Y(f)|');
jusqu'à la fréquence de Nyquist grid on;
xlim([0 5000]);
% Affichage du spectre d'amplitude
subplot(2,1,2); % Calcul des performances du filtre
plot(f, 2*abs(X(1:N/2))); % SNR avant filtrage (rapport entre puissance du
title('Spectre d''amplitude du signal signal à 100 Hz et à 4000 Hz)
d''entrée'); idx_low = round(fs*N/f0) + 1; % Index de la
xlabel('Fréquence (Hz)'); composante à 100 Hz
ylabel('|X(f)|'); idx_high = round(f_high*N/f0) + 1; % Index de la
grid on; composante à 4000 Hz
xlim([0 5000]); % Limiter l'affichage à 5
kHz
% Conception du filtre numérique
a = 625; % Paramètre du filtre
num = [1-exp(-a*T0)];
den = [1 -exp(-a*T0)];

P_low_input = abs(X(idx_low))^2; % Comparaison des spectres entrée/sortie


P_high_input = abs(X(idx_high))^2; subplot(2,1,2);
SNR_input = plot(f, 2*abs(X(1:N/2)), 'b', f, 2*abs(Y(1:N/2)), 'r');
10*log10(P_low_input/P_high_input); title('Comparaison des spectres d''entrée et de
sortie');
% SNR après filtrage xlabel('Fréquence (Hz)');
P_low_output = abs(Y(idx_low))^2; ylabel('Amplitude');
P_high_output = abs(Y(idx_high))^2; legend('Entrée', 'Sortie');
SNR_output = grid on;
10*log10(P_low_output/P_high_output); xlim([0 5000]);
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
% Affichage des résultats de performance % Affichage des résultats numériques dans la console
figure(4); disp(['Moyenne du signal d''entrée: '
subplot(2,1,1); num2str(mean_x)]);
bar([SNR_input, SNR_output]); disp(['Valeur efficace du signal d''entrée: '
set(gca, 'XTickLabel', {'SNR Entrée', 'SNR num2str(rms_x)]);
Sortie'}); disp(['SNR avant filtrage: ' num2str(SNR_input) ' dB']);
title('Rapport Signal/Bruit (dB)'); disp(['SNR après filtrage: ' num2str(SNR_output) '
ylabel('SNR (dB)'); dB']);
grid on; disp(['Atténuation à ' num2str(f_high) ' Hz: '
num2str(20*log10(abs(Y(idx_high))/abs(X(idx_high))))
' dB']);

```

---

## Table des matières


1. [Correction Épreuve 1: Analyse et Modélisation d'un Système du Premier Ordre](#correction-
épreuve-1)
2. [Correction Épreuve 2: Analyse Fréquentielle et Signaux Échantillonnés](#correction-épreuve-2)
3. [Correction Épreuve 3: Conception et Simulation d'un Filtre Numérique](#correction-épreuve-3)
4. [Correction Épreuve 4: Analyse Complète d'un Filtre Passe-Bas du Premier Ordre](#correction-
épreuve-4)
5. [Correction Épreuve 5: Projet Complet d'Analyse de Signal avec MATLAB](#correction-épreuve-5)

# Correction Épreuve 1: Analyse et Modélisation d'un Système du Premier Ordre

## Partie A : Modélisation

### Question 1
**a) Établir l'équation différentielle reliant la tension d'entrée Ve(t) à la tension de sortie Vs(t)**

Dans un circuit RC série, la tension de sortie Vs(t) est mesurée aux bornes du condensateur C.
D'après la loi des mailles, on a : Ve(t) = R·i(t) + Vs(t)

La relation courant-tension pour un condensateur est donnée par : i(t) = C·dVs(t)/dt

En substituant cette expression dans l'équation précédente :


Ve(t) = R·C·dVs(t)/dt + Vs(t)

En réarrangeant, on obtient l'équation différentielle :


R·C·dVs(t)/dt + Vs(t) = Ve(t)

Avec les valeurs données (R = 10 kΩ et C = 100 nF) :


10·10³ × 100·10⁻⁹ × dVs(t)/dt + Vs(t) = Ve(t)
1·10⁻³ × dVs(t)/dt + Vs(t) = Ve(t)
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
**b) Résoudre cette équation pour déterminer la solution générale**

Posons τ = RC = 10·10³ × 100·10⁻⁹ = 1·10⁻³ s = 1 ms

L'équation différentielle devient : τ·dVs(t)/dt + Vs(t) = Ve(t)

La solution générale de cette équation dépend de la forme de Ve(t). Pour une entrée quelconque, on
peut utiliser l'intégrale de convolution :

Vs(t) = (1/τ)·∫₀ᵗ Ve(u)·e^(-(t-u)/τ) du + Vs(0)·e^(-t/τ)

Où Vs(0) est la condition initiale à t = 0.

**c) Trouver la transformée de Laplace du système**

Appliquons la transformée de Laplace à l'équation différentielle :


τ·[p·Vs(p) - Vs(0)] + Vs(p) = Ve(p)

En supposant Vs(0) = 0 (conditions initiales nulles) :


τ·p·Vs(p) + Vs(p) = Ve(p)
Vs(p)·(τ·p + 1) = Ve(p)

**d) Déterminer la fonction de transfert H(p) = Vs(p)/Ve(p)**

H(p) = Vs(p)/Ve(p) = 1/(τ·p + 1) = 1/(RC·p + 1)

En remplaçant τ = 1 ms :
H(p) = 1/(1·10⁻³·p + 1)

### Question 2
**a) Déterminer la fréquence de coupure fc du filtre**

La fréquence de coupure ωc en rad/s est donnée par :


ωc = 1/τ = 1/RC = 1/(1·10⁻³) = 1000 rad/s

La fréquence de coupure fc en Hz est :


fc = ωc/(2π) = 1000/(2π) ≈ 159,15 Hz

**b) Calculer le gain en décibels à f = fc, f = fc/10 et f = 10×fc**

Le gain en décibels est donné par :


G(dB) = 20·log₁₀|H(jω)|

À la pulsation ω, le module de la fonction de transfert est :


|H(jω)| = 1/√(1 + (ωτ)²)

- À f = fc (ω = ωc = 1/τ) :
|H(jωc)| = 1/√(1 + 1²) = 1/√2 ≈ 0,7071
G(dB) = 20·log₁₀(0,7071) ≈ -3 dB

- À f = fc/10 (ω = ωc/10) :
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
|H(jωc/10)| = 1/√(1 + (0,1)²) ≈ 1/√1,01 ≈ 0,995
G(dB) = 20·log₁₀(0,995) ≈ -0,04 dB

- À f = 10×fc (ω = 10·ωc) :
|H(j10ωc)| = 1/√(1 + 10²) = 1/√101 ≈ 0,0995
G(dB) = 20·log₁₀(0,0995) ≈ -20 dB

**c) Quelle est la pente d'atténuation en dB/décade dans la zone des hautes fréquences?**

Pour un filtre du premier ordre comme celui-ci, la pente d'atténuation dans la zone des hautes
fréquences (ω >> ωc) est de -20 dB/décade.

## Partie B : Réponse temporelle (6 points)

### Question 1
**Calculer et représenter la réponse indicielle du système (réponse à un échelon unitaire)**

Pour un échelon unitaire Ve(t) = u(t), la transformée de Laplace est Ve(p) = 1/p.

La réponse en transformée de Laplace est :


Vs(p) = H(p)·Ve(p) = (1/(τp + 1))·(1/p) = (1/p) - (τ/(τp + 1))

En utilisant la transformée inverse de Laplace :


Vs(t) = 1 - e^(-t/τ) pour t ≥ 0

Avec τ = 1 ms :
Vs(t) = 1 - e^(-t/0.001) pour t ≥ 0

Cette réponse indicielle montre que la sortie part de 0 et tend asymptotiquement vers 1, avec une
constante de temps τ = 1 ms.

### Question 2
**Si l'entrée est un signal sinusoïdal Ve(t) = 5sin(2π×500t) V**

**a) Déterminer l'amplitude du signal de sortie**

La pulsation du signal d'entrée est ω = 2π×500 ≈ 3141,6 rad/s.

Le gain du filtre à cette pulsation est :


|H(jω)| = 1/√(1 + (ωτ)²) = 1/√(1 + (3141,6×0.001)²) ≈ 1/√(1 + 9,87) ≈ 1/3,295 ≈ 0,3034

L'amplitude du signal de sortie est donc :


5 × 0,3034 ≈ 1,517 V

**b) Calculer le déphasage entre l'entrée et la sortie**

Le déphasage est donné par :


φ = -arctan(ωτ) = -arctan(3141,6×0.001) = -arctan(3,1416) ≈ -72,4°

Le signal de sortie est donc en retard de phase d'environ 72,4° par rapport à l'entrée.
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
### Question 3
**Expliquer pourquoi ce circuit peut être considéré comme un filtre passe-bas**

Ce circuit est considéré comme un filtre passe-bas car :


1. Il laisse passer les basses fréquences (ω << ωc) avec un gain proche de 1 (0 dB)
2. Il atténue les hautes fréquences (ω >> ωc) avec une pente de -20 dB/décade
3. La fréquence de coupure fc sépare la bande passante de la zone d'atténuation
4. Le déphasage varie de 0° à -90° quand la fréquence augmente
5. Sa fonction de transfert H(p) = 1/(τp + 1) est caractéristique d'un filtre passe-bas du premier ordre

## Partie C : Numérisation (6 points)

### Question 1
**Si l'on souhaite numériser ce système avec une période d'échantillonnage T₀ = 0,1 ms**

**a) Cette fréquence d'échantillonnage est-elle suffisante pour respecter le théorème de Nyquist si le
signal d'entrée contient des fréquences jusqu'à 4 kHz?**

La fréquence d'échantillonnage est f₀ = 1/T₀ = 1/0,0001 = 10 kHz.

D'après le théorème de Nyquist, pour représenter correctement un signal contenant des fréquences
jusqu'à fmax, la fréquence d'échantillonnage doit satisfaire f₀ > 2×fmax.

Ici, fmax = 4 kHz, donc la condition est f₀ > 8 kHz.

Comme f₀ = 10 kHz > 8 kHz, la fréquence d'échantillonnage est suffisante pour respecter le théorème
de Nyquist.

**b) Déterminer la fonction de transfert en z, D(z), correspondant à ce système**

Pour convertir la fonction de transfert analogique H(p) en fonction de transfert numérique D(z), on
peut utiliser la transformation bilinéaire :
p = (2/T₀)·(1-z⁻¹)/(1+z⁻¹)

Substituons cette expression dans H(p) = 1/(τp + 1) :


D(z) = 1/(τ·(2/T₀)·(1-z⁻¹)/(1+z⁻¹) + 1)

Simplifions :
D(z) = (1+z⁻¹)/(τ·(2/T₀)·(1-z⁻¹) + (1+z⁻¹))
D(z) = (1+z⁻¹)/((2τ/T₀)·(1-z⁻¹) + (1+z⁻¹))
D(z) = (1+z⁻¹)/((2τ/T₀ - 1)·(1-z⁻¹) + 2·(1))

Avec τ = 1 ms et T₀ = 0,1 ms :
2τ/T₀ = 2×0.001/0.0001 = 20

D(z) = (1+z⁻¹)/((20 - 1)·(1-z⁻¹) + 2)


D(z) = (1+z⁻¹)/(19·(1-z⁻¹) + 2)
D(z) = (1+z⁻¹)/(19 - 19z⁻¹ + 2)
D(z) = (1+z⁻¹)/(21 - 19z⁻¹)

D(z) = (1+z⁻¹)/((21 - 19z⁻¹))


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
D(z) = (z + 1)/(21z - 19)

Autre méthode (transformation en z directe) :


On peut également utiliser la relation directe z = e^(pT₀)
Puisque H(p) = 1/(τp + 1), on obtient :
D(z) = (1-e^(-T₀/τ))/(z-e^(-T₀/τ))

Avec T₀ = 0,1 ms et τ = 1 ms :
e^(-T₀/τ) = e^(-0.1) ≈ 0,9048

D(z) = (1-0,9048)/(z-0,9048) = 0,0952/(z-0,9048) = 0,0952·z⁻¹/(1-0,9048·z⁻¹)

# Correction Épreuve 2: Analyse Fréquentielle et Signaux Échantillonnés

## Partie A : Étude d'un signal composite (7 points)

### Question 1
**Déterminer la fréquence maximale présente dans ce signal**

Le signal est x(t) = 2sin(2π×100t) + 4sin(2π×4000t)

Il contient deux composantes sinusoïdales de fréquences 100 Hz et 4000 Hz.


La fréquence maximale présente dans ce signal est donc fmax = 4000 Hz.

### Question 2
**Quelle est la fréquence d'échantillonnage minimale théorique nécessaire selon le théorème de
Nyquist?**

Selon le théorème de Nyquist, la fréquence d'échantillonnage minimale f₀,min doit être supérieure à
deux fois la fréquence maximale du signal :
f₀,min > 2×fmax = 2×4000 = 8000 Hz

La fréquence d'échantillonnage minimale théorique nécessaire est donc 8000 Hz.

### Question 3
**Pour une application pratique, on choisit f₀ = 20 kHz comme fréquence d'échantillonnage**

**a) Écrire l'expression du signal échantillonné x(nT₀)**

La période d'échantillonnage est T₀ = 1/f₀ = 1/20000 = 5×10⁻⁵ s = 0,05 ms

Le signal échantillonné s'écrit :


x(nT₀) = 2sin(2π×100×nT₀) + 4sin(2π×4000×nT₀)
x(nT₀) = 2sin(2π×100×n×5×10⁻⁵) + 4sin(2π×4000×n×5×10⁻⁵)
x(nT₀) = 2sin(0,01π×n) + 4sin(0,4π×n)

**b) Représenter graphiquement les 5 premiers échantillons de ce signal**


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
Calculons les valeurs pour n = 0, 1, 2, 3, 4 :

n = 0 : x(0) = 2sin(0) + 4sin(0) = 0


n = 1 : x(T₀) = 2sin(0,01π) + 4sin(0,4π) ≈ 2×0,0314 + 4×0,9511 ≈ 0,0628 + 3,8044 ≈ 3,8672
n = 2 : x(2T₀) = 2sin(0,02π) + 4sin(0,8π) ≈ 2×0,0628 + 4×0,9511 ≈ 0,1256 + 3,8044 ≈ 3,93
n = 3 : x(3T₀) = 2sin(0,03π) + 4sin(1,2π) ≈ 2×0,0942 + 4×0,5878 ≈ 0,1884 + 2,3512 ≈ 2,5396
n = 4 : x(4T₀) = 2sin(0,04π) + 4sin(1,6π) ≈ 2×0,1253 + 4×(-0,5878) ≈ 0,2506 - 2,3512 ≈ -2,1006

Représentation graphique : Un graphique avec les points (0,0), (1,3.8672), (2,3.93), (3,2.5396), (4,-
2.1006) reliés par une courbe.

### Question 4
**Calculer la valeur moyenne et la valeur efficace de ce signal sur une période de 10 ms**

La valeur moyenne d'un signal périodique sur une période complète est donnée par :
Vmoy = (1/T)·∫₀ᵀ x(t)dt

La composante 2sin(2π×100t) a une période de 10 ms, mais la composante 4sin(2π×4000t) a une


période de 0,25 ms. La période commune est donc de 10 ms (plus petit commun multiple).

Pour les signaux sinusoïdaux, la valeur moyenne sur une période complète est nulle :
Vmoy = 0

La valeur efficace d'un signal périodique est donnée par :


Veff = √[(1/T)·∫₀ᵀ x²(t)dt]

Pour une somme de sinusoïdes de fréquences différentes :


Veff = √(Veff₁² + Veff₂²)

La valeur efficace d'un signal sinusoïdal A·sin(ωt) est A/√2. Donc :


Veff₁ = 2/√2 = √2
Veff₂ = 4/√2 = 2√2

Veff = √(Veff₁² + Veff₂²) = √(2 + 8) = √10 ≈ 3,16

## Partie B : Transformées (7 points)

### Question 1
**Calculer la transformée de Fourier X(f) du signal x(t)**

La transformée de Fourier d'un signal sinusoïdal A·sin(2πf₀t) est :


ℱ{A·sin(2πf₀t)} = (A/2)·[δ(f-f₀) - δ(f+f₀)]·j

Pour le signal x(t) = 2sin(2π×100t) + 4sin(2π×4000t) :


X(f) = (2/2)·[δ(f-100) - δ(f+100)]·j + (4/2)·[δ(f-4000) - δ(f+4000)]·j
X(f) = j·[δ(f-100) - δ(f+100) + 2δ(f-4000) - 2δ(f+4000)]

### Question 2
**Représenter le spectre d'amplitude |X(f)|**

Le spectre d'amplitude |X(f)| est :


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
|X(f)| = |j·[δ(f-100) - δ(f+100) + 2δ(f-4000) - 2δ(f+4000)]|
= |δ(f-100) - δ(f+100) + 2δ(f-4000) - 2δ(f+4000)|

Pour un spectre bilatéral, on obtient des impulsions de Dirac aux fréquences ±100 Hz et ±4000 Hz, avec
des amplitudes de 1 et 2 respectivement.

Dans une représentation du spectre unilatéral (fréquences positives uniquement), on a :


|X(f)| = 2 pour f = 100 Hz
|X(f)| = 4 pour f = 4000 Hz
|X(f)| = 0 ailleurs

### Question 3
**Calculer la puissance spectrale P₍ₓ₎(f) = |X(f)|² du signal**

La puissance spectrale est le carré du module de la transformée de Fourier :


P₍ₓ₎(f) = |X(f)|² = |δ(f-100) - δ(f+100) + 2δ(f-4000) - 2δ(f+4000)|²

Pour un spectre unilatéral (fréquences positives uniquement), on a :


P₍ₓ₎(f) = 4 pour f = 100 Hz
P₍ₓ₎(f) = 16 pour f = 4000 Hz
P₍ₓ₎(f) = 0 ailleurs

### Question 4
**Si on applique ce signal à l'entrée d'un filtre passe-bas de fréquence de coupure fc = 1 kHz**

**a) Quelle sera l'allure du spectre en sortie du filtre?**

Le filtre passe-bas va laisser passer les fréquences inférieures à fc = 1 kHz et atténuer les fréquences
supérieures.

La composante à f = 100 Hz (< fc) passera sans atténuation.


La composante à f = 4000 Hz (> fc) sera fortement atténuée.

Si on considère un filtre passe-bas idéal, le spectre en sortie serait :


|Y(f)| = 2 pour f = 100 Hz
|Y(f)| = 0 pour f = 4000 Hz
|Y(f)| = 0 ailleurs

Pour un filtre passe-bas réel (non idéal), la composante à 4000 Hz serait atténuée mais pas
complètement supprimée. Son amplitude dépendrait de l'ordre du filtre et de la distance entre fc et
4000 Hz.

**b) Écrire l'expression temporelle du signal de sortie y(t)**

Pour un filtre passe-bas idéal, le signal de sortie serait uniquement composé de la composante basse
fréquence :
y(t) = 2sin(2π×100t)

Pour un filtre passe-bas réel, la composante à 4000 Hz serait atténuée d'un facteur dépendant de la
fonction de transfert du filtre à cette fréquence.
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
Si on considère un filtre passe-bas du premier ordre, le gain à f = 4000 Hz serait :
G(4000 Hz) = 1/√(1 + (4000/1000)²) = 1/√17 ≈ 0,243

Le signal de sortie serait alors :


y(t) = 2sin(2π×100t) + 4×0,243×sin(2π×4000t)
y(t) = 2sin(2π×100t) + 0,972sin(2π×4000t)

## Partie C : Filtrage numérique (6 points)

### Question 1
**Écrire l'équation de récurrence correspondant à ce filtre**

La fonction de transfert du filtre numérique est :


D(z) = (1 - e⁻ᵃᵀ⁰)/(z - e⁻ᵃᵀ⁰) avec a = 625

Développons pour obtenir l'équation de récurrence :


Y(z)/X(z) = (1 - e⁻ᵃᵀ⁰)/(z - e⁻ᵃᵀ⁰)
Y(z)·(z - e⁻ᵃᵀ⁰) = X(z)·(1 - e⁻ᵃᵀ⁰)
z·Y(z) - e⁻ᵃᵀ⁰·Y(z) = X(z)·(1 - e⁻ᵃᵀ⁰)

En appliquant la transformée en z inverse :


y[n+1] - e⁻ᵃᵀ⁰·y[n] = x[n]·(1 - e⁻ᵃᵀ⁰)

Réarrangeons pour isoler y[n+1] :


y[n+1] = e⁻ᵃᵀ⁰·y[n] + (1 - e⁻ᵃᵀ⁰)·x[n]

Avec a = 625 et en supposant T₀ = 1/f₀ = 1/20000 = 5×10⁻⁵ s :


e⁻ᵃᵀ⁰ = e⁻⁶²⁵ˣ⁵ˣ¹⁰⁻⁵ = e⁻⁰⁻⁰³¹²⁵ ≈ 0,9692

L'équation de récurrence devient :


y[n+1] = 0,9692·y[n] + (1 - 0,9692)·x[n]
y[n+1] = 0,9692·y[n] + 0,0308·x[n]

### Question 2
**Déterminer la réponse impulsionnelle de ce filtre**

La réponse impulsionnelle h[n] est la sortie du filtre lorsque l'entrée est une impulsion de Dirac
discrète δ[n].

Pour n = 0 :
h[0] = 0,0308·δ[0] = 0,0308

Pour n = 1 :
h[1] = 0,9692·h[0] + 0,0308·δ[1] = 0,9692·0,0308 + 0 = 0,0299

Pour n = 2 :
h[2] = 0,9692·h[1] + 0,0308·δ[2] = 0,9692·0,0299 + 0 = 0,0290

Pour n = 3 :
h[3] = 0,9692·h[2] + 0,0308·δ[3] = 0,9692·0,0290 + 0 = 0,0281
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
Cette séquence continue avec h[n] = 0,9692·h[n-1] pour n > 0, ce qui donne :
h[n] = 0,0308·(0,9692)^n pour n ≥ 0
h[n] = 0 pour n < 0

La réponse impulsionnelle est une séquence exponentielle décroissante, typique d'un filtre passe-bas
du premier ordre.

### Question 3
**Étudier la stabilité de ce filtre**

Un filtre numérique est stable si tous les pôles de sa fonction de transfert sont à l'intérieur du cercle
unité dans le plan complexe z.

La fonction de transfert est D(z) = (1 - e⁻ᵃᵀ⁰)/(z - e⁻ᵃᵀ⁰)

Le pôle unique est à z = e⁻ᵃᵀ⁰ = 0,9692

Comme |e⁻ᵃᵀ⁰| = 0,9692 < 1, le pôle est à l'intérieur du cercle unité, donc le filtre est stable.

Autre preuve de stabilité : la réponse impulsionnelle h[n] = 0,0308·(0,9692)^n tend vers 0 quand n tend
vers l'infini, ce qui est une condition nécessaire et suffisante pour la stabilité BIBO (Bounded Input,
Bounded Output).

# Correction Épreuve 3: Conception et Simulation d'un Filtre Numérique

## Partie A : Étude théorique (6 points)

### Question 1
**Quelle est la fréquence maximale contenue dans ce signal ?**

Le signal d'entrée est :


x(nT₀) = sin(2π×100×nT₀) + 2sin(2π×4000×nT₀)

Il contient deux composantes sinusoïdales de fréquences 100 Hz et 4000 Hz.


La fréquence maximale contenue dans ce signal est donc fmax = 4000 Hz.

### Question 2
**La condition de Nyquist est-elle respectée ? Justifiez.**

Selon le théorème de Nyquist, la fréquence d'échantillonnage f₀ doit être supérieure à deux fois la
fréquence maximale du signal :
f₀ > 2×fmax

Ici, f₀ = 10 kHz et fmax = 4 kHz.


Donc f₀ = 10 kHz > 2×4 kHz = 8 kHz.

La condition de Nyquist est donc bien respectée, ce qui garantit qu'il n'y aura pas de repliement
spectral lors de l'échantillonnage.
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
### Question 3
**Représenter graphiquement l'allure du spectre d'amplitude théorique |X(f)|**

Le spectre d'amplitude théorique |X(f)| d'un signal échantillonné contient des raies aux fréquences des
composantes sinusoïdales.

Pour une représentation unilatérale (fréquences positives uniquement) :


|X(f)| = 1 pour f = 100 Hz (amplitude de la première sinusoïde)
|X(f)| = 2 pour f = 4000 Hz (amplitude de la seconde sinusoïde)
|X(f)| = 0 ailleurs

Graphiquement, cela se représente par deux raies verticales, une à 100 Hz d'amplitude 1 et une à 4000
Hz d'amplitude 2.

# Correction des Épreuves 3 à 5 - Techniques de Traitement du Signal

## Épreuve 3 : Conception et Simulation d'un Filtre Numérique

### Partie A : Étude théorique

**1. Fréquence maximale contenue dans le signal**

Le signal est défini par : x(nT₀) = sin(2π×100×nT₀) + 2sin(2π×4000×nT₀)

La fréquence maximale contenue dans ce signal est 4000 Hz, correspondant à la deuxième composante
sinusoïdale.

**2. Vérification du respect de la condition de Nyquist**

La condition de Nyquist stipule que la fréquence d'échantillonnage f₀ doit être supérieure ou égale à
deux fois la fréquence maximale du signal :
- Fréquence d'échantillonnage f₀ = 10 kHz
- Fréquence maximale du signal = 4 kHz
- Condition de Nyquist : f₀ ≥ 2×fmax → 10 kHz ≥ 2×4 kHz = 8 kHz

La condition de Nyquist est donc respectée, ce qui signifie que le signal peut être échantillonné sans
repliement spectral.

**3. Spectre d'amplitude théorique |X(f)|**

Le spectre d'amplitude théorique |X(f)| du signal comportera :


- Une raie à f = 100 Hz d'amplitude 0,5 (car sin(2πft) a une amplitude de 1, et l'amplitude dans le
spectre est A/2)
- Une raie à f = -100 Hz d'amplitude 0,5
- Une raie à f = 4000 Hz d'amplitude 1 (car 2×sin(2πft) a une amplitude de 2)
- Une raie à f = -4000 Hz d'amplitude 1

Pour le spectre unilatéral (fréquences positives uniquement), on obtient :


- Une raie à f = 100 Hz d'amplitude 1
- Une raie à f = 4000 Hz d'amplitude 2
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
![Spectre d'amplitude théorique](data:image/png;base64

### Partie B : Conception d'un filtre

**1. Type de filtre adapté**

Pour éliminer la composante à 4 kHz tout en conservant la composante à 100 Hz, un filtre passe-bas
est le plus adapté. Ce type de filtre atténue les fréquences supérieures à sa fréquence de coupure tout
en laissant passer les fréquences inférieures.

Justification : La composante que nous souhaitons conserver (100 Hz) est située dans les basses
fréquences, tandis que celle que nous voulons éliminer (4 kHz) est située dans les hautes fréquences.

**2. Fonction de transfert analogique**

Un filtre passe-bas du premier ordre est suffisant pour cette application. Sa fonction de transfert
analogique est :

H(p) = k / (1 + p/ωc)

où :
- k est le gain statique (nous prendrons k = 1)
- ωc est la pulsation de coupure
- p est la variable de Laplace

Cette fonction peut être réécrite sous la forme :

H(p) = ωc / (p + ωc)

**3. Fréquence de coupure appropriée**

La fréquence de coupure doit être choisie entre 100 Hz (fréquence à conserver) et 4000 Hz (fréquence
à éliminer). Pour assurer une bonne séparation entre ces deux composantes, on peut choisir une
fréquence de coupure de :

fc = 500 Hz

Cette valeur permet de laisser passer la composante à 100 Hz avec une atténuation minimale tout en
commençant à atténuer significativement les fréquences plus élevées.

La pulsation de coupure correspondante est :


ωc = 2πfc = 2π × 500 = 3141,59 rad/s

**4. Conversion en fonction de transfert numérique**

Pour convertir la fonction de transfert analogique en fonction de transfert numérique, nous utilisons la
transformation bilinéaire :

p = (2/T₀) × (1-z⁻¹)/(1+z⁻¹)

où T₀ = 1/f₀ = 1/10000 = 10⁻⁴ secondes est la période d'échantillonnage.


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
Substituons cette expression dans H(p) = ωc / (p + ωc) :

H((2/T₀) × (1-z⁻¹)/(1+z⁻¹)) = ωc / ((2/T₀) × (1-z⁻¹)/(1+z⁻¹) + ωc)

Simplifions :
D(z) = ωc / ((2/T₀) × (1-z⁻¹)/(1+z⁻¹) + ωc)
= ωc(1+z⁻¹) / ((2/T₀)(1-z⁻¹) + ωc(1+z⁻¹))
= ωc(1+z⁻¹) / ((2/T₀ + ωc) + (ωc - 2/T₀)z⁻¹)

Multiplions numérateur et dénominateur par T₀/2 :


D(z) = (ωcT₀/2)(1+z⁻¹) / ((1 + ωcT₀/2) + (ωcT₀/2 - 1)z⁻¹)

Avec ωcT₀/2 = 3141,59 × 10⁻⁴ / 2 = 0,1571

D(z) = 0,1571(1+z⁻¹) / (1,1571 - 0,8429z⁻¹)


= 0,1571(1+z⁻¹) / (1 - 0,7284z⁻¹)
= (0,1571 + 0,1571z⁻¹) / (1 - 0,7284z⁻¹)

Pour normaliser le dénominateur :


D(z) = (0,1571 + 0,1571z⁻¹) / (1 - 0,7284z⁻¹)

**5. Équation de récurrence**

À partir de la fonction de transfert numérique D(z) = (0,1571 + 0,1571z⁻¹) / (1 - 0,7284z⁻¹), nous


pouvons déduire l'équation de récurrence.

Soit Y(z) la sortie et X(z) l'entrée, nous avons :


Y(z) = D(z) × X(z)
Y(z) = (0,1571 + 0,1571z⁻¹) / (1 - 0,7284z⁻¹) × X(z)
Y(z)(1 - 0,7284z⁻¹) = (0,1571 + 0,1571z⁻¹) × X(z)
Y(z) - 0,7284Y(z)z⁻¹ = 0,1571X(z) + 0,1571X(z)z⁻¹

En repassant dans le domaine temporel :


y[n] - 0,7284y[n-1] = 0,1571x[n] + 0,1571x[n-1]

D'où l'équation de récurrence :


y[n] = 0,7284y[n-1] + 0,1571x[n] + 0,1571x[n-1]

### Partie C : Simulation MATLAB

Voici le script MATLAB complet pour réaliser la simulation demandée :

```matlab
% Paramètres du signal
f1 = 100; % Fréquence de la première composante (Hz)
f2 = 4000; % Fréquence de la seconde composante (Hz)
fs = 10000; % Fréquence d'échantillonnage (Hz)
Ts = 1/fs; % Période d'échantillonnage (s)
N = 1024; % Nombre d'échantillons
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
% Génération du signal d'entrée
n = 0:N-1; % Vecteur d'indices
t = n*Ts; % Vecteur temps
x = sin(2*pi*f1*t) + 2*sin(2*pi*f2*t); % Signal d'entrée

% Conception du filtre numérique


wc = 2*pi*500; % Pulsation de coupure (rad/s)
K = wc*Ts/2; % Coefficient de la transformation bilinéaire

% Coefficients du filtre
b = K*[1 1]; % Numérateur
a = [1 -(1-K)/(1+K)]; % Dénominateur

% Application du filtre
y = filter(b, a, x); % Filtrage du signal d'entrée

% Calcul des spectres


X = fft(x)/N; % TFD du signal d'entrée
Y = fft(y)/N; % TFD du signal filtré
f = fs*(0:N/2-1)/N; % Vecteur des fréquences positives

% Affichage des signaux temporels


figure(1);
subplot(2,1,1);
plot(t(1:200), x(1:200));
title('Signal d''entrée x[n] (200 premiers échantillons)');
xlabel('Temps (s)');
ylabel('Amplitude');
grid on;

subplot(2,1,2);
plot(t(1:200), y(1:200));
title('Signal de sortie y[n] (200 premiers échantillons)');
xlabel('Temps (s)');
ylabel('Amplitude');
grid on;

% Affichage des spectres


figure(2);
subplot(2,1,1);
plot(f, 2*abs(X(1:N/2)));
title('Spectre d''amplitude du signal d''entrée');
xlabel('Fréquence (Hz)');
ylabel('|X(f)|');
grid on;
xlim([0 5000]);

subplot(2,1,2);
plot(f, 2*abs(Y(1:N/2)));
title('Spectre d''amplitude du signal de sortie');
xlabel('Fréquence (Hz)');
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
ylabel('|Y(f)|');
grid on;
xlim([0 5000]);

% Affichage des résultats


disp(['Atténuation à ', num2str(f1), ' Hz: ', num2str(20*log10(abs(Y(f1*N/fs+1))/abs(X(f1*N/fs+1)))), '
dB']);
disp(['Atténuation à ', num2str(f2), ' Hz: ', num2str(20*log10(abs(Y(f2*N/fs+1))/abs(X(f2*N/fs+1)))), '
dB']);
```

**Analyse des résultats attendus :**

1. **Signal temporel** : Le signal d'entrée est la somme de deux sinusoïdes de fréquences 100 Hz et
4000 Hz. Après filtrage, la composante à 4000 Hz est fortement atténuée, ne laissant pratiquement
que la sinusoïde à 100 Hz.

2. **Spectre d'amplitude** : Le spectre du signal d'entrée montre deux pics distincts à 100 Hz et 4000
Hz. Le spectre du signal de sortie montre que la composante à 100 Hz est préservée, tandis que celle à
4000 Hz est considérablement réduite.

3. **Efficacité du filtrage** :
- À 100 Hz (composante à conserver), l'atténuation est faible (environ -0,13 dB).
- À 4000 Hz (composante à éliminer), l'atténuation est importante (environ -21,6 dB).

Ces résultats confirment que le filtre passe-bas conçu fonctionne correctement, en préservant la
composante basse fréquence tout en atténuant significativement la composante haute fréquence.

# Correction - Épreuve 4 : Analyse Complète d'un Filtre Passe-Bas du Premier Ordre

## Partie A : Étude du filtre RC (8 points)

### 1. Équation différentielle liant la tension de sortie Vs(t) à la tension d'entrée Ve(t)

Pour un filtre RC passe-bas, la tension de sortie Vs(t) est prise aux bornes du condensateur.

Selon la loi des mailles, on a :


Ve(t) = RI(t) + Vs(t)

Or, I(t) = C·dVs(t)/dt

En substituant :
Ve(t) = RC·dVs(t)/dt + Vs(t)

D'où l'équation différentielle :


RC·dVs(t)/dt + Vs(t) = Ve(t)

### 2. Fonction de transfert H(p) = Vs(p)/Ve(p) du filtre


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
En appliquant la transformée de Laplace à l'équation différentielle :
RC·p·Vs(p) + Vs(p) = Ve(p)
Vs(p)·(RCp + 1) = Ve(p)

La fonction de transfert H(p) est donc :


H(p) = Vs(p)/Ve(p) = 1/(RCp + 1)

Avec les valeurs données (R = 5 kΩ et C = 1 μF) :


H(p) = 1/(5·10³ × 10⁻⁶·p + 1) = 1/(5·10⁻³·p + 1)

### 3. Calculs des paramètres du filtre

a) La pulsation de coupure ωc :
Pour un filtre RC passe-bas, ωc = 1/(RC)
ωc = 1/(5·10³ × 10⁻⁶) = 1/(5·10⁻³) = 200 rad/s

b) La fréquence de coupure fc :
fc = ωc/(2π) = 200/(2π) ≈ 31,83 Hz

c) Le gain en décibels à la fréquence de coupure :


À la pulsation de coupure ωc, le gain en amplitude est |H(jωc)| = 1/√2
Le gain en décibels est donc :
GdB(ωc) = 20·log₁₀(1/√2) = 20·log₁₀(1) - 20·log₁₀(√2) = -20·log₁₀(√2) = -10·log₁₀(2) = -3 dB

### 4. Diagramme de Bode asymptotique (gain et phase)

**Diagramme de gain asymptotique :**


- Pour ω < ωc : GdB = 0 dB (gain unitaire)
- Pour ω > ωc : GdB = -20·log₁₀(ω/ωc) dB (pente de -20 dB/décade)

**Diagramme de phase asymptotique :**


- Pour ω << ωc : φ ≈ 0°
- Pour ω = ωc : φ = -45°
- Pour ω >> ωc : φ ≈ -90°

### 5. Expression du gain en décibels GdB en fonction de la fréquence normalisée (ω/ωc)

Pour un filtre RC passe-bas :


|H(jω)| = 1/√(1 + (ω/ωc)²)

En décibels :
GdB(ω) = 20·log₁₀|H(jω)| = 20·log₁₀(1/√(1 + (ω/ωc)²)) = -10·log₁₀(1 + (ω/ωc)²)

## Partie B : Réponse temporelle (6 points)

### 1. Réponse indicielle du filtre (réponse à un échelon unitaire)

La transformée de Laplace d'un échelon unitaire est 1/p.


La réponse à cet échelon est donc :
Vs(p) = H(p) × (1/p) = 1/((RCp + 1)·p)
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
En décomposant en éléments simples :
Vs(p) = 1/p - 1/(p + 1/RC)

En appliquant la transformée inverse de Laplace :


Vs(t) = 1 - e^(-t/RC) pour t ≥ 0

Avec les valeurs numériques (RC = 5·10⁻³ s) :


Vs(t) = 1 - e^(-t/(5·10⁻³)) = 1 - e^(-200t) pour t ≥ 0

### 2. Constante de temps τ du filtre

La constante de temps τ est égale au produit RC :


τ = RC = 5·10³ × 10⁻⁶ = 5·10⁻³ s = 5 ms

### 3. Réponse à un signal carré

Pour un signal carré de fréquence f = fc/10 ≈ 3,18 Hz et d'amplitude 10V, la période est T = 1/f ≈ 314
ms.

La constante de temps τ = 5 ms est beaucoup plus petite que la demi-période (T/2 ≈ 157 ms), donc le
signal de sortie aura le temps d'atteindre presque la valeur finale à chaque alternance du signal carré.

Pour chaque fronts montant du signal carré, la sortie suivra :


Vs(t) = 10·(1 - e^(-200t))

Pour chaque fronts descendant du signal carré, la sortie suivra :


Vs(t) = 10·e^(-200t)

Le signal de sortie ressemblera donc à un signal carré avec des transitions exponentielles (arrondies) au
lieu de transitions abruptes. L'amplitude sera proche de 10V.

## Partie C : Conversion en filtre numérique (6 points)

### 1. Fonction de transfert numérique D(z)

En utilisant la transformation bilinéaire p = (1-z⁻¹)/(1+z⁻¹), on a :

H(p) = 1/(RCp + 1)
H((1-z⁻¹)/(1+z⁻¹)) = 1/(RC·(1-z⁻¹)/(1+z⁻¹) + 1)

En simplifiant :
D(z) = (1+z⁻¹)/(RC·(1-z⁻¹) + (1+z⁻¹))
D(z) = (1+z⁻¹)/((RC+1) - (RC-1)·z⁻¹)
D(z) = (1+z⁻¹)/((1+α) - (1-α)·z⁻¹)

où α = 1/RC = 200.

Mais attention, la transformation bilinéaire introduit une distorsion de l'échelle des fréquences. Pour la
fréquence d'échantillonnage f₀ = 20×fc ≈ 636,6 Hz, il faut prendre en compte cette distorsion. La
transformation correcte est :
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
α = tan(ωc·T₀/2) = tan(π·fc/f₀) ≈ tan(π/20) ≈ 0,158

D'où :
D(z) = (1+z⁻¹)/((1+α) - (1-α)·z⁻¹)
D(z) = (1+z⁻¹)/((1+0,158) - (1-0,158)·z⁻¹)
D(z) = (1+z⁻¹)/(1,158 - 0,842·z⁻¹)

En normalisant pour avoir un coefficient unitaire pour z⁰ au dénominateur :


D(z) = (0,863 + 0,863·z⁻¹)/(1 - 0,727·z⁻¹)

### 2. Analyse du filtre numérique

a) Équation de récurrence :
D(z) = Y(z)/X(z) = (0,863 + 0,863·z⁻¹)/(1 - 0,727·z⁻¹)

En multipliant des deux côtés par le dénominateur :


Y(z) - 0,727·Y(z)·z⁻¹ = 0,863·X(z) + 0,863·X(z)·z⁻¹

En revenant au domaine temporel :


y[n] = 0,727·y[n-1] + 0,863·x[n] + 0,863·x[n-1]

b) Conditions de stabilité :
Un filtre numérique est stable si tous les pôles de sa fonction de transfert sont à l'intérieur du cercle
unité.

Les pôles de D(z) sont les racines du dénominateur :


1 - 0,727·z⁻¹ = 0
z⁻¹ = 1/0,727
z = 0,727

Comme |z| = 0,727 < 1, le pôle est à l'intérieur du cercle unité, donc le filtre est stable.

c) Comparaison avec le filtre analogique :


Le filtre numérique obtenu par transformation bilinéaire préserve la réponse en fréquence du filtre
analogique, avec une distorsion de l'échelle des fréquences. La fréquence de coupure reste la même
(31,83 Hz), et la pente asymptotique à haute fréquence reste à -20 dB/décade.

Cependant, à cause de l'échantillonnage, le filtre numérique présente un repliement spectral au-delà


de la fréquence de Nyquist (f₀/2 ≈ 318,3 Hz). De plus, la transformation bilinéaire modifie légèrement
la forme de la réponse en fréquence, bien que les caractéristiques principales soient préservées.

En pratique, pour f₀ = 20×fc, la réponse du filtre numérique est très proche de celle du filtre analogique
pour les fréquences bien inférieures à la fréquence de Nyquist.

# Correction - Épreuve 5 : Projet Complet d'Analyse de Signal avec MATLAB

## Partie A : Génération et analyse d'un signal (5 points)


Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
### 1. Script MATLAB pour générer le signal

Le signal est défini par : x(t) = sin(2π×fs×t) + 2sin(2π×40fs×t), avec fs = 100 Hz

```matlab plot(t(1:200), x(1:200), 'b-');


% Paramètres du signal title('Signal x(t) - 200 premiers échantillons');
fs = 100; % Fréquence du premier signal en xlabel('Temps (s)');
Hz ylabel('Amplitude');
f_high = 40*fs; % Fréquence du second signal grid on;
(40*fs = 4000 Hz) ```
f0 = 20000; % Fréquence d'échantillonnage
en Hz ### 2. Calcul de la valeur moyenne et de la
T0 = 1/f0; % Période d'échantillonnage en valeur efficace
secondes
duration = 0.1; % Durée du signal en secondes ```matlab
N = duration*f0; % Nombre d'échantillons = % Calcul de la valeur moyenne
2000 mean_x = mean(x);
fprintf('Valeur moyenne du signal : %f\n',
% Génération du signal mean_x);
n = 0:N-1; % Indices des échantillons
t = n*T0; % Vecteur temps % Calcul de la valeur efficace (RMS - Root Mean
x = sin(2*pi*fs*t) + 2*sin(2*pi*f_high*t); Square)
rms_x = sqrt(mean(x.^2));
% Représentation graphique fprintf('Valeur efficace du signal : %f\n', rms_x);
figure(1); ```

Résultats théoriques :
- La valeur moyenne devrait être très proche de zéro car les deux composantes sont des sinusoïdes
centrées sur zéro.
- La valeur efficace théorique est calculée comme suit :
- Pour un signal x(t) = sin(2π×fs×t) + 2sin(2π×40fs×t)
- RMS = √[(1²/2) + (2²/2)] = √(1/2 + 4/2) = √(5/2) ≈ 1.581

### 3. Représentation graphique dans le domaine temporel

Le script précédent incluait déjà la représentation graphique du signal dans le domaine temporel pour
les 200 premiers échantillons. Comme le signal contient une composante haute fréquence (4000 Hz), il
est préférable de ne visualiser qu'une partie du signal pour bien observer les détails des oscillations.

### 4. Calcul et représentation du spectre d'amplitude

```matlab
% Calcul du spectre avec la FFT
X = fft(x)/N; % FFT normalisée
f = f0*(0:N/2-1)/N; % Axe des fréquences (jusqu'à la fréquence de Nyquist)

% Représentation du spectre d'amplitude


figure(2);
plot(f, 2*abs(X(1:N/2)), 'r-'); % Multiplication par 2 pour l'amplitude correcte
title('Spectre d''amplitude du signal x(t)');
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
xlabel('Fréquence (Hz)');
ylabel('Amplitude');
grid on;
xlim([0 5000]); % Limiter l'affichage à 5 kHz
```

Résultats attendus :
- Le spectre présentera deux pics distincts :
- Un premier pic à 100 Hz avec une amplitude de 0.5 (normalisée)
- Un second pic à 4000 Hz avec une amplitude de 1 (normalisée)

## Partie B : Conception et implémentation d'un filtre numérique (8 points)

### 1. Conception d'un filtre numérique passe-bas

Pour concevoir un filtre passe-bas avec une fréquence de coupure à 500 Hz et une atténuation
minimale de 40 dB à 4 kHz, nous allons utiliser un filtre de premier ordre, puis vérifier si les
spécifications sont respectées.

Pour un filtre de premier ordre, la pente d'atténuation est de -20 dB/décade. Pour atteindre -40 dB à 4
kHz, nous avons besoin de :
- Si la fréquence est 8 fois plus grande que la fréquence de coupure (4000/500 = 8), l'atténuation
théorique est de -20×log₁₀(8) ≈ -18 dB.
- Ce n'est pas suffisant pour atteindre -40 dB.

Nous avons deux options :


1. Utiliser un filtre d'ordre supérieur (ordre 2)
2. Abaisser la fréquence de coupure

Pour simplifier, nous suivrons l'indication de l'énoncé et utiliserons le filtre de premier ordre avec le
paramètre a = 625, mais nous vérifierons s'il répond bien aux spécifications.

### 2. Implémentation du filtre en utilisant la fonction de transfert

Le filtre a pour fonction de transfert : D(z) = (1-e⁻ᵃᵀ)/(z-e⁻ᵃᵀ) avec a = 625 et T = 1/f₀

```matlab xlabel('Fréquence (Hz)');


% Paramètres du filtre ylabel('Gain (dB)');
a = 625; % Paramètre du filtre grid on;
T = 1/f0; % Période d'échantillonnage hold on;
alpha = exp(-a*T); % Coefficient e^(-aT) plot([500 500], [-60 0], 'r--'); % Marquer la
fréquence de coupure souhaitée
% Coeffs du filtre (numérateur et dénominateur) plot([4000 4000], [-60 0], 'g--'); % Marquer la
num = [1-alpha]; % Numérateur : b0 = 1-e^(- fréquence haute à atténuer
aT) hold off;
den = [1 -alpha]; % Dénominateur : a0=1, a1=- xlim([0 5000]);
e^(-aT) ylim([-60 5]);

% Analyse de la réponse fréquentielle du filtre % Diagramme de phase


[h, w] = freqz(num, den, 1000, f0); subplot(2,1,2);
plot(w/(2*pi), unwrap(angle(h))*180/pi, 'k-');
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
% Représentation de la réponse en fréquence title('Réponse en phase du filtre numérique');
figure(3); xlabel('Fréquence (Hz)');
% Diagramme de gain ylabel('Phase (degrés)');
subplot(2,1,1); grid on;
plot(w/(2*pi), 20*log10(abs(h)), 'k-'); xlim([0 5000]);
title('Réponse en gain du filtre numérique'); ```

Analyse de la réponse fréquentielle :


- Avec a = 625 et f₀ = 20000 Hz, la fréquence de coupure est approximativement fc = a/(2π) ≈ 99.5 Hz
- À 4000 Hz, l'atténuation sera d'environ -20×log₁₀(4000/99.5) ≈ -32 dB
- Cette atténuation est inférieure aux -40 dB requis, mais nous utiliserons quand même ce filtre comme
indiqué dans l'énoncé.

### 3. Simulation de la réponse du filtre avec dlsim

```matlab
% Application du filtre avec dlsim
y = dlsim(num, den, x);

% Représentation du signal filtré


figure(4);
plot(t(1:200), y(1:200), 'b-');
title('Signal filtré y(t) - 200 premiers échantillons');
xlabel('Temps (s)');
ylabel('Amplitude');
grid on;
```

### 4. Représentation graphique du signal filtré dans le domaine temporel

La représentation graphique est déjà incluse dans le script précédent.

### 5. Calcul et représentation du spectre d'amplitude du signal filtré

```matlab
% Calcul du spectre du signal filtré
Y = fft(y)/N;

% Représentation du spectre
figure(5);
plot(f, 2*abs(Y(1:N/2)), 'r-');
title('Spectre d''amplitude du signal filtré y(t)');
xlabel('Fréquence (Hz)');
ylabel('Amplitude');
grid on;
xlim([0 5000]);
```

Résultat attendu :
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
- Le pic à 100 Hz devrait être bien préservé (légèrement atténué)
- Le pic à 4000 Hz devrait être fortement atténué (d'environ -32 dB)

## Partie C : Analyse des performances du filtre (7 points)

### 1. Évaluation de l'efficacité du filtrage

a) Calcul du rapport signal/bruit (SNR) avant et après filtrage :


```matlab
% Indices des composantes fréquentielles
idx_low = round(fs*N/f0) + 1; % Index de la composante à 100 Hz
idx_high = round(f_high*N/f0) + 1; % Index de la composante à 4000 Hz

% SNR avant filtrage


P_low_input = abs(X(idx_low))^2; % Puissance de la composante basse fréquence
P_high_input = abs(X(idx_high))^2; % Puissance de la composante haute fréquence
SNR_input = 10*log10(P_low_input/P_high_input);

% SNR après filtrage


P_low_output = abs(Y(idx_low))^2; % Puissance de la composante basse fréquence
P_high_output = abs(Y(idx_high))^2; % Puissance de la composante haute fréquence
SNR_output = 10*log10(P_low_output/P_high_output);

fprintf('SNR avant filtrage : %.2f dB\n', SNR_input);


fprintf('SNR après filtrage : %.2f dB\n', SNR_output);
```

Résultats théoriques :
- SNR avant filtrage : comme l'amplitude de la première composante est 1 et celle de la seconde est 2,
le SNR initial est 10×log₁₀(0.5²/1²) ≈ -6 dB
- SNR après filtrage : avec une atténuation d'environ -32 dB à 4000 Hz, le SNR après filtrage devrait être
d'environ -6 + 32 = 26 dB

b) Calcul de la distorsion harmonique totale (THD) du signal filtré :

```matlab for i = 1:length(a_values)


% Calcul de la THD (simplification - en a_test = a_values(i);
considérant uniquement les deux composantes) alpha_test = exp(-a_test*T);
% THD = racine carrée de (puissance des num_test = [1-alpha_test];
harmoniques / puissance du fondamental) den_test = [1 -alpha_test];
THD_output =
sqrt(P_high_output/P_low_output); % Calcul de la réponse fréquentielle
THD_output_dB = 20*log10(THD_output); [h_test, w] = freqz(num_test, den_test, 1000,
f0);
fprintf('THD du signal filtré : %.2f dB\n',
THD_output_dB); % Tracé de la réponse
``` plot(w/(2*pi), 20*log10(abs(h_test)));

### 2. Modification de la fréquence de coupure % Fréquence de coupure approximative


et observation de l'impact fc_test = a_test/(2*pi);
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
```matlab legend_text{i} = sprintf('a = %.1f (fc ≈ %.1f Hz)',
% Test avec différentes valeurs de 'a' pour a_test, fc_test);
modifier la fréquence de coupure end
a_values = [312.5, 625, 1250]; % Valeurs de a
(moitié, référence, double) title('Comparaison des réponses en fréquence
legend_text = cell(length(a_values), 1); pour différentes valeurs de a');
xlabel('Fréquence (Hz)');
% Création d'une figure pour comparer ylabel('Gain (dB)');
figure(6); grid on;
hold on; legend(legend_text);
hold off;
xlim([0 5000]);
ylim([-60 5]);
```

Analyse de l'impact :
- Augmenter la valeur de a augmente la fréquence de coupure, réduisant ainsi l'efficacité du filtrage
pour la composante haute fréquence.
- Diminuer la valeur de a diminue la fréquence de coupure, améliorant le filtrage de la composante
haute fréquence mais risquant d'atténuer également la composante basse fréquence.

### 3. Propositions d'améliorations possibles

Pour améliorer les performances du filtre, on pourrait :

1. Utiliser un filtre d'ordre supérieur (ordre 2 ou plus) pour obtenir une pente d'atténuation plus raide.
Par exemple, en mettant en cascade deux filtres identiques, on obtiendrait une pente de -40
dB/décade.

2. Implémenter un filtre IIR de type Butterworth ou Chebyshev qui offrirait une meilleure sélectivité
fréquentielle.

3. Utiliser un filtre à phase linéaire (FIR) si le retard de groupe est important pour l'application.

4. Optimiser la fréquence de coupure précisément entre 100 Hz et 4000 Hz pour maximiser le rapport
signal/bruit tout en minimisant la distorsion de la composante utile.

### 4. Rapport d'analyse

#### Description du signal et du filtre

Le signal analysé est composé de deux sinusoïdes :


- Une composante basse fréquence à 100 Hz avec une amplitude de 1
- Une composante haute fréquence à 4000 Hz avec une amplitude de 2

Le filtre implémenté est un filtre numérique de premier ordre avec une fonction de transfert :
D(z) = (1-e⁻ᵃᵀ)/(z-e⁻ᵃᵀ) avec a = 625 et T = 1/20000 s

Ce filtre correspond à un filtre passe-bas avec une fréquence de coupure approximative de 99.5 Hz.
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
#### Analyse des résultats

Le filtre a permis d'atténuer significativement la composante haute fréquence (4000 Hz) tout en
préservant relativement bien la composante basse fréquence (100 Hz).

Les mesures quantitatives montrent que :


- Le SNR s'est amélioré, passant d'environ -6 dB avant filtrage à environ 26 dB après filtrage.
- La composante haute fréquence a été atténuée d'environ 32 dB.
- La composante basse fréquence a été légèrement atténuée (d'environ 3 dB) car la fréquence de
coupure du filtre (99.5 Hz) est très proche de la fréquence de cette composante (100 Hz).

#### Efficacité du filtrage

Le filtrage est globalement efficace pour la tâche demandée, qui est d'extraire la composante basse
fréquence. Cependant, il présente quelques limites :

1. L'atténuation de la composante haute fréquence (-32 dB) est légèrement inférieure aux
spécifications demandées (-40 dB).
2. La composante basse fréquence est légèrement atténuée car la fréquence de coupure est très
proche de 100 Hz.
3. La pente d'atténuation (-20 dB/décade) d'un filtre de premier ordre est relativement douce, ce qui
limite la sélectivité fréquentielle.

#### Suggestions d'amélioration

Pour améliorer les performances du filtre, je recommande :

1. **Augmenter l'ordre du filtre** : Un filtre d'ordre 2 ou 3 offrirait une pente d'atténuation plus raide,
permettant une meilleure séparation des composantes.

2. **Ajuster la fréquence de coupure** : Une fréquence de coupure légèrement plus élevée (par
exemple 150-200 Hz) permettrait de moins atténuer la composante utile tout en maintenant une forte
atténuation à 4000 Hz.

3. **Considérer d'autres types de filtres** : Des filtres Butterworth ou Chebyshev de type IIR
pourraient offrir une meilleure sélectivité.

4. **Implémentation adaptative** : Dans un contexte où les fréquences des composantes peuvent


varier, un filtre adaptatif pourrait être envisagé pour s'ajuster automatiquement.

## Script MATLAB complet

```matlab
% Paramètres du signal
fs = 100; % Fréquence du premier signal en Hz
f_high = 40*fs; % Fréquence du second signal (40*fs = 4000 Hz)
f0 = 20000; % Fréquence d'échantillonnage en Hz
T0 = 1/f0; % Période d'échantillonnage en secondes
duration = 0.1; % Durée du signal en secondes
N = duration*f0; % Nombre d'échantillons
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
% Génération du signal % Phase du filtre
n = 0:N-1; % Indices des échantillons subplot(2,1,2);
t = n*T0; % Vecteur temps plot(w/(2*pi), unwrap(angle(h))*180/pi);
x = sin(2*pi*fs*t) + 2*sin(2*pi*f_high*t); title('Phase du filtre numérique');
xlabel('Fréquence (Hz)');
% Analyse temporelle ylabel('Phase (degrés)');
mean_x = mean(x); % Valeur moyenne grid on;
rms_x = sqrt(mean(x.^2)); % Valeur efficace xlim([0 5000]);

% Affichage du signal temporel % Application du filtre avec dlsim


figure(1); y = dlsim(num, den, x);
subplot(2,1,1);
plot(t(1:200), x(1:200)); % Affichage du signal filtré
title('Signal d''entrée x(t) - 200 premiers figure(3);
échantillons'); subplot(2,1,1);
xlabel('Temps (s)'); plot(t(1:200), y(1:200));
ylabel('Amplitude'); title('Signal filtré y(t) - 200 premiers
grid on; échantillons');
text(0.002, 2.5, ['Moyenne: ' num2str(mean_x) ' xlabel('Temps (s)');
/ RMS: ' num2str(rms_x)]); ylabel('Amplitude');
grid on;
% Analyse fréquentielle
X = fft(x)/N; % Transformée de Fourier % Analyse fréquentielle du signal filtré
f = f0*(0:N/2-1)/N; % Axe des fréquences Y = fft(y)/N;
jusqu'à la fréquence de Nyquist subplot(2,1,2);
plot(f, 2*abs(Y(1:N/2)));
% Affichage du spectre d'amplitude title('Spectre d''amplitude du signal filtré');
subplot(2,1,2); xlabel('Fréquence (Hz)');
plot(f, 2*abs(X(1:N/2))); ylabel('|Y(f)|');
title('Spectre d''amplitude du signal d''entrée'); grid on;
xlabel('Fréquence (Hz)'); xlim([0 5000]);
ylabel('|X(f)|');
grid on; % Calcul des performances du filtre
xlim([0 5000]); % Limiter l'affichage à 5 kHz % SNR avant filtrage (rapport entre puissance du
signal à 100 Hz et à 4000 Hz)
% Conception du filtre numérique idx_low = round(fs*N/f0) + 1; % Index de la
a = 625; % Paramètre du filtre composante à 100 Hz
alpha = exp(-a*T0); % Coefficient e^(-aT0) idx_high = round(f_high*N/f0) + 1; % Index de la
num = [1-alpha]; % Numérateur : b0 = 1-e^(- composante à 4000 Hz
aT0) P_low_input = abs(X(idx_low))^2;
den = [1 -alpha]; % Dénominateur : a0=1, a1=- P_high_input = abs(X(idx_high))^2;
e^(-aT0) SNR_input =
10*log10(P_low_input/P_high_input);
% Analyse du filtre
[h, w] = freqz(num, den, 1000, f0); % SNR après filtrage
figure(2); P_low_output = abs(Y(idx_low))^2;
subplot(2,1,1); P_high_output = abs(Y(idx_high))^2;
plot(w/(2*pi), 20*log10(abs(h))); SNR_output =
title('Réponse en fréquence du filtre 10*log10(P_low_output/P_high_output);
numérique');
xlabel('Fréquence (Hz)'); % THD (simplifiée)
Ginfo4 - Techniques de Traitement du signal - Pr MBIHI Jean, Professeur Titulaire de Classe exceptionnelle

www.cybersuebec.ca/mbihi/
SEANCE 6 … Janvier 2025
ylabel('Gain (dB)');
grid on;
xlim([0 5000]);

THD_output = % Calcul de la réponse fréquentielle


sqrt(P_high_output/P_low_output); [h_test, w] = freqz(num_test, den_test, 1000, f0);
THD_output_dB = 20*log10(THD_output);
% Tracé de la réponse
% Affichage des résultats de performance plot(w/(2*pi), 20*log10(abs(h_test)));
figure(4);
subplot(2,1,1); % Fréquence de coupure approximative
bar([SNR_input, SNR_output]); fc_test = a_test/(2*pi);
set(gca, 'XTickLabel', {'SNR Entrée', 'SNR legend_text{i} = sprintf('a = %.1f (fc ≈ %.1f Hz)',
Sortie'}); a_test, fc_test);
title('Rapport Signal/Bruit (dB)'); end
ylabel('SNR (dB)');
grid on; title('Comparaison des réponses en fréquence pour
différentes valeurs de a');
% Comparaison des spectres entrée/sortie xlabel('Fréquence (Hz)');
subplot(2,1,2); ylabel('Gain (dB)');
plot(f, 2*abs(X(1:N/2)), 'b', f, grid on;
2*abs(Y(1:N/2)), 'r'); legend(legend_text);
title('Comparaison des spectres d''entrée et hold off;
de sortie'); xlim([0 5000]);
xlabel('Fréquence (Hz)'); ylim([-60 5]);
ylabel('Amplitude');
legend('Entrée', 'Sortie'); % Affichage des résultats numériques dans la console
grid on; disp(['Moyenne du signal d''entrée: '
xlim([0 5000]); num2str(mean_x)]);
disp(['Valeur efficace du signal d''entrée: '
% Test avec différentes valeurs de 'a' num2str(rms_x)]);
a_values = [312.5, 625, 1250]; % Valeurs de disp(['SNR avant filtrage: ' num2str(SNR_input) ' dB']);
a (moitié, référence, double) disp(['SNR après filtrage: ' num2str(SNR_output) '
legend_text = cell(length(a_values), 1); dB']);
disp(['THD du signal filtré: ' num2str(THD_output_dB)
figure(5); ' dB']);
hold on; disp(['Atténuation à ' num2str(f_high) ' Hz: '
num2str(20*log10(abs(Y(idx_high))/abs(X(idx_high))))
for i = 1:length(a_values) ' dB']);
a_test = a_values(i); ```
alpha_test = exp(-a_test*T0);
num_test = [1-alpha_test];
den_test = [1 -alpha_test];

Vous aimerez peut-être aussi