Conception et réalisation d'un récepteur FM fonctionnel assurant une réception claire et stable des signaux radio. Le projet couvre la filtration du signal, l'amplification audio, la synthèse de fréquence et la démodulation FM.

Figure 1 - Principe général d’un récepteur FM
1. Filtrage Audio
Afin d’obtenir un signal audio de bonne qualité, nous avons conçu des filtres passe-bas et passe-haut qui se doivent de respecter plusieurs conditions :
On retrouve alors après normalisation :

Figure 2 - Cahier des charges des filtres
Le filtre passe-bas repose sur une conception de type Chebyshev d’ordre 4, permettant d’atténuer les fréquences indésirables tout en conservant un bon temps de réponse.

Figure 3 - Filtres de Chebyshev 3 dB
Ce qui nous donne finalement :
Après avoir trouvé les valeurs exactes reportées ici pour les deux cellules, on peut vérifier expérimentalement la correspondance avec la théorie :
| Résistance | Théorique | Normalisée |
|---|---|---|
| R1 | 28kΩ | 27kΩ |
| R2 | 140kΩ | 130kΩ |
| R3 | 156kΩ | 160kΩ |
| R4 | 135kΩ | 130kΩ |
| Résistance | Théorique | Normalisée |
|---|---|---|
| R1 | 60kΩ | 62kΩ |
| R2 | 301kΩ | 300kΩ |
| R3 | 65kΩ | 70kΩ |
| R4 | 296kΩ | 300kΩ |

Figure 4 - Représentation théorique

Figure 5 - Représentation expérimentale
Quant au filtre passe-haut, il est basé sur une architecture de Rauch répétée 4 fois, garantissant une suppression efficace des basses fréquences parasites. Nous avons soigneusement calculé et normalisé les valeurs des composants pour assurer une réponse en fréquence optimale.

Figure 6 - Filtre de Rauch

Figure 7 - Réalisation des filtres en cascade
De même, on peut alors calculer les valeurs exactes pour chaque composant :
| Impédance | Théorique | Normalisé |
|---|---|---|
| R1 | 1kΩ | 1kΩ |
| R2 | 7,3kΩ | 7,2kΩ |
| C | 0,59μF | 0,56μF |
2. Amplification Audio
Une fois filtré, le signal audio doit être amplifié pour une restitution sonore de qualité. Nous avons réglé l’amplificateur audio pour obtenir un gain maximal de 20 dB. Un Noise Gate a été intégré avec un seuil fixé à 10 mVrms afin d’atténuer les bruits de fond indésirables. Le fonctionnement de l’amplificateur a été paramétré via des registres afin d’optimiser les performances du système :

Figure 8 - Paramètres recommandés en fonction de la source audio
Cela nous donne les informations suivantes à rentrer sous forme d’octets dans notre module :
| Registre | Octet |
|---|---|
| Registre 1 | 11000011 |
| Registre 2 | 00000001 |
| Registre 3 | 00000110 |
| Registre 4 | 00001010 |
| Registre 5 | 00000110 |
| Registre 6 | 01011100 |
| Registre 7 | 00100010 |
3. Synthèse et démodulation de Fréquence
Pour syntoniser la bonne station radio, nous avons conçu un synthétiseur de fréquence. En partant d’un quartz oscillant à 10,7 MHz, nous avons calculé les diviseurs et multiplicateurs nécessaires pour capter la fréquence cible de Radio Campus (94,35 MHz). Ces paramètres ont été implémentés dans un programme Arduino permettant d’ajuster la fréquence de réception de manière précise. Voici un exemple de configuration I2C du synthétiseur :
#include <Wire.h>
#define SI5351_ADDRESS 0x60
void setup() {
Wire.begin();
Serial.begin(9600);
// Initialisation du synthétiseur de fréquence
configureSynth();
}
void loop() {
// Le programme tourne en boucle sans action spécifique après configuration
}
void configureSynth() {
Wire.beginTransmission(SI5351_ADDRESS);
// Exemple de configuration des registres du synthétiseur
Wire.write(0x00); // Registre de contrôle
Wire.write(0x10); // Valeur arbitraire pour init
Wire.endTransmission();
delay(100);
Wire.beginTransmission(SI5351_ADDRESS);
Wire.write(0x01); // Registre de contrôle supplémentaire
Wire.write(0x00); // Valeur pour configurer la sortie
Wire.endTransmission();
Serial.println("Synthétiseur configuré avec succès !");
}
Les formules utilisées sont les suivantes :
On trouve finalement , ce qui nous donne les 3 séquences à transmettre :
| Décimal | Binaire | |
|---|---|---|
| M | 4000 | 111110100000 |
| K | 306905 | 1001010111011011001 |
| Latch | 884930 | 11011000000011000010 |
Pour cela, on utilise à nouveau un programme informatique :
/// LATCH 1 : Calcul et décomposition
Latch1 = Mdiv * 4;
L11 = lowByte(Latch1);
L12 = highByte(Latch1);
L13 = 0;
Serial.print("Latch1: ");
Serial.println(Latch1);
/// LATCH 2 : Calcul et décomposition
K = ((Ndiv / 8) % 8192) * 256 + (Ndiv % 8) * 4 + 1;
L21 = lowByte(K);
L22 = highByte(K);
L23 = (K >> 16) & 0xFF;
Serial.print("Latch2: ");
Serial.println(K);
/// LATCH 3 : Valeurs fixes
L31 = 0x82;
L32 = 0x80;
L33 = 0x0D;
Nous avons ensuite utilisé une boucle à verrouillage de phase (PLL) pour démoduler le signal FM. Cette approche permet d’extraire l’information audio contenue dans la modulation de fréquence. Un filtre passe-bas a été conçu pour lisser le signal de sortie et assurer une reproduction audio fidèle. Après plusieurs tests et l’utilisation de l’abaque du modèle, nous avons ajusté les valeurs des composants pour améliorer les performances globales du démodulateur.

Figure 9 - Abaque
Toujours d’après le cahier des charges, on a . Cela nous donne, après avoir testé expérimentalement, les valeurs finales suivantes :
- Potentiomètre
4. Simulation LTSpice
Avant la mise en place physique du circuit, nous avons effectué une validation par simulation sous LTSpice. Cette simulation nous a permis de vérifier la stabilité et la réponse fréquentielle de chaque étage du récepteur. Les résultats ont confirmé un bon centrage du signal autour de 400 kHz, validant ainsi les choix de conception effectués.

Figure 10 - Simulation par LTSpice
Vidéo 1 - Radio en action
Ce projet pourrait vous intéresser
Conception d'un système de Réduction de Bruit Active
Atténuer un bruit par opposition de phase, de l'expérimentation au Raspberry Pi.