Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Génération des signaux


Sujet :

C

  1. #1
    Membre à l'essai
    Génération des signaux
    salut à tout et à tous j'espère que vous allez bien,
    mon prof à me demander de générer trois signaux :
    0 sinusoïde de fréquence 1kHz
    1 sinusoïde de fréquence 1.5kHz
    2 Sinusoïde de fréquence 2kHz
    on utilisant un switch pour préciser le signale à la sortie en utilisant le langage C, le problème c'est que je suis débutant à ce langage pour cela j'ai préféré de travailler avec simulink puis je le transforme en langage C, Si quelqu'un peut m'aider à ce travail ( pouvez-vous même donner des aider directement por le langage c si vous êtes débutant en matlab ) et merci.
    cordialement.

  2. #2
    Membre averti
    Bonjour,

    Quelle est "la sortie" pour ces signaux ?
    un tableau, une courbe, un fichier, un signal audio ... ?

  3. #3
    Membre à l'essai
    salut Tout d'abord je vous remercie beaucoup nanosoft pour votre réponse, d'autre pour bien répondre à votre question je veux commencer par une petite explication, donc ce programme je vais l'injecter sur une carte dsp ( comme carte arduino par exemple ) et la sortie qui va se visualiser sur un oscilloscope je dois avoir des signaux, comme je vus informe que j'ai résolu cela et merci beaucoup.
    et voila le programme qui j'ai utilisé :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //Sine8_LED.c génération d’une fonction Sinus les switch de contrôle DIP
    #include "dsk6713_aic23.h" 				//fichier entête pour le codec,DSK
    short loop = 0; 						//indice de la table
    short gain = 10; 						//facteur de gain
     
    //valeurs de la sinusoïde
    short sine_table[16]={0,259,707,966,1000,966,707,-259,0,-259,-707,-966,-1000,-966,-707,-259};
     
    void main()
    {
    	comm_poll(); 					//initialisation de la DSK, du codec, et du McBSP
    	DSK6713_LED_init(); 			//initialisation des LED à partir de BSL
    	DSK6713_DIP_init(); 			//initialisation des switch DIP à partir de BSL
    									// BSL : Board Support Library (fonctions incluses dans CCS 
    									// sous forme de librairies dsk6713bsl.lib
    	Uint32 fs;
    	while(1) 						//boucle infinie
    	{
    		if(DSK6713_DIP_get(0)==0)				//=0 si le switch #0 est enfoncé
    		{										// pour la génération d’une fonction Sinus de 1 KHz
    		DSK6713_LED_on(0);		 				//la LED #0 et à l’état ON (allumée)
    		fs = DSK6713_AIC23_FREQ_16KHZ;   		//fixe la fréquence d’échantillonnage a 8KHz
    		output_sample(sine_table[loop]*gain); 	//output chaque Ts (SW0 on)
    		(++loop > 15) loop = 0; 					//vérification de fin de table
    		}
    		else DSK6713_LED_off(0);
     
    		if(DSK6713_DIP_get(1)==0)			//=0 si le switch #1 est enfoncé
    		{										//pour génération d’une fonction Sinus de 1.5 KHz
    		DSK6713_LED_on(1);		 				//la LED #1 et à l’état ON (allumée) 
    		fs = DSK6713_AIC23_FREQ_24KHZ;   		//fixe la fréquence d’échantillonnage a 12KHz
    		output_sample(sine_table[loop]*gain); 	//output chaque Ts (SW1 on)
    		(++loop > 15) loop = 0; 				//vérification de fin de table
    		}
    		else DSK6713_LED_off(1);
    		if(DSK6713_DIP_get(2)==0)			//=0 si le switch #2 est enfoncé
    		{										//pour génération d’une fonction Sinus de 1.5 KHz
    		DSK6713_LED_on(2);		 				//la LED #2 et à l’état ON (allumée)
    		fs = DSK6713_AIC23_FREQ_32KHZ;   		//fixe la fréquence d’échantillonnage a 2KHz
    		output_sample(sine_table[loop]*gain); 	//output chaque Ts (SW2 on)
    		(++loop > 15) loop = 0; 					//vérification de fin de table
    		}
    		else DSK6713_LED_off(2);
     
    	} 											//fin de la boucle while(1)
    } 												//end of main

  4. #4
    Membre averti
    Salut,

    Je trouve les lignes 24, 33 et 41 assez bizarres, il ne manquerait pas un if ?

  5. #5
    Membre confirmé
    Bonjour

    Pourriez-vous mettre une indentation s'il vous plaît ?
    Cela rendrait votre code plus lisible.

    Cordialement
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.