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 formula_1 périodique de période formula_2 peut se décomposer sous la forme d'une somme de signaux sinusoïdaux. C'est-à-dire qu'il existe deux suites formula_3 et formula_4 d'amplitudes et une suite formula_5 de pulsations telles que :formula_6, avec formula_7. Pour plus de détails (signaux complexes, etc.) voir : https://fr.wikipedia.org/wiki/Série_de_Fourier.
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 formula_8. 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 : formula_9. 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.
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 formula_1, que l'on échantillonne avec une fréquence formula_11 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 formula_1, et que la porteuse avant modulation est formula_13, alors l'objectif est d'obtenir en sortie un signal modulé de la forme : formula_14.
On utilise de façon classique un multiplieur pour réaliser d'abord l'opération kp(t)s(t). La constante formula_15 désigne le rapport de multiplication, une valeur propre au composant employé.
En écrivant formula_16 et formula_17, alors en sortie du multiplieur le signal obtenu est formula_18.
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 : formula_19.
Le signal de sortie est donc composé de trois sinusoïdes de pulsations formula_20, formula_21 et formula_22 ; d'amplitudes respectives formula_23, formula_24, formula_24, 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 : formula_26. En sortie du multiplieur, on obtient donc le signal formula_27.
Afin d'isoler le signal émis, on emploie un filtre passe-bande dont les pulsations de coupure seront choisies autour de formula_28 afin de ne conserver que la composante utile du signal.

Introduction aux radios logicielles avec GNU Radio/Retour sur la modulation d'amplitude

Nous allons nous lancer ici dans un premier projet qui mettra en œuvre les techniques de base présentées dans le chapitre précédent. Nous avons choisi de mettre en place une modulation d'amplitude, dont le principe a déjà été rappelé en introduction. Ce sera l'occasion de présenter de nouveaux blocs et d'aller vers la communication avec le périphérique USB de réception, que nous mettront en place au prochain chapitre.
Application à la transmission d'un signal « utile ».
Un signal sinusoïdal est très sympathique mais son intérêt musical est vite limité, comme nous l'avons constaté à la fin du chapitre précédent. Il serait bien plus intéressant de transmettre votre morceau favori ; pour notre part, nous avons choisi les premières mesures de la "Toccata et fugue en ré mineur" de Jean-Sébastien Bach, que vous pouvez .
Pour cela, on remplace le bloc "Signal Source" générant le signal modulant par un bloc "Wav File Source" (catégorie "Audio"), insérant un flux contenant le fichier. À noter que ce bloc ne gère que les fichiers WAVE ; il est donc nécessaire, le cas échéant, de convertir votre fichier.

Introduction aux radios logicielles avec GNU Radio/Hystérésis