1. Field of the Invention
This invention relates generally to digital communication systems and methods, and more particularly to phase, frequency and gain characterization and mitigation in SCDMA burst receivers using multi-pass data processing.
2. Description of the Prior Art
Data-Over-Cable Service Interface Specifications (DOCSIS) is a standard for data communication over cable TV infrastructure. This standard is published by CableLabs, a North American consortium founded by members of the cable TV industry. DOCSIS 2.0 was published on Dec. 31, 2001, and includes several important modifications to the previous version, 1.1. One of the most important additions is SCDMA mode in the upstream channel, which is discussed herein below.
The cable network consists of multiple clients (CMs—Cable Modems) connected to the central station (CMTS—Cable Modem Termination System). All clients in a certain region share the same cable infrastructure (similar to sharing the radio spectrum in radio transmission).
The cable spectrum is divided into upstream (from the CM to the CMTS, in frequency range 5–42 MHz) and downstream (CMTS to CM, frequency 50 MHz and above). The more complicated part is the upstream, since there are many transmitters, which need to be synchronized in order to avoid collisions.
The physical layer implementation of the upstream receiver, in the CMTS is critical for identification, characterization and compensation of impairments, especially for burst reception applications. The physical layer is described in chapter 6 of the DOCSIS specification, and the upstream is described in sub-chapter 6.2.
Upstream channels are located in the range of 5-42MHz, as stated herein before. In that range, there can be several different channels (FDMA—Frequency Division Multiple Access). Each channel includes many CMs, which transmit short bursts (and not a continuous transmission). The bursts are multiplexed using one of 2 methods:
When transmitting in SCDMA, the time line is divided into frames. Each frame has 128 rows, wherein each row corresponds to a different code. Each column in the frame is called a spreading interval. The number of spreading intervals per frame (abbreviated spif) can change, depending on the transmission parameters.
The number of cells in each frame is spif*codes_num. In each cell in the frame there is a single symbol, which is represented as a complex number, or an I-Q pair (In-phase and Quadrature, or real and imaginary parts), and matches the constellation chosen for the burst.
Each CM that wants to transmit is assigned a certain number of mini-slots. Each mini-slot consists of a number of codes in a specific frame.
Before transmitting, the frames are passed through a spreader. The spreader takes each spreading interval (a vector of 128 symbols), and multiplies it with the spreading matrix—a matrix the size of 128×128:
pk=sk·C
Each row in the spreading matrix C is a code, and each entry is +1 or −1. The codes are orthogonal, so C is invertible:
The sk term is a vector which contains the 128 information symbols of the k'th spreading interval.
The result of the multiplication, pk, is a vector of chips.
The chips are then transmitted sequentially. All the CMs that were allocated mini-slots in the current frame transmit their chips simultaneously; hence the chips received in the CMTS receiver are the sum of all transmitted chips.
The receiver multiplies the received chips with the inverted spreading matrix Ct, and restores the original transmitted symbols. This action is done in the despreader:
Note that the resulting symbols vector {circumflex over (s)}k is the sum of all the vectors of the transmitting CMs; but since each CM is assigned different rows, there's no collision between symbols. For example, if CM #1 is assigned codes 0 through 63, and CM #2 is assigned codes 64 through 127, then sk1 is only non-zero in indices 0 . . . 63, and sk2 is in indices 64 . . . 127, so there's no collision in ŝk (which is the sum of both vectors).
The basic idea behind spreading is to “spread” the signal on a larger frequency span. After despreading, the signal is back to its original from, and added narrowband interferences are “spread”, as shown in
Each burst begins with a set of pre-defined symbols, called a preamble. The preamble enables the receiver to obtain a rough estimation on the burst's impairments, such as gain, phase and frequency offsets, by comparing the received symbols to the known preamble symbols that were actually transmitted.
In summary explanation of the above, a high-level receiver algorithm
a. Processes the preamble to get an initial estimate of the gain, frequency and phase offsets;
b. Passes the burst through the big-loop for a fine track and fix of the gain, phase and frequency offsets. The “fixed” symbols are written back to the deframer's memory; and
c. Outputs the burst for symbol de-mapping and channel decoding.
The transmitted signal is modulated over a carrier frequency. Synchronization mismatch between the transmitter and the receiver may cause phase and frequency offsets in the received signal. Unless dealt with, these offsets will cause errors in the transmission.
Phase offset causes all the received symbols to appear with a constant phase shift. Frequency offset causes the symbols to appear with a changing phase shift, as can be seen in
Phase and frequency offsets are parameters that can be tracked from the received symbols, using a Phase Lock Loop (PLL).
Without the 2nd order loop (frequency estimation, shown in the lower part of
The design of the basic PLL is based on the assumption that the symbols are entering the loop in the same order as they were transmitted. This is especially important for the frequency estimation, as we can see that the frequency correction is added to the phase estimation in every clock tick (i.e. new symbol).
When using SCDMA, the phase and frequency offsets affect the chips instead of the symbols. However, using an ordinary PLL on the chips (before despreading) is impossible, since it requires slicer decisions while the chips are scattered and does not comply with a constellation; so there's no way to estimate the phase offset of each chip.
Using a PLL after the despreader poses a new problem: the symbols are organized in frames, and are no longer serial in time. Without spreading, a frequency offset is manifested in a linear change of the phase, but after the despreader one sees a different picture:
In
In
The result is groups of 128 symbols with approximately the same phase, and the phase difference between successive groups is 128×phase_offset_per_chip. This complicates the phase offset tracking since the loop needs to track an impairment 128 times larger than it should have, in case SCDMA was not used. Also, since the “adding” of a frequency offset is not a linear action (multiply each chip by a growing exponent), one cannot model the change in phase as a linear process.
In view of the foregoing, it is both desirable and advantageous to provide a mechanism for phase and frequency tracking in a SCDMA channel that overcomes the above problems. This mechanism should provide phase, frequency and gain characterization and mitigation in a SCDMA burst receiver via use of dedicated phase and frequency correction loops implemented to deal with the unique characteristics of a SCDMA signal.
DOCSIS 2.0, the new standard for cable upstream transmission, added SCDMA to the allowed modulation schemes. The present invention is directed to a scheme to provide phase, frequency and gain characterization and mitigation in a SCDMA burst receiver via use of dedicated phase and frequency correction loops implemented to deal with the unique characteristics of a SCDMA signal. The way coded and un-coded bits are interleaved within a given frame requires that all symbols related to that frame be captured in a dedicated storage medium such as a RAM prior to the beginning of the data processing. The present invention substantially eliminates gain, phase, and frequency mismatch, among other impairments caused by the transmitter, channel and analog parts of the SCDMA burst receiver.
Since the incoming SCDMA burst receiver data is saved in a frame, multiple passes can be performed on the data. The first pass can be used to produce initial characterization of the phase, frequency and gain offsets affecting the incoming signal; where the second pass can be used to more accurately estimate those impairments (using a smaller step size in a LMS algorithm), and compensate for those impairments.
According to one embodiment, multiple passes are performed on the received sequence. The first pass can be used to achieve a good characterization of the various impairments; and the last pass would use the information obtained from previous passes to properly correct the impairments. Each pass may be performed column-wise or row-wise. By performing the pass column-wise, all the symbols related to the same spreading interval are analyzed sequentially, resulting in higher capability to characterize phase offset. By performing the pass row-wise, each symbol is related to a different spreading interval that was transmitted in a different time, resulting in higher capability to characterize frequency offset.
As used herein, the following terms have the following meanings:
Other aspects and features of the present invention and many of the attendant advantages of the present invention will be readily appreciated as the invention becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawing figures thereof and wherein:
a illustrates passing symbols to a PLL row after row;
b illustrates passing symbols to a PLL column after column;
While the above-identified drawing figures set forth particular embodiments, other embodiments of the present invention are also contemplated, as noted in the discussion. In all cases, this disclosure presents illustrated embodiments of the present invention by way of representation and not limitation. Numerous other modifications and embodiments can be devised by those skilled in the art which fall within the scope and spirit of the principles of this invention.
The goal of the ploop module 18 is to estimate the phase offset affecting the incoming signal, and use it to predict the rotation angle needed to correct this impairment. The ploop module 18 inputs are the slicer module 16 outputs (hard-decision) and input (soft-decision). The slicer module 16 processing time is 1 clock cycle. Therefore, in order to synchronize both signals, the slicer module 16 input is delayed by one cycle as well, calling it slicer_in_p (enumerated 21, and where p indicates pipeline).
The ploop module 18 then uses its inputs to determine the symbol's phase offset, and uses this data to estimate the phase offset needed for the symbol now entering the Rotator module 14. This estimate (called phase_error) 24 is passed to the Rotator module 14. The Rotator module 14 employs a lookup table (sin_lut) to calculate necessary sine and cosine values for rotating the symbol. Due to hardware considerations, each module has its own processing delay as shown in Table I.
Control signals shown in
As described herein before, when the big-loop 10 starts its operation, the frame had already passed the despreader (shown in
Two Passes
Each frame is passed through the big-loop 10 twice. In the first pass, the goal is to “train” the loop 10 by tracking the phase and frequency offsets of the burst, without writing the corrected symbols back to the deframer. This allows the loop to train on the entire burst before making any changes. In the second pass, smaller learning factors are taken (to reduce loop jitter), and the symbols will be changed according to the trained loop.
Passing by Rows or Columns
In a conventional PLL, symbols entering the loop are chronologically sequential. In the present case, the symbols are arranged in a 2-dimensional frame. Each column (spreading interval) contains symbols transmitted in the same time (and hence has approximately the same phase offset, see
1. Rows pass—Pass the symbols to the loop 10 row after row, while maintaining a one spreading interval distance between sequential symbols. In this method, each two sequential symbols have a phase difference between them (except at the end of the rows).
2. Columns pass—Pass the symbols to the loop 10 column after column.
In order to estimate the frequency offset, it is necessary to look at symbols that differ in phase as a result of the frequency offset (i.e. symbols from different spreading intervals). In rows pass, almost every two successive symbols have this difference, while in columns pass, this difference is seen only once per spreading interval. Hence, better frequency convergence can be expected when using rows pass.
On the other hand, since in columns pass there are less frequency “events”, better phase convergence can be expected.
Frequency Update in Columns Pass
As stated herein before, when using a columns pass, the effect of a frequency offset is only felt once per spreading interval. Therefore, there can be two approaches towards the 2nd order of the ploop 18 (the frequency offset):
1. The conventional PLL approach—update the 2nd order (i.e. the frequency correction accumulator) each time a new symbol arrives.
2. Update the 2nd order only in a “frequency event” i.e. when we pass from one column to the next. According to this approach, symbols in the same column are not affected by a frequency offset, and so only the 1st order of the loop is needed. At the end of each column, check the total change of the 1st order over the column (by comparing the phase accumulator at the end and beginning of the column). This change is the frequency error, which will be taken into account when updating the frequency accumulator.
Loop Delay
The phase loop (rotator-slicer-ploop-sin_lut-rotator) shown in
The result is a division of the ploop 18 into 2 stages as shown in
1. An input stage 30, which needs to be synchronized with the symbols at the input of the ploop (i.e. slicer output), thus using control signal control_p3.
2. An output stage 32, which needs to be synchronized with the symbol entering the rotator (p1), while taking into consideration the delay of the sin_lut (1 cycle) and the ploop itself (1 cycle), thus using control signal control.
The timing difference between the inputs of the input and output stages 30, 32 (control and control_p3) is 4 clock cycles—the total delay of the loop.
A detailed description directed to one embodiment of a loop is now presented herein below in view of the basic processing paradigms discussed herein above, which are the heart of the invention. In order to enhance clarity, this detailed description is divided into sections describing each component of the loop.
Fixed-Point Values
All values are passed in fixed-point representation, and as such have two important parameters—the bus width (in bits) and the max-level. For example, the value q_slicer_in is 9-bit with max-level of 32. This means that it's represented as shown in
Error Discriminator
The Error Discriminator 34 portion of the phase loop module 10 (depicted in
where sym_in and sym_out represent the symbol in the slicer's input and output respectively (reminder—i_slicer_in is the real value of the symbol in slicer_in, and q_slicer_in is its imaginary value).
The phase error is multiplied by constant factors (called step sizes) along the way, in order to reduce noise effect (much like a conventional PLL). Actually, since all the constant factors are powers of 2, multipliers are not utilized, and the only effect of the multiplication is the change in the max-level of the fixed-point values.
Accumulators' Step Sizes
The step sizes 40, 42, shown in
The frequency accumulator 50, identified in
Phase Accumulator
The phase accumulator 60, identified in
When updating the 2nd order only in a “frequency event” such as discussed herein before (frequency update), it is necessary to calculate the difference in phase between consecutive spreading intervals. This phase difference calculation sub-module 70, identified in
Control Signals
As stated herein before, the control signals, described herein below, come with 2 different timing delays, for the input and output stages, and marked p3 and p0 respectively, where
In view of the above, it can be seen the present invention present a significant advancement in the characterization and mitigation of impairments associated with SCDMA burst receivers. It should be apparent that the present invention represents a significant departure from the prior art in construction and operation. However, while particular embodiments of the present invention have been described herein in detail, it is to be understood that various alterations, modifications and substitutions can be made therein without departing in any way from the spirit and scope of the present invention, as defined in the claims which follow.
Number | Name | Date | Kind |
---|---|---|---|
7020165 | Rakib et al. | Mar 2006 | B2 |
20030185284 | Yousef et al. | Oct 2003 | A1 |
20040037217 | Danzig et al. | Feb 2004 | A1 |
Number | Date | Country |
---|---|---|
1 235 402 | Aug 2002 | EP |
Number | Date | Country | |
---|---|---|---|
20040228391 A1 | Nov 2004 | US |