High-speed data communications require a high bandwidth channel. Optical fiber is one medium that provides high bandwidth. Optical systems send digital pulses at a high race, e.g., 10 Gb/s. Ideally, the pulses that are transmitted are received as sent at the other end of the optical pipe. However, optical modulators frequently display a non-linear performance characteristic. If left uncompensated, the effects of the non-linearity of the modulator can degrade signal quality significantly enough to cause lose or corruption of data sent along an optically based network.
According to an aspect of the invention a method includes providing a multi-port memory having a plurality of read ports. The multi-port memory stores modulator distortion compensation values associated with a modulator of an optical device. The method includes processing an input signal using the values in the multi-port memory to generate an output signal for transmission on the optical link.
Advantages of the invention may include one or more of the following. The use of an electronic modulator distortion compensation unit that pre-compensates for distortions generated by a modulator of an optical device eliminates the expense of fiber and optical equipment on the optical links. The electronic modulator distortion compensation module provides a software programmable solution than is highly flexible The use of a multi-port memory saves on die area and power of an integrated circuit as compared to the use of a single-port or dual-port memory. The use of multiple multi-port memories to process parallel sets of data advantageously provides for a high throughput of data in an efficient manner. The details of one or more examples are set forth in the accompanying drawings and the description below. Further features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
Referring to
The transmit device 104 receives an input electrical signal from a source (e.g., a SFI-4 (SERDES to Framer Interface, Level 4) input interface for an OC-192 or G.709 transmit data stream) and passes the input electrical signal to a dispersion compensation filter 112. The dispersion compensation filter 112 filters the input electrical signal using a complex dispersion compensation impulse response cD(t) to generate a dispersion-compensated electrical signal. A modulator distortion compensation unit 114 receives the dispersion-compensated electrical signal and uses a modulator compensation function cM(t) co process the input electrical signal and generate a pre-distorted input electrical signal. The pre-distorted input electrical signal is converted to a corresponding pre-distorted optical signal by an electrical-to-optical converter (e.g., an optical source 116 coupled to an optical modulator 118) and transmitted to the receive device 106 over the optical transmission path 102. The receive device 106 includes an optical-to-electrical converter chat detects the optical signal received over the optical transmission path 102 and generates a corresponding output electrical signal.
The dispersion compensation filter 112 compensates for chromatic dispersion effects in the optical transmission path 102, while the modulator distortion compensation unit 114 compensates for distortions produced by the non-linear performance characteristics of the optical modulator. By compensating for both dispersion and modulator distortion, the output electrical signal generated by the receive device 106 is nominally equivalent to the input electrical signal received by the transmit device 104.
Referring to
Conceptually, the dispersion compensation filter 112 operates on the input data stream using two high-speed filters to generate two distinct output data streams: one 6-bit I (real) output data streams and one 6-bit Q (imaginary) output data scream. In the example of
Referring also to
The central 12 samples, e.g., samples −6 to +6, of the 76-sample window form an address (i.e. sample +6 represents the least significant bit and sample −6 the most significant bit of the address) to the lookup table 404 of the functional unit 402. The lookup table 404 stores dispersion compensation values that are pre-calculated output values of the compensation impulse response CD(t) based on a number of input values. The functional unit 402 performs a lookup operation of the lookup cable 404 and retrieves an 8-bit value corresponding with the address. The retrieved 8-bit value represents a non-linear component of the final functional unit output. The functional unit 402 adds the retrieved 8-bit value to the 12-bit string generated by the linear adder trees and generates a 12-bit string representing a high resolution functional unit output. In one implementation, the functional unit 402 scales and clips the high resolution functional unit output to generate a 6-bit string representing the output data sample IODD1.
The 76-sample observation window of data operated on by the functional unit 204a is simultaneously (i.e., in the same clock cycle) operated on by the functional unit 204c used to generate the output data sample QODD1.
To compute the next output data sample (i.e., IEVEN1 and QEVEN1), the 76-sample observation window is shifted by 1 sample with respect to the previous window and the sample values are provided to the respective functional units 204b, 204d used for generating the output data samples IEVEN1 and QEVEN1.
The output data samples generated by the dispersion compensation filter 112 collectively represent the I and Q components of a dispersion-compensated electrical signal 220. The complex dispersion-compensated electrical signal 220 is provided to the modulator distortion compensation unit 114 as input data.
The modulator distortion compensation unit 114 processes the dispersion-compensated electrical signal to produce a non-linearly pre-compensated electrical signal which is used to drive the optical modulator 118. The non-linear performance characteristics of an optical modulator are typically well characterized. Accordingly, a modulator compensation function cNn(x1,x2, . . . ,xN), where n-1,2, . . . ,N can be derived for a N-dimensional non-linear optical modulator and applied to a signal to prevent signal distortion and consequential data corruption.
Modulator compensation functions are highly dependent on the type of optical modulators used in (or by) the transmit device 104. In general, for a N-dimensional optical modulator, N compensation functions are required. Each compensation function includes N inputs (x1,x2, . . . ,xN) and 1 non-linearly dependent output yn. To reduce complexity and to optimize hardware speed, it is convenient to pre-calculate the output values of each compensation function for a limited number of combinations of input values and to store the results in N lookup tables.
In the examples of
In one example, the lookup tables (cM1(x1,x2) and cM2(x1,x2)) 222 are implemented using multiple multi-port RAMS 222. Using multi-port RAMs 222 significantly reduces the number of lookup tables required in a system where a large number, in this case 64 complex electrical samples are processed in parallel. Instead of 64 copies of the lookup cables (cM1(x1,x2) and 64 cM2(x1,x2)), the number of copies of the lookup tables (CM1(x1, x2) and cM2(x1,x2)) can be reduced by a factor equal to the number of read ports. e.g. to 8 cM1(x1,x2) and a cM2(x1,x2) copies if 9-port RAMS, which feature 8 read ports, are used.
Each read port provides a 12-bit address interface which is shared by the I and Q parts of the input electrical signal. For example, a 12-bit address can be formed by concatenating 6 bits front the I signal path and 6 bits from the Q signal path. The modulator distortion compensation unit 114 performs a lookup operation of a lookup table and retrieves an 8-bit value corresponding to this address. Each retrieved 8-bit value represents a modulator distortion compensation value associated with a distortion in the magnitude or phase of a signal modulated by the optical modulator 118 which in this example, is a 2-dimensional optical modulator) in the system 100. The retrieved 8-bit values collectively represent A and B components of the pre-distorted input electrical signal 224 that compensates for both dispersion and modulator distortion.
The pre-distorted input electrical signal 224 is provided to a multiplexer 226 that passes the resulting A and a components of the pre-distorted input electrical signal 228 to the optical modulator 118. The optical modulator 118 modulates the magnitude and phase of the light generated by the optical source 116 in response to the A and B components of the pre-distorted input electrical signal 228 and converts the pre-distorted input electrical signal into a corresponding optical signal with real part I′ and imaginary part Q′. The optical signal is transmitted to the receive device 106 over the optical transmission path 102. Various methods can be used to derive the compensation functions cD(t) and cM(t) deterministically and/or adaptively, using known techniques. In one example shown in
In one implementation, the 9-port RAMS 222 operate in either “micro” mode or “datapath” mode. The 9-port RAMS 222 operate in memory space pairs, e.g., memory space 1 and memory space 2, where only one memory space is active in datapath mode. When the 9-port RAMS 222 are in micro mode, the coefficients in each read port may be updated by the microprocessor 214. When the 9-port RAMS 222 are in datapath mode, the memory addresses are the values of the data in the data path, and any attempted writes will not occur. In this manner, the coefficient updates of the 9-port RAMS 222 may be performed without causing any discontinuity in the processing of the input data stream. That is, the coefficient update is a synchronous operation in which the 9-port RAMs 222 switch between memory space 1 and memory space 2 on consecutive clock cycles.
The examples of
The systems described herein can be implemented in digital electronic circuitry, in computer hardware, or in combinations of them. The systems described herein can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a processing device, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled, assembled, or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one sire or distributed across multiple sires and interconnected by a communication network.
Particular embodiments have been described, however other embodiments are within the scope of the following claims.