FORWARD ERROR CORRECTION METHOD USING REPEATED DATA WORDS

Abstract: Instead of simply taking a bit-wise majority vote of several received encoded data words and decoding the result of the vote, the chances of usefully decoding a word may be increased by decoding every word received. If a received word is decoded as correct or with a corrected one-bit error or with a corrected two-bit error, this decoded word can be used as the received word. Also, bit-wise majority votes can be taken on all combinations of small groups of the received words, and the results passed to the decoder. If the decoder reports a correct word or a word having a one-bit or two-bit error corrected for one of these combinations, this can be used as the received word. Error-correction beyond the typical capabilities of a BCH code can be realized if the error-correction decoder is properly configured. "Word-wise" majority voting is also described. The probability of accurately determining a word that was actually transmitted from several repetitions of the word received after passage through a corrupting communication channel, especially for situations in which short bursts of erroneous data are received, is increased.

Description: FORWARD ERROR CORRECTION METHOD USING REPEATED DATA WORDS BACKGROUND Applicant's invention relates to communication systems in which information in the form of digital words is transmitted, and more particularly to systems in which each word is transmitted several times. Some current cellular mobile telephone systems use analog frequency modulation (FM) of a radio-frequency (RF) carrier signal to transmit speech and other information. One of the standards is the Advanced Mobile Phone Service (AMPS) system in the U.S. that uses FM and a spacing between 880-MHz carrier signals of 30 KHz. Some of the characteristics of the AMPS system are specified by the EIA/TIA-553 standard published by the Electronic Industries Association and Telecommunications Industry Association (EIA/TIA) . Another standard is the Total Access Communications System (TACS) in the United Kingdom that uses spacings of 25 KHz between 880-MHz carrier signals. The TACS and AMPS system differ in a few details that are not relevant to this application. The capacity of such analog FM systems can be increased by reducing the channel bandwidth, as in the system according to the Narrow-band AMPS (N-AMPS) standard. In an N-AMPS system, a channel spacing of 10 KHz is achieved by splitting each 30-KHz-wide radio channel of an AMPS system into three parts. In general, a radio channel is a bi-directional radio transmission path between two transceivers, and thus the channel comprises two carriers having different frequencies, one for uplink communication (mobile station to base station) and one for downlink communication (base station to mobile station) . In the standard systems, the frequency spacing between the two carriers of any radio channel is 45 MHz. In another effort to increase system capacity, a digital AMPS (D-AMPS) system in the U.S. uses digital transmission and time-division multiple access (TDMA) on traffic channels while keeping analog transmission on control channels. In a TDMA communication system, a radio channel is divided into a succession of time slots, each of which contains a burst of information from a data source, e.g., a digitally encoded portion of a voice conversation. Successive time slots assigned to the same user, which are usually not consecutive time slots on the radio carrier, constitute the user's digital traffic channel, which may be considered a logical channel assigned to the user. Some of the characteristics of the D-AMPS system are specified by the IS-54-B standard published by the EIA/TIA. In systems according to these analog standards, control channels are used for setting up calls, informing base stations about locations and parameters associated with mobile stations, and informing mobile stations about locations and parameters associated with base stations. Voice or traffic channels are used for carrying voice conversations and sometimes for data. Figs. IA, IB illustrate an exemplary multi-layered cellular communication system that can use any of the above-described systems. An umbrella macrocell 10 represented by a hexagonal shape (see Fig. IA) is part of an overlying cellular structure comprising many macrocells A, - A 7 , B, - B 7 (see Fig. IB) . Each umbrella cell may contain an underlying microcell structure. The radio coverage of the umbrella cell and an underlying microcell may overlap or may be substantially non¬ overlapping. The umbrella cell 10 includes microcells 20 represented by the area enclosed within the dotted line and microcells 30 represented by the area enclosed within the dashed line corresponding to areas along city streets, and picocells 40, 50, 60, which cover individual floors of a building. Fig. 2 is a block diagram of an exemplary cellular mobile radiotelephone communication system for use with the cellular structure shown in Figs. IA, IB. The communication system includes a base station 110 that is associated with a respective one of the macrocell, microcell, or picocell; a mobile station 120; and a mobile services switching center (MSC) 140. Each base station has a control and processing unit 130, which communicates with the MSC 140, which in turn is connected to the public switched telephone network (not shown) . Each base station also includes at least one voice channel transceiver 150 and a control channel transceiver 160, which are controlled by the control and processing unit 130. The mobile station 120 includes a similar voice and control channel transceiver 170 for exchanging information with the transceivers 150, 160, and a similar control and processing unit 180 for controlling the voice and control channel transceiver 170. Complicating the task of any radio communication system is interference between the several radio transmitters and the variability of the radio channel caused by relative motion of the system users, changing radio signal reflections from structures and vehicles, resulting in fading, etc. Such interference and channel variability contributes to errors in the information communicated, and much effort is expended to overcome these errors. For example, some cellular radiotelephone systems convert analog information to be transmitted into digital information, which is then transformed, or encoded, in a way that permits some errors to be corrected. As one specific example, linear Bose-Chaudhuri- Hocquenghem (BCH) codes can be decoded with low complexity using either the Peterson-Gorenstein-Zierler procedure or the Berlekamp-Massey procedure, or any procedure for decoding cyclic codes, as described in R. Blahut, Theory and Practice of Error Control Codes, chapt. 7, Addison- esley, Reading, MA (1983). Such a code is specified by code parameters (n, k) with minimum Hamming distance d and with code symbol alphabet GF(2 m ). In essence, such a code transforms a block of k data bits into a larger block of n coded bits. The additional bits are usually called parity bits, CRC bits, or check bits. The error correcting capability t of the code, i.e., the number of errors that the code can correct, is given by t ≤ [ (d — l)/2]. The TACS and AMPS and N-AMPS systems address the problem of interference and channel variability with such error correction coding and with redundancy. For example, a word, or block of data, to be transmitted is first encoded with a BCH code, and then the encoded word is transmitted five times. At the receiver, a majority vote is taken of each set of corresponding bits to determine the received word: corresponding bits of the five words received are compared, and for each bit position, the bit value having the majority of occurrences is taken as the bit value of the received word. This is called bit-wise majority voting in thiε application. U.S. Patent Application No. 08/059,932 filed May 11, 1993, entitled "Standby Power Saving in Mobile Phones" describes receiving five repetitions of a word and decoding each repetition as it is received. Upon successfully decoding one of the repetitions, the remaining repetitions are ignored; if none of the repetitions is successfully decoded, then a bit-wise majority vote of the five repetitions is taken and the voting result is decoded. An example of bit-wise majority voting is illustrated by the following table, which shows five data words and their associated parity bits received, and the received word and parity bits resulting from a simple bit-wise majority vote. Data Bits Received Parity Bits Received 101010101010110 11110101 111010101000101 01010101 101011010100101 01010101 101001010101010 01010100 010101001010101 01010101 bit-wise majority vote: 101011001000101 01010101 The bit values determined by the bit-wise majority vote are deemed to constitute the received word, which is passed to a decoder. As described below, the BCH code used by the TACS permits one-bit and two-bit errors to be corrected; if more than two bits of a word are in error, the decoder reports the word is incorrectable. The shortcoming of such bit-wise majority voting of all of the words received is that if two of the five words received each contain more than two errors, the majority vote may produce a word that the decoder will report as incorrectable. SUMMARY Applicant's invention provides methods and apparatus that avoid the shortcoming of simple bit-wise majority voting of coded data words, decreasing the probability that a decoder will report a word as incorrectable. In accordance with one aspect of Applicant's invention, a method of determining a decoded received data word from several received encoded repetitions of the data word includes the steps of compiling an encoded repetition of the data word by selecting bits from the plurality of received encoded repetitions of the data word; and decoding the compiled encoded repetition according to an error correcting code, thereby determining the decoded received data word. The bits in the compiled encoded repetition can be selected by a window that includes the same number of contiguous bits as a received encoded repetition. Also, the bits in the compiled encoded repetition can be selected by moving a window among several positions that each include a number of contiguous bits that is less than the number of bits in a received encoded repetition. The method can further include the step of taking a bit-wise majority vote of a compiled encoded repetition and words selected from a group that includes at least one other compiled encoded repetition and the received encoded repetitions. The result of this bit-wise voting is decoded to determine the decoded received data word. The bit-wise-vote result can be formed by taking a bit¬ wise majority vote of several compiled encoded repetitions. Also, the bits in a compiled encoded repetition can be selected by a window that includes the same number of contiguous bits as a received encoded repetition. The bits in a compiled encoded repetition may be selected by moving a window among several positions that each include a number of contiguous bits that is less than the number of bits in a received encoded repetition. The compiling and decoding steps can be carried out several times to produce several decoded results, and the method can then further include the step of taking a word-wise majority vote of the decoded results. The result of the word-wise majority vote is reported as the decoded received data word. Taking a word-wise majority vote may include the step of determining a type of decoded result that has the most votes, and the decoded received data word is of the type determined. If each decoded result has a respective weight, the decoded received data word is the result of the word-wise majority vote if a sum or other appropriate combination of the weights of the decoded results in the majority of the word-wise vote meets a suitable threshold. In another aspect of Applicant's invention, a method of determining a decoded received data word from several received encoded repetitions of the data word includes the steps of: taking a bit-wise majority vote of a selected group of the plurality of received encoded repetitions words, thereby forming a bit-wise-vote result; determining which bits of the bit-wise vote result are changeable by applying a bit mask to the bit- wise vote result; and decoding the bit-wiεe-vote result according to an error correcting code and the applied bit mask, thereby determining the decoded received data word. A bit of the bit-wise vote result may be determined to be changeable based on the number of votes that bit received in the bit-wise majority vote. Also, the determining step may include determining whether a number of changeable bits is greater than a constraint value, and the decoding step may include the steps of: decoding the bit-wise-vote result, thereby forming a decoded result; if the decoded result includes an error- corrected bit and the number of changeable bits is not greater than the constraint value, then determining whether the error-corrected bit is a changeable bit; and if the error-corrected bit is a changeable bit, reporting the decoded result as the decoded received data word. The determining step also may include determining whether a number of changeable bits is greater than a constraint value, and if the number of changeable bits is not greater than the constraint value and if the bit¬ wise-vote result is incorrectable in the decoding step, the decoding step may include the steps of: inverting a selected one of the changeable bits, thereby forming a modified voting result; decoding the modified voting result, thereby forming a decoded result that includes an error-corrected bit; determining whether the error- corrected bit is a changeable bit; and if the error- corrected bit is a changeable bit, reporting the decoded result as the decoded received data word. A changeable bit may be selected for inversion based on soft quality information for that bit. BRIEF DESCRIPTION OF THE DRAWINGS Applicant's invention is described below in more detail with reference to embodiments that are given only by way of example and that are illustrated in the accompanying drawings, in which: Figs. IA, IB illustrate an exemplary multi-layered cellular system; Fig. 2 is a block diagram of an exemplary cellular mobile radiotelephone system; Fig. 3 is a block diagram of a transceiver module; Fig. 4 shows the format of the data stream transmitted by a mobile station on a reverse control channel in a TACS system; Figs. 5A-5G show formats of data words carried by a reverse control channel; Figs. 6A-6D show examples of encoding called- address information into called-address words; Figs. 7A, 7B are a flow chart of a method in accordance with Applicant's invention; Fig. 8 generally illustrates use of selected windows to generate a compiled word; Figs. 9A-9D illustrate a sliding window method, i.e., sequential analysiε of repetitions to generate compiled words; and Fig. 10 illustrateε re-organizing a group of repeated words into smaller groups. DETAILED DESCRIPTION While the following description is in the context of cellular communication syεtemε involving portable or mobile radiotelephoneε and/or personal communication networks, it will be understood by those skilled in the art that Applicant's invention may be applied to other communication systems. A radio base station suitable for the TACS and AMPS and N-AMPS syεtems primarily comprises a plurality of transceiver modules for sending and receiving signals on respective radio channels and a control proceεεing unit for exchanging signals with the MSC. (See transceivers 150, 160 in Fig. 2.) For a complete description of such an analog radio base station, the reader is referred to the literature, including "CMS 88 Cellular Mobile Telephone System", chapt. 4, publication no. EN/LZT 101 908 R2B (1988) available from Ericsson Telecom AB. Fig. 3 is a block diagram of a transceiver module. A speech processor 1 converts an analog signal generated by, for example, the human voice into a signal designed to frequency modulate a carrier signal. The speech processor 1 comprises several stages: a dynamic range compressor, a pre-e phasis filter, a deviation limiter, and a poεt-deviation-limiter filter. Aε deεcribed below, the inverse of this signal proceεεing is carried out when receiving. The speech procesεor 1 and the other components of the transceiver module are controlled by a microprocessor control unit 2. Digital encoded data messages are used for εignalling between the mobile station and the radio base station. Some messages are sent either on a forward control channel (FOCC) or a forward voice channel (FVC) , which are channels from the base station to the mobile station. These encoded data meεεages typically include encoded data words formed from data words that are blocks of predetermined numbers of bits. In some telecommunication syεtemε, 28-bit data words are produced by a data message generator 3 under control of the microprocessor 2 and are encoded by the generator 3 according to a BCH code for facilitating error protection and correction. The coding of the data bits and parity bits increases the word length to forty bits, viz., each encoded data word is formed by encoding twenty-eight content bits with a (40, 28) BCH code having a diεtance of five. Such a code can be indicated aε a (40, 28; 5) BCH code. Each encoded data word carried by a control channel iε also provided with a sequence of bits used for bit synchronization, a sequence of bits uεed for word εynchronization, and a digital color code (DCC) uεed for aεεuring that the right control channel iε decoded. In general, the DCC identifieε the group of cellε that the cell tranεmitting thiε message belongs to. Encoded data words carried by a voice channel are provided with bit- sync and word-sync sequenceε, but not the DCC. A εupervisory audio tone (SAT) is used to assure that the right voice channel is used; the SAT is sometimes called an analog color code. The SAT is produced by an SAT generator 4 and iε εent on the forward voice channel to the mobile station, which εimply re-tranεmitε the SAT to the baεe station on a reverse (mobile-to-base) voice channel. If the wrong SAT is detected on the reverse voice channel, data mesεages received by the base station on that reverse voice channel are ignored. Also, a signalling tone (ST) is produced by a εuitable ST generator in the mobile station and is used for signaling on the reverse voice channel from the mobile station to the base εtation. The receiver in the baεe station includes a ST detector 6 for the ST. The input speech, data, and SAT signals are filtered for limiting the carrier signal'ε bandwidth and combined into one εignal by a εignal mixer 8. The SAT εignal modulates the speech signal, and transmission of the SAT is εuεpended during transmisεion of data messages. The combined signal produced by the mixer 8 is provided to a frequency modulator 9, which impresεes the combined signal onto an RF carrier signal as a carrier FM. The carrier signal is generated by a suitable frequency εyntheεizer 11. Either speech or data information modulateε the carrier. The FM'd carrier may be up-converted to a higher frequency, if deεired, and the modulated carrier is amplified to a predetermined power level by a power amplifier 10 in accordance with the selected transmitting channel. Radio εignalε received from a mobile εtation are εuitably filtered and amplified by two receiverε 13 , and the modulated carrier signals are demodulated by mixers 14 for generating the original FM'd εignal. The mixers 14 combine the modulated carriers with a signal having the carrier frequency that is generated by a receiving frequency syntheεizer 12 in accordance with the εelected receiving channel. To decreaεe the effects of multipath fading, two receiving antennas are typically used, and the signals generated by the mixers are combined into one common signal by a suitable diversity combiner 15. A frequency demodulator 16 extracts the encoded data meεεageε, SAT, ST, and εpeech from the original FM'd εignal generated by the diverεity combiner 15. The encoded data meεεages received from the mobile station are detected and decoded by a data mesεage detector 7 according to the appropriate BCH code. The εpeech εignal from the frequency demodulator 16 iε converted into an analog εignal by a speech processor 17 by filtering, de-emphasiε, and expanεion. A SAT detector 5 detects the SAT signal for determining that the proper SAT signal is preεent. Encoded digital data meεεages are sent from the mobile station to the base station on a reverse control channel (RECC) . In the TACS syεtem, the RECC data stream has a rate of 8 kilobits/second, ±1 bit/second. Fig. 4 depicts the format of the RECC data stream tranε itted by a mobile station in a TACS syεtem. A RECC meεsage comprises a seizure precursor and between one and five word blocks, each word block comprising five repetitions of a respective encoded data word. The seizure precursor comprises a 30-bit dotting sequence (1010...1010) used for bit synchronization, an 11-bit word-sync εequence (11100010010) , and a 7-bit encoded DCC. The bit-εync and word-εync εequenceε are used in a conventional way to help enεure accurate reception of the other data fieldε. The encoded DCC is obtained by translating the DCC received on the FOCC according to the following table. Received DCC Encoded DCC 00 ooooooo 01 0011111 10 1100011 11 1111100 After the εeizure precursor, the RECC encoded data words are transmitted by the mobile station. Each encoded data word compriseε forty-eight bitε, including twelve parity bitε, and iε repeated five timeε aε deεcribed above. Each RECC encoded data word is formed by encoding thirty-six content bits with a (48, 36; 5) BCH code. The left-most bits (i.e., the bits occurring earlier in time) are designated the most-εignificant bitε, and the thirty-εix moεt-εignificant bitε of the 48-bit field are the content bitε. The TACS standard provides that the generator polynomial for the BCH code used on the RECC is the same as the generator polynomial used for the (40, 28; 5) BCH code used on the FOCC. The types of mesεageε carried by the RECC are page reεponse mesεageε for anεwering callε; origination meεεages for making calls; order mesεageε; and order confirmation meεεageε. Each of theεe meεεageε is made up of a combination of an abbreviated addreεε word having a format εhown in Fig. 5A, an extended addreεε word having a format shown in Fig. 5B, a serial number word having a format εhown in Fig. 5C, a called addreεε (firεt word) having a format εhown in Fig. 5D, a called addreεε (εecond word) having a format εhown in Fig. 5E, a called addreεε (third word) having a format εhown in Fig. 5F, and a called addreεε (fourth word) having a format shown in Fig. 5G. As seen in Figs. 5A-5G, each 48-bit RECC encoded data word compriseε a plurality of fields. The numbers of bits in the fields are indicated in Figs. 5A-5G by the numerals below the fields. The F field includes one bit for indicating whether thiε iε the firεt data word of the message. The bit in this field is set to "1" in the first data word and to "0" in subsequent words. The NAWC field indicates the number of additional wordε coming in the meεεage, i.e., one, two, three, or four. The bit in the message type field T is set to "1" to identify the message as an origination or an order and is set to "0" to identify the message as a page responεe or an order confirmation. The bit in the εend serial number field S iε εet to "1" if the εerial number word iε εent and iε set to "0" if the serial number word is not sent. The bit in the extended address field E is set to "l" if the extended addresε word is sent and to "0" if the extended addresε word iε not sent. The station claεε mark field SCM indicateε the type of mobile station and its maximum output power. The order field identifies the type of order message. The order qualifier field ORDQ qualifies the order field to a specific action. For the bits in the local control field to be interpreted, the order field must be set to local control or charge rate: if the order field is set to local control, then the field is specific to each syεtem; if the order field is set to charge rate, then the local control field formε part of the charge rate qualifier word. The field LT iε for laεt-try codeε, the field MINI is for the first part of the mobile identification number, and the field MIN2 is for the second part of the mobile identification number. The serial number field identifies the serial number of the mobile station. The digit field compriseε bitε encoded aε shown in the following table. Di it Code Digit Code 1 0001 7 0111 2 0010 8 1000 3 0011 9 1001 4 0100 0 1010 5 0101 * 1011 6 0110 # 1100 Null oooo In the table, it will be noted that the digit "0" is encoded aε binary "ten", not binary "zero" which iε uεed aε the null code for indicating no digit. All of the other 4-bit codes are reserved. The MSSUPLEV field is the TACS support level field, equal to the value of MS_SUP_LEV_ε. The RSVD field is reserved for future use, and all bits are set to a predetermined value. The parity field P includes the twelve parity bits associated with the thirty-six information content bits. Examples of encoding called-address information into the called-addresε wordε are shown in Figs. 6A-6D. If the digitε 2# are dialed, the word iε aε εhown in Fig. 6A. If the number 13792640 iε entered, the word is as shown in Fig. 6B. If the digits *24273258 is entered, the words are as shown in Figs. 6C, 6D. In Figs. 6A-6D, the field NOTE comprises four bits that depend on the type of meεεage. In accordance with Applicant's invention, the chances of decoding a useful word are increased by adding to the old principle of simple bit-wise majority voting of all of the wordε received and decoding the reεult of the vote. Aε uεed in this application, "decoding" means using a group of parity bits that have been received to determine whether an aεεociated group of data bitε haε been received with no errors and to correct one or more errors in the asεociated group of data bitε. As additional information according to the invention, every word received is decoded, not just the reεult of the bit-wiεe majority vote, and if a word received is decoded as correct or with a corrected one- bit error or with a corrected two-bit error, this decoded word can be used as the received word. Also, bit-wise majority votes can be taken on all combinations of three words received (for a word repeated five times, there are ten such combinations) , and the results passed to the decoder. If the decoder reports a correct word or a word having a one-bit or two-bit error corrected for one of these combinations, this can be used as the received word. In one aspect, Applicant's invention enables correction of wordε that are encoded according to a (48, 36; 5) BCH code and that have three erroneouε bitε. Thiε capability is beyond the typical capabilities of such a BCH code and thus might be called "super- correction". Such super-correction is realized if, as explained in more detail below, the error-correction decoder is configured εo that it doeε not correct a bit value that iε the result of a unanimous majority vote. For example in a case of five votes, bit values produced by 5/0 votes are not changeable and bit values produced by 4/1 and 3/2 votes are changeable. This is functionally equivalent to masking the bits produced by the voting, and for the five-vote example it may be called a "4/1 & 3/2 bit maεk". It iε alεo advantageouε to configure the error- correction decoder εo that it does not correct a bit value that is the result of either a unanimous majority vote or a vote in which only one candidate word castε a diεεenting vote. For example in a caεe of five voteε, bit values produced by 5/0 votes and 4/1 votes are not changeable; only bit valueε produced by 3/2 voteε are changeable. For the five-vote example, this may be called a "3/2 bit mask". Applicant's method will find a suitable combination in a large number of cases, caseε that would produce incorrectable reεultε with conventional decoding. To help prevent Applicant'ε method from yielding falεe reεultε, the number of changeable bitε may be uεed aε a conεtraint that varieε according to the number of bitε that are corrected during decoding: if a εelected value of thiε number iε exceeded for a word to be decoded, that word is reported as incorrectable. In Figs. 7A, 7B, thiε constraint when applied to a three-bit-error correction is indicated as L_3_4&3 for the 4/1 & 3/2 bit mask and as L_3_3 for the 3/2 bit mask. When applied to a two-bit-error correction, this constraint is indicated in Figs. 7A, 7B as L_2_4&3 for the 4/1 & 3/2 bit mask and as L_2_3 for the 3/2 bit mask. When applied to a one-bit-error correction, this constraint iε indicated in Figε. 7A, 7B aε L_l_4&3 for the 4/1 & 3/2 bit maεk and as L_l_3 for the 3/2 bit mask. Provision of the "super-reεolution" capability is illustrated by the following example: Data Bits Sent Parity Bits Sent 1111111 1111 Data Bits Received Parity Bits Received 0001111 1111 1010101 1111 1011110 1111 1000110 oooo 1011100 oooo bit-wise majority vote: 1001110 1111 Applying the 4/1 & 3/2 bit mask, only the second and fifth bits of the voting result 1001110 are not changeable, i.e., not candidates for error correction. In accordance with Applicant's decoding method illustrated in Figε. 7A, 7B, every possible combination of these candidates would be tested in an effort to determine a combination producing a decoded set of data bits that matcheε the majority voting reεult of the received parity bitε. Alεo, applying the 3/2 bit mask, only the first, εecond, and fifth bits of the voting result 1001110 are not candidateε for error correction, and every poεsible combination of these candidates would be tested in an effort to determine a combination producing a decoded set of data bits that matches the majority voting result of the received parity bits. Thus, as illustrated in Fig. 7A, determining a received word in accordance with Applicant's invention includes a first step 701 of taking a bit-wise majority vote of a εet of repeated wordε and applying the bit maεkε to determine which bitε of the voting result are changeable, i.e., subject to being corrected by the decoder. The next step 703 is to try to decode the voting result. If the result of the decoding step 703 indicates that no bits need to be corrected, then the decoded result has been found (block 705) . If the decoding step 705 produces an indication that one bit of the decoded result needed error correction, then the L_l_4&3 conεtraint is applied in step 707. If the number of changeable bits is not greater than the value selected for this constraint, then it is determined (step 709) whether the indicated one erroneous bit was one of the changeable bitε according to the 4/1 & 3/2 bit maεk, i.e., that the erroneouε bit waε a bit permitted to be corrected. If so, the (corrected) decoded result has been found (step 711) ; if not (step 713) , the decoder reportε as incorrectable the voting result produced in step 701. If the number of changeable bits is greater than the value selected for the L_l_4&3 constraint in step 707, then the L_l_3 constraint is applied in step 715. If the number of changeable bits is not greater than the value selected for the L_l_3 constraint, it is determined (step 717) whether the indicated one erroneouε bit waε one of the changeable bitε according to the 3/2 bit mask, i.e., that the erroneous bit was a bit permitted to be corrected. If εo, the (corrected) decoded reεult haε been found (εtep 719) ; if not (step 721) , the decoder reports as incorrectable the voting result produced in εtep 701. If the number of changeable bitε iε greater than the value selected for the L_l_3 constraint in step 715, then (step 723) the decoder reports aε incorrectable the voting reεult produced in step 701. If the decoding step 705 produceε an indication that two bitε of the decoded reεult needed error correction, then the L_2_4&3 conεtraint iε applied in εtep 725. If the number of changeable bitε iε not greater than the value εelected for thiε conεtraint, then it iε determined (step 727) whether the indicated one erroneous bit was one of the changeable bits according to the 4/1 & 3/2 bit mask. If so, the (corrected) decoded reεult haε been found (εtep 729) ; if not (εtep 731) , the decoder reportε as incorrectable the voting result produced in εtep 701. If the number of changeable bitε iε greater than the value εelected for the L_2_4&3 conεtraint in εtep 725, then the L_2_3 conεtraint iε applied in εtep 733. If the number of changeable bitε iε not greater than the value εelected for the L_2_3 conεtraint, it iε determined (εtep 735) whether the indicated two erroneouε bitε were two of the changeable bitε according to the 3/2 bit aεk. If so, the (corrected) decoded result has been found (step 737) ; if not (εtep 739) , the decoder reportε as incorrectable the voting result produced in step 701. If the number of changeable bitε iε greater than the value εelected for the L_2_3 conεtraint in εtep 733, then (εtep 741) the decoder reportε aε incorrectable the voting reεult produced in step 701. If the decoding step 705 produces an indication that the voting result produced in εtep 701 cannot be properly decoded due to the presence of more than two error bits, then the L_3_4&3 constraint iε applied in εtep 743 εhown in Fig. 7B. If the number of changeable bitε is not greater than the value selected for this constraint, then one of the bit valueε due to a 4/1 or 3/2 vote iε inverted (step 745) , thereby forming a modified voting result. It is currently believed to be preferable to εelect changeable bit valueε due to 3/2 voteε for inverεion before εelecting changeable bit valueε due to 4/1 votes. An attempt is made (step 747) to decode the modified voting result produced by step 745. If decoding is possible with a two-bit-error correction, it is determined (step 749) whether the indicated two erroneous bits were two of the changeable bits according to the 4/1 & 3/2 bit maεk. If so, the (corrected) decoded result has been found (step 751) ; if not, the bit value of' another one of the changeable bits iε inverted and the bit value that waε inverted in εtep 745 iε changed back (εtep 753) . An attempt iε then made (step 747) to decode the modified voting result produced by step 753, and steps 747-753 are repeated until all of the changeable bit values have been inverted and either a decoded result is found or not. If the number of changeable bits is greater than the value selected for the L_3_4&3 constraint in εtep 743, then the L_2_3 conεtraint iε applied in εtep 755. If the number of changeable bitε iε not greater than the value selected for thiε conεtraint, then one of the changeable bit valueε is inverted (step 757) . Since the changeable bitε are all due to 3/2 voteε, it doeε not matter which changeable bit value iε εelected for inversion. An attempt is made (εtep 759) to decode the modified voting reεult produced by εtep 757. If decoding is posεible with a two-bit-error correction, it is determined (step 761) whether the indicated two erroneous bits were two of the changeable bits according to the 3/2 bit aεk. If εo, the (corrected) decoded reεult has been found (step 763) ; if not, the bit value of another one of the changeable bitε iε inverted and the bit value that was inverted in step 757 is changed back (step 765) . An attempt iε then made (εtep 759) to decode the modified voting result produced by step 765, and steps 759-765 are repeated until all of the changeable bit values have been inverted and either a decoded result is found or not. If the number of changeable bits is greater than the value selected for the L_2_3 constraint in step 755, then (step 767) the decoder reportε aε incorrectable the voting reεult produced in εtep 701. It will be appreciated that thiε idea does not change significantly when it iε applied in a communication εyεtem in which each word is transmitted fewer or more than five ti eε. Moreover, the number of timeε each word iε tranεmitted doeε not have to be odd, although the chanceε of a tie in a majority vote of an even number of voterε are greater than the chanceε of a tie in a majority vote of an odd number of voters. Applicant's method increases the probability of accurately determining a word that was actually tranεmitted from a plurality of repetitionε of the word received after passage through a corrupting communication channel. Applicant's method increaseε thiε probability eεpecially for εituations in which short burstε of erroneouε data are received. The particular values selected for the constraintε repreεent tradeoffε between the rate of incorrectly decoded reεults and the rate of correctly decoded resultε. For a (48, 36; 5) BCH code and five-word votes, it currently seemε preferable for the L 3 4&3 value to be set at six, for the L_3_3 value to be set at about five, for the L_2_4&3 value to be set at about twelve, for the L_2_3 value to be set at about eight, for the L_l_4&3 value to be set at about twenty-five, and for the L_l_3 value to be set at about twenty. In general, the constraint values would be set empirically, keeping in mind that to correct three-bit errors, the number of changeable bitε should be few (the porosities of the bit masks should be low) while to correct one-bit errors the number of changeable bits can be greater (the porositieε of the bit maεkε can be higher) . Applying theεe conεtraint valueε in carrying out the method of Figε. 7A, 7B on the (erroneous) voting result 1001110 derived in the foregoing example corrects the three-bit error. It will be appreciated that the method εhown in Figε. 7A, 7B can be modified to conεider soft quality information that may be generated by the frequency demodulator 16 and provided to the data meεsage detector 7 to asεist in pin-pointing and correcting likely erroneous bits. The development and use of soft quality information in bit-wiεe majority voting is described in U.S. Patent Application No. 08/059,932 that was cited above and that is incorporated here by reference. When a majority vote of an even number of voterε iε taken, uεing "soft" majority voting as deεcribed in that application rather than "hard" majority voting iε more likely to yield a usable result. U.S. Patent Application No. 08/218,236 filed March 28, 1994, by Dent and entitled "Diversity Pi/4 DQPSK Demodulation" also describeε the uεe of εoft quality information and is incorporated here by reference. Soft quality information (SQI) can also be used in the determination of the changeable bit maskε. For example in the steps involving bit-value inversion, bit values having lower SQI (lesεer quality) can be εelected for inversion before bit values having higher SQI. It will further be appreciated that the method shown in Figs. 7A, 7B can be modified to consider available a priori knowledge of the information received. Such knowledge would be used to constrain the number and/or the poεitionε of bit valueε that are deemed changeable, i.e., open to correction. Aε an alternative to the method illustrated in Figs. 7A, 7B, the group of repeated words participating in a bit-wiεe majority vote can be derived, or compiled, by uεing a εliding window to select sets of contiguous bits from the received encoded repetitions of the data word. As described below in connection with Figs. 8, 9A-9D, the bits in each set are re-ordered in accordance with the error correction coding, a bit-wiεe majority vote of the re-ordered εetε iε taken, and the reεult of the vote iε decoded. Fig. 8 illuεtrateε a εliding window disposed in four positionε 801, 802, 803, 804 with reεpect to a εequence of five encoded repetitions of a data word. (For clarity, only repetitionε 1 and 2 are εhown as comprising strings of l's and 0's.) In each position, the sliding window determines a respective set of bits that iε re-ordered if neceεεary to form a compiled word, which iε then decoded. In Fig. 8, the εecond of the two εetε of bits selected from repetition 1 and the set of bits selected from repetition 2 are re-ordered in the compiled word. The positioning of the sliding window and re-ordering of the bits are operations readily carried out by the data eεεage detector 7 (εee Fig. 3) . In general, a compiled word iε compiled by asεe bling fractionε from different locationε of the repetitions. The number of bits included in the εliding window is determined by the length of the data word. For RECC encoded data wordε aε deεcribed above, each poεition of the window would include forty-eight bits. For εimplicity, εequential analysis of each sequence of repetitionε iε currently preferred, aε illuεtrated by Figε. 9A-9D. Fig. 9A εhowε that the firεt repetition received iε uεed aε the first compiled word; in other wordε, the εliding window perfectly overlaps repetition 1 and no re-ordering of the included bits iε needed. In Fig. 9B, the window slides over a number of bitε, overlapping both repetitions 1 and 2; the second compiled word thus compriseε a re-ordered set of bits from repetition 2 and a set of bits from repetition 1. Fig. 9C shows the window having slid over another number of bits, but still overlapping both repetitions 1 and 2. The εliding window thus proceeds through the sequence of repetitions until the last compiled word iε generated aε illuεtrated in Fig. 9D. It will be appreciated that, in effect, the window slides around a ring of the repetitions. The number of bits between each position of the window, viz., the number of bits that are included at one position and that are not included at the succeeding position of the window, iε determined primarily by the speed of the procesεor carrying out the operationε of the data message detector. The number of bits that the window slides represents a tradeoff between required processing speed and desired increase in probability of successful decoding. It is currently believed that allowing eight bitε between each window poεition for the above-deεcribed RECC data wordε iε advantageouε. Thuε, a total of thirty window poεitionε would occur for the five repetitionε of each RECC data word. The compiled data wordε, i.e., the encoded data bitε included in each window poεition, are decoded. The BCH decoder will report a word aε correct when a one- bit-error correction iε allowed in about one percent of the cases during reception of random data. In the RECC example, this would reεult in 30 x 1%, or 30%, false resultε, which iε not acceptable. Accordingly, an acceptance conεtraint is applied that requires a compiled word decoded without any correction to be accepted or that requires at least two of the compiled words to be decoded to an identical result with the bits that have been corrected having different positionε in the compiled wordε. Aε an alternative to the methodε illustrated in Figs. 7A, 7B, 8, and 9A-9D, the group of repeated words can be re-organized into smaller groups, a bit-wise majority vote can be taken in each εmaller group, and the reεultε of the voteε can be decoded. Thiε is illustrated in Fig. 10, which showε a εtream of received data bitε. Bitε that have been correctly received are indicated by "-", and bitε that have been incorrectly received (due to noiεe, for example) , are indicated by "x". It can be εeen that the received bit stream is corrupted by bursts of noise, i.e., long contiguous groups of noise bitε, and by random noiεe that occurε in only one or a few contiguouε bitε. If it is asεumed that the stream includes a εequence of five εeven-bit repetitionε of a data word, decoding the reεult of a bit-wise majority vote of all five words may produce an indication that the result is incorrectable due to the long noise burstε. Fig. 10 εhows one εmaller group of three bit sets 1001, 1003, 1005. The result of a bit-wiεe majority vote of the three bit εetε εtill has one error, but this error can be corrected during decoding, yielding a correctly decoded result. Since, in general, there would be more than one such group, these smaller groups can be selected using non-overlapping windows in a cut-and-try method or in more intelligent methodε uεing SQI. Each smaller group may be considered a "compiled word" as described above that includeε bits selected by a window dispoεed either at one reεpective position covering the appropriate number of bits (the number in a received encoded repetition of the data word) or at a number of respective positionε that include numbers of bits that sum to the appropriate number. The results of the votes of these smaller groups can be combined through word- wiεe majority voting aε deεcribed below. As a way of further increasing the chances of accurately determining a transmitted data word, the words participating in the voting in εtep 701 of Fig. 7A can be derived, or even supplemented, by uεing the sliding window (Figs. 8, 9A-9D) and/or by dividing the repetitionε into smaller groups. The resulting decoded words are then analyzed in accordance with the remaining stepε shown in Figs. 7A, 7B. When dividing into εmaller groupε iε uεed, the changeable bit masks may be adjusted accordingly; in the example shown in Fig..10, the changeable bit values would be those that resulted from 2/1 majority votes. It is believed that the sliding window is the best one of theεe three techniqueε to use when the data is corrupted by burstε of noiεe, i.e., long contiguouε groups of noise bitε, which iε the condition produced by channel fading. Taking a majority vote of the compiled wordε and applying the changeable bit maεks to the result (step 701 in Fig. 7A) is advantageouε because a larger number of words participate in the vote. Error correcting up to three bits (Figε. 7A, 7B) seems likely to be the beεt method when the data suffers from random noise that occurs in only one or a few contiguous bits at a time. The grouping method seems likely to the best when the data εufferε from such random noise in between longer burεtε of noise (fading) . The sliding window (Figs. 9A-9D) and the grouping method (Fig. 10) can produce several decoded results that each appear to be correct, and the three-bit-error correction method (Figs. 7A, 7B) can alεo produce a result that appears to be correct. To determine which result is correct, a majority vote is taken and the type reεult that haε the moεt occurrenceε (the moεt "votes") is deemed the correct one. It will be appreciated that the majority vote taken iε not a bit-wiεe majority vote. Inεtead, the number of each type of decoded word iε tallied. (The "type" of a reεult simply refers to the particular sequence of bit values in the decoded word; for example, the four-bit word 1111 is a type that is different from the type of the four-bit word 1110.) This is called word-wise majority voting in this application. In word-wise voting, each result may be given a respective weight that would depend on parameters such as how many bits were corrected to obtain the result, whether the reεult iε correlated to another reεult that waε produced from εubεtantially the εame received bits, the quality of the received bits (SQI) on which the result is baεed, or the method used to obtain the result. Using any of these parameters will increase the probability that the correct result is chosen in the word-wise voting. To minimize the chanceε that the incorrect reεult iε choεen, it is believed advisable to require at least a minimum sum that the weighted result of word-wise voting must achieve in order to be considered correct. If the weighted result fails to equal or exceed the minimum sum, it is diεcarded, and the reεult is indicated aε incorrectable. Aε just one example, the minimum sum can be εet to a value of three, the reεult from bit-wiεe voting of the received wordε may be given a weight of two, and the other voting reεults can each be given a weight of one. All of the signal procesεing operationε carried out in the transceiver shown in Fig. 3 can be performed in the digital domain by a suitable digital signal procesεing (DSP) device. With εuch a configuration, almoεt any type of modulation can be detected by programming the DSP device to appropriately manipulate digital εampleε of a received radio εignal, aε described for example in U.S. Patent Application No. 07/967,027 to Dent et al. for "Multi-Mode Signal Processing", which is expressly incorporated here by reference. The DSP device may be implemented as hard-wired logic circuitry, or, preferably, as an integrated digital εignal processor, such as an application- specific integrated circuit (ASIC) . Of course it will be understood that an ASIC may include hard-wired logic circuitry that is optimal for performing a required function, which is an arrangement commonly εelected when εpeed or another performance parameter is more important than the versatility of a programmable digital signal processor. In addition, since it may be desirable to reduce the electric power consumption of the processor, not all steps described above need be carried out. For example, a processor in a base station can afford to expend power in order to use every scrap of information available and maximize the probability of correctly determining a data word transmitted by a mobile station, and thuε a baεe εtation would tend to uεe all εtepε of the method. Since electric power iε usually at a premium in a mobile station like a hand-held phone, the mobile's processor might not employ the sliding window and bit-weighting with soft information εtepε of the method. Although thiε deεcription haε conεidered the proceεεing of information transmitted on a RECC, Applicant's invention can be used in processing redundantly tranεmitted information on any communication channel, εuch aε the FOCC. It is simply necesεary for the εignal proceεsor in the receiver to be fast enough to keep up with the information aε it iε received, aεεuming other receiver constraints such as size, weight, power consumption, etc. , are met. It will be understood that Applicant's invention is not limited to the particular embodimentε that have been deεcribed and illustrated. This application contemplates any and all modificationε that fall within the εpirit and scope of Applicant's invention as defined by the following claims.

Claims: CLAIMS: 1. A method of determining a decoded received data word from a plurality of received encoded repetitions of the data word, each repetition including a number of bits, comprising the εtepε of: compiling an encoded repetition of the data word by εelecting bitε from the plurality of received encoded repetitionε of the data word; and decoding the compiled encoded repetition according to an error correcting code, thereby determining the decoded received data word. 2. The method of claim 1, wherein the bitε in the compiled encoded repetition are selected by a window that includes a number of contiguouε bitε that is the same as the number of bits in a received encoded repetition. 3. The method of claim 1, wherein the bits in the compiled encoded repetition are selected by moving a window among a plurality of positionε, the window at each position including a number of contiguous bits that is lesε than the number of bitε in a received encoded repetition. 4. The method of claim 1, further comprising the step of taking a bit-wise majority vote of a compiled encoded repetition and wordε εelected from a group compriεing at leaεt one other compiled encoded repetition and the received encoded repetitions, thereby forming a bit-wise-vote result, wherein the decoded received data word is determined by decoding the bit- wise-vote result. 5. The method of claim 4, wherein the bit-wise- vote result is formed by taking a bit-wiεe majority vote of a plurality of compiled encoded repetitionε. 6. The method of claim 5, wherein the bitε in a compiled encoded repetition are εelected by a window that includes a number of contiguouε bitε that is the same aε the number of bitε in a received encoded repetition. 7. The method of claim 5, wherein the bitε in a compiled encoded repetition are selected by moving a window among a plurality of positionε, the window at each position including a number of contiguous bits that is less than the number of bits in a received encoded repetition. 8. The method of claim 1, wherein the decoding εtep produces a decoded result, and the compiling and decoding εteps are carried out a plurality of times to produce a plurality of decoded results, the method further compriseε the εtep of taking a word-wise majority vote of the decoded resultε, and a reεult of the word-wise majority vote is reported as the decoded received data word. 9. The method of claim 8, wherein the step of taking a word-wise majority vote compriseε the εtep of determining a type of decoded result that has the most votes, and the decoded received data word is of the type determined. 10. The method of claim 8, wherein each decoded result has a reεpective weight and the result of the word-wise majority vote is reported as the decoded received data word if a sum of the weights of the decoded results that have the same type aε the type of the reεult of the word-wiεe majority vote iε greater than or equal to a predetermined value. 11. A method of determining a decoded received data word from a plurality of received encoded repetitionε of the data word, each repetition including a plurality of bits, compriεing the steps of: taking a bit-wise majority vote of a selected group of the plurality of received encoded repetitions wordε, thereby forming a bit-wise-vote resy.lt; determining which bits of the bit-wise vote result are changeable by applying a bit mask to the bit-wise vote result; and decoding the bit-wise-vote result according to an error correcting code and the applied bit mask, thereby determining the decoded received data word. 12. The method of claim 11, wherein a bit of the bit-wise vote reεult iε determined to be changeable according to a number of voteε for that bit in the bit-wiεe majority vote. 13. The method of claim 11, wherein the determining εtep includeε determining whether a number of changeable bitε iε greater than a conεtraint value; and the decoding εtep includeε the εtepε of: decoding the bit-wise-vote result, thereby forming a decoded result; if the decoded result includeε an error-corrected bit and the number of changeable bitε iε not greater than the conεtraint value, then determining whether the error-corrected bit iε a changeable bit; and if the error-corrected bit iε a changeable bit, reporting the decoded reεult aε the decoded received data word. 14. The method of claim 11, wherein the determining εtep includes determining whether a number of changeable bits is greater than a constraint value; and if the number of changeable bits is not greater than the constraint value and if the bit-wise-vote reεult iε incorrectable in the decoding εtep, the decoding step includeε the εteps of: inverting a εelected one of the changeable bitε, thereby forming a modified voting result; decoding the modified voting reεult, thereby forming a decoded result that includes an error- corrected bit; determining whether the error-corrected bit iε a changeable bit; and if the error-corrected bit iε a changeable bit, reporting the decoded reεult aε the decoded received data word. 15. The method of claim 14, wherein a changeable bit is selected for inversion based on soft quality information for that bit.

Inventors: HEDBERG MATS GUNNAR, HEDBERG, MATS, GUNNAR
Applicants: ERICSSON TELEFON AB L M, TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Application year: 1996
Main classification: H04L1
IPC codes: H03M13, H04L1