Site de G. Laroche
codeur stereo digital
Translate this page
Plan du site

Sommaire

 

Description du fonctionnement

Génération 19KHz

Echantillonnage 304KHz

Logiciel pour ATmega8

 

 

Description du fonctionnement

La transmission stéréo pour une radio FM consiste à encoder le signal "L-R" (Canal Gauche - Canal Droit) à l'aide d'une sous porteuse de 38KHz, cette sous porteuse est ensuite supprimée.

Une fréquence pilote 19KHz est ajoutée au signal pour indiquer la présence d'une émission stereo, elle est aussi utilisée en fréquence de référence pour la sous porteuse 38KHz .
Afin de conserver la compatibilité avec les émissions mono, le signal "L+R" est ajouté aux 2 signaux précédents.

Le spectre du signal obtenu est décrit en détail dans la page décrivant le principe du RDS (cliquez sur l'image pour plus d'info):

spectre d'une emission stereo

Dans un codeur stéréo numérique les signaux "L+R" et "L-R" peuvent être modélisés par la modélisation suivante :

Vout = L(1+sin(Phase38K))/2 + R(1-sin(Phase38K))/2
avec Phase38K correspondant à la phase de la sous porteuse 38KHz.

La fréquence d'échantillonnage du codeur doit être au minimum 8 fois supérieure à la fréquence la plus élevée (38KHz), soit une fréquence d'échantillonnage minimum de 8*38000 = 304 KHz

Le principe du codeur stéréo numérique utilise un switch rapide ADG201HSKN, découpant alternativement les signaux "L" et "R" à la fréquence d'échantillonnage. Un réseau de résistance permet de pondérer ces signaux afin de se rapprocher de la modélisation théorique ci dessus.

TODO schéma principe général + commentaires quartz 2.432 (multiple 304K).

Génération 19KHz

Afin d'assurer une synchronisation parfaite entre la fréquence pilote 19KHz et la sous porteuse 38KHz, le 19KHz est généré numériquement avec un Convertisseur Numérique/Analogique 4 bits
Un réseau de résistance "R/2R" est utilisé pour réaliser le CNA

TODO schéma principe R/2R.

La fréquence d'échantillonnage de 304KHz permet d'obtenir 16 echantillons pour le signal pilote 19KHz (304000/16=19000).

En choisissant les valeurs programmées sur le CNA pour être les plus proches possibles d'une sinusoide, avec un réseau de résistance R=1Kohms (10Kohms pour b0, 24Kohms pour b1, 50Kohms pour b2 et 120Kohms pour b3) on obtient les valeurs suivantes :

b3
(455mV)
b2
(200mV
b1
(97mV)
b0
(41mV)
Vout19K
(mV)
0
0
1
1
1
326
1
1
0
0
0
451
2
1
0
1
1
556
3
1
1
0
0
627
4
1
1
0
1
652
5
1
1
0
0
627
6
1
0
1
1
556
7
1
0
0
0
451
8
0
1
1
1
326
9
0
1
0
0
201
10
0
0
1
0
95
11
0
0
0
1
25
12
0
0
0
0
0
13
0
0
0
1
25
14
0
0
1
0
95
15
0
1
0
0
201


 

Echantillonnage 304KHz

 

Logiciel pour ATmega8

 

Le langage utilisé est le langage C pour l'initialisation puis l'assembleur pour la fonction d'échantillonnage.

Le code binaire et les fichiers sources sont disponibles en cliquant sur les liens suivants :

Le code binaire et les fichiers sources sont disponibles sous license GNU General Public License (GPL) :

fichier code binaire ".hex"
fichiers sources

 

retour home page