Abstract:
A method used in the receiver of a communication system is provided to suppress narrow band interferences, known as ingress, that are present in the communication channel, which is shared by a plurality of transmitters each having a channel pre-equalizer, by means of a Time Division Multiple Access (TDMA) scheme or Synchronous Code Division Multiple Access (SCDMA) scheme. The method comprises filtering the interferences using Infinite Impulse Response (IIR) notch filters, and providing IIR all-pass filters devised to compensate for substantially all phase distortions introduced by the notch filters. The method also includes an algorithm to detect the narrow band interferences and an adaptive equalizer to equalize the channel by computing the coefficients of the transmitters&#39; pre-equalizers, and arranged such that the equalization of the channel is isolated from the suppression of the interferences.

Description:
[0001]    This invention relates to a method for use in a receiver of a communication system for suppressing one or several narrow band interferences present in a communication channel 
       BACKGROUND OF THE INVENTION 
       [0002]    Narrow band interferences also referred to as Ingress are often present in the return path of cable systems. Ingress noise enters the cable system through defective shields, and couples with the signal. It consists of narrow band signals with power as high as +10 dB over the carrier power and bandwidth typically less than 20 KHz. Sources of ingress include ham radio transmissions and therefore can be intermittent. Ingress may slowly drifts in frequency. Channel impairments also include channel amplitude and phase distortions, burst/impulse noises, and thermal noises. 
         [0003]    Cable Modems (CMs) use the return path to transmit short signals, referred to as bursts, to the Cable Modem Termination System (CMTS) located at the head end. The Media Access Control (MAC) layer of the CMTS uses Time Division Multiple Access (TDMA) or Synchronous Code Division Multiple Access (S-CDMA) to control the access to the return path by the CMs, and avoid burst collisions. Transmissions occur inside time slots. The CMs must start transmitting their bursts early enough so they reach the CMTS at the time slots that were allocated to them. The CMTS synchronizes to the incoming bursts prior to extracting the data. Synchronization is facilitated by means of a preamble. The preamble represents a sequence of symbols that is known to the CMTS. 
         [0004]    To facilitate inter-operability between CMTS and CMs, a Standard known as Data Over Cable Service Interface Specification (DOCSIS) and which is employed by many cable operators, was developed to define the communication protocols between CMTS and CMs. In DOCSIS, two modes of operations are used in the return path: ranging and traffic modes. Ranging is used when a CM joins the network and also for periodic maintenance. The process of ranging is similar for TDMA and S-CDMA modes, except that timing synchronization requires higher accuracy in S-CDMA. If TDMA is selected, a CM which has ranged successfully enters the traffic mode to transmit TDMA bursts. Similarly, if S-CDMA is selected, a CM which has ranged successfully enters the traffic mode to transmit S-CDMA bursts. 
         [0005]    Different preambles are used in ranging and traffic modes. In ranging mode the preamble is inserted at the beginning of the burst, and includes a sync sequence and a training sequence. The sync sequence is used by the CMTS to detect the start of the burst, recover timing, measure the signal level, and correct for phase and frequency offsets. The training sequence is used for equalizing the channel. During the ranging mode, the CMTS processes the received burst transmitted by the CM to both measure the CM synchronization parameters (i.e., power level, carrier frequency and timing offsets), and compute the coefficients of the CM pre-equalizer. Following processing of the burst, the CMTS transmits the information back to the CM using the downstream channels, so the CM can adjust its synchronization parameters and configure its pre-equalizer before transmitting a new burst in the return path (i.e., upstream channels). Pre-equalization at the CM allows to cancel the effect of the channel at the CMTS. The CMTS informs the CM to operate in traffic mode when the received burst is determined to be of sufficient quality for communicating in TDMA or S-CDMA, whichever modes has been selected. CMs periodically return to ranging for adjustments of the pre-equalizer coefficients and/or synchronization parameters. 
         [0006]    In TDMA traffic mode, the preamble is inserted at the beginning of the burst, and consists of a sync sequence, that is used to estimate residual timing offset, phase offset and signal level. In S-CDMA traffic mode, the preamble is interleaved with the data, and is used to estimate phase offset and signal level. 
         [0007]    Since ingress does not depend on which CM transmits, it is natural to suppress the narrow band interferences (i.e., ingress) at the CMTS, so in the receiver. There are several methods to suppress the narrow band interferences. One method uses a prediction filter to extract the interferences so they can be subtracted from the communication signal. A prediction filter is an adaptive FIR notch filter whose coefficients can be adjusted using a gradient algorithm such as for example the Least Mean Square (LMS) algorithm. The prediction filter coefficients are usually adjusted when no CM transmits so only ingress noise and broadband noises are present in the channel, or in other words, there is no communication signal. The coefficients are kept unchanged when the CMs transmit. There is provision in the DOCSIS Standard to reserve time slots when no CM transmits to allow adjustments of the prediction filter coefficients. 
         [0008]    The suppression of interferences using a prediction filter when the communication signal is present causes distortions to the communication signal. A Decision Feedback Equalizer (DFE) can be used to compensate for the distortions introduced by the prediction filter. 
         [0009]    An alternative technique to suppress ingress noise is to use an Infinite Impulse Response (IIR) notch filter instead of an FIR notch filter, IIR notch filters can filter interferences with significantly less coefficients than their FIR counterparts. 
         [0010]    IIR notch filters can cause severe distortions to the communication signal, while suppressing the interferences. As in the case of an FIR filter, a DFE can be used to compensate for the signal distortions introduced by the notch filter, as described in the paper by G. Redaelli, et al.:“Advanced Receiver to Dip Ingress Noise in HFC Return Channel”, ISPACS 2000 conference proceedings. 
         [0011]    The cascade of an IIR/FIR notch filter and a DFE is an effective solution to suppress narrow band interferences but has two main problems. Problem 1: Synchronization to the burst signal is required for the DFE to properly operate, however high-power interferences mask the burst signal and must be notched in order to synchronize. Notching the interferences causes severe distortions to the burst, which adds to the distortions caused by the channel. This plurality of distortions renders synchronization very complex to achieve. Problem 2: The DFE simultaneously compensates for both channel distortions and distortions caused by the notch filter. This is expensive to implement as different DFE coefficients are needed for each CM, since channel distortions depend on which CM transmits. Also, the DFE coefficients must be re-computed for each CM every time the interferences change, which adds significant overhead to the system. 
         [0012]    An effective approach to solve problem 1 is to “build” a notch filter that minimizes distortions to the communication signal in order to synchronize. Distortions introduced by an IIR notch filter are mostly phase distortions. A method was proposed to build a zero phase shift IIR notch filter (i.e., a filter which only causes amplitude distortions to the signal) in the paper by J. J. Kormylo, et al., “Two-Pass Recursive Digital Filter with Zero Phase Shift”, IEEE transactions on acoustics; speech, and signal processing, October 1974. As described in Kormylo&#39;s paper, a zero phase shift IIR notch filter can be built from a conventional IIR notch filter by performing a two-pass filtering of the received burst signal through the conventional IIR notch filter, the first pass occurring in the forward direction as the burst signal is received and the second pass in the time reverse direction after receiving the full burst and storing the notch filter output in a memory so it can be read backward from the memory. The output of the second-pass filtering is also stored in memory, since it has to be read backward again for processing the burst. This method is quite expensive and time consuming since it requires two times buffering of the complete burst before the burst can be processed to recover the data. 
         [0013]    An effective approach to solve problem 2 is to isolate/decouple channel equalization from the suppression of interferences. A solution was proposed in the case of a prediction filter in cascade with a DFE in U.S. Pat. No. 7,843,847 (Quigley) issued November 2010 to Broadcom. The coefficients of the prediction filter are adjusted when no CM transmits so only when narrow band interferences are present in the channel. A DFE comprises a feedforward equalizer and a feedback equalizer. The feedback equalizer is used to compensate for the distortions introduced by the prediction filter. This is achieved by setting the feedback equalizer coefficients equal to those of the prediction filter coefficients. The feedforward equalizer is solely used to compensate for the channel distortions. The coefficients of the feedforward equalizer are adjusted during the ranging mode, while feedback equalizer and prediction filter coefficients are kept unchanged. This mechanism allows to decouple channel equalization from ingress noise removal in the case of a FIR notch filter in cascade with a DFE. The coefficients of the feedforward equalizer are sent to the CM for configuration of its pre-equalizer. 
         [0014]    The following references are relevant to this field: 
         [0015]    U.S. Pat. No. 7,843,847 (Quigley) issued November 2010 to Broadcom Corporation discloses a number of features for enhancing the performance of a communication system, in which data is transmitted between a base station and a plurality of subscriber stations located different distances from the base station. The power transmission level, slot timing, and equalization of the subscriber stations are set by a ranging process. Data is transmitted by the subscriber stations in fragmented form. Various measures are taken to make transmission from the subscriber stations robust. The uplink data transmission is controlled to permit multiple accesses from the subscriber stations 
         [0016]    U.S. Pat. No. 7,826,569 (Popper) issued May 2010 to Juniper Networks, Inc. discloses a device for reducing ingress noise in a digital signal, comprising a noise predictor for predicting an amount of ingress noise in the digital signal based on past samples of the ingress noise, and a subtractor for subtracting the predicted amount of ingress noise from the digital signal. Channel distortion is compensated for by a noise-independent equalizer, such as a ZF equalizer, placed upstream of the noise predictor. The device may be incorporated, for example, in a cable modem termination system (CMTS) of an hybrid fiber/coax (HFC) network. 
         [0017]    U.S. Pat. No. 7,716,712 (Booth) issued May 2010 to General Instrument Corporation discloses an adaptive data stream filter which removes narrowband interference from the CATV return path prior to these paths being combined in the network. This provides a method for removing narrowband interference from the CATV return path which detects potential narrowband interference in real-time and adapts a filter to remove this potential narrowband interference. The method uses previously created filters that are combined based on detected interference in an adaptive manner to continually adapt to new interference sources. Another embodiment calculates new filter coefficients for the data stream filter based on detected interference. In another embodiment, two filters are operated in a ping-pong manner for each band of interference identified as above threshold. This enables updating of one filter while another filter is performing the data stream filter operation 
         [0018]    U.S. Pat. No. 6,360,369 (Mahoney) issued March 2002 to Broadcom Corporation discloses a system for the removing of interference (ingress) in cable modems without reducing the data rate or changing the frequency of the signal. A variable band stop filter bank and a non-linear equalization system are used. The band stop filter bank removes ingress while the equalization system, comprising an inner and an outer equalizer, removes the distortion created by the band stop filtering. A spectrum monitor detects both the presence of ingress and its frequency, and then feeds the data to a digital signal processor which calculates the distortion removal settings for the equalizers. 
         [0019]    U.S. Pat. No. 6,285,718 (Reuven) issued September 2001 to Orckit Communication Ltd discloses an apparatus for transmission of high speed data over communication channels including a modulator which modulates an outgoing stream of digital data to generate an outgoing signal, and a demodulator which demodulates an incoming signal to generate an incoming stream of digital data, wherein the modulator comprises a band suppressor for suppressing portions of the outgoing signal which have specified frequencies. 
         [0020]    G. Redaelli, et al.,“Advanced receiver to dip ingress noise in HFC return channel”,  ISPACS  2000  conference proceedings,  2000 
         [0021]    J. J. Kormylo, et al., “Two-pass recursive digital filter with zero phase shift”,  IEEE transactions on acoustics, speech, and signal processing,  October 1974 
         [0022]    M. D. Macleod, “Fast nearly ML estimation of the parameters of real or complex single tones or resolved multiple tones”,  IEEE Transactions on Signal Processing,  January 1998 
         [0023]    A. V. Oppenheim, and, R. W. Schafer, “Discrete-time signal processing”, Prentice-Hall, 1st ed, 1989, chap, 10 
         [0024]    The disclosure of each of the above documents is hereby incorporated by reference. 
       SUMMARY OF THE INVENTION 
       [0025]    According to one aspect of the present invention, the prior art of generating a zero-phase shift IIR notch filter is made simpler by devising an IIR all-pass filter to compensate for nearly all phase distortions introduced by the notch filter. This solution eliminates the need to buffer the signal. 
         [0026]    According to another aspect of the present invention, the IIR all-pass filter was devised to require a relatively small number of hardware resources, which makes it suitable for implementation in a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC). In a preferred embodiment of this invention, only 5 multipliers and 21 adders are required to implement the all-pass filter. 
         [0027]    According to still another aspect of the present invention, a method is proposed to isolate/decouple the equalization of the channel from the suppression of the interferences. 
         [0028]    According to still another aspect of the present invention, an algorithm is provided to detect the narrow band interferences and configure the IIR filters to suppress the detected interferences. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0029]      FIG. 1  is a block diagram of a preferred embodiment of the invention which provides a method to suppress the narrow band interferences in the receiver during the TDMA/S-CDMA ranging modes and the TDMA traffic mode including components arranged to detect the interferences present in the channel during idle times, synchronize to the incoming bursts during the TDMA/S-CDMA ranging modes, compute the pre-equalizer coefficients during the TDMA/S-CDMA ranging modes, recover the data during the TDMA/S-CDMA ranging modes, synchronize to the incoming bursts during the TDMA traffic mode, and recover the data during the TDMA traffic mode. 
           [0030]      FIG. 2  is a block diagram of a preferred embodiment of the Programmable Interference Suppressor (PIS) block shown in  FIG. 1 . The PIS block consists of a cascade of N Interference Suppressor Filter (ISF) blocks, respectively labeled as ISF 1 , ISF 2 , . . . , ISF N . 
           [0031]      FIG. 3  is a block diagram of a preferred embodiment of the Interference Suppressor Filter (ISF) blocks shown in  FIG. 2 . 
           [0032]      FIG. 4  is a block diagram of a preferred embodiment of the IIR All-pass filter block shown in  FIG. 3 . 
           [0033]      FIG. 5  is a block diagram of a preferred embodiment of the invention which provides a method to suppress the narrow band interferences during the S-CDMA traffic mode including components arranged to extract the preambles after de-spreading the incoming S-CDMA burst, and then synchronize, and recover the data. 
       
    
    
     DETAILED DESCRIPTION 
       [0034]    Referring to the block diagram in  FIG. 1 , the input indicated at Input signal  10 , represents the received digital Quadrature Amplitude Modulated (QAM) baseband signal at the sampling rate, where the sampling rate is typically 4 times the symbol rate. This signal is normally obtained by sampling the RF received signal and performing filtering and down-conversions operations which are not shown in  FIG. 1 . Input signal  10  is fed to the Interference Detection (ID) block  11  and Programmable Interference Suppressor (PIS) block  12  by means of Mux indicated at  13 . The ID block  11  is active when no CM transmits and the channel is idle. There is provision in the DOCSIS Standard to prevent CMs from transmitting during arbitrary period of times. These periods of times are referred to in the standard as idle times (see DOCSIS 3.0—MAC and Upper Layer Protocols Interface Specifications). 
         [0035]    At the start of an idle time, the ID block  11  processes the input signal to estimate center frequencies, bandwidths and powers of the interferences present in the channel. No CM transmits during an idle time, so the input signal only consists of the interferences. Detection and characterization of the interferences are performed using an algorithm described as follows. It is an iterative algorithm wherein one of the interferences is detected at a time, then an IIR notch filter in PIS  12  is configured to filter the received signal and suppress the detected interference, then a power measurement of the filtered signal is performed to determine whether interferences are still present and if it is the case, the search for one of the remaining interferences is started again on the filtered signal. Detection and characterization of an interference are performed as follows. It is a multi-stage process. In the first stage, several FFTs of size M1 with M1 integer are computed, and powers and center frequencies of possible interferences are computed at each bin of each measurement by using a frequency interpolation technique. There are several known frequency interpolation techniques. A suitable technique is as described in the paper by M. D. Macleod, “Fast nearly ML estimation of the parameters of real or complex single tones or resolved multiple tones”,  IEEE Transactions on Signal Processing,  January 1998. The power estimates are processed to select a slice of the frequency band, which is determined to contain at least one of the interferences. This portion of the frequency band is extracted by filtering and down-sampling operations. The down-sampling operation increases the frequency resolution and allows to compute better power and center frequency estimates in the next stage. 
         [0036]    Following down-sampling of the communication signal by an integer L1, the second stage consists of computing as in the first stage several FFTs of size M2 with M2 integer (where M2 may be equal to M1) of the down-sampled signal, computing power and center frequencies of possible interferences at each bin of each measurement, and processing the power estimates to select a narrower slice of frequencies within the slice selected in the first stage. This narrower slice is extracted by filtering and down-sampling of the signal by an integer L2 (where L2 may be equal to L1). Additional stages similar to stage 1 and 2 may be used to further “zoom-in”” on the signal spectrum, and this until one of the interferences is detected and its bandwidth is estimated. A final measurement of the center frequency and power of the detected interference is computed by up-sampling by U with U integer the down-sampled signal which contains the detected interference, and taking several FFTs of size M, and computing by frequency interpolation accurate center frequency and power estimates for this interference. 
         [0037]    As illustrated in  FIG. 1  by the dashed arrow joining ID  11  to PIS  12 , the detection and characterization of the interferences by ID  11  involved configuring as many IIR notch filters in PIS  12  as there are interferences to suppress. Configuration of the notch filters consists of selecting pre-computed values for the coefficients; selection which is based on the bandwidth and power estimates computed by ID  11 . A same number of all-pass filters are then configured by selecting the pre-computed values associated with the values that were selected for the IIR notch filters. 
         [0038]    Several other activities occur during an idle time in addition to detecting and characterizing the interferences. Following configuration of the PIS notch and all-pass filters, the output of memory unit indicated at  14  is passed to the PIS block  12  by means of mux  13 . Memory unit  14  outputs a reconstructed baseband signal at the sampling rate of the training sequence of the preamble. U1 output is filtered by PIS  12  and matched filter  15 , which is the filter matched to the signaling pulse, before being down-sampled to the symbol rate using the Down-Sampler (DS) block  16 . This down-sampled signal is essentially the preamble training sequence after being distorted by the PIS block  12 . This “distorted” training sequence is stored in a memory unit indicated at  17 , from which it is passed to a Decision Feedback Equalizer (DFE) block  18  by means of a mux  19  to train the DFE on this newly configured PIS block  12 . The main purpose of the DFE  18  is to compensate for the distortions introduced by the PIS block  12  to the communication signal. The DFE  18  is trained using for example the LMS algorithm. The desired signal to train the DFE is the actual training sequence of the preamble. Training the DFE may require to repeatedly feed the distorted training sequence to the DFE. This is achieved by cycling several times through memory unit  17 . The DFE coefficients obtained are stored in memory for use when the communication signal is present. The input signal  10  is connected back to the PIS block  12  by means of mux  13  upon complete processing of the signal stored in memory  14 . 
         [0039]    Still referring to  FIG. 1 , an idle time is followed by an activity period during which CMs are allowed to transmit. The PIS block  12  is not reconfigured during an activity period, and the coefficients of its notch and all-pass filters remain the same. The duration of an activity periods depends on how long the PIS block  12  can successfully suppress the interferences without changing its configuration. This depends on the frequency drift of the interferences, and the rate at which new interferences appear. The intermittent disappearance/reappearance of the interferences that are currently filtered by the PIS is not an issue, since these interferences are strongly notched by the PIS block  12 . 
         [0040]    Again referring to  FIG. 1 , two types of bursts are received during an activity period: ranging bursts and traffic bursts. Ranging bursts are fed to the PIS block  12 , then the matched filter  15 , then a Burst Detection (BD) block  20  which detects the start of the burst by processing the preamble, and then the Burst SYNChronization (BSYNC) block  21  which recovers timing, measures/adjusts the signal level, provides coarse estimates of frequency and phase offsets, digitally re-samples the signal, down-samples the resampled signal to the symbol rate, and de-rotates the down-sampled signal using the coarse frequency and phase estimates. The de-rotated symbols corresponding to the training sequence are passed to the Adaptive Equalizer  22 , which is used to compute the coefficients of the pre-equalizer in the transmitter. The desired signal to train the adaptive equalizer is the distorted training sequence provided by memory unit  17 . Using this sequence as opposed to the actual training sequence, allows the system to isolate/decouple the equalization of the channel from the suppression of the interferences. The LMS algorithm may be used to train the adaptive equalizer  22 . A Phase-Locked Loop (PLL) indicated at  23 , which is internal to the adaptive equalizer, compensates for residual frequency offsets. The computed values for the coefficients of the adaptive equalizer are transmitted to the CM so the CM may configure its pre-equalizer. 
         [0041]    The payload of the ranging burst may be extracted using the output of the adaptive equalizer  22 , in which case the output is passed to the slicer  26  to recover the QAM data, by means of mux  25 . Also, the coefficients of the adaptive equalizer are kept unchanged during reception of the payload, and the PLL  23  corrects for residual frequency offsets. 
         [0042]    The output of the adaptive equalizer  22  may not be sufficiently reliable for properly detecting the payload, especially in the early stages of ranging. The DFE block  18  may then be used in place of the adaptive equalizer  22  to extract the payload. In this case, the output of the BSYNC block  21  is fed to the DFE  18  by means of Mux  19 , and its coefficients are reset to the values obtained by training the DFE  18  in the idle time that preceded this activity period. The coefficients of the DFE  18  get adjusted using the LMS algorithm during reception of the preamble training sequence so the DFE also compensates for the distortions introduced by the channel. The output of the DFE is passed to the slicer  26  by means of mux  25 . A PLL indicated at  24 , which is internal to the DFE, is used to correct for residual frequency offsets. 
         [0043]    Still referring to  FIG. 1 , TDMA traffic bursts are handled as follows. Traffic bursts are passed to the PIS  12 , then the matched filter  15 , then the BD  20  and BSYNC blocks  21 . The adaptive Equalizer  22  is not used in traffic mode. The DFE  18  may or may not be used. If the DFE  18  is used, then its coefficients are reset to the values obtained by training the DFE in the idle time that preceded this activity period. The DFE coefficients may be adjusted during reception of the payload by using the LMS algorithm in decision-directed mode. If the DFE  18  is not used, then its feedforward linear filter may be used in decision-directed mode in combination with the LMS algorithm to compensate for timing drift during reception of the burst. 
         [0044]    Referring to  FIG. 2 , the PIS block  12  in  FIG. 1  consists of a cascade of N Interference Suppressor Filter (ISF) blocks  12 A to  12 N, labeled as, ISF 1 , ISF 2 , . . . , ISF N . An ISF block removes one of the interferences. A cascade of N ISF blocks allow to remove N interferences. A mux indicated at  12 M is configured so the PIS block  12  suppresses either 0, 1, 2, . . . , or N interferences. 
         [0045]    Referring to  FIG. 3 , a preferred embodiment of the ISF blocks shown in  FIG. 2 , for example block  12 A, consists of a cascade of an IIR Notch filter  27  and an IIR all-pass filter  28 . The all-pass filter  28  is “matched” to the notch filter  27  in the sense that it compensates for the phase distortions introduced by the notch filter. The interference to be notched, say interference number i, is shifted to DC by multiplying the input signal by the complex operand, e −jzπf     t     n  where f i  is an estimate of the center frequency of interference number i, which was provided by the ID block  11  shown in  FIG. 1 . The all-pass filter output, z[n], is shifted in frequency by multiplying it with e −jzπf     t     n . 
         [0046]    The notch filter output, y[n], is given by 
         [0000]    
       
         
           
             
               
                 
                   v 
                    
                   
                     [ 
                     n 
                     ] 
                   
                 
                 = 
                 
                   
                     x 
                      
                     
                       [ 
                       n 
                       ] 
                     
                   
                   - 
                   
                     
                       ∑ 
                       
                         l 
                         = 
                         1 
                       
                       L 
                     
                      
                     
                       ( 
                       
                         
                           
                             ? 
                           
                            
                           
                             x 
                              
                             
                               [ 
                               
                                 n 
                                 - 
                                 l 
                               
                               ] 
                             
                           
                         
                         - 
                         
                           
                             ? 
                           
                            
                           
                             v 
                              
                             
                               [ 
                               
                                 n 
                                 - 
                                 l 
                               
                               ] 
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
               , 
               
                 
 
               
                
               
                 
                   ? 
                 
                  
                 
                   indicates text missing or illegible when filed 
                 
               
             
              
             
                 
             
           
         
       
     
         [0047]    where c l  and d l  are real coefficients. Values for c l  and d l  are pre-computed and stored in memory for different ranges of bw i  and p i . 
         [0048]    The all-pass filter output, z[n], is given by 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         z 
                          
                         
                           [ 
                           n 
                           ] 
                         
                       
                       = 
                       
                         
                           y 
                            
                           
                             [ 
                             
                               
                                 
                                   n 
                                 
                                 
                                   P 
                                 
                               
                             
                             ] 
                           
                         
                         + 
                         
                           
                             ? 
                           
                            
                           
                             ? 
                           
                            
                           
                             y 
                              
                             
                               [ 
                               
                                 
                                   
                                     n 
                                   
                                   
                                     l 
                                   
                                 
                               
                               ] 
                             
                           
                            
                           
                               
                           
                            
                           
                             ? 
                           
                            
                           
                             ? 
                           
                            
                           
                             z 
                              
                             
                               [ 
                               
                                 
                                   
                                     n 
                                   
                                   
                                     l 
                                   
                                 
                               
                               ] 
                             
                           
                         
                       
                     
                     , 
                     
                       
 
                     
                      
                     
                       
                         ? 
                       
                        
                       
                         indicates text missing or illegible when filed 
                       
                     
                   
                    
                   
                       
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where k l , l=1, . . . , P are real coefficients. 
         [0049]    Each notch filter has a corresponding all-pass filter, and thus coefficients k 1 , . . . , k P  of the all-pass filters are pre-computed for each notch filter. The calculation of these coefficients involves the numerical evaluation of an equation that uniquely relates the magnitude and phase of a complex cepstrum signal that is causal. Such equation, which can be found in Section 10.3 of the first edition of the textbook by A. V. Oppenheim, and, R. W. Schafer, “Discrete-Time Signal Processing”, Prentice-Hall, 1989, is reproduced as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         log 
                          
                         
                             
                         
                          
                         
                           ? 
                         
                          
                         
                            
                           
                             C 
                              
                             
                               ? 
                             
                           
                            
                         
                       
                       = 
                       
                         
                           
                             1 
                             
                               2 
                                
                               π 
                             
                           
                            
                           
                             
                               ∫ 
                               
                                 - 
                                 π 
                               
                               π 
                             
                              
                             
                               ? 
                             
                           
                         
                         &lt; 
                         
                           
                             C 
                              
                             
                               ( 
                               
                                  
                                 
                                   j 
                                    
                                   
                                       
                                   
                                    
                                   θ 
                                 
                               
                               ) 
                             
                           
                            
                           cot 
                            
                           
                               
                           
                            
                           
                             ? 
                           
                            
                           
                             ( 
                             
                               
                                 ω 
                                 - 
                                 θ 
                               
                               2 
                             
                             ) 
                           
                            
                           
                              
                             θ 
                           
                         
                       
                     
                     , 
                     
                       
 
                     
                      
                     
                       
                         ? 
                       
                        
                       
                         indicates text missing or illegible when filed 
                       
                     
                   
                    
                   
                       
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0050]    where Ĉ(e † jω)=□ log □|C(e † jω|+j∠C(e P jθ) is the Fourier transform of the complex spectrum, ĉ[n], of a causal sequence, c[n]. Using equation (2), the magnitude of the complex cepstrum signal is evaluated at M evenly spaced frequency points, 0,2π/M. 4π/M, . . . , 2π(M−1)/M, where M&gt;P, after taking ∠C(o jθ ) equal to the phase response of the notch filter times a constant. Magnitude and phase vectors of Ĉ(e jω ) are generated, where the phase vector is obtained by evaluating the phase response of the notch filter times a constant at the same frequency points as the ones used to construct the magnitude vector. Taking the inverse Discrete Fourier Transform of 
         [0000]    
       
         
           
             exp 
              
             
                 
             
              
              
              
             
               { 
               
                 
                   C 
                   _ 
                 
                  
                 
                     
                 
                  
                 
                   ? 
                 
                  
                 
                    
                   
                     j 
                      
                     
                         
                     
                      
                     ω 
                   
                 
                  
                 
                   ? 
                 
                  
                 
                   
                      
                     
                       ω 
                       = 
                       
                         
                           2 
                            
                           π 
                            
                           
                               
                           
                            
                           m 
                         
                         M 
                       
                     
                   
                   } 
                 
                  
                 
                   
 
                 
                  
                 
                   ? 
                 
                  
                 
                   indicates text missing or illegible when filed 
                 
               
                
               
                   
               
             
           
         
       
     
         [0000]    using the magnitude and phase vectors computed previously, produces values for c[n] at n=0, . . . , M−1. Coefficients k 1 , . . . k P  are set equal to k l =c[l] for l=1, . . . , P. 
         [0051]    For the all-pass filter  28  to have a phase response that well approximates the negative of the notch filter phase response requires P to be large. This renders the implementation of the all-pass filter  28  non practical unless some sort of approximation can be made. For example, P=100 requires 100 multiplications and 200 additions per filter output. 
         [0052]    Good approximate values of coefficients k l , l=1, . . . , P, are obtained with piecewise linear approximations. If the curve, k l , i=1, . . . , P, is linearly approximated by Q segments of equal length where P and Q are chosen such that 
         [0000]    
       
         
           
             P 
             Q 
           
         
       
     
         [0000]    is an integer, then the coefficients, k l , l=1, . . . , P are approximated by 
         [0000]        {circumflex over (k)}   (i−1)P Q−n   =a   i (1) n−a   i (2),  i= 1,  . . . Q, n= 1,  . . . , P/Q    (3)
 
         [0000]    where a i (1) and a i (2) are the coefficients describing segment i, and a i (1) and a i (2) are obtained using a least squares method. Also, coefficients, b i (1) and b i (2), associated with the Q segments approximating the curve, k P−1−l , i=1, . . . , P are given by 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           b 
                           i 
                         
                          
                         
                           ( 
                           1 
                           ) 
                         
                       
                       = 
                       
                         - 
                         
                           
                             a 
                             
                               Q 
                               - 
                               i 
                               - 
                               1 
                             
                           
                            
                           
                             ( 
                             1 
                             ) 
                           
                         
                       
                     
                      
                     
                       
 
                     
                      
                     
                       
                         
                           b 
                           i 
                         
                          
                         
                           ( 
                           2 
                           ) 
                         
                       
                       = 
                       
                         
                           
                             
                               
                                 a 
                                 
                                   Q 
                                   - 
                                   i 
                                   - 
                                   
                                     + 
                                     1 
                                   
                                 
                               
                                
                               
                                 ( 
                                 1 
                                 ) 
                               
                             
                              
                             P 
                           
                           Q 
                         
                         + 
                         
                           
                             ? 
                           
                            
                           
                             ( 
                             2 
                             ) 
                           
                         
                       
                     
                      
                     
                       
 
                     
                      
                     
                       ? 
                     
                      
                     
                       indicates text missing or illegible when filed 
                     
                   
                    
                   
                       
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
         [0053]    Any combinations of P and Q can be used, the smaller the Q, the better, since the less the number of multipliers and adders are required to implement the IIR all-pass filter. 
         [0054]    It is appreciated that the present invention is disclosed using the simplest IIR all-pass filter, which is obtained when Q=1. However, the present invention may also be used for Q&gt;1. The reason for choosing Q=1 is that in practice a single linear approximation does not cause significant performance degradation and the all-pass filter remains stable. 
         [0055]      FIG. 4  is a block diagram of the all-pass filter  28  for the case Q=1. If Q=1, the subscript of a and b in (3) and (4) can be dropped for clarity purposes and (3) and (4) become 
         [0000]        {circumflex over (k)}   n   =a (1) n+a (2),  n= 1, . . . ,  P    
         [0000]        b (1)=− a (1)
 
         [0000]        b (2)= a (1) P+a (2),   (5)
 
         [0056]    Referring to  FIG. 4 , input samples y[n], y[n−1], . . . , y[n−P] are stored in memory  29  and output samples z[n−1], z[n−2], . . . , z[n−P−1] are stored in memory  30 , since from (1) they are needed to compute z[n]. Computation of z[n] involves computing the quantities, y[n]{circumflex over (k)} P , y[n−1]{circumflex over (k)} P−1 , . . . , y[n−P+1]{circumflex over (k)} 1 . But from (5), y[n]{circumflex over (k)} P =−y[n]a(1)+y[n]b(2), y[n−1]{circumflex over (k)} P−1 =−2y[n−1]a(1)+y[n−1]b(2), . . . , y[n−P+1]{circumflex over (k)} 1 =−Py[n−P+1]a(1)+y[n−P+1]b(2). Quantities y[n]b(2) and −y[n]a(1) are computed upon reception of a new sample, y[n]. 
         [0057]    Referring to  FIG. 4 , quantity −a(1)×(y[n]+y[n−1]+ . . . +y[n−P+1]), is stored in accumulator 
         [0000]    
       
         
           
             
               ∑ 
               a 
             
             , 
           
         
       
     
         [0000]    indicated at  31  and quantity, b(2)×(y[n]+y[n−1]+ . . . +y[n−P+1]), is stored in accumulator 
         [0000]    
       
         
           
             ∑ 
             b 
           
         
       
     
         [0000]    indicated at  32 . This is made possible by updating accumulators 
         [0000]    
       
         
           
             
               ∑ 
               a 
             
              
             
                 
             
              
             
               and 
                
               
                   
               
                
               
                 
                   ∑ 
                   b 
                 
                  
                 
                   ? 
                 
               
             
           
         
       
       
         
           
             
               
                 ? 
               
                
               
                 indicates text missing or illegible when filed 
               
             
              
             
                 
             
           
         
       
     
         [0000]    upon reception of a new sample y[n], where the update consists of adding the quantities −y[n]a(1) and y[n]b(2) to accumulators 
         [0000]    
       
         
           
             
               
                 ∑ 
                 a 
               
                
               
                   
               
                
               
                 and 
                  
                 
                     
                 
                  
                 
                   ∑ 
                   b 
                 
               
             
             , 
           
         
       
     
         [0000]    and subtracting the quantities, −y[n−P]a(1), and, y[n−P]b(2) from accumulators 
         [0000]    
       
         
           
             
               
                 ∑ 
                 a 
               
                
               
                 
                   ? 
                 
                  
                 
                     
                 
                  
                 and 
                  
                 
                     
                 
                  
                 
                   
                     ∑ 
                     b 
                   
                    
                   
                     
                       
                         ? 
                       
                       . 
                       
                         
 
                       
                        
                       
                         ? 
                       
                     
                      
                     
                       indicates text missing or illegible when filed 
                     
                   
                 
               
             
              
             
                 
             
           
         
       
     
         [0058]    Similarly, computation of z[n] involves computing the quantities z[n−1]{circumflex over (k)} 1 , z[n−2]{circumflex over (k)} 2 , . . . , z[n−P]{circumflex over (k)} P . But from (5), z[n−1]{circumflex over (k)} 1 =z[n−1]a(1)+z[n−1]a(2), z[n−2]{circumflex over (k)} 2 =2z[n−2]a(1)+z[n−2]a(2), . . . , z[n−P]{circumflex over (k)} P =Pz[n−P]a(1)+z[n−P]a(2). Quantities z[n]a(2) and z[n]a(1) are computed upon computation of filter output z[n]. 
         [0059]    Referring to  FIG. 4 , quantity a(1)×(z[n]+z[n−1]+ . . . +z[n−P]), is stored in accumulator 
         [0000]    
       
         
           
             
               
                 
                   ∑ 
                   a 
                 
                  
                 
                   ? 
                 
               
               , 
               
                 
 
               
                
               
                 
                   ? 
                 
                  
                 
                   indicates text missing or illegible when filed 
                 
               
             
              
             
                 
             
           
         
       
     
         [0000]    and quantity, a(2)×(z[n]+z[n−1]+ . . . +z[n−P]), is stored in accumulator 
         [0000]    
       
         
           
             
               
                 
                   ∑ 
                   b 
                 
                  
                 
                   ? 
                 
               
               , 
               
                 
 
               
                
               
                 
                   ? 
                 
                  
                 
                   indicates text missing or illegible when filed 
                 
               
             
              
             
                 
             
           
         
       
     
         [0000]    This is made possible by updating accumulators 
         [0000]    
       
         
           
             
               
                 ∑ 
                 a 
               
                
               
                 
                   ? 
                 
                  
                 
                     
                 
                  
                 and 
                  
                 
                     
                 
                  
                 
                   
                     ∑ 
                     b 
                   
                    
                   
                     
 
                   
                    
                   
                     
                       ? 
                     
                      
                     
                       indicates text missing or illegible when filed 
                     
                   
                 
               
             
              
             
                 
             
           
         
       
     
         [0000]    upon reception of a new sample y[n], where the update consists of adding the quantities z[n−1]a(1) and z[n−1]a(2) to accumulators 
         [0000]    
       
         
           
             
               
                 
                   ∑ 
                   a 
                 
                  
                 
                   
                     ? 
                   
                    
                   
                       
                   
                    
                   and 
                    
                   
                       
                   
                    
                   
                     ∑ 
                     b 
                   
                 
               
               , 
               
                 
 
               
                
               
                 
                   ? 
                 
                  
                 
                   indicates text missing or illegible when filed 
                 
               
             
              
             
                 
             
           
         
       
     
         [0000]    and subtracting the quantities, z[n−P−1]a(1), and, z[n−P−1]a(2) from accumulators 
         [0000]    
       
         
           
             
               
                 ∑ 
                 a 
               
                
               
                 
                   ? 
                 
                  
                 
                     
                 
                  
                 and 
                  
                 
                     
                 
                  
                 
                   
                     ∑ 
                     b 
                   
                    
                   
                     
                       
                         ? 
                       
                       . 
                       
                         
 
                       
                        
                       
                         ? 
                       
                     
                      
                     
                       indicates text missing or illegible when filed 
                     
                   
                 
               
             
              
             
                 
             
           
         
       
     
         [0060]    Referring again to  FIG. 4 , the output, z[n], is obtained by adding the content of accumulator, 
         [0000]    
       
         
           
             
               ∑ 
               a 
             
             , 
           
         
       
     
         [0000]    to accumulator Σ Z indicated at  33  and summing accumulator Σ 1 , accumulator 
         [0000]    
       
         
           
             
               ∑ 
               b 
             
              
             
               ? 
             
           
         
       
       
         
           
             
               
                 ? 
               
                
               
                 indicates text missing or illegible when filed 
               
             
              
             
                 
             
           
         
       
     
         [0000]    and y[n−P]. Also quantity P×a(1)×(−y[n−P]+z[n−P−1]) must be subtracted from accumulator Σ Z . 
         [0061]    Referring to  FIG. 5 , the input signal  10  consists of an S-CDMA traffic burst, which is typically made of signal bursts transmitted simultaneously from several transmitters using S-CDMA codes. Signal  10  is passed to the PIS block  12 , then the matched filter  15  and the down-sampler  16 . A S-CDMA despreader block  34  despreads the output of the down-sampler using the S-CDMA codes to extract the signal bursts. This is illustrated in  FIG. 5  by showing several arrows leaving the despreader block  34 , where each arrow represents a signal burst. The signal bursts (at the symbol rate) are processed to extract their preamble using a preamble extraction block  35 . The preambles are then used to recover phase and measure/adjust the level of the signal bursts using a phase recovery block  36  and a signal level adjustment block  37 , so the data in each signal burst can be properly recovered using a slicer  38 .