Is it possible to explain the advantage of sin/cos encoder when used together with an incremental encoder? Here is a related paper but I don't understand how does it improve accuracy. I basically don't get what interpolation is and how does it help to improve the usual incremental decoding. I checked this but couldn't find a pictorial/graphical way to grasp the idea.

In a typical square-wave incremental encoder edges are counted and processed to obtain the rotation angle and direction or speed.

But these sin/cos encoders add an extra to this principle. They call it interpolation. Is it possible to explain how two sines and cosines are processes and contribute to the accuracy here? Simple graphical explanation would help a lot.

  • \$\begingroup\$ really should use a typeII tracker to post-process sin/cos \$\endgroup\$
    – user16222
    Feb 2, 2017 at 13:40
  • \$\begingroup\$ pardon my ignorance but what is typeII tracker? \$\endgroup\$
    – floppy380
    Feb 2, 2017 at 16:39

2 Answers 2


A crude graphical attempt at comparing a strictly digital rotary encoder (at left) with a similar analog sine/cosine rotary encoder (at right):
compare quadrature encoder with sin/cos encoder
At left, one rotation is quantized into four quadrants by processing the two sensors into one-bit (high/low) gray codes. You can tell which direction (clockwise vs. counter-clockwise) by comparing the two-bit code you came from, to the newest two-bit code: Clockwise (two-turn) sequence: 00 01 11 10 00 01 11 10

At right, the two sensor signals are now analog. Phase relationship between the two sensor signals give angular position. The two sensor signals show about four turns. You can say that one quadrant has been interpolated into a great many segments, because there are many unique combinations of the two 6-bit signals in that quadrant. While each sensor is encoded as six bits in this example, noise and analog drift (among other analog error sources of the sensors) now likely limit resolution. But potential angular resolution is better than the quadrature encoder at left.
One approach uses a rotating permanent magnet, sensed by two giant-magnetoresistive sensors (at right angles). Optical approach is possible too. And AC-coupled coils with two right-angle-sensor-coils is another possible approach (amplitude detector for each sensor signal required).


Very simply this is the difference between analog and digital.

The digital accuracy (number of steps per turn of the encoder) is fixed by the number of changes that can be sensed. The greater the number of steps / lines the finer the resolution. This is determined by the number of digital sensors and or lines on the optical plate the sensors use. This is fixed. If you want more increments you have to get a better encoder.

The analog sin/cos encoder uses 3 coils (one driver coil and 2 sensing coils). The sensing of the signals uses an ADC. By using a better ADC you can "increase" the number of steps / lines per turn by increasing the ADC resolution. The encoder signal is continuous and Not Digital. So in theory you can use better measurements to get better resolution. (Noise in the measurements limits this in the real world)

Interpolation is a method to determine a value based on an known "calibration" values (Say you know 0 deg and 90 deg for the 2 sensing coils) you can then work out any value in between by using some simple "interpolation math" between the know "calibration values"


Encoder output on a single revolution

So by looking at the relative signals you can "interpolate" more lines (finer resolution) if you have good ADC's because you know the relation ship between signals.

  • \$\begingroup\$ I still dont understand how a sin/cos encoder processes sine and cosine and how interpolation helps to increase the resolution. Did you try to explain the difference between analog and digital signals in your answer. But I know that already. Rest I dont get anything. Did you see the pdf I linked? \$\endgroup\$
    – floppy380
    Feb 2, 2017 at 16:58
  • \$\begingroup\$ It appears they use the sin/cos encoder to simulate a fine digital encoder(Increases the number of pulses per turn). And depending on the resolution the controller needs you can adjust how fine it is. This is useful for PID controllers etc. They read the values from encoder and then work out the angle. if it moved far enough the circuit outputs a pulse. This is "interpolating" where the pulses should be. \$\endgroup\$
    – Spoon
    Feb 2, 2017 at 22:08

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.