Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Messages - Ayobo

Pages: [1]
1
Bonjour Serge,

intéressant ton projet quelle est la puissance maximum que l'on peut mettre comme haut parleur ?

merci d’avance.

2
Alors tous d'abord je vais te présenter un bloc fonctionnelle correspondant à  mon projet pour avoir les idées plus clair, tu as aussi le bloc diagramme interne de la puce ids1820 qui est un CI permettant l'enregistrement vocal à  partir du microphone la durée d'enregistrement vocal est de 16 secondes par défaut et paramétrable.

En partant sur le fait que le signal analogique provenant du microphone est analogique est de fréquences variable selon le thon de la voix on va dire une étendue de [20Hz;20KHZ], il faut choisir au niveaux de l’échantillonneur bloqueur la fréquence d'échantillon permettant d'avoir une bonne dynamique du signal, sur le liens que tu ma présenter en générale une fréquence d'échantillon de 44100 HZ est utilisée pour pouvoir restitué cette étendue de fréquence, Ce qui correspond a une période d’échantillonnage de 22.6 uSecondes, Le Temp de maintient (mode hold) doit être légèrement supérieur à  la période d'échantillonnage, admettons que Th = 32.6 uSeconde
 La fréquence d’échantillonnage du CAN qui lui auras pour rôle de numérise les échantillons prélever par l’échantillonneur-bloqueur doit alors avoir une Fe = 44100HZ ?

Les ordres de grandeurs que je t'es données notamment Th et Fe du CAN semble plausible pour la restitution du signal numérise ?

J'ai remarqué que le signal microphone à  la sortie de la puce ids1820 est déjà  en partie échantillonné selon la durée d'enregistrement, je te met sa en pièce jointe.

Je réfléchis-serais  ensuite à  la construction de mon fichier wave et l'espace mémoire qu'il prendras en fonction de la chaîne de traitement du signal. J'avoue qu'il pas mal de chose flou sur la construction de ce fichier même si j'ai compris quelques truc.

PS : J'ai pas non plus besoin d'un son 5 étoile juste ce qu'il faut donc si tous n'est pas dimensionné en a la microsonde près c'est pas bien grave.

3
Cependant à  la place de la sinus dans la structure wavefil_write il faudrait que j'envoie mon tableau qui contient les valeur numérisé du signal analogique provenant de mon microphone, Si la résolution permet d'avoir une bonne dynamique du signal, alors le fichier wave créer seras de qualité acceptable.

4
Bonjour merci pour ta réponse pour le moment j'ai récuperer un code en C permettant de créer une sinus en même temps de créer un fichier wave en manipulant une variable de type fichier :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int FREQUENCE =1000;
#define BITPERSAMPLE 16
#define PI 3.1415927

typedef int int32;
typedef short int16;
typedef char int8;

struct WavHeader
{
    int8 FileTypeBlocID[4];
    int32 FileSize;
    int8 FileFormatID[4];
};

struct WavFmt
{
    int8 FormatBlocID[4];
    int32 BlocSize;
    int16 AudioFormat;
    int16 NbrCanaux;
    int32 Frequence;
    int32 BytePerSec;
    int16 BytePerBloc;
    int16 BitsPerSample;
};

FILE * wavfile_open( const char *filename )
{
    struct WavHeader head = {{'R','I','F','F'},0,{'W','A','V','E'}};
    struct WavFmt Fmt = {{'f','m','t',' '},16,1,1,FREQUENCE,FREQUENCE*BITPERSAMPLE/8,BITPERSAMPLE/8,BITPERSAMPLE};
    FILE* F;
    F = fopen(filename,"wb");
    if(!F)
        return 0;
    fwrite(&head,sizeof(head),1,F);
    fwrite(&Fmt,sizeof(Fmt),1,F);
    return F;
}

void wavfile_write(FILE *F, double* data,int32 length )
{
    char subhead[5] = "data";
    fwrite(subhead,4,1,F);
    fwrite(&length,sizeof(length),1,F);
    fwrite(data,sizeof(double),length,F);

}

void wavfile_close( FILE *file )
{
    int file_length = ftell(file);
    int32 FileSize = file_length - 8;
    fseek(file,4,SEEK_SET);
    fwrite(&FileSize,sizeof(FileSize),1,file);
    fclose(file);
}

int main()
{
    FILE* F;
    int i;
    int nbsecondes = 10;
    int updown = 1;
    double* y = malloc(nbsecondes*FREQUENCE*sizeof(double));
   

    for(i=0;i<(nbsecondes*FREQUENCE);i++)
            {y=sin(2*PI*FREQUENCE);}
       

    F = wavfile_open("sound.wav");
    if (!F)
    return -1;
    wavfile_write(F,y,nbsecondes*FREQUENCE);
    free(y);
    wavfile_close(F);
    return 0;
}

5
Bonjour YFFIG,

merci pour t'es précision, du coup si on veut se positionner en mode linéaire et mettre en jeux le gain du transistor la dissipation de puissance ce fait toujours au même endroit quand fonctionnement saturé ? c'st à  dire Pcb = 0.7*Ic et Pbe = 0.7*Ib ?

6
Bonjour,

L'AOP est monté en suiveur d'après la légende, permet t'il de faire adaptation d'impédance entre les deux filtre RC passif du 1er ordre (dont ensemble donne finalement un filtre passif du second ordre (monté en cascade) ?

7
Bonjour Tournesol, le transistor dont tu parle est bien un NPN ? il existe surement d'autre transistor avec des caractéristiques électriques plus élever afin de travaillé aisément avec ta charge en sortie.  Vue que tu travaille en commutation tu pourras peut être avoisiner la puissance max du transistor sans problème ???. Concernant la dissipation de puissance du point de vue de la jonction est ce qu'elle est faite pour sa j'en sais rien et on attendras la réponse de YFFIG mais sa me semblerais logique de dissipé la pllus grande partie de la puissance a partir d'une diode que d'un fil, d'ou la faible dissipation Collecteur/Émetteur.

9
Daccord merci pour ton aide, si j'ai bien compris tu veut que je crée un C un premier code permetant la lecture d'un fichier audio pour bien mettre en oeuvre l'en tête du programme puis ensuite créer en C le code complet permettant directement de crée un fichier audio via les donnée numérique provenant du signal microphone.

Sa semble pas facile je vais déjà  essayer de comprendre tous sa, ce qu'il manque ces vraiment des exemple en C qui permette de créer un fichier wave! c'est peut être moi qui recherche avec les mauvais mot clé sur la toile! En tous cas merci .

Edit :
Finalement j'ai trouver le site suivant qui à  l'air pas mal !

http://fvirtman.free.fr/recueil/01_09_03_wav.c.php

10
Je vais utiliser un module microphone arduino + une puce ids1420 (enregistrement vocal) à  la sortie de cette puce de base c'est un haut parleur 8 ohms qui vient ce connecté (donc il se trouve une tension analogique), a la place je vais le connecter sur mon arduino pour le numérisé, supposons qu'a cette étape le signal est bien conditionné, il me resteras plus qu'a convertir les datas numérisée en fichier audio .wave et c'est la ou ce pose maintenant mon réel soucis, je ne connais pas trop la démarche à  suivre. Il va falloir faire des recherches internet.

11
Merci pour vôtre réponse étant donnée que la fréquence provenant du microphone est variable la fréquence d'échantillonage  de ce signal est fe>2*20KhZ dont 20 Khz représente la fréquence maximal du signal microphone ? .

12
Bonjour à  tous, mon but est d’échantillonner-bloquer puis ensuite numérisée un signal provenant d'un module microphone arduino en utilisant un lf398 pour la fonction EB et le CAN de l'arduino nano pour la fonction de numérisation. Cependant j'ai quelques questions :

1) Quelle est la fréquence du signal provenant du microphone est t'elle variable ou non, si variable quelles sont les fréquences min/max possible. Est-ce [20Hz;20Khz] ?. Comment le vérifier si nous avons pas de matos.

2) Pour entré un peu plus dans le détail de la fonction EB, si j'ai bien compris la datasheet du lf398, l'entrée LOGIQUE permet d'envoyer des impulsion dont la fréquence est l'image de la fréquence d'échantillonnage (Mode SAMPLE) ?? De plus la capacité appeler Ch (hold capacity) permet donc de maintenir le signal après chaque échantillon prélever (Mode HOLD) ??

3) D'après le point numéros 3  la fréquence des impulsions logiques haut doivent respecter la loi de shanon ?? La capacité Ch doit être dimensionnée de tel sort a avoir un temps de maintient supérieur à  la fréquence échantillonnage mais pas trop pour pas perdre des échantillons donc de l'information !

4) Quelle serait la fréquence d’échantillonnage et de maintient idéal pour un signal provenant d'un module microphone arduino pour avoir une qualité acceptable ??

Lorsque je met des points d’interrogations se sont vraiment des questions que je pose et non des affirmations !

Merci pour vos réponse futur et prenez soin de vous ;)

Pages: [1]