# Introduction aux radios logicielles avec GNU Radio/Rappels de traitement du signal

* Présentation
* Rappels de traitement du signal
* Prise en main
* Retour sur la modulation d'amplitude
* Premières applications du RTL
* Hystérésis
* Lire et écrire dans un fichier
* Modulation par changement de phase
* Recevoir et émettre avec le HackRF blue
* Présentation
* Rappels de traitement du signal
* Prise en main
* Retour sur la modulation d'amplitude
* Premières applications du RTL
* Hystérésis
* Lire et écrire dans un fichier
* Modulation par changement de phase
* Recevoir et émettre avec le HackRF blue
[ Modifier le sommaire ]

## Schéma-bloc

Le traitement du signal consiste en la réalisation d'une succession d'opérations mathématiques sur un flux de données. On représente ce traitement par un schéma-bloc ; chaque bloc représente une opération mathématique à laquelle est soumis le signal. Chaque bloc est relié par la ligne d'action, qui représente le « chemin » suivi par les données traitées.
Si GNU Radio est, à la base, un ensemble d'outils de traitement en ligne de commande, des outils graphiques ont été développés. L'outil GNU Radio Companion (GRC), que nous utiliserons, permet de manipuler le signal avec un schéma-bloc (toutefois, l'option de coder soit-même en langage Python le traitement désiré demeure possible). Les blocs de GRC peuvent réaliser plusieurs opérations mathématiques à la fois ou des manipulations complexes (filtrage, affichage graphique, etc). On préférera donc le terme de logigramme (flowgraph).

## Décomposition spectrale

La théorie de Fourier garantit que tout signal réel périodique et continu $s(t)$ périodique de période $T$ peut se décomposer sous la forme d'une somme de signaux sinusoïdaux. C'est-à-dire qu'il existe deux suites $(A_{i})_{i\in \mathbb {N^{*}} }$ et $(B_{i})_{i\in \mathbb {N^{*}} }$ d'amplitudes et une suite $(\omega _{i})_{i\in \mathbb {N^{*}} }$ de pulsations telles que :$s(t)={\frac {A_{0}}{2}}+\sum _{i=1}^{\infty }A_{i}\cos(\omega _{i}t)+\sum _{i=1}^{\infty }B_{i}\sin(\omega _{i}t)$, avec $\omega _{i}={\frac {2\pi i}{T}},\forall i\in \mathbb {N^{*}}$. Pour plus de détails (signaux complexes, etc.) voir : https://fr.wikipedia.org/wiki/Série_de_Fourier.
* Définition
* Réaliser le spectre ou l'analyse spectrale d'un signal, c'est chercher à mettre celui-ci sous la forme d'une combinaison de signaux sinusoïdaux. Chacun de ces signaux aura une amplitude et une pulsation qui lui est propre.
Nous ne chercherons jamais ici à établir l'expression mathématique de la décomposition. Toutefois, nous utiliserons une conséquence fondamentale : la connaissance des amplitudes et des pulsations (donc des fréquences) renseigne sur la composition spectrale du signal initial. La représentation graphique des différentes amplitudes en fonction de leur fréquence se nomme le spectre de $s$. Il permetra d'isoler les composantes « intéressantes » du bruit.

## Échantillonnage et critère de Shannon

Considérons un signal analogique, variant dans le temps, par exemple sous la forme d'un cosinus : $s(t)=\cos(\omega t)$. On peut représenter son évolution dans le temps sous la forme d'une courbe continue. Lorsqu'un ordinateur voudra effectuer un traitement sur la base de ce signal, il ne pourra pas récupérer l'intégralité des valeurs. On dit qu'il discrétise le signal en une succession de valeurs, ou encore qu'il effectue un échantillonnage du signal.
Un des problèmes posés par cette discrétisation vient de la perte d'information qu'elle engendre : puisque tout le signal n'est pas récupéré, il y a nécessairement des « trous ». La parade consiste à acquérir suffisamment de valeurs pour limiter la perte. L'intervalle entre chaque mesure doit donc être adapté au signal ; assez intuitivement, on comprend que « plus le signal oscille vite, plus il faut récupérer de valeurs » afin de préserver l'information. Il s'agit donc de choisir une fréquence d'échantillonnage adéquate. Le critère de Shannon permet de lier la fréquence du signal à la fréquence d'échantillonnage.
* Théorème de l'échantillonnage de Shannon-Nyquist
* La représentation discrète d'un signal par des échantillons régulièrement espacés exige une fréquence d'échantillonnage supérieure au double de la fréquence maximale présente dans ce signal, c'est-à-dire :
* $f_{ech}>2f_{max}$
Ne pas respecter le critère de Shannon est une faute grave en traitement du signal, car cela peut conduire à des résultats erronés ! Reprenons l'exemple du signal $s(t)$, que l'on échantillonne avec une fréquence $f_{ech}$ insuffisante. On constate tout d'abord que le spectre fait apparaître une sinusoïde de fréquence plus petite que le signal de départ. D'un rapide coup d'œil sur le chronogramme, on en comprend l'origine : l'échantillonnage réalisé est trop faible pour rendre compte correctement du signal initial... Pire encore, le signal échantillonné correspond à une sinusoïde différente du signal de départ.

## Exemple de la modulation d'amplitude

La modulation d'amplitude permet de véhiculer l'information au travers de la variation de l'amplitude de la porteuse. On en rappelle ici le principe de base, afin de mieux mettre en évidence l'intérêt des radios logicielles.

### Modulation

Si le signal modulant — celui qui contient initialement l'information et qui imposera la modulation de la porteuse — est $s(t)$, et que la porteuse avant modulation est $p(t)$, alors l'objectif est d'obtenir en sortie un signal modulé de la forme : $s_{\textrm {AM}}(t)=p(t)(1+ks(t))=p(t)+kp(t)s(t)$.
On utilise de façon classique un multiplieur pour réaliser d'abord l'opération kp(t)s(t). La constante $k$ désigne le rapport de multiplication, une valeur propre au composant employé. En écrivant $s(t)=S\cos(\omega _{S}t)$ et $p(t)=P\cos(\omega _{P}t)$, alors en sortie du multiplieur le signal obtenu est $SP\cos(\omega _{S}t)\cos(\omega _{P}t)={\frac {kSP}{2}}\left(\cos((\omega _{P}+\omega _{S})t)+\cos((\omega _{P}-\omega _{S})t)\right)$.
Une fois ce produit formé, il ne reste qu'à additionner avec la porteuse. À la sortie du dispositif, après addition avec le signal, on obtient : $s_{AM}(t)=P\cos(\omega _{P}t)+{\frac {kSP}{2}}\left(\cos((\omega _{P}+\omega _{S})t)+\cos((\omega _{P}-\omega _{S})t)\right)=P\left(\cos(\omega _{P}t)+{\frac {kS}{2}}\cos((\omega _{P}+\omega _{S})t)+{\frac {kS}{2}}\cos((\omega _{P}-\omega _{S})t)\right)$.
Le signal de sortie est donc composé de trois sinusoïdes de pulsations $\omega _{P}$, $\omega _{P}-\omega _{S}$ et $\omega _{P}+\omega _{S}$ ; d'amplitudes respectives $P$, ${\frac {kSP}{2}}$, ${\frac {kSP}{2}}$, comme le confirme l'étude de son spectre.

### Démodulation synchrone

La démodulation synchrone consiste à multiplier le signal modulé reçu par un signal synchronisé avec la fréquence de la porteuse : $s_{0}(t)=S_{0}\cos(\omega _{P}t)$. En sortie du multiplieur, on obtient donc le signal $ks_{0}(t)p(t)(1+ks(t))=kS_{0}P\cos ^{2}(\omega _{P}t)(1+kS\cos(\omega _{S}t))=kS_{0}P{\frac {1+\cos(2\omega _{P}t)}{2}}(1+kS\cos(\omega _{S}t))={\frac {kS_{0}P}{2}}\left(1+\underbrace {kS\cos(\omega _{S}t)} _{\textrm {composante~utile}}+\cos(2\omega _{P}t)+{\frac {kS}{2}}\left(\cos(2\omega _{P}t+\omega _{S})+\cos(2\omega _{P}t-\omega _{S})\right)\right)$.
Afin d'isoler le signal émis, on emploie un filtre passe-bande dont les pulsations de coupure seront choisies autour de $\omega _{S}$ afin de ne conserver que la composante utile du signal.

### Simplifications apportées par les radios logicielles
## Notes

* ↑ Jean Baptiste Joseph Fourier (1768 - 1830), mathématicien et physicien français.
* ↑ Claude Elwood Shannon (1916 - 2001), ingénieur américain.