onda senoidal que aumenta lentamente a frequência de f1 para f2 por um determinado tempo

Eu estou escrevendo um programa c para gerar uma onda sinusoidal que lentamente aumenta a freqüência de f1 para f2 por um intervalo de tempo de doação.

Eu escrevi este programa c para aumentar a freqüência de 0 a 10 Hz, mas o problema é que a freqüência muda após a conclusão de 360 ​​graus. Se eu tentar mudar a frequência entre 0 e 360 ​​graus, a transição não é suave e é abrupta.

Esta é a equação do pecado que usei y = Amplitude * sin (fase freq *)

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;
}
Como faço para alterar a frequência sem problemas por um determinado período de tempo?Eu deveria estar olhando para as transformações de Fourier?

questionAnswers(4)

yourAnswerToTheQuestion