Abstract:
A crest reduction system and method. The inventive system includes a first circuit for suppressing peak amplitudes of an input signal and providing a peak amplitude suppressed signal in response thereto and a second circuit coupled to the first circuit for rejecting intermodulation distortion in the amplitude suppressed signal. In the illustrative implementation, the first circuit is a peak amplitude suppressor having circuitry for computing an amplitude of the input signal and for computing a gain factor for the input signal in response thereto. In the best mode, the gain factor is obtained from a lookup table. The peak amplitude suppressor further includes a multiplier for applying the gain factor to the input signal. In the illustrative embodiment, the second circuit includes a plurality of bandpass filters and a summer for combining the outputs thereof.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of U.S. Provisional Application No. 60/616,716, filed Oct. 7, 2004, the disclosure of which is incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to electrical and electronic circuits and systems. More specifically, the present invention relates to systems and methods for reducing crest factor in electrical and electronic circuits and systems. 
     2. Description of the Related Art 
     In Multi-Carrier Power Amplifier (MCPA) communication transmission applications, multiple carriers are typically combined in the baseband, intermediate frequency (IF) or radio frequency (RF) frequency range and the resulting signal is transmitted using a single power amplifier. An objective for MCPA transmission is to transmit a signal at a very high efficiency while maintaining a low Adjacent Channel Power Ratio (ACPR) to meet spectral mask requirements. ACPR is defined as the ratio of power in a bandwidth away from the main signal (the distortion product) to the power in a bandwidth within the main signal. The bandwidths and locations are functions of the standards being employed. 
     To achieve high efficiency power amplifier (PA) transmission, it is desirable to use semi-non-linear PAs, such as Class A/B PAs. A challenge for MCPA signal transmission is due to the fact that the combined signal has a high crest factor (ratio of peak power to average power), where the peak power is significantly higher than the average power. A small portion of the combined signal can have very high peaks and when transmitted at high PA efficiency, these high-level signals reach into the saturated region of the PA&#39;s transfer function and the output of the PA has high intermodulation distortion (IMD). The high IMD level raises the ACPR levels. 
     To maintain low ACPR without any linearization techniques, the transmit signal level must be decreased sufficiently so that the peak amplitudes are not in the saturated zone of the PA, but this reduces the amplifier efficiency. For example, a four carrier W-CDMA (wideband code division multiple access) signal can have a crest factor exceeding 13 dB. If the crest factor is reduced by about 6 dB, the average power can be increased by 6 dB thus increasing the power efficiency by a factor of 4. 
     One conventional approach to this problem is to limit the amplitude of either the baseband signal or the RF signal output of each channel using a look-ahead approach. However, it is difficult to generate signals with low crest factor and low ACPR inasmuch as limiting the amplitude increases out of band emissions (e.g. sidelobes) and thereby raises the ACPR level. While, efforts to reduce the ACPR levels generally increase crest factor. 
     Another prior approach involves the use of unused CDMA codes to reduce the crest factor in the output signals. However, this approach requires knowledge of what is being transmitted so that the unused codes can be identified. This adds to the complexity, storage requirements and cost of the system. 
     Hence, a need remains in the art for an improved system or method for reducing the crest factor in communications systems while maintaining a low ACPR therefor. 
     SUMMARY OF THE INVENTION 
     The need in the art is addressed by the crest reduction system and method of the present invention. In a most general embodiment, the inventive system includes a first circuit for suppressing peak amplitudes of an input signal and providing a peak amplitude suppressed signal in response thereto and a second circuit coupled to the first circuit for rejecting intermodulation distortion in the amplitude suppressed signal. 
     In the illustrative implementation, the first circuit is a peak amplitude suppressor having circuitry for computing an amplitude of the input signal and for computing a gain factor for the input signal in response thereto. In the best mode, the gain factor is obtained from a lookup table. The peak amplitude suppressor further includes a multiplier for applying the gain factor to the input signal. 
     In the illustrative embodiment, the second circuit includes a plurality of bandpass filters and a summer for combining the outputs thereof. As an alternative, the second circuit is implemented with a plurality of finite impulse response (FIR) filters. The outputs of the FIR filters are Fast Fourier Transformed and predetermined bands of the output of the FFT are selected and combined to provide a crest factor reduced output signal. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a simplified block diagram of an illustrative implementation of a system for crest factor reduction in accordance with the teachings of the present invention; 
         FIG. 2  is a simplified block diagram showing an illustrative implementation of the peak amplitude suppressor of the crest reduction system of the present invention; 
         FIG. 3  is a series of graphs that illustrate the operation of the present invention.  FIG. 3(A)  shows the typical output of an amplitude suppressor; 
         FIG. 3(B)  shows an illustrative passband of the intermodulation reject filter of  FIG. 1 ; 
         FIG. 3(C)  shows an illustrative output of the intermodulation reject filter of  FIG. 1 ; 
         FIG. 4  is a simplified block diagram of an illustrative implementation of the IMD reject filter of  FIG. 1 ; 
         FIG. 5(A)  shows the spectrum shape of the input of the alternative embodiment of the IMD reject filter, which contains the desired signals to be transmitted and the IMD components that are generated by the peak amplitude suppressor; 
         FIG. 5(B)  shows signal bands D 1 , D 2 , . . . D N  corresponding to IMD signals; 
         FIG. 5(C)  shows the resulting spectrum of the output signal after the output of the amplitude suppressor is passed though the filter of  FIG. 6 ; 
         FIG. 6  shows an alternative embodiment of the IMD reject filter of  FIG. 1 ; 
         FIG. 7  is a simplified block diagram of an alternative illustrative polyphase implementation of the IMD reject filter in accordance with the present teachings; 
         FIG. 8  is a series of graphs designed to illustrate the operation of the filter of  FIG. 7 ; 
         FIG. 9  is a simplified block diagram of an alternative illustrative polyphase implementation of the IMD reject filter in accordance with the present teachings; 
         FIG. 10  is a series of graphs designed to illustrate the operation of the filter of  FIG. 9 ; 
         FIG. 11  illustrates passbands filtering in accordance with the present teachings; 
         FIG. 12  illustrates notchbands filtering in accordance with the present teachings; 
         FIG. 13  is an illustrative implementation of a single Multi bands and Arbitrary Shape Filter that support multiple bandpass signals for even length filter; and 
         FIG. 14  is an illustrative implementation of a single Multi bands and Arbitrary Shape Filter that support multiple bandpass signals for odd length filter. 
     
    
    
     DESCRIPTION OF THE INVENTION 
     Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention. 
     While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility. 
       FIG. 1  is a simplified block diagram of an illustrative implementation of a system for crest factor reduction in accordance with the teachings of the present invention. The system  10  includes a peak amplitude suppressor  20  and an intermodulation rejection filter  30 . A baseband, IF or RF input signal may be expressed as:
   X   1 ( n )= I   1 ( n )+ jQ   1 ( n )  [1] 
The signal X(n) is amplitude clipped by the suppressor  20 . The phase is maintained to minimize the signal distortion in the following manner:
   X ( n )= X ( n ); if  A ( n )&lt; T   [2]   X ( n )= X ( n ) T/A ( n ); if  A ( n )≧ T   [3] 
where A(n)=|X(n)| is the instantaneous amplitude of the signal X(n), and T is the amplitude threshold of the clipping.
 
       FIG. 2  is a simplified block diagram showing an illustrative implementation of the peak amplitude suppressor of the crest reduction system of the present invention. The in-phase and quadrature components of the input are used to compute the amplitude via an amplitude detector  22 . In practice, the amplitude detector  22  may be implemented with cordic I/Q to amplitude processing. 
     The detected amplitude is then fed to a gain factor generator  24 . In the best mode, the gain factor generator  24  is implemented with a lookup table (LUT). The LUT  24  stores the T/A(t) gain values. The gain is then applied by first and second multipliers  12  and  14 , respectively, to the original signal delayed by first and second delayed elements  26  and  28  respectively. The delay is used to match the delay amount occurring in the amplitude and LUT processing so that the gain is applied to the inputs from which it was computed. This process can be applied at IF or RF where the signal amplitude can be estimated via envelope detection. 
     After processing by the peak amplitude suppressor  20 , the amplitude of the input signal will have a lower crest factor. However, inter-modulation distortion (IMD) is often generated. This is illustrated in  FIG. 3 . 
       FIG. 3  is a series of graphs that illustrate the operation of the present invention.  FIG. 3(A)  shows the typical output of an amplitude suppressor with the desired signals shown at  33  and IMD shown at  35 .  FIG. 3(B)  shows an illustrative passband  37  of the intermodulation reject filter  30  of  FIG. 1 .  FIG. 3(C)  shows an illustrative output of the intermodulation reject filter  30  of  FIG. 1 . To suppress the IMD, the desired signals filter  30  selects the desired signal band or bands and performs signal filtering of these bands only: the desired signal bands are passed while the intermodulation components are attenuated. In this process, the intermodulation products are suppressed with the filter sidelobes, resulting in a high ACPR signal.  FIG. 3(A)  shows the spectrum shape of the signal input to the Inter-Modulation Reject Filter  30 , which contains the desired signals to be transmitted and the IMD components that are generated by the Peak Amplitude Suppressor  20 .  FIG. 3(B)  shows the desired signal bands S 1 , S 2 , . . . , S N  corresponding to the desired signal. After passing though a filter with the characteristic shown in  FIG. 3(B) , an output signal is provided with a spectrum illustrated in  FIG. 3(C) . 
     In accordance with the present teachings, at least two approaches can be used to suppress IMD. A first approach, as illustrated in  FIG. 4 , is to select the desired signal components. A second approach, illustrated in  FIGS. 5 and 6  is to reject the undesirable IMD components per se. 
       FIG. 4  is a simplified block diagram of an illustrative implementation of the IMD reject filter  30  of  FIG. 1 . In this embodiment, the reject filter  30  consists of plural passband filters, e.g.  32 ,  34  and  36 , followed by a summer  44 . Each filter  32 ,  34  and  36  and its associated delay  38 ,  40  and  42  can be expressed as a Finite Impulse Response (FIR) filter as follows: 
                       S   1     ⁢     :     ⁢           ⁢     h     S   ⁢           ⁢   1         =       ∑     k   =   0         K   ⁢           ⁢   1     -   1       ⁢       h       S   ⁢           ⁢   1     ,   k       ⁢     z     -   k                   [   4   ]                   S   2     ⁢     :     ⁢           ⁢     h     S   ⁢           ⁢   2         =       ∑     k   =   0         K   ⁢           ⁢   2     -   1       ⁢       h       S   ⁢           ⁢   2     ,   k       ⁢     z     -   k                   [   5   ]                   S   N     ⁢     :     ⁢           ⁢     h   SN       =       ∑     k   =   0       KN   -   1       ⁢       h       S   ⁢           ⁢   1     ,   k       ⁢     z     -   k                   [   6   ]               
The resulting filter is then expressed as
 
                       S   1     +     S   2     +   …   +       S   N     :   h       =         ∑     k   =   0         K   ⁢           ⁢   1     -   1       ⁢       h       S   ⁢           ⁢   1     ,   k       ⁢     z     -   k           +       ∑     k   =   0         K   ⁢           ⁢   2     -   1       ⁢       h       S   ⁢           ⁢   2     ,   k       ⁢     z     -   k           +   …   +       ∑     k   =   0       KN   -   1       ⁢       h     SN   ,   k       ⁢     z     -   k                     [   7   ]               
which is a single FIR filter. The filter components at each delay can be combined to provide the following filter structure:
 
                       S   1     +     S   2     +   …   +       S   N     :     {   h   }         =       ∑     k   =   0       max   ⁡     (         K   ⁢           ⁢   1     -   1     ,           ⁢       K   ⁢           ⁢   2     -   1     ,           ⁢   …   ⁢           ,     KN   -   1       )         ⁢       h   k     ⁢     z     -   h                   [   8   ]               
This implies that the reject filter  30  (S 1 +S 2 + . . . +S N ) can be implemented with a single FIR filter.
 
     One way to use this approach is to design a filter for a single carrier, a filter for two adjacent channels, a filter for three adjacent channels, and a filter for four adjacent channels, etc. For a system using equal spaced channel centers, all possible patterns of signals is realizable by frequency shifting and adding this set of filters. In the best mode, the filter coefficients are combined and used as one FIR filter. For two adjacent channels, better performance is achieved when using a filter which is flat across both spectrums as opposed to using two filters designed for a single carrier. 
     As noted above, the filter of  FIG. 4  is based on a desired signals approach. The alternative rejection approach for the filter  30  is illustrated in  FIGS. 5 and 6 . Similar to the desired signals filter method, the rejection filter  30 ′ performs the filtering of the IMD components and removes the distortion from the original signal. 
     In this embodiment, to suppress IMD, the filter  30 ′ selects the IMD signal bands and performs signal filtering of these bands only. In this process only the intermodulation products are selected, which are removed from the input signal so that the desired signal is left intact and the IMD is suppressed.  FIG. 5(A)  shows the spectrum shape of the input of the alternative embodiment of the IMD reject filter, which contains the desired signals to be transmitted and the IMD components that are generated by the peak amplitude suppressor.  FIG. 5(B)  shows signal bands D 1 , D 2 , . . . D N  corresponding to the IMD signals.  FIG. 5(C)  shows the resulting spectrum of the output signal after the output of the amplitude suppressor  20  is passed though the filter  30 ′ of  FIG. 6 . 
       FIG. 6  shows an alternative embodiment of the IMD reject filter of  FIG. 1 . The rejection filter  30 ′ includes plural filters of which three are shown  32 ′,  34 ′ . . .  36 ′. Again, in the best mode, the filter coefficients are combined and used as one FIR filter. The filters are designed to pass the IMD in the reject bands D 1 , D 2  . . . D M  respectively. The outputs of the filters are delayed by associated delay elements  38 ′,  40 ′ . . .  42 ′ and subtracted from a delayed version of the input signal by a subtractor  44 ′. The input signal is delayed by element  46 ′. Those skilled in the art will appreciate that the embodiments of  FIGS. 1 ,  4  and  6  may be implemented in software in which case the components shown are implemented in process steps. 
     In any event, each filter and its associated delay can be expressed as a Finite Impulse Response (FIR) filter as follows: 
                       S   1     ⁢     :     ⁢           ⁢     h   S       =     z     -   kS               [   9   ]                   D   1     ⁢     :     ⁢           ⁢     h     D   ⁢           ⁢   1         =       ∑     k   =   0         K   ⁢           ⁢   1     -   1       ⁢       h       D   ⁢           ⁢   1     ,   k       ⁢     z     -   k                   [   10   ]                   D   2     ⁢     :     ⁢           ⁢     h     D   ⁢           ⁢   2         =       ∑     k   =   0         K   ⁢           ⁢   2     -   1       ⁢       h       D   ⁢           ⁢   2     ,   k       ⁢     z     -   k                   [   11   ]                   D   M     ⁢     :     ⁢           ⁢     h   DM       =       ∑     k   =   0       KM   -   1       ⁢       h       D   ⁢           ⁢   1     ,   k       ⁢     z     -   k                   [   12   ]               
The resulting filter is then expressed as
 
                     S   +     D   1     +     D   2     +   …   +       D   N     ⁢     :     ⁢           ⁢     h     S   ⁢           ⁢   1           =       Z     -   kS       -       ∑     k   =   10         K   ⁢           ⁢   1     -   1       ⁢       h       D   ⁢           ⁢   1     ,   k       ⁢     z     -   k           -       ∑     k   =   0         K   ⁢           ⁢   2     -   1       ⁢       h       D   ⁢           ⁢   2     ,   k       ⁢     z     -   k           -   …   -       ∑     k   =   0       KM   -   1       ⁢       h     DM   ,   k       ⁢     z     -   k                     [   13   ]               
which is a single FIR filter. The filter components at each delay can be combined to provide the following filter structure:
 
                     S   +     D   1     +     D   2     +   …   +       D   N     ⁢     :     ⁢           ⁢     {   h   }         =       ∑     h   =   0       max   ⁡     (         K   ⁢           ⁢   1     -   1     ,           ⁢       K   ⁢           ⁢   2     -   1     ,           ⁢   …   ⁢           ,     KM   -   1       )         ⁢       h   k     ⁢     z     -   h                   [   14   ]               
This implies that the reject (S−D 1 −D 2 − . . . −D M ) can be implemented with a single FIR filter.
 
     The advantage of this approach is that the filter does not distort the desired signal. Only the intermodulation products are suppressed. Furthermore, because the power of the intermodulation is substantially small compared to the desired signal, the filter does not change the crest factor substantially. 
     In applications where the signals are equally spaced, a polyphase approach can be used to either select desired signals or reject IMD products. 
       FIG. 7  is a simplified block diagram of an alternative illustrative polyphase implementation of the IMD reject filter in accordance with the present teachings. This filter rejects IMD products by selecting desired signals. 
       FIG. 8  is a series of graphs designed to illustrate the operation of the filter  50  of  FIG. 7 . As per  FIGS. 3 and 5  above, the first graph ( FIG. 8(A) ) shows the input to the filter, the second graph ( FIG. 8(B) ) shows the characteristic of the filter  50  and the third graph ( FIG. 8(C) ) shows the output of the filter. 
     In the implementation of  FIG. 7 , the output of the peak amplitude suppressor  20  of  FIG. 1  is divided into an integer multiple, H, of equal-sized frequency slots by resampler  52  when doing an H-point FFT in the polyphase implementation for H=2 x . For H not a power of two, a DFT can be used. The width of these slots is such that only signal energy or IMD energy is present in each slot. Each slot is filtered by a FIR filter  54 ,  56 ,  58  and  60  to pass the component in that frequency slot and to reject all other frequency components. Thus, by correctly choosing frequency slots, B h , that contain only signal energy, the signals S n  can be chosen such that the signal I 3 +jQ 3  contains only signal energy, with the intermodulation components rejected. This selection is effected after a Fast Fourier Transform (via FFT  62 ) by a filter  64 . The selected outputs of the filter  64  are then combined via summer  66 . 
       FIG. 9  is a simplified block diagram of an alternative illustrative polyphase implementation of the IMD reject filter in accordance with the present teachings. This filter rejects IMD products output by the peak amplitude detector. The embodiment of  FIG. 9  is similar to that of  FIG. 7  with the exception that the filters are designed to pass the IMD products and the output of the summer  66  is subtracted from a delayed version of the input signal by a subtractor  68 ′. 
       FIG. 10  is a series of graphs designed to illustrate the operation of the filter  50 ′ of  FIG. 9 . As per  FIGS. 3 and 5 , the first graph ( FIG. 9(A) ) shows the input to the filter, the second graph ( FIG. 9(B) ) shows the characteristic of the filter  50 ′ and the third graph ( FIG. 9(C) ) shows the output of the filter. 
     In the polyphase distortion filter approach of  FIG. 9 , the spectrum, shown in  FIG. 10 , of the output of the peak amplitude suppressor is divided into an integer multiple, H, of equal-sized frequency slots. Each slot is filtered to pass the component in that frequency slot and to reject all other frequency components. The width of these slots is such that only signal energy or IMD energy is present in each slot. Thus, by correctly choosing frequency slots, B h , that contain only IMD energy, the intermodulation distortion components, D n , of  FIG. 9  can be chosen such that the signal I 3 +jQ 3  contains only distortion energy, with the desired signal components rejected. The final output of the filter  52 ′ is the difference between the input signal I 2 +jQ 2 , properly delayed, and the sum of signals, D n . This signal contains only signal energy with the distortion removed. 
     A multibands and arbitrary shape filter can be implemented in passbands mode where the desired bands are selected and the undesired bands such as intermodulation distortion (IMD) bands are removed. 
       FIG. 11  illustrates passbands filtering in accordance with the present teachings. The objective is to select the desired signal by forming the combined filtering of these desired signals.  FIG. 11(A)  shows the input signal;  FIG. 11(B)  shows the spectral characteristic of a passband filter; and  FIG. 11(C)  shows the output filtered signal. 
     The transmit signal can be a combination of multiple carriers at arbitrary frequencies, and thus the spectrum can be asymmetric. In these applications multiple bandpass filters can be designed, follow by a filter combination process to realize the combined filter with a single filter. Let I i (n)+jQ i (n) be the input signal of the filter. The output of the filter can be expressed as
 
 I   o ( n )+ jQ   o ( n )={ I   i ( n )+ jQ   i ( n )}* g ( n )  [15]
 
where g(n) is the composite filter. We can expand g(n) and rewrite the equation as
 
                         I   o     ⁡     (   n   )       +     j   ⁢           ⁢       Q   o     ⁡     (   n   )           =       {         I   i     ⁡     (   n   )       +     j   ⁢           ⁢       Q   i     ⁡     (   n   )           }     *     {           h   1     ⁡     (   n   )       ·     ⅇ     j   ⁢           ⁢     ω   1     ⁢   n         +         h   2     ⁡     (   n   )       ·     ⅇ       jω   2     ⁢   n         +   …   +         h   N     ⁡     (   n   )       ·     ⅇ       jω   N     ⁢   n           }               [   16   ]               =       {         I   i     ⁡     (   n   )       +     j   ⁢           ⁢       Q   i     ⁡     (   n   )           }     *     {             h   1     ⁡     (   n   )       ·   cos     ⁢           ⁢     ω   1     ⁢   n     +           h   2     ⁡     (   n   )       ·   cos     ⁢           ⁢     ω   1     ⁢   n     +   …   +           h   N     ⁡     (   n   )       ·   cos     ⁢           ⁢     ω   N     ⁢   n     +     j   ⁡     [             h   1     ⁡     (   n   )       ·   sin     ⁢           ⁢     ω   1     ⁢   n     +           h   2     ⁡     (   n   )       ·   sin     ⁢           ⁢     ω   1     ⁢   n     +   …   +           h   N     ⁡     (   n   )       ·   sin     ⁢           ⁢     ω   N     ⁢   n       ]         }               [   17   ]               
where * indicates the convolution process,
 
                       x   ⁡     (   n   )       *     y   ⁡     (   n   )         =       ∑     k   =   0       N   -   1       ⁢       x   ⁡     (   k   )       ⁢       y   ⁡     (     n   -   k     )       .                 [   18   ]               
In the above equation, h i (n) is the low pass version of the desired filter and ω i  is the angular frequency of the desired signal. The filters h i (n) can have different spectral shapes.
 
     Thus: 
     
       
         
           
             
               
                 
                   
                     
                       
                         I 
                         o 
                       
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     + 
                     
                       j 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           Q 
                           o 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                   = 
                   
                     
                       { 
                       
                         
                           
                             I 
                             i 
                           
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                         + 
                         
                           j 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               Q 
                               i 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                       
                       } 
                     
                     * 
                     
                       g 
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                   
                 
               
               
                 
                   [ 
                   19 
                   ] 
                 
               
             
             
               
                 
                   
                     = 
                     
                       
                         { 
                         
                           
                             
                               
                                 I 
                                 i 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             * 
                             
                               
                                 g 
                                 c 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                           - 
                           
                             
                               
                                 Q 
                                 i 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             * 
                             
                               
                                 g 
                                 s 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                         } 
                       
                       + 
                       
                         j 
                         ⁢ 
                         
                           { 
                           
                             
                               
                                 
                                   I 
                                   i 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               * 
                               
                                 
                                   g 
                                   s 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 
                                   Q 
                                   i 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               * 
                               
                                 
                                   g 
                                   c 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                           
                           } 
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     where 
                     ⁢ 
                     
                       : 
                     
                   
                 
               
               
                 
                   [ 
                   20 
                   ] 
                 
               
             
             
               
                 
                   
                     g 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         g 
                         c 
                       
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     + 
                     
                       j 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           g 
                           s 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   21 
                   ] 
                 
               
             
           
         
       
     
     Thus:
 
 g   c ( n )= h   1 ( n )·cos ω 1   n+h   2 ( n )·cos ω 1   n+ . . . +h   N ( n )·cos ω N   n   [22]
 
 g   s ( n )= h   1 ( n )·sin ω 1   n+h   2 ( n )·sin ω 1   n+ . . . +h   N ( n )·sin ω N   n   [23]
 
     The process is to compute the filter shape h i (n), shift it to the desired frequency ω i , and then combine each in the above fashion to form the single complex filter g(n). 
     The IMD reject filter can be implemented in notchband mode where the undesired bands (IMD bands) are selected, and the desired bands removed. The resulting filtered signal is then removed from the transmit signal to produce the desired signal that is free from the IMD signals. 
       FIG. 12  illustrates notchbands filtering in accordance with the present teachings. The objective is to remove undesired signal components by isolating the undesired components with filters and then removing those components from the original signal.  FIG. 12(A)  shows the input signal;  FIG. 12(B)  shows the spectral characteristic of a notch filter; and  FIG. 12(C)  shows the output-filtered signal. 
     The transmitted signal can be a combination of multiple carriers at arbitrary frequency locations, and thus the spectrum can be asymmetric. In these applications multiple undesired-band filters can be designed, followed by a filter combination process to realize the combined filter with a single filter. Let I i (t)+jQ i (t) be the input signal of the filter. The output of the filter can be expressed as
 
 I   o ( n )+ jQ   o ( n )={ I   i ( n )+ jQ   i ( n )}* h   passthru ( n )·−{ I   i ( n )+ jQ   i ( n )}*[ h   1 ( n )· e   jω     1     n   +h   2 ( n )· e   ω     2     n   + . . . +h   N ( n )· e   jω     N     n ]  [24]
 
If we write
 
 I   o ( n )+ jQ   o ( n )={ I   i ( n )+ jQ   i ( n )}* g ( n )  [25]
 
then:
 
 g ( n )={δ k ( n −( N   taps +1)/2)−[ h   1 ( n )·e jω     1     n   +h   2 ( n )· e   jω     2     n   + . . . +h   N ( n )· e   jω     N     n ]}  [26]
 
where δ k (n−(N taps +1)/2) is the Kronecker delta function with a delay (N taps +1)/2 which represents the group delay of the odd filter tap length N taps  of the h&#39;s. This length will be the same for all h&#39;s.
 
     Expanding,
 
 g ( n )={δ k ( n −( N   taps +1)/2)−[ h   1 ( n )·cos ω 1   n+h   2 ( n )·cos ω 2   n+ . . . +h   N ( n )·cos ω N   n]−j[h   1 ( n )·sin ω 1   n+h   2 ( n )·sin ω 2   n+ . . . +h   N ( n )·sin ω N   n]}   [27]
 
and
 
 I   o ( n )+ jQ   o ( n )={ I   i ( n )*[δ k ( n −( N   taps +1)/2)−[ h   1 ( n )·cos ω 1   n+h   2 ( n )·cos ω 2   n+ . . . +h   N ( n )·cos ω N   n]]+Q   i ( n )*[ h   1 ( n )·sin ω 1   n+h   2 ( n )·sin ω 2   n+ . . . +h   N ( n )·sin ω N   n]}−j{I   i ( n )*[ h   1 ( n )·sin ω 1   n+h   2 ( n )·sin ω 2   n+ . . . +h   N ( n )·sin ω N   n]−Q   i ( n )*[δ k ( n −( N   taps +1)/2)−[ h   1 ( n )·cos ω 1   n+h   2 ( n )·cos ω 2   n+ . . . +h   N ( n )·cos ω N   n]]}   [28]
 
where h i (n) is the lowpass version of the i th  undesired-band filter, and ω i  is the angular frequency of the undesired signal. The filters h i (n) can have different spectral shapes.
 
     Thus: 
     
       
         
           
             
               
                 
                   
                     
                       
                         I 
                         o 
                       
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     + 
                     
                       j 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           Q 
                           o 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                   = 
                   
                     
                       { 
                       
                         
                           
                             I 
                             i 
                           
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                         + 
                         
                           j 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               Q 
                               i 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                         
                       
                       } 
                     
                     * 
                     
                       g 
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                   
                 
               
               
                 
                   [ 
                   29 
                   ] 
                 
               
             
             
               
                 
                   
                     = 
                     
                       
                         { 
                         
                           
                             
                               
                                 I 
                                 i 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             * 
                             
                               
                                 g 
                                 c 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                           - 
                           
                             
                               
                                 Q 
                                 i 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             * 
                             
                               
                                 g 
                                 s 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                         
                         } 
                       
                       + 
                       
                         j 
                         ⁢ 
                         
                           { 
                           
                             
                               
                                 
                                   I 
                                   i 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               * 
                               
                                 
                                   g 
                                   s 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             + 
                             
                               
                                 
                                   Q 
                                   i 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               * 
                               
                                 
                                   g 
                                   c 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                           
                           } 
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     where 
                     ⁢ 
                     
                       : 
                     
                   
                 
               
               
                 
                   [ 
                   30 
                   ] 
                 
               
             
             
               
                 
                   
                     g 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         g 
                         c 
                       
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     + 
                     
                       j 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           g 
                           s 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   31 
                   ] 
                 
               
             
           
         
       
     
     Thus
 
 g   c ( n )=δ k ( n −( N   taps +1)//2)−[ h   1 ( n )·cos ω 1   n+h   2 ( n )·cos ω 1   n+ . . . +h   N ( n )·cos ω N   n]   [32]
 
 g   s ( n )=−[ h   1 ( n )·sin ω 1   n+h   2 ( n )·sin ω 1   n+ . . . +h   N ( n )·sin ω N   n]   [33]
 
     The process is to compute the filter shape h i (n), shift to the desired frequency ω i , and then combine each in the above fashion to form the single complex filter, g(n). 
     To design a combination FIR, a passband filtering approach or notch filtering approach may be used. An illustrative passband filtering approach is as follows:
         (1) Determine the number of passband filters, M, based on the desired spectral shape,   (2) Design the baseband version of the filters. Each filter will require N m  taps, m=1:M,   (3) Select the largest number of taps, i.e., N max =Max(N 1 , N 2 , N 3 , . . . N M ),   (4) Redesign the filters with maximum number of taps, to obtain the coefficients {h m (n)} where m=1:M, n=0:N max −1. Since the filters are at baseband, the coefficients are symmetric.   (5) Translate the baseband filter into an WF filter by frequency shifting. That is:
 
{ w   m ( n )}={ h   m ( n ) e   j*2*pi*fm·n }, m=1:M  [34]
   (6) Combine the coefficients of {w m (n)} to form the combine filter coefficients:       

     
       
         
           
             
               
                 
                   
                     
                       { 
                       
                         g 
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       } 
                     
                     = 
                     
                       
                         ∑ 
                         
                           m 
                           = 
                           1 
                         
                         M 
                       
                       ⁢ 
                       
                         
                           w 
                           m 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                   , 
                   
                     n 
                     = 
                     
                       
                         0 
                         ⁢ 
                         
                           : 
                         
                         ⁢ 
                         N 
                       
                       - 
                       1. 
                     
                   
                 
               
               
                 
                   [ 
                   35 
                   ] 
                 
               
             
           
         
       
     
     This filter selects the passband of the desired signal. In matrix form, the filter weights are computed as: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           [ 
                           
                             g 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               ( 
                               0 
                               ) 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             g 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               ( 
                               1 
                               ) 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             … 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             g 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               ( 
                               
                                 N 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           ] 
                         
                         = 
                           
                         ⁢ 
                         
                           [ 
                           
                             
                               k 
                               1 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               k 
                               2 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             … 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               k 
                               M 
                             
                           
                           ] 
                         
                       
                     
                   
                   
                     
                       
                           
                         ⁢ 
                         
                           [ 
                           
                             
                               
                                 
                                   
                                     w 
                                     1 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                               
                               
                                 
                                   
                                     w 
                                     1 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     1 
                                     ) 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     w 
                                     1 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       N 
                                       - 
                                       1 
                                     
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     w 
                                     2 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                               
                               
                                 
                                   
                                     w 
                                     2 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     1 
                                     ) 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     w 
                                     2 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       N 
                                       - 
                                       1 
                                     
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 … 
                               
                               
                                 … 
                               
                               
                                 … 
                               
                               
                                 … 
                               
                             
                             
                               
                                 
                                   
                                     w 
                                     M 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                               
                               
                                 
                                   
                                     w 
                                     M 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     1 
                                     ) 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     w 
                                     M 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       N 
                                       - 
                                       1 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           ] 
                         
                       
                     
                   
                 
               
               
                 
                   [ 
                   36 
                   ] 
                 
               
             
           
         
       
     
     where k p  is the weight associated with p th  filter, and w p (0:N−1) are the coefficients of the p th  filter.
         (7) Build a single complex FIR with N max  taps.
 
For the notch filtering approach, the process is as follows:
   (1) Determine the number of notch filters, M, based on the desired spectral shape,   (2) Design the baseband version of the notch filters, each filter will require N m  taps, m=1:M,   (3) Select the largest number of taps, i.e., N max =Max(N 1 , N 2 , N 3 , . . . N M ), such as N max  is odd.   (4) Redesign the filters with maximum number of taps, to obtain the coefficients {h m (n)} where m=1:M, n=0:N−1. Since the filters are at baseband, the coefficients are symmetric.   (5) Translate the baseband filter into IF filter by frequency shifting, that is
 
{ w   m ( n )}={ h   m ( n ) e   j*2*pi*fm·n }, m=1:M.  [37]
   (6) Combine the coefficient of {w n (m)} to form the combine filter coefficients:       

                       {     g   ⁡     (   n   )       }     =         δ   k     ⁡     (     n   -       (       N   max     +   1     )     /   2       )       -       ∑     m   =   1     M     ⁢       k   m     ⁢       w   m     ⁡     (   n   )               ,     n   =       0   ⁢     :     ⁢   N     -   1.               [   38   ]               
This filter removes the notch bands from the original signal. Notes that z −(Nmax+1)/2  represents the delay of the original signal. In matrix form, the filter weight is computed as:
 
                     [       g   ⁡     (   0   )       ⁢           ⁢     g   ⁡     (   1   )       ⁢           ⁢   …   ⁢           ⁢     g   ⁡     (     N   -   1     )         ]     =       [     1   ⁢           -       k   1     ⁢           ⁢   …     ⁢           -     k   M       ]     ⁢           [         0       0       1       0       0               w   1     ⁡     (   0   )               w   1     ⁡     (   1   )               w   1     ⁡     (       N   +   1     2     )           …           w   1     ⁡     (     N   -   1     )               …       …       …       …       …               w   M     ⁡     (   0   )               w   M     ⁡     (   1   )               w   M     ⁡     (       N   +   1     2     )           …           w   M     ⁡     (     N   -   1     )             ]                 [   39   ]               
where k p  is the weight associated with p th  filter, and w p (0:N−1) are the coefficients of the p th  filter.
         (7) Build a single complex FIR with N max  taps.
 
The Multi bands and Arbitrary Shape Filter structure is as shown in  FIG. 13 . The input signal I i (n)+jQ i (n) passes through a tap delay line of length N (=N max ), selected to support the filter h i (n) spectral requirements.
 
By careful manipulation of the following equation, the coefficients, g c (n) and g s (n) can be forced to be symmetric and anti-symmetric. In the equation,
 
 I   o ( n )+ jQ   o ( n )={ I   i ( n )+ jQ   i ( n )}*{ h   1 ( n )· e   jω     1     n   +h   2 ( n )· e   jω     2     n   + . . . +h   N ( n )· e   jω     N     n }
 
we can write each of the modulated filter coefficient terms as
 
 w   m ( n )= h   m ( n )· e   jω     m     n   =h   m (0) e   jω     m     0   ,h   m (1) e   jω     m     1   ,h   m (2) e   jω     1     2   , . . . h   m ( N− 1) e   jω     m(     N−1)  
 
 w   m ( n )= e   jω     m     (N−1)/2 ( h   m (0) e   −jω     m     (N−1)/2   ,h   m (1) e   ω     m     (1−(N−1)/   2)   ,h   m (2) e   jω     m     (2−(N−1)/2)   , . . . , h   m ( N− 1) e   jω     m     (N−1)/2 )
 
Since the constant phase does not effect the filtering of the signal, we can remove it. For ease of notation, we continue to use the same variable with the constant phase removed.
 
 w   m ( n )= h   m (0) e   −jω     m     (N−1)/2   ,h   m (1) e   jω     m     (1−(N−1)/2)   ,h   m (2) e   jω     m     (2−(N−1)/2)   , . . . , h   m ( N− 1) e   jω     m     (N−1)/2 )
 
The real part of the m th  set of weights is
 
 Re ( w   m ( n ))=( h   m (0)cos(− w   m ( N− 1)/2), h   m (1)cos(− w   m (( N− 1)/2)−1), . . . ,  h   m ( N− 2)cos( w   m (( N− 1)/2)−1), h   m ( N− 1)cos( w   m ( N− 1)/2)
 
The imaginary part of the mth set of weights is
 
 Im ( w   m ( n ))=( h   m (0)sin(− w   m ( N− 1)/2), h   m (1)sin(− w   m ((N−1)/2)−1), . . . ,  h   m ( N− 2)sin( w   m (( N− 1)/2)−1), h   m ( N− 1)sin( w   m ( N− 1)/2)
 
Note that the real part of w m (n) is symmetric since corresponding taps are h m (p)cos(−w m (( N− 1)/2−p)) and h m (N−1−p)cos(w m ((N−1)/2−p)), h m (n) is symmetric (baseband filter), and cos(−u)=cos(u). Note that the imaginary part of w m (n) is anti-symmetric since corresponding taps are h m (p)sin(−w m ((N−1)/2−p)) and h m (N−1−p)sin(w m ((N−1)/2−p)) and sin(−u)=−sin(u).
 
The sum of all of the weights, g(n), shares all of the symmetry properties of its component filter weights since they are all the same size and addition does not change symmetry properties if all of the terms have the same symmetry property. Thus,
 
 g   c ( n )= Re ( g ( n ))= g   c (0), g   c (1), g   c ( N− 2), g   c ( N− 1)
 
where g c (p)=g c (N−1−p)
 
 g   s ( n )= Im ( g ( n ))= g   s (0), g   s (1), . . . ,  g   s ( N− 2), g   s ( N− 1)
 
where g s (p)=−g s (N−1−p)
 
By using the usual technique of presuming for symmetric filters, we find that the output can be written as
       
                 X   o     ⁡     (   n   )       =           x   i     ⁡     (   n   )       ⋆     g   ⁡     (   n   )         =       ∑     k   =   0       N   -   1       ⁢         X   i     ⁡     (     n   -   k     )       ⁢     g   ⁡     (   k   )                             X   o     ⁡     (   n   )       =         ∑     k   =   0       N   -   1       ⁢       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢     Re   ⁡     (     g   ⁡     (   k   )       )           -       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢     Im   ⁡     (     g   ⁡     (   k   )       )         +     j   ⁢     (     ⁢     Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢     Im   ⁡     (     g   ⁡     (   k   )       )         +       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢     Re   ⁡     (     g   ⁡     (   k   )       )       ⁢     )                         X   o     ⁡     (   n   )       =         ∑     k   =   0       N   -   1       ⁢       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢       g   c     ⁡     (   k   )       ⁢     )         -       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢       g   s     ⁡     (   k   )         +     j   ⁢     (     ⁢     Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢       g   s     ⁡     (   k   )         +       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       ⁢       g   c     ⁡     (   k   )       ⁢     )                       For   ⁢           ⁢   even   ⁢           ⁢   N     ,     
     ⁢         X   o     ⁡     (   n   )       =         ∑     k   =   0         (     N   -   2     )     /   2       ⁢       (       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       +     Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   c     ⁡     (   k   )           -       (       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       -     Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   s     ⁡     (   k   )         +       j   ⁡     (       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       +     Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )       ⁢       g   s     ⁡     (   k   )         +     Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       -       Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )       ⁢     )     ⁢       g   c     ⁡     (   k   )       ⁢     )                 
Grouping the terms alone leads to
 
                 X   o     ⁡     (   n   )       =         ∑     k   =   0         (     N   -   2     )     /   2       ⁢       (     ⁢     Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )           +       Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )       ⁢     )     ⁢       g   c     ⁡     (   k   )         -       ∑     k   =   0         (     N   -   2     )     /   2       ⁢       (       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       -     Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   s     ⁡     (   k   )           +     j   ⁢     {         ∑     k   =   0         (     N   -   2     )     /   2       ⁢       (       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       +     Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   s     ⁡     (   k   )           +       ∑     k   =   0         (     N   -   2     )     /   2       ⁢     Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )         -       Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )       ⁢     )     ⁢       g   c     ⁡     (   k   )       ⁢     )         }               
Thus, the implementation is to presume the symmetric taps at the adders as shown in  FIG. 13  thus saving multipliers. The taps which will be multiplied by the imaginary weights are subtracted while the taps multiplied by the real weights are added.  FIG. 13  is a conceptual drawing showing a symmetric and asymmetric FIR filter implementation where presuming is performed followed by multiplication by a coefficient followed by a summing of all of the products. In actual implementation, each coefficient multiply occurs at the same time and the outputs are all added. This is the same as in any FIR filter implementation.
 
Note that symmetry is exploited, reducing the number of multiplications required by a factor of one-half.
 
For odd N, grouping the terms and properly dealing with the center taps leads to
 
                 X   o     ⁡     (   n   )       =       {         ∑     k   =   0         (     N   -   3     )     /   2       ⁢       (     ⁢     Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )           +       Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )       ⁢     )     ⁢       g   c     ⁡     (   k   )           }     +     
     ⁢           ⁢       Re   ⁡     (       X   i     ⁡     (     n   -       (     N   -   1     )     /   2       )       )       ⁢       g   c     ⁡     (       (     N   -   1     )     /   2     )         -     
     ⁢           ⁢     [           ⁢       {       ∑     k   =   0         (     N   -   3     )     /   2       ⁢       (       Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )       -     Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   s     ⁡     (   k   )           }     +     
     ⁢           ⁢       Im   ⁡     (       X   i     ⁡     (     n   -       (     N   -   1     )     /   2       )       )       ⁢       g   s     (       (     N   -   1     )     /   2     ]       +     
     ⁢           ⁢     j   ⁡     [       {       ∑     k   =   0         (     N   -   3     )     /   2       ⁢       (       Re   ⁡     (       X   i     ⁡     (     n   -   k     )       )       +     Re   ⁡     (       X   i     ⁡     (     N   -   1   -     (     n   -   k     )       )       )         )     ⁢       g   s     ⁡     (   k   )           }     +     
     ⁢           ⁢     j   ⁢     (     ⁢     Re   ⁡     (       X   i     ⁡     (     n   -       (     N   -   1     )     /   2       )       )       ⁢       g   s     ⁡     (       (     N   -   1     )     /   2     )         +     
     ⁢           ⁢     {         ∑     k   =   0         (     N   -   3     )     /   2       ⁢     Im   ⁡     (       X   i     ⁡     (     n   -   k     )       )         -       Im   ⁡     (       X   i     ⁡     (     N   -   1   -     (       -   n     -   k     )       )       )       ⁢     )     ⁢       g   c     ⁡     (   k   )       ⁢     )         }     -     
     ⁢           ⁢       Im   ⁡     (       X   i     ⁡     (     n   -       (     N   -   1     )     /   2       )       )       ⁢       g   c     ⁡     (       (     N   -   1     )     /   2     )       ⁢     )         ]                     FIG. 14  shows this implementation. Again this is a conceptual drawing showing a symmetric FIR filter implementation where presuming is performed followed by multiplication by a coefficient followed by a summing of all of the products. In the case of odd length filter coefficients, the center tap is not pre-summed and is instead simply directly multiplied by its coefficient.
 
       FIG. 13  is an illustrative implementation of a single Multi bands and Arbitrary Shape Filter that support multiple bandpass signals for even length filter. 
       FIG. 14  is an illustrative implementation of a single Multi bands and Arbitrary Shape Filter that support multiple bandpass signals for odd length filter. 
     The devices and subsystems of the exemplary embodiments of  FIGS. 1-14  can include computer readable medium or memories for holding instructions programmed according to the teachings of the present invention and for holding data structures, tables, records, and/or other data described herein. Computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, etc. Non-volatile media can include, for example, optical or magnetic disks, magneto-optical disks, and the like. Volatile media can include dynamic memories, and the like. Transmission media can include coaxial cables, copper wire, fiber optics, and the like. Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitable optical medium, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, or any other suitable medium from which a computer can read. 
     Thus, the present invention has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications applications and embodiments within the scope thereof. 
     It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention. 
     Accordingly,