# Patent

## Title
Coding method and apparatus for reducing number of state transition paths in a communication system

## Abstract

A communication system is composed of an encoder encoding an input sequence to sequentially generate output codes X0, X1, . . . , and a decoder decoding the output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The output code Xk of the output codes X0, X1, . . . is determined based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number. The output code Xi(N+1) of the output codes X0, X1, . . . are uniquely determined based on a subset of a set consisting of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of the output codes X0, X1, . . . The subset includes the output code X1(N+1)−L+1 of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , X1 (N+1)−1.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a coding method. More particularly, the present invention relates to a coding method for reducing the number of paths in a state transition of a code sequence.
2. Description of the Related Art
A CCK (Complementary Code Keying) method is one of the typical coding methods. The CCK method employs a code vector C represented by the following equation (1): 



  
    
      
        
          
            
              C
              =
              
              ⁢
              
                {
                
                  
                    C
                    1
                  
                  ,
                  
                    C
                    2
                  
                  ,
                  
                    C
                    3
                  
                  ,
                  
                    C
                    4
                  
                  ,
                  
                    C
                    5
                  
                  ,
                  
                    C
                    6
                  
                  ,
                  
                    C
                    7
                  
                  ,
                  
                    C
                    8
                  
                
                }
              
            
          
        
        
          
            
              =
              
              ⁢
              
                {
                
                  
                    e
                    
                      j
                      ⁢
                      
                         
                      
                      ⁢
                      
                        (
                        
                          
                            p
                            1
                          
                          +
                          
                            p
                            2
                          
                          +
                          
                            p
                            3
                          
                          +
                          
                            p
                            4
                          
                        
                        )
                      
                    
                  
                  ,
                  
                    e
                    
                      j
                      ⁢
                      
                         
                      
                      ⁢
                      
                        (
                        
                          
                            p
                            1
                          
                          +
                          
                            p
                            3
                          
                          +
                          
                            p
                            4
                          
                        
                        )
                      
                    
                  
                  ,
                  
                    e
                    
                      j
                      ⁢
                      
                         
                      
                      ⁢
                      
                        (
                        
                          
                            p
                            1
                          
                          +
                          
                            p
                            2
                          
                          +
                          
                            p
                            4
                          
                        
                        )
                      
                    
                  
                  ,
                
              
            
          
        
        
          
            
              
                
                ⁢
                
                  
                    -
                    
                      e
                      
                        j
                        ⁢
                        
                           
                        
                        ⁢
                        
                          (
                          
                            
                              p
                              1
                            
                            +
                            
                              p
                              4
                            
                          
                          )
                        
                      
                    
                  
                  ,
                  
                    e
                    
                      j
                      ⁢
                      
                         
                      
                      ⁢
                      
                        (
                        
                          
                            p
                            1
                          
                          +
                          
                            p
                            2
                          
                          +
                          
                            p
                            3
                          
                        
                        )
                      
                    
                  
                  ,
                  
                    e
                    
                      j
                      ⁡
                      
                        (
                        
                          
                            p
                            1
                          
                          +
                          
                            p
                            3
                          
                        
                        )
                      
                    
                  
                  ,
                  
                    -
                    
                      e
                      
                        j
                        ⁢
                        
                           
                        
                        ⁢
                        
                          (
                          
                            
                              p
                              1
                            
                            +
                            
                              p
                              2
                            
                          
                          )
                        
                      
                    
                  
                  ,
                  
                    e
                    
                      j
                      ⁢
                      
                         
                      
                      ⁢
                      
                        p
                        1
                      
                    
                  
                
                }
              
              .
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




Here, p1, p2, p3 and p4 are phases that are respectively determined by two-symbol data. That is, the code vector C includes an 8-symbol data. A set of the code vectors constitutes the Euclidean geometry space.

From the equation (1), C4 is represented by the following equation: 



  
    
      
        
          C
          4
        
        =
        
          -
          
            
              
                
                  C
                  2
                
                ⁢
                
                  C
                  3
                
              
              
                C
                1
              
            
            .
          
        
      
    
    
      
        (
        2
        )
      
    
  




C4 is uniquely determined when C1, C2 and C3 are determined, that is, C4 is an insertion code uniquely determined by a subset including input codes C1, C2 and C3 of a set {Ck} (k is an integer between 1 and 8).

Moreover, if C5 is determined, C6, C7 and C8 are uniquely determined from the following equation: 



  
    
      
        
          
            C
            6
          
          =
          
            
              
                C
                2
              
              ⁢
              
                C
                5
              
            
            
              C
              1
            
          
        
        ,
        
          
            C
            7
          
          =
          
            -
            
              
                
                  C
                  3
                
                ⁢
                
                  C
                  5
                
              
              
                C
                1
              
            
          
        
        ,
        
          
            C
            8
          
          =
          
            
              
                
                  C
                  2
                
                ⁢
                
                  C
                  3
                
                ⁢
                
                  C
                  5
                
              
              
                C
                1
                2
              
            
            .
          
        
      
    
    
      
        (
        3
        )
      
    
  




C6, C7 and C8 are insertion codes uniquely determined by C1, C2, C3 and C5.

Let us consider a case that a code coded by CCK method is decoded by a maximum likelihood sequence detection (MLSD) method assuming a trellis memory length to be 3. Here, it is also assumed that each of the codes C1, C2, . . . , C8 is a four-value code having any value of ±1 and ±j.
FIG. 1 is a trellis chart showing a state transition in this case. If the trellis memory length is 3, one state is determined by two continuous codes CJ and CJ+1 and the other state is determined by Cj+1 and Cj+2. Thus, the transition from one state to the other state is determined by three continuous codes. Hereafter, a set consisting of all states determined by the codes Cj and Cj+1 are noted as a state group {Cj+1, Cj}. Also, a state of Cj+1=α and Cj=β is noted as a state (α, β). Here, both α and β have any value of ±1 and ±j. Therefore, the state group {Cj+1, Cj} is constituted by 16 states.
Also, a path from a state (α1, β1) in the state group {Cj+1, CJ} to a state (α2, β2) in the state group {Cj+2, CJ+1} is hereinafter noted as a path (α1, β1)→(α2, β2).
When the code coded by using CCK is decoded by the maximum likelihood sequence detection (MLSD) method, a transition to one of states belonging to a state group {C2, C1} is done from four states belonging to a state group {C1, C0}. That is, there are four paths reaching one state of the state group {C2, C1}. For example, let us consider a path reaching a state (1,1) in the state group {C2, C1} from any states included in the state group {C1, C0}. As the path reaching the state (1,1) of the state group {C2, C1}, there are four paths of a path (1,1)→(1,1), a path (1,j)→(1,1), a path (1,−1)→(1,1) and a path (1,−j)→(1,1). When the code coded by using CCK is decoded, the maximum likelihood path is selected from the four paths. Similarly, there are four paths reaching one state in the state group {C3, C2}. Then, the maximum likelihood path is selected from the four paths.
On the other hand, there is only one path reaching one state in the state group {C4, C3} because of the existence of the relation of the equation (2). That is, each of the states included in the state group {C2, C1} corresponds to one of the states included in the state group {C2, C1}. In this way, the number of paths reaching one state in the state group {C4, C3} is limited to a quarter of the number of paths reaching one state in the state group {C2, C1} and the state group {C3, C2}. Thus, a metric between paths is extended to thereby reduce a probability of an selection error of a path.
In the coding method, a portion in which a coding gain is practically used is C4, C6, C7 and C8 in the code vector C. Thus, there is the deviation in the portion in which the coding gain is practically used. This results from the fact that a system estimation is carried out by using the state transition determined by the trellis memory length shorter than the number of symbols serving as a unit.
Moreover, if the number of previous input codes determining the state transition is greater than a trellis memory length, an irregularity is induced in which there are a plurality of paths reaching a certain state, and on the other hand, there is no path reaching a certain state. The coding method having such deviation and irregularity is not optimal.
It is desired that the path is regularly reduced without any deviation, the existence of the path is not irregular and the code gain is effectively used.
Other coding methods are disclosed in Japanese Laid Open Patent Application (Jp-A-Heisei 10-134521 and Jp-A-Heisei 11-186917), which may be related to the present invention described below. However, both of the other coding methods does not teach a technique reducing the deviation and irregularity in the generated codes.
SUMMARY OF THE INVENTION
Therefore, an object of the present invention is to provide a coding method in which the path is regularly reduced without any deviation, the existence of the path is not irregular and the code gain is effectively used.
In order to achieve an aspect of the present invention a communication system is composed of an encoder encoding an input sequence to sequentially generate output codes X0, X1, . . . , and a decoder decoding the output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The output code Xk of the output codes X0, X1, . . . is determined based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number. And the output code Xi(N+1) of the output codes X0, X1, . . . are uniquely determined based on a subset of a set consisting of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of the output codes X0, X1, . . . The subset includes the output code Xi(N+1)−L+1 of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.
In this case, the N may be one, and the output code X2l may be expressed as:

X2i=f (X2i−1, X2i−2, . . . , X2i−L+1),

where f is a function.

Also, the output code X2i may be expressed as:

X2i=q·X2i−1·X2i−2· . . . · X2i−L+1,

where q is an number selected from a group consisting of 1, −1, j, and −j.

Also, the input sequence may include input codes a0, a1, . . . sequentially inputted to the encoder. In this case, the output code Xk for k that is not equal to i(N+1) may be expressed as:

X0=a0, (k=0)

Xi(N+1)−p=aiN−(p−1)(k≠0).

where p is any of integers between 1 to N.

In order to achieve another aspect of the present invention, a communication system is composed of an encoder encoding an input sequence to sequentially generate output codes X0, X1, . . . , and a decoder decoding the output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The output code Xk of the output codes X0, X1, . . . is determined based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number. And the output code Xi(N+1) of the output codes X0, X1, . . . is uniquely determined based on the output code Xi(N+1)−L+1 of the output codes X0, X1, . . .
The N may be one. In this case, the output code X2i may be expressed as:

X2i=f (X2i−L+1),

where f is a function.

Also, the output code X2i is expressed as:
 X2i=q·X2i−L+1,
where q is an number selected from a group consisting of 1, −1, j, and −j.
In order to achieve still another aspect of the present invention, an encoder is composed of input means for being inputted by an input sequence and encoding means for encoding the input sequence to sequentially generate output codes X0, X1, which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The output code Xk of the output codes X0, X1, . . . is determined based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number. And the output code Xi(N+1) of the output codes X0, X1, . . . are uniquely determined based on a subset of a set consisting of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of the output codes X0, X1, . . . The subset includes the output code Xi(N+1)−L+1 of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.
In order to achieve yet still aspect of the present invention, an encoder is composed of input means for being inputted by an input sequence and encoding means for encoding the input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The output code Xk of the output codes X0, X1, . . . is determined based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number. And the output code Xi(N+1) of the output codes X0, X1, . . . is uniquely determined based on the output code Xi(N+1)−L+1 of the output codes X0, X1, . . .
In order to achieve still another aspect of the present invention, a method of communication is composed of:
encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and
decoding the output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The encoding includes:
determining the output code Xk of the output codes X0, X1, . . . based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and
determining the output code Xi(N+1) of the output codes X0, X1, based on a subset of a set consisting of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of the output codes X0, X1, . . . The subset includes the output code Xi(N+1)−L+1 of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.
In order to achieve still another aspect of the present invention, a method of communication is composed of:
encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and
decoding the output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The encoding includes:
determining the output code Xk of the output codes X0, X1, . . . based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and
determining the output code Xi(N+1) of the output codes X0, X1, . . . based only on the output code Xi(N+1)−L+1 of the output codes X0, X1 . . .
In order to achieve still another aspect of the present invention, a method of encoding is composed of:
inputting an input sequence; and
encoding an input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The encoding includes:
determining the output code Xk of the output codes X0, X1, . . . based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and
determining the output code Xi(N+1) of the output codes X0, X1, . . . based on a subset of a set consisting of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2. . . Xi(N+1)−1 of the output codes X0, X1, . . . , and
wherein the subset includes the output code Xi(N+1)−L+1 of the output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.
In order to achieve still another aspect of the present invention, a method of encoding is composed of:
inputting an input sequence; and
encoding an input sequence to sequentially generate output codes X0, X1 . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L. The encoding includes:
determining the output code Xk of the output codes X0, X1, . . . based on the input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and
determining the output code Xi(N+1) of the output codes X0, X1, . . . based only on the output code Xi(N+1)−L+1 of the output codes X0, X1, . . .



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a trellis chart showing a state transition when a code coded by a known coding method is decoded;
FIG. 2 shows a communication system in which an information is communicated by using a coding method of an embodiment of the present invention;
FIG. 3 is a trellis chart showing a state transition when a code coded by a coding method of an embodiment of the present invention is decoded; and
FIG. 4 is a trellis chart showing a state transition when a code coded by a coding method of an embodiment of the present invention is decoded.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 2 shows a communication system in which information is sent by using a coding method of an embodiment of the present invention.
The communication system is provided with an encoder 1 and a decoder 2. An input information sequence {ak} is inputted to the encoder 1. The input information sequence {ak} is composed of codes a0, a1, a2, . . . The encoder 1 codes the input information sequence {ak}, and generates an output sequence {Xk}. The output sequence {Xk} consists of codes X0, X1, X2, X3, . . .
The encoder 1 generates the output sequence {Xk} under the assumption that the output sequence {Xk} is decoded at a trellis memory length of L. The encoder 1 inserts one insertion code for N symbols in the input information sequence {ak} to generate the output sequence {Xk}. That is, the encoder 1 generates the output sequence {Xk} such that an insertion interval of an insertion code is N. Here, N is an integer equal to or greater than 1.
For k that is not equal to i×(N+1), codes Xk included in the output sequence {Xk} are expressed as follows: 



  
    
      
        
          
            X
            0
          
          =
          
            a
            0
          
        
        ,
      
    
  
  
    
      
        
           
        
        ⁢
        ⋮
      
    
  
  
    
      
        
          
            X
            
              
                i
                ·
                
                  (
                  
                    N
                    +
                    1
                  
                  )
                
              
              -
              N
            
          
          =
          
            a
            
              
                i
                ·
                N
              
              -
              
                (
                
                  N
                  -
                  1
                
                )
              
            
          
        
        ,
      
    
  
  
    
      
        
          
            X
            
              
                i
                ·
                
                  (
                  
                    N
                    +
                    1
                  
                  )
                
              
              -
              
                (
                
                  N
                  -
                  1
                
                )
              
            
          
          =
          
            a
            
              
                i
                ·
                N
              
              -
              
                (
                
                  N
                  -
                  2
                
                )
              
            
          
        
        ,
      
    
  
  
    
      
        
           
        
        ⁢
        ⋮
      
    
  
  
    
      
        
          
            X
            
              
                i
                ·
                
                  (
                  
                    N
                    +
                    1
                  
                  )
                
              
              -
              p
            
          
          =
          
            a
            
              
                i
                ·
                N
              
              -
              
                (
                
                  p
                  -
                  1
                
                )
              
            
          
        
        ,
      
    
  
  
    
      
        
           
        
        ⁢
        ⋮
      
    
  
  
    
      
        
          X
          
            
              i
              ·
              
                (
                
                  N
                  +
                  1
                
                )
              
            
            -
            1
          
        
        =
        
          
            a
            
              i
              ·
              N
            
          
          .
        
      
    
  




where, i is an integer equal to or greater than 1 and p is an integer between 1 and N.

For k that is equal to i×(N+1), on the other hand, each of insertion codes Xk is uniquely determined by a subset G′ of a set G consisting of (L−1) codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . Xi(N+1)−1, where the subset G′ includes the code Xi(N+1)−L+1. That is,

Xi(N+1)=f(G′)

f is a predetermined function.

The decoder 2 decodes the output sequence {Xk} by the MLSD method at the trellis memory length of L to output a reception code sequence {bk} consisting of codes b0, b1, b2, . . .
In this coding method used in the communication system, the deviation in the path is reduced by the insertion of the insertion code Xi(N+1). Thus, the code gain is effectively used.
The process for generating the output sequence {Xk} into which the insertion code Xi(N+1) is inserted will be actually described below.
Approach 1
Let us suppose that codes ak included in the input information sequence {ak} inputted to the encoder 1 are a four-value code having any value of ±1 and ±j. Moreover, the encoder 1 generates the output sequence {Xk} with the trellis memory length L being 3 and with the insertion interval N being 1. In this case, the code X0 which is not an insertion code, is represented as follows:

X0=a0.  (4)

Moreover, the code X2i−1 that are not insertion codes are represented as follows:

X2i−1=ai.  (5)

i is an integer equal to or greater than 1. Also, the insertion code X2i are inserted into the output sequence {Xk}. At this time, the following equation is given:

X2i=X2i−1·X2i−2.  (6)

Each of codes Xk is a four-value code having any value of ±1 and ±j. Here, k is an integer equal to or greater than 0.

The output sequence {Xk} is decoded by the decoder 2 by the MLSD method. The decoder 2 carries out the decoding operation with the trellis memory length L being 3.
FIG. 3 is a trellis chart showing a state transition when the thus-generated output sequence {Xk} is decoded.
Let us consider a transition from a state belonging to the state group {X2i, X2i−1} to a state belonging to the state group {X2i+1, X2i}. There are four paths reaching one state in the state group {X2i+1, X2i}. For example, let us suppose a path reaching from a state belonging to the state group {X2, X1} to one state in the state group {X3, X2}. As a path reaching a state (1,1) in the state group {X3, X2}, there are four paths of a path (1,1)→(1,1), a path (1,j)→(1,1), a path (1,−1)→(1,1) and a path (1,−j)→(1,1).
On the other hand, in the transition from a state belonging to the state group {X2i−1, X2i−2} to a state belonging to the state group {X2i, X2i−1}, the code X2i is uniquely determined by X2i−1, and X2i−2. The path reaching one state in the state group {X2i, X2i−1} is limited to one. For example, let us suppose a transition from a state belonging to the state group {X1, X0} to a state belonging to the state group {X2, X1}. The path transiting to a state (1,1) in the state group {X2, X1) is limited to the path (1,1)→(1,1) in accordance with the equation (6). That is, it is necessary to satisfy the following equation (6′):

X0=X2/X1  (6′)

At a time of a decoding operation, if it is decoded as (X2, X1)=(1,1), the maximum likelihood path is only the path (1,1)→(1,1). Thus, it is uniquely determined that (X1, X0)=(1,1). Only one path is uniquely determined even for another state in the state group {X1, X0}. One state in the state group {X2i−1, X2i−2} corresponds to one state in the state group {X2i, X2i−1} in a one-to-one relationship.

As mentioned above, there are the four paths reaching the states belonging to the state group {X2i+1, X2i}, determined by the codes X2i+1 and X2i. The path reaching the states belonging to the state group {X2i, X2i−1} determined by the codes X2i and X2i−1 is reduced to one. In this way, the reduction in the path is regularly done without any deviation.
The above-mentioned equation (6) can be expanded when the trellis memory length is a value except 3. It is typically represented as follows. 



  
    
      
        
          
            X
            
              2
              ⁢
              i
            
          
          =
          
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                1
              
            
            ·
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                2
              
            
            ·
            ...
            ⁢
            
               
            
            ·
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                L
                +
                1
              
            
          
        
        ⁢
        
          

        
        ⁢
        or
        ⁢
        
          
        
        ⁢
        
          
            X
            
              2
              ⁢
              i
            
          
          =
          
            
              -
              
                X
                
                  
                    2
                    ⁢
                    i
                  
                  -
                  1
                
              
            
            ·
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                2
              
            
            ·
            ...
            ⁢
            
               
            
            ·
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                L
                +
                1
              
            
          
        
        ⁢
        
          

        
        ⁢
        or
        ⁢
        
          

        
        ⁢
        
          
            X
            
              2
              ⁢
              i
            
          
          =
          
            
              ±
              j
            
            ⁢
            
               
            
            ⁢
            
              
                X
                
                  
                    2
                    ⁢
                    i
                  
                  -
                  1
                
              
              ·
              
                X
                
                  
                    2
                    ⁢
                    i
                  
                  -
                  2
                
              
              ·
              ...
              ⁢
              
                 
              
              ·
              
                X
                
                  
                    2
                    ⁢
                    i
                  
                  -
                  L
                  +
                  1
                
              
            
          
        
      
    
    
      
        (
        
          6
          ′′
        
        )
      
    
  




Moreover, in the above-mentioned coding process, it should be noted that N is not limited to 1.
Approach 2
Let us suppose that a code ak included in the input information sequence {ak} is a four-value code having any value of ±1 and ±j. Here, k is an integer equal to or greater than 0. Moreover, the encoder 1 generates the output sequence {Xk} with the trellis memory length L being 3 and with the insertion interval N being 1. In this case, the code X0, which is not the insertion code, is represented as follows:

X0=a0.  (7)

Moreover, the codes X2i−1, which are not the insertion code, are represented as follows:

X2i−1=ai.  (8)

where i is an integer equal to or greater than 1. Also, the insertion codes X2i are inserted into the output sequence {Xk}. The insertion codes X2i are given as follows:

X2i=j X2i−2.  (9)

FIG. 4 is a trellis chart showing a state transition when the thus-generated output sequence {Xk} is decoded.
Let us consider a transition from a state belonging to the state group {X2i, X2i−1} to a state belonging to the state group {X2i+1, X2i}. There are four paths reaching one state in the state group {X2i+1, X2i}.
In the transition from a state belonging to the state group {X2i−1, X2i−2} to a state belonging to the state group {X2i, X2i−1}, on the other hand, the code X2i is uniquely determined by X2i−2. The number of the path reaching one state in the state group {X2i, X2i−1} is limited to one. For example, let us suppose a transition from a state belonging to the state group {X1, X0} to a state belonging to the state group {X2, X1}. The path transiting to a state (1,1) in the state group {X2, X1} is limited to the path (1,−j)→(1,1) in accordance with the equation (9). That is, it is necessary to satisfy the following equation:

X0=X2/j  (9′)

At a decoding operation, if it is decoded as (X2, X1)=(1,1), the maximum likelihood path is only the path (1,−j)→(1,1). Thus, it is uniquely determined that (X1, X0)=(1,−j). Only one path is uniquely determined even for another state in the state group {X1, X0}. One state in the state group (X2i−1, X2i−2} corresponds to one state in the state group {X2i, X2i−1} in a one-to-one relationship.

As mentioned above, there are the four paths reaching the states belonging to the state group {X2i+1, X2i} determined by the codes X2i+1 and X2i. The number of the paths reaching the states belonging to the state group {X2i, X2i−1} determined by the codes X2i and X2i−1 is reduced to one. In this way, the reduction in the path is regularly done without any deviation.
The above-mentioned equation (9) can be expanded when the trellis memory length is a value except 3. It is typically represented as follows. 



  
    
      
        
          
            
              X
              
                2
                ⁢
                i
              
            
            =
            
              
                ±
                j
              
              ⁢
              
                 
              
              ⁢
              
                X
                
                  
                    2
                    ⁢
                    i
                  
                  -
                  L
                  +
                  1
                
              
            
          
          ,
          
            

          
          ⁢
          or
        
        ⁢
        
          

        
        ⁢
        
          
            X
            
              2
              ⁢
              i
            
          
          =
          
            ±
            
              X
              
                
                  2
                  ⁢
                  i
                
                -
                L
                +
                1
              
            
          
        
      
    
    
      
        (
        10
        )
      
    
  




    
    
        Moreover, in the above-mentioned coding process, it should be noted that N is not limited to 1.
    
    


Although the invention has been described in its preferred form with a certain degree of particularity, it is understood that the present disclosure of the preferred form has been changed in the details of construction and the combination and arrangement of parts may be resorted to without departing from the spirit and the scope of the invention as hereinafter claimed.

## Claims

1. A communication system comprising:
an encoder encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and 
a decoder decoding said output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, 
wherein said output code Xk of said output codes X0, X1, . . . is determined based on said input sequence for k that is not equal to i(N+1) with i being any of natural number and with N being a natural number, and 
wherein said output code Xi(N+1) of said output codes X0, X1, . . . are uniquely determined based on a subset of a set consisting of output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of said output codes X0, X1, . . . , and 
wherein said subset includes output code Xi(N+1)−L+1 of said output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.

2. The communication system according to claim 1, wherein said N is one, and output code X2i is expressed as:


X2i=f(X2i−1, X2i−2, . . . , X2i−L+1), 

where f is a function.

3. The communication system according to claim 2, wherein said output code X2i is expressed as:


X2i=q·X2i−1·X2i−2· . . . ·X2i−L+1, 

where q is an number selected from a group consisting of 1, −1, j, and −j.

4. The communication system according to claim 1, wherein said input sequence includes input codes a0, a1, . . . sequentially inputted to said encoder, and
wherein said output code Xk for k that is not equal to i(N+1) is expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0), 


 where p is any of integers between 1 to N.

5. A communication system comprising:
an encoder encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and 
a decoder decoding said output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein output code Xk of said output codes X0, X1, . . . is determined based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
wherein output code Xi(N+1) of said output codes X0, X1, . . . is uniquely determined based on output code Xi(N+1)−L+1 of said output codes.

6. The communication system according to claim 5, wherein said N is one, output code X2i is expressed as:


X2i=f(X2i−L+1), 

where f is a function.

7. The communication system according to claim 6, wherein said output code X2i is expressed as:


X2i=q·X2i−L+1, 

where q is an number selected from a group consisting of 1, −1, j, and −j.

8. The communication system according to claim 5, wherein said input sequence includes input codes a0, a1, . . . sequentially inputted to said encoder, and
wherein said output codes Xk for k that is not equal to i(N+1) is expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0) 


 where p is any of integers between 1 to N.

9. An encoder comprising:
input means for being inputted by an input sequence; 
encoding means for encoding said input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein output code Xk of said output codes X0, X1, . . . is determined based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
wherein output code Xi(N+1) of said output codes X0, X1, . . . are uniquely determined based on a subset of a set consisting of said output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of said output codes X0, X1, . . . , and 
wherein said subset includes said output code Xi(N+1)−L+1 of said output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.

10. The encoder according to claim 9, wherein said N is one, and output code X2i is expressed as:


X2i=f(X2i−1, X2i−2, . . . , X2i−L+1) 

where f is a function.

11. The encoder according to claim 10, wherein said output code X2i is expressed as:


X2i=q·X2i−1·X2i−2· . . . ·X2i−L+1, 

where q is a number selected from a group consisting of 1, −1, j, and −j.

12. The encoder according to claim 9, wherein said input sequence includes input codes a0, a1, . . . sequentially inputted to said input means, and
wherein said output code Xk for k that is not equal to i(N+1) are expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0), 


 where p is any of integers between 1 to N.

13. An encoder comprising:
input means for being inputted by an input sequence; 
encoding means for encoding said input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein output code Xk of said output codes X0, X1, . . . is determined based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
wherein output code Xi(N+1) of said output codes X0, X1, . . . is uniquely determined based on output code Xi(N+1)−L+1 of said output codes.

14. The encoder according to claim 13, wherein said N is one, and output code X2i is expressed as:


X2i=f(X2i−L+1), 

where f is a function.

15. The encoder according to claim 14, wherein said output code X2i is expressed as:


X2i=q·X2i−L+1, 

where q is a number selected from a group consisting of 1, −1, j, and −j.

16. The encoder according to claim 13, wherein said input sequence includes input codes a0, a1, . . . sequentially inputted to said input means, and
wherein said output codes Xk for k that is not equal to i(N+1) is expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0), 


 where p is any of integers between 1 to N.

17. A method comprising:
encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and 
decoding said output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein said encoding includes: 
determining output code Xk of said output codes X0, X1, . . . based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
determining output code Xi(N+1) of said output codes X0, X1, . . . based on a subset of a set consisting of output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of said output codes X0, X1, . . . , and 

wherein said subset includes said output code Xi(N+1)−L+1 of said output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.

18. A method comprising:
encoding an input sequence to sequentially generate output codes X0, X1, . . . ; and 
decoding said output codes by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein said encoding includes: 
determining output code Xk of said output codes X0, X1, . . . based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
determining output code Xi(N+1) of said output codes X0, X1, . . . based only on output code Xi(N+1)−L+1 of said output codes.

19. A method of encoding comprising:
inputting an input sequence; and 
encoding an input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein said encoding includes: 
determining output code Xk of said output codes X0, X1, . . . based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 
determining output code Xi(N+1) of said output codes X0, X1, . . . based on a subset of a set consisting of output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1 of said output codes X0, X1, . . . , and 

wherein said subset includes said output code Xi(N+1)−L+1 of said output codes Xi(N+1)−L+1, Xi(N+1)−L+2, . . . , Xi(N+1)−1.

20. The method according to claim 19, wherein said N is one, and output code X2i is expressed as:


X2i=f(X2i−1, X2i−2, . . . , X2i−L+1), 

where f is a function.

21. The method according to claim 20, wherein said output code X2i is expressed as:


X2i=q·X2i−1·X2i−2· . . . ·X2i−L+1, 

where q is an number selected from a group consisting of 1, −1, j, and −j.

22. The method according to claim 19, wherein said input sequence includes input codes a0, a1, . . . which are sequentially inputted, and
wherein said output code Xk for k that is not equal to i(N+1) are expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0), 


 where p is any of integers between 1 to N.

23. A method of encoding comprising:
inputting an input sequence; and 
encoding said input sequence to sequentially generate output codes X0, X1, . . . which are to be decoded by a MLSD (Maximum Likelihood Sequence Detection) method with a trellis memory length being L, wherein said encoding includes: 
determining output code Xk of said output codes X0, X1, . . . based on said input sequence for k that is not equal to i(N+1) with i being any of natural numbers and with N being a natural number, and 

determining output code Xi(N+1) of said output codes X0, X1, . . . based only on output code Xi(N+1)−L+1 of said output codes.

24. The method according to claim 23, wherein said N is one, and output code X2i is expressed as:


X2i=f(X2i−L+1), 

where f is a function.

25. The method according to claim 24, wherein said output code X2i is expressed as:


X2i=q·X2i−L+1, 

where q is an number selected from a group consisting of 1, −1, j, and −j.

26. The method according to claim 23, wherein said input sequence includes input codes a0, a1, . . . which are sequentially inputted, and
wherein said output codes Xk for k that is not equal to i(N+1) is expressed as: 


X0=a0, (k=0) 



Xi(N+1)−p=aiN−(p−1)(k≠0), 


 where p is any of integers between 1 to N.