Lecture en temps réel de l'entrée ligne ou micro d'une carte son

cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012 - 8 mai 2011 à 16:51
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012 - 19 mai 2011 à 15:57
Bonjour, afin de décoder le contenu de trames audios numériques (utilisées dans la radio-transmission) j'ai besoin de lire en temps réel ce qui arrive via l'entrée ligne ou micro de la carte son. Alors afficher le spectre audio en temps réel serait l'idéal. Le décodage sera ensuite mon affaire, mais l'important étant de pouvoir récuperer en temps réel le signal en entrée de carte son. Quelqu'un as un exemple de code source qui pourrait faire cela? genre afficher le spectre d'un son en temps réel. J'ai vu l'ocx FMOD qui pourrait contenir des infos interessantes, j'ai quelques codes a explorer,mais si vous avez de bonnes pistes, je suis preneur, merci :)

17 réponses

cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
8 mai 2011 à 17:15
j'ai bien trouvé des sources qui le font avec des MP3, et FMOD ou FMODEX mais je ne vois pas comment je pourrait modifier ces codes pour que cela fasse la même chose avec l'entrée ligne direct ou micro de la carte son, une idée ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 mai 2011 à 19:16
Bonjour,

J'ai déjà fait ça, en me basant sur cette source :
http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx

A toi d'adapter et de nettoyer pour tes besoins.

0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
8 mai 2011 à 19:49
Merci, mais ça n'a pas l'air exploitable en VB6 ça si?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 mai 2011 à 19:54
Bonjour,

Voir le code et adapter, mais en .NET c'est facilement exploitable.
A toi de te mettre à jour ou adapter la source.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
8 mai 2011 à 20:10
Bonjour,

L'affichage du spectre audio ne te permettra pas de décoder directement les données. Tu n'obtiendras que l'amplitude. Ce qui revient à regarder le vu-mètre de ton récepteur avec le gain RF à 0.
Je t'ai déjà répondu à ce sujet mais tu sembles ignorer mes réponses.
http://www.vbfrance.com/forum/sujet-DECODER-SOURCE-TRAME-NUMERIQUE-VIA-CARTE-SON_1517557.aspx

Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
8 mai 2011 à 21:55
Re,

Il faut obligatoirement utiliser les transformées de Fourier sur les échantillons afin d'obtenir les fréquences.
Tu dis : Alors afficher le spectre audio en temps réel serait l'idéal. Le décodage sera ensuite mon affaire
Comment comptes-tu à partir du spectre audio déterminer la largeur de chaque impulsion ?, c'est ce qui détermine la vitesse en Baudot.
Ensuite, supposons que tu reçoives un signal qui n'utilises que 2 fréquences audio, une sur 1200 Hz et l'autre sur 2400, laquelle représente le bit à 0 ou 1 ?. Sachant que certaines stations utilisent parfois le mode 'reverse', ce n'est pas gagné à tous les coups.
Maintenant si tu veux décoder du 'multi-tone', c'est encore un autre problème bien plus ardu.
Si tu n'indiques pas le mode numérique que tu veux décoder, il n'est pas possible de te donner plus d'info.
Tu trouveras sur le site des codes qui te seront utiles en cherchant 'analyseur de spectre' ou 'vu-mètre'.

Cheyenne
0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
9 mai 2011 à 09:18
Merci, bon ça risque d'être alors plus difficile que je ne le pensais :) tant pis
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
11 mai 2011 à 01:18
Bonjour,

Comment ça tant pis !? Il faut persévérer

Voici un lien qui t'aideras à utiliser les transformées de Fourier :
http://www.vbfrance.com/codes/TRANSFORMEE-FOURIER-DANS-APPLICATIONS-AUDIO-NUMERIQUES_36172.aspx

Il faut utiliser les API Wave, à la réception des échantillons tu as le volume, après la transformation tu obtiens la fréquence.

Pour te donner une idée du temps des impulsions, saches qu'avec une simple transmission à 50 Baud en RTTY la transmission d'un caractère dure 150 mS. Tu as 1 bit de Start à l'état haut (1) qui dure 20 Ms puis 5 bits de 20 mS (à 0 ou 1 pour le caractère) et un bit de stop à 1 de 30 mS.

Tu peux me contacter par la messagerie privée de ce site pour me dire quel mode tu veux décoder et je te dirais si c'est faisable ou pas en VB6.
Si tu ne connais pas le mode indiques moi la fréquence, je saurais ce que c'est.

Cheyenne
0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
18 mai 2011 à 18:22
Merci, l'ennuie c'est que l'analyse se fait à partir d'un échantillon sonore (un fichier), moi ce que j'ai besoin de faire c'est l'analyse en temps réel d'un signal venant de l'entrée micro (ou ligne) donc qui n'est pas un fichier propre dit comme l'est un .WAV ou MP3
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
18 mai 2011 à 19:51
Bonjour,

Tu ne réponds toujours pas à ma question qui est de savoir quel mode numérique tu veux décoder.
Oui j'ai bien compris ce que tu veux faire, mais temps réel ou fichier .wav il te faut utiliser les API Wave. Que ce soit un fichier audio ou une entrée directe tu passes de toute manière par la carte son. A partir de là il faut échantillonner le signal reçu et lui appliquer les transformées de Fourier afin de connaitre les fréquences audio qui composent ce signal. Mais pour procéder au décodage de l'émission il est impératif de connaitre ses caractéristiques, d'abord le mode et la vitesse en Baud. Ensuite le type de modulation utilisé et d'autres paramètres.
Tu dis 'avoir besoin de faire l'analyse' or si c'est un besoin tu dois disposer de facto des outils qui te permettent le traitement du signal.
Mon avis est que tu cherches plutôt, par curiosité, à décoder une transmission numérique en VHF.
Sans plus d'informations de ta part sur le mode numérique à décoder, soit directement sur le forum ou par la messagerie privée, je ne pourrais pas aller plus en avant pour te décrire la manière de procéder.

Cheyenne
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
18 mai 2011 à 21:25
Salut
ça l'air compliqué Fourrier Poison etc
et l'impression que lechti62 n'est pas à la
meme longueur d'onde
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
19 mai 2011 à 00:02
Bonsoir ShayW,

Oui, effectivement, il ne me semble pas être en résonance avec le problème.
Tu écris Poison (je n'en ai pas parlé) mais c'est Poisson, tout du moins si tu veux évoquer la formule sommatoire qui utilise les transformées de Fourier pour l'étude des harmoniques (entre autres). Mais dans ce cas, le problème des fréquences harmoniques n'est pas à considérer.
Le décodage d'un signal numérique n'est pas, en effet, chose aisée. Malgré mon insistance je n'arrive pas à savoir quel mode d'émission il souhaite décoder. Donc pas d'info sur le type de modulation (QPSK, MSK, QAM ou autres), la vitesse, etc. Données pourtant indispensables pour aller de l'avant.
Connaissant au moins le mode on sait comment la structure binaire des données est transmise et pour chaque mode il y a plusieurs vitesses possibles, mais le type de modulation reste le même.
Comme écrit précédemment, il faut d'abord échantillonner le signal, on obtient en premier lieu le volume ou plus exactement l'amplitude du signal. De là on applique les transformées qui permettent d'obtenir la fréquence. Mais le problème ne s'arrête pas simplement là...
Si tu désires plus d'infos sur le sujet, n'hésites pas.

Bonne soirée,
Cheyenne
0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
19 mai 2011 à 13:45
En fait ce serait dans un but de curiosité personelle, de faire ce que des progs font déjà trés bien (et que j'utilise) c'est à dire décoder du POCSAG à 512 et 1200 bauds. Juste pour comprendre comment ça fonctionne et savoir le refaire en VB, donc décoder dans une trame radio un contenu alpha-numérique.


Si j'arrivais déjà même à afficher du charabia venant du signal radio ce serait déjà un premier pas, ce qui n'est déjà pas le cas.
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
19 mai 2011 à 15:09
Pas bonjour non plus,

Ah enfin !!! c'est du POCSAG. Autres vitesses possibles : 512 et 600 Baud. Ce mode est utilisé pour transmettre des messages aux pagers. C'est une modulation de type FSK avec un décalage de 4.5 kHz par rapport à la porteuse.

Protocole : transmission d'un mot de synchronisation, suivi de 16 mots de code contenant des adresses et des données numériques ou alphanumériques.
Structure de l'encodage des 32 bits pour chaque mot :
* 1 bit pour indiquer si c'est un mot d'adresse (1) ou un mot d'information (0)
* 18 bits d'adresse et 2 bits de fonction, ou 20 bits d'informations
* 10 bits pour le CRC (somme de redondance cyclique), un code polynomial qui permet la détection et/ou la correction d'erreur.
* 1 bit de parité paire pour le mot entier

* les messages numériques sont transmis sous formes de valeurs BCD sur 4 bits;
* les messages alphanumériques sont transmis en ASCII sur 7 bits.

Avec ça, amuses-toi bien !!! Vu les vitesses de transmission VB6 n'est pas le langage le mieux adapté, il faut utiliser le C.

Il serait préférable, pour commencer ce type d'exercice, d'essayer plutôt de décoder du RTTY à 45.45 ou 50 Baud transmis par les radio-amateurs ou bien les stations météo à 50, 75 ou 100 Baud que l'on trouve en HF.

Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
19 mai 2011 à 15:23
Re,

Je suppose que utilises POC32 ?

Cheyenne
0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
19 mai 2011 à 15:57
Non, j'utilise PDW qui décode mieux que POC32

Cela dit je pense que je ne vais pas pousser l'investigation, ça me semble trop complexe, je verrai bien
0
cs_lechti62 Messages postés 161 Date d'inscription vendredi 8 mars 2002 Statut Membre Dernière intervention 8 mars 2012
19 mai 2011 à 15:57
En tout cas merci pour vos réponses et votre patience :)
0
Rejoignez-nous