Vous êtes sur la page 1sur 20

Université de Paris – Saclay

M2 Réseaux et télécommunications

Travaux pratique – IST G10

TP1 : PREMIERS PAS AVEC GNU


RADIO

Encadré par :
Anne-Sophie GRIMAULT-JAQUIN

Rédigé par :
Farah Alameddine
Yessi MENGUE
Année 2021 /2022
Introduction :
GNU radio est une boite à outils open-source pour la construction de dispositifs de
communication numérique logiciels. GUN Radio est un environnement qui englobe des
centaines de bloc de traitement du signal et de communication numérique, il permet d’émettre
et de recevoir des signaux échantillonnés.

1. FAMILIARISATION AVEC LES DIFFERENTS BLOCS

Manipulation 1 : En observant l’occupation du CPU, que remarquez-vous ?

• Schéma

Figure 1 : Visualisation du signal sinusoïdale.

• Observation du CPU
Pour visualiser l’occupation du CPU on a utilisé le moniteur système.

Figure 2 : Visualisation du CPU.

1
Figure 3 : Visualisation du CPU avec la présence du throttle.

L’occupation est presque à 100%. Après l’utilisation du bloc throttle l’occupation a diminué.

Manipulation 2 : Pourquoi a-t-on deux signaux différents dans l’affichage de WX scope


Sinkv? Que représentent-ils ?

• Observation du signal

Figure 4 : Génération du signal sinusoïdale dans le domaine complexe.

Observation :

On observe deux signaux :

2
• La courbe rouge est celle d’un sinus car elle vaut zéro à t=0 : elle équivaut à la partie
imaginaire d’un nombre complexe
• La courbe bleue est celle d’un cosinus car elle vaut 1 en zéro : elle équivaut à la partie
réelle d’un nombre complexe.

En effet, le type de valeur d’entrée mis par défaut est « complexe » on observe donc deux
signaux : la partie réelle et la partie imaginaire.

Manipulation 3 : Modifiez le type de sortie du bloc Signal source de maniéré à avoir une sortie
réelle. Vous devrez aussi modifier le type du bloc WX Scope Sink.

Pour remédier à ce problème on choisit le type « float » qui correspond à des valeurs réelles.

Figure 5 : Propriétés du bloc signal Source.

Le résultat correspond bien à la partie réelle de la valeur d’entrée.

Figure 6 : Signal en sortie réel en domaine temporelle.

3
Dans la suite de nos travaux, nous avons souhaité observer l’affichage en fréquence de chaque
signal d’entrée. Pour cela on rajoute un QT GUI Frequency Sink dans le schéma initial et on
choisit les signaux de nos choix.

Manipulation 4 : Essayez les autres types de signaux proposés par Signal Source.

• Signal carré

Figure 7 : Signal carré.

• Signal en dent de scie

Figure 8 : Signal en dent de scie.

4
• Signal triangle

Figure 9 : Signal triangle.

Observation :

✓ Les transformée de Fourrier de ces trois signaux sont des sommes de dirac.

Nous avons réinjecté un signal de type cosinus en entrée pour la suite de notre travail.

Figure 10 : Signal de type cosinus.

Observation :

On observe deux Dirac en f=1Khz et f=-1Khz.

5
En effet, le signal d’entrée est un cosinus de fréquence 1Khz, sa transformée de Fourrier
correspond donc à un Dirac à la fréquence de notre signal. Ici nous avons également la partie
négative, la valeur du gain est partagée entre les deux Diracs.

Manipulation 5 : Maintenant, nous allons nous intéresser au bloc Random Source et visualiser
les signaux générés.

Maintenant on va utiliser le bloc Random Source qui va nous générer des échantillons de
manière aléatoire.

✓ On a eu une erreur. La cause c’est que le type des deux blocs n’est pas le même. Pour
le bloc Random Source on a les type (int, short, byte), par contre dans le bloc scope
time on a les type (complex, float, complex Message, Float Message). Donc il y a une
incompatibilité avec le type de donnés entre les blocs.

✓ Pour résoudre ce problème on utilise le bloc Short To Float. Voici le résultat affiché :

Figure 11 : Génération d’un signal aléatoire.

Figure 12 : Génération d’un signal aléatoire.

6
• Rajout de short to float

Figure 13 : Simulation en ajoutant bloc « Short to Float ».

Nous rajoutons ce « short to float » qui permet de convertir une variable de type « short » en
un réel « float ».

On choisit le type « short » pour le signal d’entrée Random et on a les figures ci-dessous :

Figure 14 : Simulation en ajoutant « bloc Short to Float ».

Observation :

✓ On observe dans la figure 13 que le signal d’entré est effectivement aléatoire. En effet
cela résous l’affichage de la transformée de Fourrier.

7
Manipulation 6 : Modifiez le bloc de sortie de manière à afficher l’histogramme des
échantillonnes génères. Pour cela, vous pourrez utiliser les bloc WX GUI Histo Sink.

Figure 15 : Modification pour affichage de l’histogramme.

Figure 16 : visualisation de l’histogramme du signal aléatoire.

8
Observation :

✓ On a eu un histogramme centré en 0 avec 500 échantillons, et un entre centrer en 1 avec


500 échantillons.

Manipulation 7 : Modifiez l’amplitude du signal généré par le Random Source. Que constatez-
vous ?

On a testé avec différents valeurs d’amplitude maximale. Avec Amplitude maximale : Amax =
10, 100, 500 et 1000.

Figure 17 : Graphique d’histogramme. / ampli max 10 (gauche) et 100 (droite).

Figure 18 : Graphique d’histogramme avec ampl max 500 (gauche) et 1000 (droite).

Observation :

✓ Ce qu’on peut observer ce qu’a mesure qu’on augmente l’amplitude maximale du


signal, la scala du Count diminue. Cela est directement relationné avec le nombre
d’échantillons (N samples) définit dans le signal.
✓ On travaille avec un N samples de 1k, donc, en considérant que l’histogramme nous
montres la distribution de fréquences de valeurs du signal, dans le cas où on a une
amplitude maximale de 2, on peut avoir un entre random qui prend les valeurs entre

9
[min,max]. Dans ce cas on aura un entre avec des valeurs entre 0 et 1, la moite (500)
aura une valeur de 0 et l’autre moitié (500) aura une valeur de 1 approximativement.
✓ A mesure qu’on incrément l’amplitude du signal, la valeur du count diminue car le
signal peut prendre plusieurs valeurs et la fréquence peut une seule valeur diminue. On
peut observer que cette relation est définie comme = N Sample/Amax.
✓ On remarque que dans le cas limite ou on a utilisé une amplitude du 1k, tous les donnes
prennent une valeur du 1.

2. ETUDE DANS LE DOMAINE SPECTRAL

Manipulation 8 : visualiser le signal dans le domaine temporel et son spectre. Commenter.


Afin de rendre l’affichage plus compact, vous utiliser le bloc Tab widget.

Figure 19 : Manipulation généré le sinus.

Figure 20 : Représentation temporel et fréquentielle du signal.

10
✓ Ajout du block QT TAb Widget

Ce bloc permet d’afficher les différents graphes en ligne en mettant des coordonnées de
position.

On observe l’affichage en ligne ci-dessous :

Figure 21 : Représentation temporel et fréquentielle du signal.

Observation :

Nous avons pris 𝒇𝟎 = 𝟏𝑲𝒉𝒛 alors nous avons obtenir la représentation de l’équation ci-
dessous ; deux Dirac dans le postions −𝒇𝟎 et +𝒇𝟎 d’une amplitude -0,5i.
𝟏
𝒔𝒊𝒏(𝟐𝝅𝒇𝟎𝒕) = 𝟐𝒊[𝜹(𝒇 − 𝒇𝟎 ) − 𝜹(𝒇 + 𝒇𝟎 )]
On peut clairement observer la forme du signal sinusoïdal à gauche et à droite, la réponse
fréquentielle correspondant à sa transformé de Fourier avec les deux Dirac en 𝒇𝟎.

Manipulation 9 : Ajouter un bloc QT GUI range afin de changer la fréquence de la sinusoïde.


Dans ce Slider, donner un nom à la variable, une valeur min 100 et max 30000, ainsi qu’une
valeur par défaut.

On a utilisé le bloc QT GUI Range ainsi que le bloc QT GUI Tab Widget.
Pour le bloc QT GUI Range : on a mis l’ID comme celle dans le bloc Signal Source afin de
qu’on puisse le gérer.

11
Figure 22 : Simulation de la manipulation 9.

Manipulation 10 : Que passe-t-il lorsque la fréquence de la sinusoïde est trop élevée ? explique
ce phénomène.

Nous procédons à réaliser la simulation avec différentes valeurs de fréquence. Dans les images
23,24,25, 26, et 27, nous observons les résultats pour une fréquence sinusoïdale de 5KHz, 10
KHz, 20KHz et 30KHz respectivement.

Figure 23 : Représentation temporel et fréquentielle du signal pour une fréquence de 5KHz.

Figure 24 : Représentation temporel et fréquentielle du signal pour une fréquence de 10KHz.

12
Figure 25 : Représentation temporel et fréquentielle du signal pour une fréquence de 20KHz.

Figure 26 : Représentation temporel et fréquentielle du signal pour une fréquence de 30KHz.

Observation :
Nous pouvons observer que pour 5KHz on observe un augmente dans la fréquence en la
réponse temporelle et les Dirac attendue dans -5KHz et 5Hz. De même manière, pour la
fréquence de 10KHz avec un augmente de fréquence temporelle ou un peut voir une
dégradation plus grande du signal et une réponse fréquentielle avec deux piques en -10KHz et
10KHz comme attendue.
En revanche, si on observe la réponse pour les fréquences 20 KHz et 30 KHz, on observe que
la réponse fréquentielle est deux Dirac en ±12KHz et 3KHz respectivement. Ce phénomène est
appelé "aliasing" et est un phénomène qui introduit, dans un signal qui module une fréquence
porteuse ou dans un signal échantillonné, des fréquences qui ne devraient pas s'y trouver,
lorsque la fréquence porteuse ou la fréquence d'échantillonnage sont inférieures à deux fois la
fréquence maximale contenue dans le signal.
Donc, la fréquence d’échantillonnage 𝑓𝑒 doit respecter la relation suivante :

𝑓𝑒 ≥ 𝑓0

Comme on a utilisé un "Sample Rate" (𝑓𝑒) de 32KHz, au moment où on incrément 𝑓𝑜 >


16𝐾𝐻𝑧, on observe le phénomène "aliasing".
Finalement on teste avec une 𝑓𝑜 > 𝑓𝑒, et lors ce qu’on augmente la fréquence à 40khz, on ne
visualise pas le signale, car la fréquence est supérieure au Sample Rate (32k).

13
3. MODULATION ANGULAIRE

On va réaliser une modulation d’amplitude a deux niveaux. Pour cela on multiple un signal
carré (fréquence de 200 Hz, d’amplitude crête a crête de 2V et de moyenne nulle) Par un signal
sinusoïdal (fréquence de 4 KHz, amplitude 2V.

Manipulation 11 : créez un nouveau fichier et placer les blocs Signal Source, Throttle,
Multiply, WX GUI Scope Sink, et WX GUI FFT Sink afin d’observer le signal échantillonne
et le spectre correspondant. La fréquence d’échantillonnage sera par exemple de 32Khz.

Figure 27 : Simulation de la manipulation 11.

Figure 28 : Représentation temporel et fréquentielle du signal modulé.

14
Manipulation 12 : Détaillés les graphes obtenus. Que constatez-vous ?

La modulation d’amplitude consiste à modifier l’amplitude de la porteuse par une fonction


linéaire (y=Ax+b) du signal à transmettre comme se montre dans la figure 29.
Ainsi soit :
- La porteuse 𝑣𝑝 (𝑡) = 𝑆𝑝sin (2𝜋𝑓𝑝𝑡 + 𝜑𝑝)
- Le signal modulant : 𝑆𝑖(𝑡)
- Le signal modulé : 𝑣𝑡 (𝑡) = [𝑆𝑝 + 𝑘𝑆𝑖 (𝑡)]sin (2𝜋𝑓𝑝𝑡 + 𝜑𝑝).

Figure 29 : Modulation d’amplitude.

On peut observer dans la réponse temporelle que le signal carré a été correctement modulé par
la porteuse sinusoïdale. On peut observer aussi comme on retrouve des harmoniques qui sont
été rajouté dans la réponse fréquentielle du signal modulé. Ceux correspondent aux
harmoniques de la réponse fréquentielle du signal carré comme montré dans la figure 29.

Figure 30 : Réponse temporelle et en fréquence d’un signal carré.

15
Manipulation 13 : Rajoutez le bloc WX GUI Waterfall Sink. Qu’on obtient-on ?

On rajoute le bloc QT GUI Waterfall Sink comme se montre dans la figure 31.

Figure 31 : Simulation pour la modulation angulaire.

Figure 32 : Graphique waterfall et réponse en fréquence de la modulation angulaire.

16
En rajoutant le bloc Waterfall on obtienne le graphique de la figure 32. On peut remarquer que
le graphique obtenu est obtenu en fonction du temps. En effet, cette image corresponde à le
Waterfall ou spectrogramme du signal qui nous montre le changement de l’énergie du contenu
fréquentiel et sa variation dans le temps.
On peut observer comme l’énergie fréquentiel est condensé sur le niveaux -4KHz et 4KHz, qui
correspondent à la fréquence -𝑓𝑜 et + 𝑓𝑜 de notre signal porteuse sinus comme montré a droit
dans la réponse en fréquence. On observe que l’énergie se maintienne constante sur ces deux
points au fil du temps. Effectivement on sait que l’spectre de fréquence il est constant dans le
temps.

Manipulation 14 : Maintenant, ajoutez une source de bruit en utilisant les bloc Noise Source
et Add. Faites varier le niveau du bruit á l’aide d’un Slider et observer les différents résultats,
conclure. Expliquez précisément le fonctionne du schéma réalisé précédemment.

Figure 33 : Simulation pour la modulation angulaire avec bruit gaussien.

Figure 34 : Le signal modulé sans bruit.

17
Figure 35 : Le signal modulé en présence du bruit.

Observation :
Le graphe en sortie représente le signal modulé avec la présente du bruit.
Pour le spectre du signal on peut observer les deux lobes centrés sur 4khz mais bruité car on
est en présence du bruit Plus on augmente le bruit plus la qualité du signal se dégrade.
Pour le bloc waterfall sink on voit des petits raies rose centré sur la fréquence 4khz qui
représente le max de l’énergie utile par contre le bruit est dominant car on ne voit pas bien la
répartition de l’énergie du signal. Le bruit a une densité spectrale uniforme de -∞ a +∞.
On peut conclure qu’à mesure qu’on rajoute un bruit plus grand le signal en sortie devient
directement affecté dans son amplitude et son gain. L’amplitude devient plus grande à cause
d’amplitude de bruit et de même manière à mesure que le bruit il est plus grande, on a un gain
plus petit.
Dans le schème réalisé on se retrouve avec une modulation sinusoïdale, qui est affecté après
modulation pour une bruit blanc gaussien, ou la signal carre c’est la porteuse de donné et la
signal sinus le signal modulateur.

Manipulation 15 : En vous basant sur vos connaissances, démodulez le signal afin de recevoir
le signal rectangulaire. Pour cela, vous pourrez utiliser la même porteuse que celle qui est utilisé
à la source.

On va maintenant démoduler le signal reçu afin de reconstitué le signal modulant.


La porteuse qu’on a utilisée c’est le signal sinusoïdal avec la fréquence de 4khz, pour démodulé
notre signal on doit le multiplier avec la même porteuse, pour cela on a besoin d’un bloc
Multiply, mais aussi d’un bloc de filtre passe bas (Low Pass Filtre) pour filtré les composantes
hautes fréquences résultante de l’opération de multiplication.

18
Figure 36 : Démodulation du signal.

Figure 37 : Le signal en sortie du filtre.


Observation :
Le but de la démodulation c’est de reconstitué le signal utile après qu’il a été bruité, notre signal
utile c’est le signal rectangulaire de fréquence 200kh.
Pour la démodulation on a pris notre signal modulé en présence du bruit et on la multiplier avec
la même porteuse (signal sinusoïdale de fréquence 4khz).
A la sortie du multiplieur on a eu plusieurs composantes centrées sur des fréquences bien
définies, le filtre passe bas va éliminer les composantes Hautes fréquences et il laisse les
composants inferieurs a la fréquence de coupure du filtre.
On sortit du filtre on voit qu’on a eu un signal qui ressemble a un signal rectangulaire mais
bruité.
On a bien reconstitué le signal utile qui est le signal rectangulaire de fréquence 200 Hz mais
avec une présence du bruit.
Pour le filtre on a utilisé une fréquence de coupure de 4 khz, les composantes supérieures à
4khz ont été supprimé par le filtre.

19

Vous aimerez peut-être aussi