/******************************************************************************** * Origine du fichier l:\up\tp3\ex3b\bloc_gen.c (rev. 19-04-2004) * * Ce fichier est copié dans le répertoire (project) f:\up\tp3\ex3b * * NE PAS MODIFIER CE FICHIER * * ************************** * ********************************************************************************/ /**************************************** * FONCTION SineGen() * ****************************************/ int SineGen(void) { /*Pour une fréquence d'échantillonnage égale à 48 kHz, cette fonction génère un signal sinusoidal à 6 kHz avec une amplitude égale à 0,5*/ static float y[3]={0,0,0.353934}; static float a=1.414215; y[0]=y[1]*a - y[2]; y[2]=y[1]; y[1]=y[0]; return( (int)(0x7FFF*y[0]) ); } /************************************************************************ * FONCTION BlockGen() POUR GÉNÉRER UN BLOC DE "SINUS" * * Cette fonction remplit un buffer avec des valeurs successives de * * SineGen(). * * Chaque valeur est doublée : une valeur pour chaque voie de l'AIC23 * * L'adresse du buffer et la taille du buffer sont passée en paramètres.* ************************************************************************/ void BlockGen( short *pbuf, int taille) { int i =0; short signal; while( i != taille ) { signal=SineGen(); pbuf[i++]=signal; /*Valeur du signal pour une voie*/ pbuf[i++]=signal; /*Même valeur pour l'autre voie*/ } }