I am asking specifically about discrete sound signal, non dithered 16 bit 48000 Hz pcm/wav format.

My question is, how fast can you change sinewave frequency before it distort? Imagine a frequency sweep,it starts at 3000 Hz and ends at 6000 Hz, 3000 Hz full cycle sinewave at 48k sampling frequency is 16 samples long, 6000 Hz is half that, so 8 samples long...

If we do the sweep from 3k to 6K long duration,lets say one second,it will cleanly sweep from one point to another,but what is the precise limit,the threshold of how fast/short we can do this sweep before it becomes distorted?

Obviously we know its at least as long as single cycle of the lowest frequency we want to sweep,so its 16 minimum becose remember 16 samples is minimum lenght of single 3000hz cycle,but is it precisely 16 or is it longer? maybe one full cycle of starting frequency sample length(16) + same for final highest frequency(6000hz = 8) so 16 + 8?

I believe its also called "sweep rate",and sinewave frequency sweep is called "chirp",I want to know precisely the mathematics behind this to figure out where exactly this threshold is.

Also does this change depending on loudness/amplitude level? if we do the 3000 Hz to 6000 Hz sweep -6 db instead of maximum amplitude,would it make difference? considering signed 16 bit is 32768 amplitude levels,-6 db would be 16384.

I want some kind o mathematical formula that would precisely tell me exactly how many samples do I need to make shortest sweep possible at specific loudness and frequency points.So for example 3000 -> 6000 full amplitude sweep? atleast XXX samples needed! 375hz to 12000hz -12db? that be XXXXX samples minimum,you get the idea...

remember,we are talking about sweeping sinewave,not waveforms like squarewave that contain harmonics

edit Definition of distortion,when the sinewave stops being sinewave,its simple as that.For example,if you module amplitude of sinewave slowly and only one way (up or down ) then it will always be just pure clean non-distorted sinewave,but if you start changing its amplitude too fast,so its going up and then changes direction downwards per single cycle of that sine,harmonic distortion will grow from that sine,so you will have multiple tones at same time for example 1000hz sine will get 2000hz,3000hz,4000hz... overtones/partials/harmonics all from amplitude changes

same things happens with freqency change instead of amplitude change,you do it too fast,and new sinewaves(hamonics) will appear at same moment on top of the original moduleted sine.

  • 2
    $\begingroup$ Define what you mean by distortion. $\endgroup$
    – hotpaw2
    Sep 27, 2016 at 16:45
  • $\begingroup$ It could also help to know what purpose do you want the sweep for. If you want to test a filter's frequency response with a narrow transition width, then you should do it slower, if you need to speed test the output of some amplifier, you could do it faster. $\endgroup$ Sep 27, 2016 at 16:49
  • $\begingroup$ For analog signals, the mathematical theory of changing a sine wave's frequency is considered in FM / PM Signal Modulation Theory. In short such a frequency modulated signal will have a bessel type spectra. Consult an introductory communications book for details. $\endgroup$
    – Fat32
    Sep 27, 2016 at 18:36

2 Answers 2


To ask "how fast can you sweep a sinewave?" is to ask "How fast can you hit $\frac{F_s}{2}$?".

Because, sweeping a sinewave is equivalent to modulating it.

A sine wave looks like: $$x(n) = \sin(n 2 \pi f / F_s)$$

Let's focus on that instantaneous phase. I have put $n$ first, on purpose, to show that phase, in discrete time, is a line that departs from $0$ at a slope of $\frac{2 \pi f}{F_s}$. Even more descriptively, $2 \pi \frac{f}{F_s}$.

The sharpest slope for a given $F_s$ that can exist is at $\frac{2 \pi \frac{F_s}{2}}{F_s} = \frac{2 \pi F_s}{2 F_s} = \pi$.

Anything even slightly higher than that rate will start "catching" the sinusoid at its "past", or in other words, create aliasing.

So, how fast can you sweep a sinusoid?

Consider a cartesian plane. It's $x$ axis corresponds to time and it's $y$ axis corresponds to rate of phase change. We mark a red line on the $y$ axis at $\pi$. That's our limit. We can't cross that. The time axis changes in terms of $T_s = \frac{1}{F_s}$. So, theoretically, we could go $0 \ldots \frac{F_s}{2}$ in just one step, in just one $T_s$.

Is that going to look like a sweep?

It is going to look like a sweep, as much as a sinusoid looks like a sinusoid when it is sampled at some $\frac{F_s}{2}$. That's two samples per period and it looks exactly like a triangle and nothing like a sinusoid, but when you are sampling at $F_s$, that's the best sinusoid you can "see" at $\frac{F_s}{2}$.

This cartesian plane representation though, helps convey another point too. That is, how many frequencies did the sweep end up going through anyway? In the extreme example given above, instantaneous phase was so rapidly modified that effectively just two frequencies showed up, 0 and $\frac{F_s}{2}$. Sometimes, when you are trying to obtain the frequency response of a system, you might "miss" a part of it because your sweep is so fast that it "jumps" over the mode you should have excited.

Therefore, a more meaningful way to determine your sweep rate is to accept an average power per Hz (or frequency band) that you want your chirp to deliver and then find the rate of phase change that "allows enough samples" to deliver that power.

Hope this helps.


The sweep rate can in theory be as high as you like. The problem is the bandwidth df of resonances of the unit you are testing. Make sure $(\mathrm{d}f)^2 \gg S$, where $S$ is the sweep rate. And look at my paper at http://jenshee.dk/signalprocessing/sweepmeas.pdf for more info.

  • $\begingroup$ If you are linking to your own web site, you need to be explicit about it. See also How not to be a spammer. $\endgroup$
    – tripleee
    Dec 10, 2019 at 6:46
  • $\begingroup$ i think his/her answer is fine nor does he/she need to be more explicit about inclusion of his/her own online paper. $\endgroup$ Dec 10, 2019 at 7:01
  • $\begingroup$ Sory, I'll be more explicit about it in the future. $\endgroup$
    – Jens Hee
    Dec 10, 2019 at 13:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.