Vous êtes sur la page 1sur 4

EHTP, Casablanca A U 2020-2021

Problème de Modulation d’Amplitude

Dans ce problème, on vous donne un fichier « noisy.mat » de données


composé de plusieurs signaux audio modulés en amplitude (similaire à la
radio AM).

Un schéma fonctionnel du schéma de base de modulation d'amplitude utilisé


dans ce problème. La modulation permet une communication simultanée en
divisant des parties du spectre de fréquences.

1. Décrire ce schéma.
Soit 𝑥1 (𝑡), . . . , 𝑥9 (𝑡) désignent les 9 signaux audio. On fournit le signal
𝑟(𝑡) = ∑9𝑘=1 𝑥𝑘 (𝑡) cos(2𝜋𝑓𝑘 𝑡) Avec 𝑓𝑘 = 25000(𝑘 − 1)

Les signaux 𝑥1 (𝑡), . . . , 𝑥9 (𝑡) peut être vu comme le contenu audio d’une station
de radio, les signaux cos(2𝜋𝑓𝑘 𝑡) 𝑥𝑘 (𝑡) peuvent être vus comme ce que les
stations de radio transmettent, et 𝑟(𝑡) peut être vu comme le le signal que
votre antenne reçoit (puisque d'après les équations de Maxwell, les ondes
EM sont additives). Votre objectif sera de « syntoniser » chacune des 9
stations et de déchiffrer les messages audios modulés.
• Placez les fichiers 'mod.mat' et 'noisy.mat' dans votre répertoire
MATLAB et chargez-les dans votre espace de travail en utilisant 'load
mod.mat ;' et 'load noisy.mat ;' (attention, ces fichiers sont assez
volumineux à environ 27Mo)
• « noisy.mat » est le signal
9

∑ 𝑥𝑘 (𝑡) cos(2𝜋𝑓𝑘 𝑡)
𝑘=1

En d’autres termes, « noisy.mat » correspond à ce qui se produit lorsque


les stations de radio NE FONT PAS de modulation.
C'est comme si plusieurs personnes vous parlaient à la fois. Il est très
difficile de choisir l'un des messages, car ils communiquent tous dans la
même bande de fréquences.
Sortie 1 : essayez d’exécuter ‘mod_play(noisy) ;’ et décrivez ce que vous
entendez. Expliquer les différentes instructions de cette fonction
Notez que vous devrez utiliser cette fonction personnalisée pour lire les
fichiers audios dans ce problème (par opposition à la fonction "sound"
habituelle).
• Nous utiliserons le fait que
𝑋(𝜔 − 𝜔0 ) + 𝑋(𝜔 + 𝜔0 )
𝑥𝑘 (𝑡) cos(𝜔0 𝑡) ⟷
2
2. Montrer cette relation
Chacun des signaux 𝑥1 (𝑡), . . . , 𝑥9 (𝑡) a été multiplié par une fréquence
porteuse différente et la largeur de bande de chaque signal est inférieure
aux différences entre les fréquences porteuses.
9

𝑅(𝜔) = ∑(𝑋𝑘 (𝜔 − 2𝜋𝑓𝑘 ) + (𝑋𝑘 (𝜔 + 2𝜋𝑓𝑘 ))


𝑘=1

Cela nous permet d’étaler les signaux dans le domaine fréquentiel. Tracer
le signal modulé dans le domaine fréquentiel en utilisant :
‘Len = length(mod);’
‘Fs = 811025;’
‘f = Fs _ (−Len/2 : Len/2 − 1) / Len;’
‘Mod_Freq = fft(mod);’
‘plot(f,abs(fftshift(Mod_Freq)));’
3. Expliquer chaque lignes
Sortie 2: incluez des tracés bien étiquetés des signaux modulés (mod) et
non modulés (noisy) dans le domaine fréquentiel, et expliquez les
différences que vous remarquez. Vous devrez peut-être ajuster les limites
des axes pour mieux analyser ces chiffres.
4. Pourquoi ?
• Vous devrez soumettre les sorties 3 et 4 pour trois des neufs signaux
audios, mais je vous encourage à essayer de “syntoniser” les neuf
stations. Les étapes suivantes décrivent comment récupérer le kème
message audio.
• Filtrer tous les signaux modulés, à l'exception du kème. Vous pouvez
le faire en utilisant le fichier de filtre fourni, par exemple.

‘Filtered_Signal = Mod_Freq .* HW3 Filter(f,A,B);’


5. Que lest le rôle de cette instruction ?
Vous devrez expérimenter les valeurs de A et B pour filtrer correctement le
kème signal.
• Vous devez maintenant reconvertir ce signal filtré dans le domaine
temporel, ce qui donne le signal cos(2𝜋𝑓𝑘 𝑡) 𝑥𝑘 (𝑡). Vous pouvez le faire en
utilisant :

‘filtered_signal = real(ifft(Filtered Signal));


6. Pourquoi on utilize real ?
• Vous devez maintenant faire la démodulation pour récupérer 𝑥𝑘 (𝑡). Nous
allons utiliser le fait

1 + cos(𝜔0 𝑡) 𝑋(𝜔) 𝑋(𝜔 − 𝜔0 ) + 𝑋(𝜔 + 𝜔0 )


𝑥(𝑡) cos2 (𝜔0 𝑡) = 𝑥(𝑡) ⟷ +
2 2 2

Donc, multiplier cos(2 𝜋𝑓𝑘 𝑡) 𝑥𝑘 (𝑡) par cos(2 𝜋𝑓𝑘 𝑡) donnera des copies de 𝑋 (𝜔)
dans le domaine fréquentiel centrées sur 0 et ± 2 𝑓𝑘 . Faites cela en prenant
‘t = (0:Len-1) / Fs;’
‘demod_signal = filtered signal . * (2 * cos(2 * pi * fk * t));’
• Notre dernière étape consiste à filtrer les composantes haute fréquence
de manière à nous laisser le message souhaité 𝑥𝑘 (𝑡). Nous pouvons le faire
en envoyant 𝑥(𝑡) cos 2 (𝜔0 𝑡) via un filtre passe-bas qui met à zéro les termes
𝑋𝑘 (𝜔 ± 2𝜔𝑘 ) mais laisse passer le terme 𝑋𝑘 (𝜔).

‘Demod_Signal = fft(demod);’
‘Message = Demod_Signal .* HW3_Filter(f,A,B);’

Vous devrez expérimenter les valeurs de A et B pour filtrer les termes de


haute fréquence.

Sortie 3 : inclure un graphique bien étiqueté du message dans le domaine


fréquentiel.
Maintenant, nous reconvertissons dans le domaine temporel et jouons à
l'aide de la fonction fournie :
‘message = real(ifft(Message));’
‘mod play(message);’

Sortie 4 : Quel est le kème message audio ?

Vous aimerez peut-être aussi