MITIGATING DISTORTION IN CODED LIGHT
FIG1 is a schematic block diagram of a system comprising a coded light transmitter and receiver  FIG2 is a schematic block diagram of a lighting device for modulating the light it emits in order to produce coded light
FIG1 gives a block diagram of a communication system comprising a transmitting device 2 arranged to emit visible light including embedded data, and a receiving device 4 arranged to receive the light emitted by the transmitting device 2 and detect the data embedded in the light. In embodiments the transmitting device 2 may take the form of a luminaire arranged to illuminate an environment such as a room or outdoor space, and also to encode data into the illumination it emits. However in alternative embodiments the transmitting device 2 may take any other form, such as a dedicated coded light emitter. The receiving device 4 may also take any suitable form, for example a mobile user terminal such as a smartphone, tablet or laptop having a built-in camera or other photo-sensor (e.g. photodiode) and installed with a suitable application ("app") for detecting the coded light signal in the light received by the camera or photosensor.  FIG2 is a schematic block diagram of logic comprised by the driver 16. The driver 16 comprises a current controller 22, power circuitry 26, and current measurement circuitry 28, an adder 23, and a subtractor 33. The driver 16 is coupled to a coded light injector 24 which comprises the encoder 6. The current measurement circuit 28 comprises a current sensor 30 and a current feedback filter 32. In embodiments the current controller 22, coded light injector 24, adder 23 and subtractor 33 may be implemented in the software domain, i.e. in software stored on one or more embedded memory units of the driver 16 and arranged to run on one or more processing units; whilst the power circuitry 26 and current measurement circuit 28 (as well as the LEDs 8 themselves) may be implemented in the hardware domain 21, i.e. in dedicated hardware circuitry. However, a hardware implementation of some or all of the current controller 22, coded light injector 24, adder 23 and/or subtractor 33 is also not excluded. And/or, a software implementation of the current feedback filter 32 is also not excluded. Thus the circuit of FIG2 provides a feedback loop which keeps the overall dim level substantially constant. The corrections for each possible symbol value, or set of symbol values, may be predetermined based on experimentation, simulation or analytical calculation. More preferably however, the compensation filter 34 takes the form of an adaptive filter which determines the correction to be applied for each symbol based on the actual measure ILEDf of the current experienced through the LEDs 8 compared to the expected current representation of that symbol (i.e. compared to the adaptive filter's predetermined knowledge of what the symbol should look like). Therefore the adaptive filter 34 is arranged in a second feedback loop in addition to the main current control feedback loop described in relation to FIG2. The LED driver 16 typically operates an LED-based light source 8 comprising a string of LEDs in series or a plurality of such strings in parallel with one another. The LED driver 16 consists of an input power stage and an output power stage. The input power stage typically consists of a boost converter acting as power factor corrector (PFC) and has a digital feedback controller. The output power stage is typically implemented by a synchronous buck converter. The buck converter consists of a digital closed-loop LED current feedback controller 22. This is an example of the feedback loop illustrated in FIG2.
schematic block diagram
28
30
current sensor
12
decoder
1
value values
2
device
20
software domain modulator
21
hardware domain
16
driver
10
light sensor
26
power circuitry
33
subtractor
23
adder
32
filter
['1. Apparatus (16) for controlling a current flowing through an illumination source, the apparatus (16) comprising: current measurement circuitry (28) arranged to take a current measurement (I LEDf ) measuring the current flowing through the illumination source (I LED ); a current controller (22) configured to output a current control signal (I ctrl ) to control the current flowing through the illumination source, and thereby control an amount of illumination emitted by the illumination source; power circuitry (26) arranged to receive the current control signal (I ctrl ) and in dependence thereon to drive the current flowing through the illumination source, the current controller (22) being configured to adjust the current control signal (I ctrl ) based on an error signal (I err ) representing a comparison between an input set-point (I ref ) and the current measurement fed back from the current measurement circuitry (28), order to thereby keep said current flowing through the illumination source on average substantially steady at a level specified by said input set-point (I ref );  characterized in that  the apparatus (16) further comprises: a coded light injector (24) arranged to modulate the current control signal (I ctrl ) output by the current controller (22) in order to cause a sequence of data symbols to be modulated into the current flowing through the illumination source, and to thereby cause the sequence of data symbols to be embedded in the emitted illumination; and a compensation filter (34) arranged to receive an indication of a presently transmitted data symbol (I data ) and apply a compensation (I af ) to the error signal (I err ) based thereon, to at least partially remove an effect of a distortion of the current measurement caused by the modulation of the data symbols into said current flowing through the illumination source (I LED ) by means of the compensation (I af ).', '13. The apparatus (16) of any preceding claim, wherein the current controller (22) and coded light injector (24) are implemented in software arranged to run on one or more processing units of an LED driver, whilst said power circuitry (26) is implemented in dedicated hardware circuitry.']