Freigeben über


How to calculate a sine sweep - the wrong way

This blog post has moved to https://matthewvaneerde.wordpress.com/2009/08/03/how-to-calculate-a-sine-sweep-the-wrong-way/

Comments

  • Anonymous
    December 05, 2011
    Ramanujan the gifted mathematician once said with pride that he has invented ------ (i don't remember) which will be of no practical use. But alas it did find uses elsewhere!

  • Anonymous
    April 04, 2014
    First, I implemented this and it works just fine for "reasonable" lengths of time. I implemented in C# using (8-byte) doubles. Secondly, I think there's a better (easier to implement, easier to describe, and perhaps more "correct") approach :-) Generally (regardless of the frequency function), the function s(t) can be expressed as s(t) = a * sin(2 * pi * i(t)); where t is time, a is amplitude, sin is our favorite sine function, pi is ... pi, i is the integral of the frequency function from 0 to t. So, if f(t) = s(k^t) where f is the frequency function, t is time, s is the starting frequency, and k is the konstant ((endfreq - startfreq)/length), i is i(t) = s( ( k^t-1 )/( ln(k) ) ) (Sorry, I'm not sure how to typeset that better) where ^ is the power function, and ln is the natural log function. How does this relate to your answer ? I have to go now, but plan on looking at this post more soon.

  • Anonymous
    April 08, 2014
    "gets very big, very quickly." I don't think so. Although some term is brought to the "t" power, that term was already brought to the "1/t_end" power meaning that the resultant power is no bigger than 1. It looks like we are at the same approach, although you've explored the special case of exponential frequency change.

  • Anonymous
    November 23, 2015
    First 2 members inside sin is const from t - it is initial phase. The third member is just 2piWstart * Tend/ln(Wend/Wstart) The fourth member if (Wend/Start)^(t/Tend) - exponent is always in (0, 1] interval