A polarization controller is an optical device which allows one to modify the polarization state of light.
Polarization controllers can be operated without feedback, typically by manual adjustment or by electrical signals from a generator, or with automatic feedback. The latter allows for fast polarization tracking. A polarization controller can have the task of transforming a fixed, known polarization into an arbitrary one. Since polarization states are defined by two degrees of freedom, for example azimuth angle and ellipticity angle of the polarization state, such a polarization controller needs two degrees of freedom. The same holds for the task of transforming an arbitrary polarization into a fixed, known one.
More general is the transformation of an arbitrary polarization into another arbitrary polarization. This needs three degrees of freedom. Such a polarization controller can for example be obtained by placing on the optical path three rotatable waveplates in cascade: a first quarterwave plate, which is oriented to transform the incident elliptical polarization into linear polarization, a halfwave plate, which transforms this linear polarization into another linear polarization, and a second quarterwave plate, which transforms the other linear polarization into the desired elliptical output polarization.
Polarization controllers can be implemented with free space optics, through a fiber pigtailed U-bench, for example. In that case, light exits the fiber, passes through the three waveplates, that can be freely rotated to allow polarization adjustment and then enters back into the fiber. Polarization controllers can also be implemented in an all-fiber solution. In that case, the polarization of light is changed through the application of a controlled stress to the fiber itself.
For polarization controllers with automatic feedback, integrated optical lithium niobate (LiNbO3) devices are very suitable. Polarization controllers with tracking speeds of up to 100 krad/s on the Poincaré sphere are commercially available (see external link at the bottom).