Aller au contenu principal
Retour aux projets

Création d'une radio

Décembre 2024 Binôme
HardwareTraitement du SignalEmbarqué
Création d'une radio

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

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 : F0=1,F1=2F_0 = 1, F_1 = 2

Figure 2 - Cahier des charges des filtres

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

Figure 3 - Filtres de Chebyshev 3 dB

ω0=1CR2(R4+R)Q=R3R2(R4+R)RyRxK=R1R2RxRy\omega_0 = \frac{1}{C\sqrt{R_2(R_4+R)}}\\ Q = \frac{R_3}{\sqrt{R_2(R_4+R)}}\frac{R_y}{R_x}\\ K'=\frac{R_1}{R_2}\frac{R_x}{R_y}

Ce qui nous donne finalement : R1=R2KRxRy;R2=2×109f0i;R3=QR2RxRy;R4=R25kΩ;R_1 = \frac{R_2}{K'}\frac{R_x}{R_y}; R_2 = \frac{2\times10^9}{f_{0i}}; R_3 = QR_2\frac{R_x}{R_y}; R_4 = R_2 - 5k\Omega;

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ésistanceThéoriqueNormalisée
R128kΩ27kΩ
R2140kΩ130kΩ
R3156kΩ160kΩ
R4135kΩ130kΩ
RésistanceThéoriqueNormalisée
R160kΩ62kΩ
R2301kΩ300kΩ
R365kΩ70kΩ
R4296kΩ300kΩ

Figure 4 - Représentation théorique

Figure 4 - Représentation théorique

Figure 5 - Représentation expérimentale

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 6 - Filtre de Rauch

C1=C2=C3=CQ=13R2R1ωc=1CR1R2C_1 = C_2 = C_3 = C\\ Q = \frac{1}{3}\sqrt{\frac{R_2}{R_1}}\\ \omega_c = \frac{1}{C\sqrt{R_1 R_2}}

Figure 7 - Réalisation des filtres en cascade

Figure 7 - Réalisation des filtres en cascade

De même, on peut alors calculer les valeurs exactes pour chaque composant :

ImpédanceThéoriqueNormalisé
R11kΩ1kΩ
R27,3kΩ7,2kΩ
C0,59μF0,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

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 :

RegistreOctet
Registre 111000011
Registre 200000001
Registre 300000110
Registre 400001010
Registre 500000110
Registre 601011100
Registre 700100010

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 :

p=fxMfs=NMfxN=fspp = \frac{f_x}{M}\\ f_s = \frac{N}{M}f_x\\ N = \frac{f_s}{p}

On trouve finalement M=1000,N=10505M = 1000, N = 10505, ce qui nous donne les 3 séquences à transmettre :

DécimalBinaire
M4000111110100000
K3069051001010111011011001
Latch88493011011000000011000010

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

Figure 9 - Abaque

Toujours d’après le cahier des charges, on a F0=10,7MHz,fmaxfmin=200kHzF_0 = 10,7MHz, f_{max} - f_{min} = 200kHz. Cela nous donne, après avoir testé expérimentalement, les valeurs finales suivantes :

  • R1=+R_1 = +\infty
  • R2=R_2 = Potentiomètre 10kΩ10 k\Omega
  • R3=1,3kΩR_3 = 1,3 k\Omega
  • C1=100pFC_1 = 100pF
  • C2=1nFC_2 = 1 nF

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

Figure 10 - Simulation par LTSpice

Vidéo 1 - Radio en action

Ce projet pourrait vous intéresser