onde sinusoïdale qui augmente progressivement la fréquence de la f1 à f2 pour un temps donné

Je suis en train d'écrire un programme en c pour générer une onde sinusoïdale qui augmente progressivement la fréquence de la f1 à f2 pour un intervalle de temps.

J'ai écrit ce programme c de la rampe de fréquence de 0 à 10 Hz, mais le problème est que la fréquence des changements après l'achèvement de 360 degrés. Si j'essaie de changer la fréquence entre 0 et 360 degrés que la transition n'est pas lisse, et il est abrupte.

C'est l'équation du péché que j'ai utilisé y = Amplitude*sin(freq*phase)

int main(int argc, char *argv[]) {

double y, freq,phase;
int count; //for convenience of plotting in matlab so all the waves are spread on x axis.
  for (freq = 0; freq < 10; freq+=1) {
      for (phase = 0; phase < 360; phase++) { //phase is 360 degrees
      y = 3 * sin((count*6.283185)+(freq*(phase*(3.14159/180))));   
    printf("%f %f %f \n", freq, phase, y);
   }
  count++;
  }
return EXIT_SUCCESS;
}
  1. Comment puis-je changer la fréquence en douceur pour une période de temps donnée?
  2. devrais-je être à la recherche de Fourier transformations?
Pour générer un "vrai" péché d'onde de la fréquence de Hz utiliser des compteurs et minuteries. En utilisant le péché de la formule de la fréquence générée dépend de la vitesse à laquelle le programme s'exécute.

OriginalL'auteur katta | 2012-06-26