sinusoida, która powoli zwiększa częstotliwość od f1 do f2 na określony czas

Piszę program c, aby wygenerować falę sinusoidalną, która powoli zwiększa częstotliwość od f1 do f2 dla danego przedziału czasu.

Napisałem ten program c, aby zwiększyć częstotliwość od 0 do 10 Hz, ale problem polega na tym, że częstotliwość zmienia się po zakończeniu 360 stopni. Jeśli spróbuję zmienić częstotliwość między 0 a 360 stopni, przejście nie jest płynne i jest gwałtowne.

To jest równanie grzechu, którego użyłem y = Amplituda * sin (faza 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;
}
Jak płynnie zmieniać częstotliwość w danym okresie czasu?czy powinienem patrzeć na transformacje Fouriera?

questionAnswers(4)

yourAnswerToTheQuestion