Abstract:
An encoding and error correction system and method employs an AMR codec by stripping header data from a plurality of legacy system frames having header and traffic channel (TCH) data blocks. Speech data is then encoded using the AMR to create bits for a data block substantially the same as contained in the plurality of frames. The stripped header data is encoded as a long frame header using a fixed convolution coder. The speech data is then convolutionally encoded and the long frame header and encoded speech data are combined as a long frame. The long frame is then deconstructed into a plurality of equal segments and the segments are transmitted as TCH data in the legacy system frame format.

Description:
FIELD OF THE INVENTION  
       [0001]     This invention relates generally to the field of encoding and error correction for transmission systems and, more particularly, to use of an advanced vocoder with bit mapping and encoding for retrofit of legacy communications systems to enhance error correction performance.  
       BACKGROUND OF THE INVENTION  
       [0002]     Waveform source coding and decoding (codec) is widely used in early digital mobile communication systems such as the Personal Handyphone System (PHS). Due to technology limitations at the time of implementation, some of the system designs did not provide appropriate channel encoding/decoding to protect the transferred data. For such systems, when the channel quality condition degrades, the ensuing high bit error rate makes voice performance unacceptable and some important control bits are easily corrupted. As the result, upper layer protocol and control mechanisms in the system would be likely active to turn off the channel. This is one of the most prevalent reasons for a lost connection during an ongoing communication session.  
         [0003]     There are adaptive multi-rate (AMR) vocodec and corresponding channel coding capabilities in some advanced 2G mobile systems and all the 3G systems. Under the AMR standard, there are 8 different data rates for code Excited Linear Prediction (CELP) speech codec. These data rates range from 12.2 kbps to 4.75 kps. The more speech information is transferred, the better the voice performance is achieved. The basic approach employed in the AMR standard is that when the channel condition become worse, the system uses the modes with lower data transfer rate (of course, the voice performance is worse.). This saves more channel bandwidth and other resources for the system to increase the bit error correction ability. The lack comparable technology in legacy digital mobile systems (such as PHS) derives from under-developed algorithms and the expense of integrated circuit resources related to power and instruction speed requirements. With the advent of silicon technology, the use of digital signal processors (DSP) is no longer a luxury element in a PHS handset.  
         [0004]     It is therefore desirable to make use of AMR vocodec capability in legacy systems.  
         [0005]     It is also desirable to apply AMR and error correction in a manner which can be retrofit into early 2G systems by re-arranging bit mapping to provide up to 6 to 7 dB gain for bit error reduction ability for certain AMR modes.  
       SUMMARY OF THE INVENTION  
       [0006]     An encoding and error correction system and method according to the present invention employs the modern benefits of AMR codec by stripping header data from a plurality of legacy system frames having header and traffic channel (TCH) data blocks. Speech data is then encoded using the AMR to create bits for a data block substantially the same as contained in the plurality of frames. The stripped header data is encoded as a long frame header using a fixed convolution coder. The speech data is then convolutionally encoded and the long frame header and encoded speech data are combined as a long frame. The long frame is then deconstructed into a plurality of equal segments and the segments are transmitted as TCH data in the legacy system frame format.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]     These and other features and advantages of the present invention will be better understood by reference to the following detailed description when considered in connection with the accompanying drawings wherein:  
         [0008]     FIG. I is a block diagram of a prior art PHS system traffic channel frame and slot structure;  
         [0009]      FIG. 2  is a block diagram of bit mapping and encoding for creation of a long frame for deconstruction into standard PHS slots for transmission;  
         [0010]      FIG. 3  is a block diagram of the bit mapped long frame;  
         [0011]      FIG. 4  is a block diagram of the Robust AMR Traffic Synchronized Control Channel (RATSCCH) format for the long frame;  
         [0012]      FIG. 5  is a block diagram of an interleaving scheme for the encoded data;  
         [0013]      FIG. 6  is a schematic diagram of the elements of a handset and base station system employing the present invention;  
         [0014]      FIG. 7   a  is a table representation of the AMR mode and division into Mode and class for use in the present invention; and,  
         [0015]      FIG. 7   b  is a flow chart representation of the mode switching algorithm using class as employed in the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]     The present invention is defined for an exemplary embodiment employing the PHS communication system and standard (a 2G legacy mobile system). The PHS system incorporating technology according to the invention will be referred to herein as Advanced PHS (APHS).  
         [0017]     Data mapping of the Traffic Channel (TCH) of an exemplary PHS system is shown in  FIG. 1 . PHS is a time division multiplex (TDMA) system. One frame  10  is 5 ms in length and is divided into 8 slots, four for uplink and four for downlink. In each direction, three slots, T 1 , T 2  and T 3 , are available for three different users and the last slot is the common control channel alternating uplink mode commands and downlink mode commands, C_up and C_down, for all three users.  
         [0018]     Slot T 2  is expanded in  FIG. 1  as an example slot  12  and discussed in detail for the explanation of the invention herein. Areas PR and UW are employed for synchronization of the physical layer. Block UW incorporates 16 bits. As discussed in greater detail subsequently, PR and UW are inserted in the transmitted frame before the decoder so that they cannot be encoded. CI and SA are the protocol for slot format information and connection status and are important for connection reliability. Block CI contains 4 bits while block SA contains 16 bits. TCH contains the speech data and comprises 160 bits. The CRC block of 16 bits provides the error detection bits. It can be seen that within one frame, there are 160 bits of speech data and the whole vocodec rate is therefore 160/0.05=32 Kbps. This is the data rate for ADPCM (ITU G.726) as employed in PHS.  
         [0019]     The present invention employs AMR codec in combination with bit mapping to create frames compatible with PHS transmission standards while adding encoding for performance enhancement. There are eight vocodec modes in an AMR system. The eight modes are defined by GSM and 3GPP international standards and the data rates employed are 12.2, 10.2, 7.95, 7.4, 6.7, 5.9, 5.15, and 4.75 (Kbps). Each of these rates is lower than the 32 Kbps basic capability of the PHS system and allows flexibility in formatting the data to be encoded.  
         [0020]     As will be described in greater detail subsequently, the source speech and channel coding provided in the present invention is accomplished within 20 ms, or four PHS slot times. Interleaving of 20 ms blocks is beneath the sensitivity threshold of the human ear. The new encoding “frame” is referred to herein as a long-frame. To be compatible with the bit mapping of the PHS standard frame, the present invention does not make use of the CI, SA and CRC areas. That is, the encoded CI and SA data are put into the TCH block. The vocodec mode related message is encoded with a particular channel code mode and employs a special area and encoder. The larger the channel coding data block size, the better the result (higher bit error ability). Finally, a new control channel Robust AMR Traffic Synchronized Control Channel (RATSCCH) for long-frame synchronization is employed at the very beginning of the connection between of handset and the base station. RATSCCH is also used for a mode message in some special cases.  
         [0021]     The TCH block is used for speech data, SA/CI and in-band data. Different vocodec modes have different speech and channel encoding parameters and require different data transfer rates. The SA/CI and in-band information are encoded and need a constant data rate. The encoding and bit mapping in APHS are shown in  FIG. 2 .  
         [0022]     Four PHS slots  12   a ,  12   b,    12   c  and  12   d  nominally provide the long frame. CI and SA data for the four slots are stripped and combined in an APHS long frame header block  14 . Nominally 20 ms of speech samples  16  are processed through AMR vocodec  18 . The long frame header data is processed through a first encoder  20  and in-band data  22  is inserted followed by the AMR processed speech samples which are routed through a second encoder  24  which is convolutional. The resulting long frame is shown in  FIG. 3  wherein the header  26  comprises 156 bits of CI and SA data, an in-band block  28  carries 8 bits followed by an encoded speech data block  30  of 476 bits resulting in a long frame  32  of 640 bits. As previously described, this long frame is then split into four 160 bit lengths for insertion into the standard TCH block of 4 APHS frames  34   a,    34   b,    34   c , and  34   d  for transmission.  
         [0023]     In the PHS system, the data rate resource in area TCH for use in a long-frame is TCH*4=160*4=640 bits. For compatibility, the original area containing SA/CI data in each slot is reserved in APHS but the data is ignored for processing in the APHS. Message SA/CI together with in-band message data are encoded and put in original TCH area.  
         [0024]     The maximum encoded speech data in a long-frame is 476 bits in the APHS embodiment described. Different vocode mode and channel code mode with different parameters are combined to generate different encoded speech data blocks of different size. If the generated encoded speech data block is larger than 476 bits, some bits have to be punctured. In APHS embodiment disclosed herein, channel coding is accomplished using a convolutional encoder. Other channel coding methods are employed in alternative embodiments.  
         [0025]     Based on interleaving of the data, as will be discussed subsequently, the CI data need only be transmitted once in each long frame (the equivalent of one of every 4 PHS frames). The SA data needs to be transmitted for every slot. The resulting long frame data for SA/CI is shown in Table 1.  
                                                     TABLE 1                                       Name   SA0   SA1   SA2   SA3           Number of bits   16   16   16   16           Name   CI           Number of bits   4           Number of CRC   6                bits   Polynomial D 6  + D 5  + D 3  + D 2  + d 1  + 1           Number of input   74           bits for           convolutional           coder           Polynomial for 1/2   Polynomial           convolution coder   G0/G0 = 1               G1/G0 = 1 + D + D 3  + D 4 /1 + D 3  + D 4                 with trailing 8 bits           Number of output   148 + 8 = 156           bits                      
 
         [0026]     Eight bits are employed for mode information which is mapped into the final 8 bits of the long frame as will be shown below.  
         [0027]     Table 2 shows the Codec mode and the associated convolution rate, the number of bits input into the convolutional coder, the resulting output number of bits from the coder, the number of SA bits after CRC and a ½ convolutional encoder, the total number of bits and the preferred class.  
                                                                     TABLE 2                                   Number                               of output bits   Number of               Number   from   SA bits   Total Number               of input   convolutional   after CRC   of bits for one               bits to   coder   and 1/2   block 20 ms       Codec       convolutional   (it should be   convolution   (632 + 8 = 640   Preferred       mode   Rate   coder   476)   coder   total)   Class                                TCH/AFS   1/2   250   508   156   632   1       12.2           puncturing 32                   bits       TCH/AFS   1/3   210   642 puncturing   156   632   2       10.2           166 bits       TCH/AFS   1/3   165   513 puncturing   156   632   1       7.95           37 bits       TCH/AFS   1/3   154   474   156   630   2       7.4       TCH/AFS   1/4   140   576 puncturing   156   632   1       6.7           100       TCH/AFS   1/4   124   520 puncturing   156   632   2       5.9           44       TCH/AFS   1/5   109   565 puncturing   156   632   1       5.15           89       TCH/AFS   1/5   101   535 puncturing   156   632   2       4.75           59                  
 
         [0028]     As can be seen in the table, with the fixed number of bits for SA/CI data of 156 and the total 640 bits available to fit within the PHS TCH of 160 bits for four frames, bits from the voice data convolutional encoder should total 476 and bits must be punctured to fit the long frame.  
         [0029]     Exemplary convolution coding for each of the codec modes is shown in Tables 3-10 with definition of the punctured bits to maintain the long frame size of 640 bits.  
                                                             TABLE 3                           TCH/AFS12.2 Codec:       The block of 250 bits {u(0)... u(249)} is encoded with the 1/2 rate convolutional code defined by the       following polynomials:       G0/G0 = 1       G1/G0 = 1 + D + D 3 + D 4  / 1 + D 3  + D 4         resulting in 508 coded bits, {C(0)... C(507)} defined by:            r(k)   = u(k) + r(k−3) + r(k−4)       C(2k)   = u(k)            C(2k+1) = r(k)+r(k−1)+r(k−3)+r(k−4)   for k = 0, 1, ..., 249; r(k) = 0 for k&lt;0       and (for termination of the coder):            r(k)   = 0       C(2k)   = r(k−3) + r(k−4)            C(2k+1) = r(k)+r(k−1)+r(k−3)+r(k−4)   for k = 250, 251, ..., 253            The code is punctured in such a way that the following 32 bits: C(417), C(421), C(425), C(427), C(429),       C(433), C(437), C(441), C(443), C(445), C(449), C(453), C(457), C(459), C(461), C(465), C(469), C(473),       C(475), C(477), C(481), C(485), C(489), C(491), C(493), C(495), C(497), C(499), C(501), C(503), C(505)       and C(507) are not transmitted.                  
 
         [0030]    
       
         
               
             
               
               
             
               
             
               
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 4 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS10.2 Codec: 
               
               
                 The block of 210 bits {u(0)... u(209)} is encoded with the 1/3 rate convolutional code defined by the 
               
               
                 following polynomials: 
               
               
                 G1/G3 = 1 + D + D 3  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G2/G3 = 1 + D 2  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G3/G3 = 1 
               
               
                 resulting in 642 coded bits, {C(0)... C(641)} defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) 
               
               
                 C(3k) 
                 = r(k) + r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(3k+1) = r(k)+r(k−2)+r(k−4) 
               
             
          
           
               
                 C(3k+2) = u(k) 
                 for k = 0, 1, ..., 209 
               
               
                 and (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(3k) 
                 = r(k)+r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(3k+1) = r(k)+r(k−2)+r(k−4) 
               
             
          
           
               
                 C(3k+2) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
                 for k = 210, 211, ..., 213 
               
             
          
           
               
                 The code is punctured in such a way that the following 22 bits: 
               
               
                 C(1), C(4), C(7), C(10), C(16), C(19), C(22), C(28), C(31), C(34), C(40), C(43), C(46), C(52), C(55), 
               
               
                 C(58), C(64), C(67), C(70), C(76), C(79), and C(82) are not transmitted. All these operations will result in 
               
               
                 620 bits. 
               
               
                 The code is punctured in such a way that the following 166 bits: C(1), C(4), C(7), C(10), C(16), C(19), 
               
               
                 C(22), C(28), C(31), C(34), C(40), C(43), C(46), C(52), C(55), C(58), C(64), C(67), C(70), C(76), C(79), 
               
               
                 C(82), C(88), C(91), C(94), C(100), C(103), C(106), C(112), C(115), C(118), C(124), C(127), C(130), 
               
               
                 C(136), C(139), C(142), C(148), C(151), C(154), C(160), C(163), C(166), C(172), C(175), C(178). C(184), 
               
               
                 C(187), C(190), C(196), C(199), C(202), C(208), C(211), C(214), C(220), C(223), C(226), C(232), C(235), 
               
               
                 C(238), C(244), C(247), C(250), C(256), C(259), C(262), C(268), C(271), C(274), C(280), C(283), C(286), 
               
               
                 C(292), C(295), C(298), C(304), C(307), C(310), C(316), C(319), C(322), C(325), C(328), C(331), C(334), 
               
               
                 C(337), C(340), C(343), C(346), C(349), C(352), C(355), C(358), C(361), C(364), C(367), C(370), C(373), 
               
               
                 C(376), C(379), C(382), C(385), C(388), C(391), C(394), C(397), C(400), C(403), C(406), C(409), C(412), 
               
               
                 C(415), C(418), C(421), C(424), C(427), C(430), C(433), C(436), C(439), C(442), C(445), C(448), C(451), 
               
               
                 C(454), C(457), C(460), C(463), C(466), C(469), C(472), C(475), C(478), C(481), C(484), C(487), C(490), 
               
               
                 C(493), C(496), C(499), C(502), C(505), C(508), C(511), C(514), C(517), C(520), C(523), C(526), C(529), 
               
               
                 C(532), C(535), C(538), C(541), C(544), C(547), C(550), C(553), and C(556) are not transmitted. 
               
               
                   
               
             
          
         
       
     
         [0031]    
       
         
               
             
               
               
             
               
             
               
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 5 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS7.95 Codec: 
               
               
                 The block of 165 bits {u(0)... u(164)} is encoded with the 1/3 rate convolutional code defined by the 
               
               
                 following polynomials: 
               
               
                 G4/G4 = 1 
               
               
                 G5/G4 = 1 + D + D 4  + D 6 / 1 + D 2  D 3  + D 5  + D 6   
               
               
                 G6/G4 = 1 + D + D 2  + D 3  + D 4  + D 6 / 1 + D 2  + D 3  + D 5  + D 6   
               
               
                 generating 513 coded bits, {C(0)... C(512)}defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
               
                 C(3k) 
                 = u(k) 
               
             
          
           
               
                 C(3k+1) = r(k)+r(k−1)+r(k−4)+r(k−6) 
               
             
          
           
               
                 C(3k+2) = r(k)+r(k−1)+ r(k−2)+r(k−3)+r(k−4)+r(k−6) 
                 for k = 0, 1, ..., 164; r(k) = 0 for k&lt;0 
               
               
                 and (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(3k) 
                 = r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
             
          
           
               
                 C(3k+1) = r(k)+r(k−1)+r(k−4)+r(k−6) 
               
             
          
           
               
                 C(3k+2) = r(k)+r(k−1)+ r(k−2)+r(k−3)+r(k−4)+r(k−6) 
                 for k = 165, 166, ..., 170 
               
             
          
           
               
                 The code is punctured in such a way that the following 37 bits: C(1), C(2), C(4), C(5), C(8), C(22), C(70), 
               
               
                 C(118), C(166), C(214), C(262), C(310), C(317), C(319), C(325), C(332), C(334), C(341), C(343), C(349), 
               
               
                 C(356), C(358), C(365), C(367), C(373), C(380), C(382), C(385), C(389), C(391), C(397), C(404), C(406), 
               
               
                 C(409), C(413), C(415), and C(512) are not transmitted. 
               
               
                   
               
             
          
         
       
     
         [0032]    
       
         
               
               
             
               
               
               
             
               
               
             
               
               
               
             
               
               
             
               
               
               
             
               
               
             
               
               
               
             
           
               
                   
                 TABLE 6 
               
               
                   
                   
               
               
                   
                   
               
             
             
               
                   
                 TCH/AFS7.4 Codec: 
               
               
                   
                 The block of 154 bits {u(0)... u(153)} is encoded with the 1/3 rate 
               
               
                   
                 convolutional code defined by the 
               
               
                   
                 following polynomials: 
               
               
                   
                 G1/G3 = 1 + D + D 3  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                   
                 G2/G3 = 1 + D 2  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                   
                 G3/G3 = 1 
               
               
                   
                 resulting in 474 coded bits, {C(0)... C(473)} defined by: 
               
             
          
           
               
                   
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) 
               
               
                   
                 C(3k) 
                 = r(k) + r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                   
                 C(3k+1) = r(k)+r(k−2)+r(k−4) 
               
             
          
           
               
                   
                 C(3k+2) = u(k) 
                 for k = 0, 1, ..., 153 
               
             
          
           
               
                   
                 and (for termination of the coder): 
               
             
          
           
               
                   
                 r(k) 
                 = 0 
               
               
                   
                 C(3k) 
                 = r(k)+r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                   
                 C(3k+1) = r(k)+r(k−2)+r(k−4) 
               
             
          
           
               
                   
                 C(3k+2) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
                 for k = 154, 155, ..., 157 
               
               
                   
                   
               
             
          
         
       
     
         [0033]    
       
         
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 7 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS6.7 Codec: 
               
               
                 The block of 140 bits {u(0)... u(139)} is encoded with the 1/4 rate convolutional code defined by the 
               
               
                 following polynomials: 
               
               
                 G1/G3 = 1 + D + D 3  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G2/G3 = 1 + D 2  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G3/G3 = 1 
               
               
                 G3/G3 = 1 
               
               
                 producing 576 coded bits, {C(0)... C(575)} defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) 
               
               
                 C(4k) 
                 = r(k) + r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(4k+1) = r(k)+r(k−2)+r(k−4) 
               
               
                 C(4k+2) = u(k) 
               
             
          
           
               
                 C(4k+3) = u(k) 
                 for k = 0, 1, ..., 139; r(k) = 0 for k&lt;0 
               
             
          
           
               
                 Also (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(4k) 
                 = r(k)+r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(4k+1) = r(k)+r(k−2)+r(k−4) 
               
               
                 C(4k+2) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
               
             
          
           
               
                 C(4k+3) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
                 for k = 140, 141, ..., 143 
               
             
          
           
               
                 The code is punctured in such a way that the following 100 bits: C(1), C(3), C(7), C(11), C(15), C(27), 
               
               
                 C(39), C(55), C(67), C(79), C(95), C(107), C(119), C(135), C(147), C(159), C(175), C(187), C(199), 
               
               
                 C(215), C(227), C(239), C(255), C(267), C(279), C(287), C(291), C(295), C(299), C(303), C(307), C(311), 
               
               
                 C(315), C(319), C(323), C(327), C(331), C(335), C(339), C(343), C(347), C(351), C(355), C(359), C(363), 
               
               
                 C(367), C(369), C(371), C(375), C(377), C(379), C(383), C(385), C(387), C(391), C(393), C(395), C(399), 
               
               
                 C(401), C(403), C(407), C(409), C(411), C(415), C(417), C(419), C(423), C(425), C(427), C(431), C(433), 
               
               
                 C(435), C(439), C(441), C(443), C(447), C(449), C(451), C(455), C(457), C(459), C(463), C(465), C(467), 
               
               
                 C(471), C(473), C(475), C(479), C(481), C(483), C(487), C(489), C(491), C(495), C(497), C(499), C(503), 
               
               
                 C(505), C(507), and C(511) are not transmitted. 
               
               
                   
               
             
          
         
       
     
         [0034]    
       
         
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 8 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS5.9 Codec: 
               
               
                 The block of 124 bits {u(0)... u(123)} is encoded with the 1/4 rate convolution code defined by the 
               
               
                 following polynomials: 
               
               
                 G4/G6 = 1 + D 2  + D 3  +D 5  + D 6  / 1 + D + D 2  + D 3  + D 4  + D 6   
               
               
                 G5/G6 = 1 + D 4  + D 6  / 1 + D + D 2  + D 3  +  4  + D 6   
               
               
                 G6/G6 = 1 
               
               
                 G6/G6 = 1 
               
               
                 generating in 520 coded bits, {C(0)... C(519)} defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) + r(k−6) 
               
               
                 C(4k) 
                 = r(k) + r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
             
          
           
               
                 C(4k+1) = r(k) + r(k−1) + r(k−4) + r(k−6) 
               
               
                 C(4k+2) = u(k) 
               
               
                 C(4k+3) = u(k) 
               
             
          
           
               
                   
                 for k = 0, 1, ..., 123; r(k) = 0 for 
               
             
          
           
               
                 k&lt;0 and (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(4k) 
                 = r(k)+r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
             
          
           
               
                 C(4k+1) = r(k)+r(k−1)+r(k−4)+r(k−6) 
               
               
                 C(4k+2) = r(k−1)+r(k−2)+ r(k−3)+r(k−4)+r(k−6) 
               
               
                 C(4k+3) = r(k−1)+r(k−2)+ r(k−3)+r(k−4)+r(k−6) 
               
             
          
           
               
                   
                 for k = 124, 125, ..., 129 
               
             
          
           
               
                 The code is punctured in such a way that the following 44 bits: C(0), C(1), C(3), C(5), C(7), C(11), C(15), 
               
               
                 C(31), C(47), C(63), C(79), C(95), C(111), C(127), C(143), C(159), C(175), C(191), C(207), C(223), 
               
               
                 C(239), C(255), C(271), C(287), C(303), C(319), C(327), C(331), C(335), C(343), C(347), C(351), C(359), 
               
               
                 C(363), C(367), C(375), C(379), C(383), C(391), C(395), C(399), C(407), C(411), and C(415) are not 
               
               
                 transmitted. 
               
               
                   
               
             
          
         
       
     
         [0035]    
       
         
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 9 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS5.15 Codec: 
               
               
                 The block of 109 bits {u(0)... u(108)} is encoded with the 1/5 rate convolution code defined by the 
               
               
                 following polynomials: 
               
               
                 G1/G3 = 1 + D + D 3  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G1/G3 = 1 + D + D 3  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G2/G3 = 1 + D 2  + D 4  / 1 + D + D 2  + D 3  + D 4   
               
               
                 G3/G3 = 1 
               
               
                 G3/G3 = 1 
               
               
                 generating 565 coded bits, {C(0)... C(564)} defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) 
               
               
                 C(5k) 
                 = r(k) + r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(5k+1) = r(k) + r(k−1) + r(k−3) + r(k−4) 
               
               
                 C(5k+2) = r(k)+r(k−2)+r(k−4) 
               
               
                 C(5k+3) = u(k) 
               
               
                 C(5k+4) = u(k) 
               
               
                 for k = 0, 1, ..., 108; 
               
               
                 r(k) = 0 for k&lt;0 and (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(5k) 
                 = r(k)+r(k−1) + r(k−3) + r(k−4) 
               
             
          
           
               
                 C(5k+1) = r(k)+r(k−1) + r(k−3) + r(k−4) 
               
               
                 C(5k+2) = r(k)+r(k−2)+r(k−4) 
               
               
                 C(5k+3) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
               
             
          
           
               
                 C(5k+4) = r(k−1)+r(k−2)+r(k−3)+r(k−4) 
                 for k = 109, 110, ..., 112 
               
             
          
           
               
                 The code is punctured in such a way that the following 89 bits: C(0), C(4), C(5), C(9), C(10), C(14), C(15), 
               
               
                 C(20), C(25), C(30), C(35), C(40), C(50), C(60), C(70), C(80), C(90), C(100), C(110), C(120), C(130), 
               
               
                 C(140), C(150), C(160), C(170), C(180),C(190), C(200), C(210), C(220), C(230), C(240), C(250), C(260), 
               
               
                 C(270), C(280), C(290), C(300), C(310), C(315), C(320), C(325), C(330), C(334), C(335), C(340), C(344), 
               
               
                 C(345), C(350), C(354), C(355), C(360), C(364), C(365), C(370), C(374), C(375), C(380), C(384), C(385), 
               
               
                 C(390), C(394), C(395), C(400), C(404), C(405), C(410), C(414), C(415), C(420), C(424), C(425), C(430), 
               
               
                 C(434), C(435), C(440), C(444), C(445), C(450), C(454), C(455), C(460), C(464), C(465), C(470), C(474), 
               
               
                 C(475), C(480), and C(484) are not transmitted. 
               
               
                   
               
             
          
         
       
     
         [0036]    
       
         
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
               
               
             
               
             
           
               
                 TABLE 10 
               
               
                   
               
               
                   
               
             
             
               
                 TCH/AFS4.75 Codec: 
               
               
                 The block of 101 bits {u(0)... u(100)} is encoded with the 1/5 rate convolutional code defined by the 
               
               
                 following polynomials: 
               
               
                 G4/G6 = 1 + D 2  + D 3  + D 5  + D 6  / 1 + D + D 2  + D 3  + D 4  + D 6   
               
               
                 G4/G6 = 1 + D 2  + D 3  + D 5  + D 6  / 1 + D + D 2  + D 3  + D 4  + D 6   
               
               
                 G5/G6 = 1 + D + D 4  + D 6  / 1 + D + D 2  + D 3  + D 4  + D 6   
               
               
                 G6/G6 = 1 
               
               
                 G6/G6 = 1 
               
               
                 Generating 535 coded bits, {C(0)... C(534)} defined by: 
               
             
          
           
               
                 r(k) 
                 = u(k) + r(k−1) + r(k−2) + r(k−3) + r(k−4) + r(k−6) 
               
               
                 C(5k) 
                 = r(k) + r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
             
          
           
               
                 C(5k+1) = r(k) + r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
               
                 C(5k+2) = r(k) + r(k−1) + r(k−4) + r(k−6) 
               
               
                 C(5k+3) = u(k) 
               
               
                 C(5k+4) = u(k) 
               
             
          
           
               
                   
                 for k = 0, 1, ..., 100; r(k) = 0 for 
               
             
          
           
               
                 k&lt;0 and (for termination of the coder): 
               
             
          
           
               
                 r(k) 
                 = 0 
               
               
                 C(5k) 
                 = r(k)+r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
             
          
           
               
                 C(5k+1) = r(k)+r(k−2) + r(k−3) + r(k−5) + r(k−6) 
               
               
                 C(5k+2) = r(k)+r(k−1)+r(k−4)+r(k−6) 
               
               
                 C(5k+3) = r(k−1)+r(k−2)+ r(k−3)+r(k−4)+r(k−6) 
               
               
                 C(5k+4) = r(k−1)+r(k−2)+ r(k−3)+r(k−4)+r(k−6) 
               
             
          
           
               
                   
                 for k = 101, 102, ..., 106 
               
             
          
           
               
                 The code is punctured in such a way that the following 59 bits: C(0), C(5), C(15), C(25), C(35), C(45), 
               
               
                 C(55), C(65), C(75), C(85), C(95), C(105), C(115), C(125), C(135), C(145), C(155), C(165), C(175), 
               
               
                 C(185), C(195), C(205), C(215), C(225), C(235), C(245), C(255), C(265), C(275), C(285), C(295), C(305), 
               
               
                 C(315), C(325), C(335), C(345), C(355), C(365), C(375), C(385), C(395), C(400), C(405), C(410), C(415), 
               
               
                 C(420), C(425), C(430), C(435), C(440), C(445), C(450), C(455), C(459), C(460), C(465), C(470), C(475), 
               
               
                 and C(479), are not transmitted. 
               
               
                   
               
             
          
         
       
     
         [0037]     The RATSCCH long frame employs a different format within the TCH block which is shown in  FIG. 4 . RATSCCH is used in two cases. At the very beginning of the connection between handset and base station, it is used for long-frame synchronization. Also, in some corner cases, the in-band message in RATSCCH is used to give the encoder mode information together with the in-band message of the normal frame. RATSCCH as used in the present invention is comparable to the formats widely used in GSM/3G systems for telling remote PS/CS to change AMR mode and class.  
         [0038]     In one embodiment, interleaving of the data of the long frame for transmission in the standard PHS 5 ms bursts is accomplished as shown in  FIG. 5 . The bits of the long frame are interleaved as shown in Table 11.  
                                                                                           TABLE 11                           Interleaving TABLE for PHS Load            K = 0   1   2   3   4   5   6   7                        0   513   442   307   172   37   550   415   0       64   577   506   371   236   101   614   479   1       128   57   570   435   300   165   30   543   2       192   121   634   499   364   229   94   607   3       256   185   50   563   428   293   158   23   4       320   249   114   627   492   357   222   87   5       384   313   178   43   556   421   286   151   6       448   377   242   107   620   485   350   215   7       512   441   306   171   36   549   414   279   8       576   505   370   235   100   613   478   343   9       56   569   434   299   164   29   542   407   10       120   633   498   363   228   93   606   471   11       184   49   562   427   292   157   22   535   12       248   113   626   491   356   221   86   599   13       312   177   42   555   420   285   150   15   14       376   241   106   619   484   349   214   79   15       440   305   170   35   548   413   278   143   16       504   369   234   99   612   477   342   207   17       568   433   298   163   28   541   406   271   18       632   497   362   227   92   605   470   335   19       48   561   426   291   156   21   534   399   20       112   625   490   355   220   85   598   463   21       176   41   554   419   284   149   14   527   22       240   105   618   483   348   213   78   591   23       304   169   34   547   412   277   142   7   24       368   233   98   611   476   341   206   71   25       432   297   162   27   540   405   270   135   26       496   361   226   91   604   469   334   199   27       560   425   290   155   20   533   398   263   28       624   489   354   219   84   597   462   327   29       40   553   418   283   148   13   526   391   30       104   617   482   347   212   77   590   455   31       168   33   546   411   276   141   6   519   32       232   97   610   475   340   205   70   583   33       296   161   26   539   404   269   134   63   34       360   225   90   603   468   333   198   127   35       424   289   154   19   532   397   262   191   36       488   353   218   83   596   461   326   255   37       552   417   282   147   12   525   390   319   38       616   481   346   211   76   589   454   383   39       32   545   410   275   140   5   518   447   40       96   609   474   339   204   69   582   511   41       160   25   538   403   268   133   62   575   42       224   89   602   467   332   197   126   639   43       288   153   18   531   396   261   190   55   44       352   217   82   595   460   325   254   119   45       416   281   146   11   524   389   318   183   46       480   345   210   75   588   453   382   247   47       544   409   274   139   4   517   446   311   48       608   473   338   203   68   581   510   375   49       24   537   402   267   132   61   574   439   50       88   601   466   331   196   125   638   503   51       152   17   530   395   260   189   54   567   52       216   81   594   459   324   253   118   631   53       280   145   10   523   388   317   182   47   54       344   209   74   587   452   381   246   111   55       408   273   138   3   516   445   310   175   56       472   337   202   67   580   509   374   239   57       536   401   266   131   60   573   438   303   58       600   465   330   195   124   637   502   367   59       16   529   394   259   188   53   566   431   60       80   593   458   323   252   117   630   495   61       144   9   522   387   316   181   46   559   62       208   73   586   451   380   245   110   623   63       272   137   2   515   444   309   174   39   64       336   201   66   579   508   373   238   103   65       400   265   130   59   572   437   302   167   66       464   329   194   123   636   501   366   231   67       528   393   258   187   52   565   430   295   68       592   457   322   251   116   629   494   359   69       8   521   386   315   180   45   558   423   70       72   585   450   379   244   109   622   487   71       136   1   514   443   308   173   38   551   72       200   65   578   507   372   237   102   615   73       264   129   58   571   436   301   166   31   74       328   193   122   635   500   365   230   95   75       392   257   186   51   564   429   294   159   76       456   321   250   115   628   493   358   223   77       520   385   314   179   44   557   422   287   78       584   449   378   243   108   621   486   351   79                  
 
         [0039]     For interleaving, the bits are split into even and odd bits  102 ,  104  and interleaved according to the table. Eight segments  106  of 80 bits of data are obtained  108  which are then interleaved with eight segments from the prior 20 ms segment  110 . After interleaving, two segments at a time are transmitted in the TCH block of the PHS slot.  
         [0040]     In the normal data transfer mode, the system operates in a similar manner to AMR in GSM and 3GPP systems. As shown in  FIG. 6 . In the handset  36 , speech encoder  38  for input voice samples the data and provides coded data to a channel encoder  40  which converts the long frames to PHS format 5 ms frames for transmission. Uplink speech data is then transmitted to the base station  42  in which a channel decoder  44  collapses the PHS standard frames into the long frame format which is then passed to the speech decoder  46 . During the decoding, the bit error and corresponding SNR (relative channel condition) is estimated by the Viterbi decoder in the convolution decoding process. After estimation within a certain time period, the codec adaption unit  48  makes decision whether the encode mode should be changed in the receiving direction, as will be described in detail subsequently. A request message, uplink node command  50 , is inserted into the in-band area and transfer to the handset.  
         [0041]     Operation of downlinking data from the base station to the handset is comparable with the speech data encoded by speech encoder  52  for input voice samples the data and provides coded data to a channel encoder  54  which converts the long frames to PHS format 5 ms frames for transmission. Downlink speech data is then transmitted to the handset in which a channel decoder  56  collapses the PHS standard frames into the long frame format which is then passed to the speech decoder  58 . During the decoding, the bit error and corresponding SNR (relative channel condition) is estimated. After estimation within a certain time period, the codec adaption unit  60  makes decision whether the encode mode should be changed in the receiving direction. A request message, downlink mode command  62 , is inserted into the in-band area and transfer to the base station.  
         [0042]     For each transmitted long-frame, the encode mode (index) of the transmitter is determined based on the mode command which shifts the mode using an algorithm based on class as shown in  FIGS. 7   a  and  7   b.  PHS standard requirements allow a simplified algorithm for mode adjustment over standard GSM/3G systems. Adjacent modes are in different classes effectively splitting the total number of modes as shown in the table of  FIG. 7   a.  As shown in  FIG. 7   b,  if the transmission is proceeding in mode 11 and class 1 (12.2 kbps) and the error estimate from the convolution decoder indicates a reduction in bit rate is required, the mode command causes a shift  72  of one mode down within the same class, i.e. to mode 10 class 1 (7.95 kbps). If the BER is still too high, a second shift  74  down is commanded to mode 01 class 1 (6.7 kbps). Continuing high BER results in yet another shift  76  down to mode 00 class 1 (5.15 kbps). If the BER remains too high, a final shift  78  across class to mode 00 class 2 (4.74 kbps) is made. Thus the entire range of available modes is spanned in four command shifts. Similarly, if BER is reduced below a predefined threshold, the command shifts up the class for increased transmission speed. For example if the system has been in lowest mode, i.e. mode 00 class 2 (4.74 kbps) and BER is now improving, a command shift  80  raises the mode to mode 01 class 2 (5.9 kbps) as opposed to returning to mode 00 class 1. Further improvement results in a shift  82  to mode 10 class 2 (7.4 kbps), with yet further improvement resulting in a shift  84  to mode 11 class 2 (10.2 kbps). If further improvement is available, the algorithm then causes the mode to shift class  86 , i.e. to mode 11 class 1 (12.2 kbps) for highest transmission speed. Improvement or deterioration in BER in the middle of a class range results in movement up or down within the class as exemplified by shifts  88  and  90 . The algorithm allows a circular shifting pattern based on mode within the class, shifting class only when reaching a minimum or maximum transmission capability within the class.  
         [0043]     Having now described the invention in detail as required by the patent statutes, those skilled in the art will recognize modifications and substitutions to the specific embodiments disclosed herein. Such modifications are within the scope and intent of the present invention as defined in the following claims.