en effet j'ai un projet pour l'analyse de la qualité de l'énergie électrique, je souhaite analyser la tension et le courant d'un circuit magnétique à l'aide de la carte son.
donc l'étape où je suis bloqué c'est que j'ai fait un fichier wave sous audacity, j'ai crée un programme pour récupérer les signaux(gauche et droite : gauche pour courant et droite pour tension dans la partie data qui est écrit en little Endian) mais j'y arrive pas , j'arrive pas à detecter l'erreur je vous fait un screen de mon code svp et merci beaucoup .
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
/*#include "kiss_fft.h"*/
#define FIXED_POINT 1024
#include <errno.h>
/* Ci-dessus, ce sont des directives de préprocesseur.Ces lignes permettent d'ajouter des fichiers au projet,
fichiers que l'on appelle bibliothèques.Grâce à ces bibliothèques, on disposera de fonctions toutes prêtes pour afficher
par exemple un message à l'écran*/
/*........................définition de la structure du fichier wave..........................*/
struct wavfile /* on définit une structure qui comporte nos variable de notre fichier wav à l'aide de la fonction struct qui disponible dansla bibliothéque du systéme d'exploitation,ce type s'appelle le prototypage*/
{
char id[4];/* on crée un tableu qui contient les lettre RIFF comme c'est défini dans le format wave */
int totallength; /* il contient la taille totale du fichier 8 octetcs*/
char wavefmt[8]; /*un tableau de 8 cases contigues pour le wavefmt */
int format; /* il contient 16 bits pour le format PCM*/
short pcm;/* cela signifie un entier court ((2 octects) qui contient contient une plage de valeurs allant de -32 768 à 32 767 pour la format PCM */
short channels;/* ceci contient le nombre de channel un octects par channels, 2 channels*/
int frequency;/*la fréquence d'échatillonage qui est de ......Hz*/
int bytes_per_second;/*le nombre d'octects par seconde pour l'échatillonage */
short bytes_by_capture;/* Nombre d'octets à lire par échantillon*/
short bits_per_sample; /* le nombre d'octect par échantillon*/
char data[4];/* il va contenir le data,il comporte 4 octets donc 4 cases contigus */
int bytes_in_data;/* le nombre d'octet dans la partie data, il va contenir les valeurs des échantillons en little Endian (lecture de gauche à droite) "LL,RR,LL,RR...."*/
};
int sommeTableau(float tableau[], float tailleTableau);
int main(int argc, char *argv[]) /* fonction obligatoire pour démarrer le système(compilation)*/
/*.................selection du fichier audio et définition des variables...................*/
{
int nbech=0;/* nombre d'échantillon extrait dans un fichier wave */
int i=0, taille=0, n=0,fr=0;/* ..initialisation des variables ..*/
FILE *wav;/*FILE est une structure définit dans stdio.h, il contient des données qui permettent à la communication avec notre fichier wave, on manipule FILE via un pointeur (wav) */
float value=0;/* intialisation la variable value qui contiendera les nombres flottantes*/
char fichieraudio[100]="/home/linuxmoha/Bureau/tableau/hem.wav";/* chaine de caractére ....*/
char fichierdat[100];/* on l'aura besion dans le remplissage du tableau juste pour la cgaîne des caractères*/
printf ("nom du fichier : %s \n", fichieraudio);/* affichage le nom du fichier à traiter */
/*--------------fin de selection du fichier audio et définition des variables---------------------*/
/*...........................ouverture du fichier wav..........................................*/
wav = fopen(fichieraudio,"rb"); /* ouverture du fichier wave,fopen nous envoie un pointeur sur le fichier dont on va ouvrir le fichier à lire en binaire et le rb siginifie le mode de lecture en binaire,car le mode binaire permet de stocker des informations octet par octet*/
struct wavfile header; /* création de l'entête du wave */
if ( wav == NULL )/* on fait cette condition pour voir si le programme a réussi l'ouvrir , */
{
printf("\n impossible d'ouvrir le fichier demandé, vérification du nom \n");
printf(" attention à l'extention .wav \n");
exit(1);
}
/*-------------------------------fin d'ouverture du fichier wave----------------------------*/
/*.....................lecture dans l'entête du fichier.....................................*/
/*on initialise l'en-tête pour le fichier wave, ainsi la véification si le fichier posséde une entête compatible afin qu'il ne beugue pas*/
fread(&header,sizeof(header),1,wav);/*fread permet de lire un certain nombre d'octets,L'ensemble des octets lu
seront stockés dans le fichier wave ,il faut donc être certain que les DATAs est bien de taille suffisante,
Pour spécifier le nombre d'octets à lire, il faut jouer sur deux paramètres : le nombre de bloc d'octets à
lire ainsi que la taille de chacun des blocs,La taille totale du wave à allouer sera donc le produit de ces
Commences donc par corriger le format du contenu de ton sujet.
Ensuite signales ton sujet en indiquant que tu t'es trompé de forum et en indiquant dans lequel il devrait être pour qu'un membre du staff te le déplace.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Le sujet est déplacé de la section PHP vers la section Langage C++
Merci d'utiliser la balise code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.