# Choosing a position sensor (encoder) and obtaining velocity from it

How do I know how many counts per revolution I need for an encoder for my application?

I need to be able to accurately capture a 1000 Hz signal on an input side running from 1-133 rev/sec (60-8000 RPM) and a 1000 Hz signal on an output side with gear ratio 1:100, so speeds are .01-1.33 rev/sec (.6 - 80 RPM).

Here is the math I have but am not sure if it is correct:

For a 1000 Hz signal, it takes .001 sec for one period. But if I want to accurately capture this and accurately obtain velocity from this position data, I need 100 counts (is this a good assumption? what would be a better value?). Hence, I need 100/.001 = 100,000 cts/sec. Now, if I divide this by my rev/sec, I'll get cts/rev which is what encoders are rated at. Assuming input is running at 10 rev/sec, I need 100,000/10 = 10,000 cts/rev. Assuming output is running at .1 rev/sec, I need 1,000,000 cts/rev.

I strongly suspect my math is incorrect however because the best encoders that meet the speed requirement of my application are 1024 cts/rev for input and 72,000 cts/rev for output. Would these cts/rev actually be good enough for my application then?

For context, I need to obtain the Bode plot of a gear drive and hence plan to give sinusoidal inputs to my motor. I do not expect this the bandwidth of my gear drive to be more than 1000 Hz, but since I am not sure what it's exact number is, I would like my design to be capable of accurately measuring a 1000 Hz signal. This sinusoid will be in terms of velocity which is why I want to obtain velocity data. Also, I know it may seem odd that I am using position first and then getting velocity rather than getting velocity directly, but I want this system to be capable of positional control so I would like to only use position sensors if possible.

TLDR: How many position counts are needed to get an accurate velocity reading? How many position counts per revolution do you need to capture velocity changing at a frequency of 1000 Hz?

• You are implying that you don't measure time between pulses as the speed slows down. If you add the equation for estimating the error (position errors over time errors) to your question it will give us insight into your system. – hauptmech Feb 19 at 6:20
• The 1000 Hz signal formulation is a bit confusing. Could you please elaborate what this means? Is the 1000Hz at the beginning the same as the 1000Hz frequency of the sinus signal? Also, as @hauptmech suggested, please elaborate more on the acceptable errors of your measurement. e.g. A rotational velocity in the range of 1-133 rev/s needs to be measured with an acceptable tolerance of +/- 0.01 rev/s. – 50k4 Feb 19 at 14:59
• By 1000 Hz signal I mean that I expect the speed to vary at 1000 Hz i.e. the rotational speed may be sin(2pi*1000x)+10 which means that it ranges from 9-11 rev/s but changes rapidly (hence the 1000 Hz). I want to be able to accurately capture this with position encoders. As for acceptable errors, I would prefer +/- .05 rev/s on the input and +/- .001 rev/s on the output if possible Really appreciate the responses, @hauptmech and @50k4! – Hasan A. Feb 20 at 1:48