Error correction using redundant packet streams in wireless communications systems

A communications system includes a mobile unit that transmits redundant content to a plurality of destinations. A copy of the content that is transmitted to each destination is encoded using a code that is related to the codes used to encode copies of the content transmitted to the other destinations. The system further includes a number of base transceiver stations. Each base transceiver station receives a copy of the coded content from the mobile unit, generates a packet including the coded content, and communicates the packet. Furthermore, the system includes a decoder that receives a number of packets that each include a copy of the coded content and that are each generated at a different base transceiver station. The decoder decodes the content in the packets by concatenating the related codes used to encode each copy of the content and generates one or more redundant packets including the decoded content.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. application Ser. No. 09/814,356 entitled “Redundant Packet Selection and Manipulation in Wireless Communications Systems,” which was filed on Mar. 21, 2001 by Billy G. Moon, U.S. application Ser. No. 09/814,374 entitled “Improved Decoding Using Redundant Packet Selection Information in Wireless Communications Systems,” which was filed on Mar. 21, 2001 by Billy G. Moon, and U.S. application Ser. No. 09/814,285 entitled “Redundant Packet Selection Based on Packet Content in Wireless Communications Systems,” which was filed on Mar. 21, 2001 by Billy G. Moon.

TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to wireless communications and more particularly to error correction using redundant packet streams in wireless communications systems.

BACKGROUND OF THE INVENTION

Typical cellular systems include base transceiver stations that provide wireless communications for cellular phones. These base transceiver stations connect to base station controllers and transmit phone calls and other data using circuit-switched, time division multiplexed core network. The connections between base transceiver stations and base station controllers typically support multiple communications sessions by assigning each session to a particular time-slot within frames. Thus, multiple cell phones may simultaneously establish communications sessions via one base transceiver station, and the base transceiver station uses different time-slots for each session. The management and assignment of time-slots often requires complex algorithms making tradeoffs based on a variety of factors. As the number of cell phones increases in a given area, proper management of time-slots becomes critical.

The roaming of a cell phone between base transceiver stations during a communications session exacerbates problems in time-slot management. An established session roaming to a new base transceiver station typically requires a similar time-slot on both the original and the new base transceiver station. Therefore, time division multiplexed connections may result in inefficient use of bandwidth between base transceiver stations and base station controllers and introduces complexity to time-slot management and roaming decisions for cell phones.

SUMMARY OF THE INVENTION

In accordance with the present invention, techniques for error correction in wireless communications systems are provided which substantially eliminate or reduce disadvantages and problems associated with previous techniques.

According to one embodiment of the present invention, a communications system includes a mobile unit that transmits redundant content to a plurality of destinations. A copy of the content that is transmitted to each destination is encoded using a code that is related to the codes used to encode copies of the content transmitted to the other destinations. The system further includes a number of base transceiver stations. Each base transceiver station receives a copy of the coded content from the mobile unit, generates a packet including the coded content, and communicates the packet. Furthermore, the system includes a decoder that receives a number of packets that each include a copy of the coded content and that are each generated at a different base transceiver station. The decoder decodes the content in the packets by concatenating the related codes used to encode each copy of the content and generates one or more redundant packets including the decoded content.

The present invention provides a number of technical advantages. For example, embodiments of the present invention include a packet-switched core that replaces the circuit-switched core typically used by cellular systems. This packet-switched core enables more efficient use of resources and eliminates complexity associated with the management of time-slots. Embodiments of the present invention also implement packet voting procedures in the packet-switched core that enable more efficient roaming of mobile units between base transceiver stations. These procedures enable the packet-switched network to intelligently select between copies of packets from a mobile unit received by multiple base transceiver stations. Each base transceiver station may encode metrics within received packets to facilitate selection between multiple copies of a single packet. Furthermore, a hierarchical voting structure may be used to distribute selection decisions and to reduce the propagation of redundant packets.

The packet voting procedures of the present invention also enable the use of multiple redundant packet streams from a single mobile unit. These redundant packet streams may be used not only to improve roaming of mobile units but also to improve error correction of the content communicated from mobile units. One of these advantages associated with certain embodiments of the present invention includes the ability to concatenate error correction codes encoded in the redundant packet streams. This allows for high rate encoding to be used without increasing the bandwidth required to communicate encoded content from a mobile unit. Another advantage associated with certain embodiments of the present invention is the ability to provide information regarding which redundant packet was selected using the packet voting procedures to the network devices used to decode content received from a mobile unit. These network devices, such as base transceiver stations, can then use this feedback to improve the decoding of content that is subsequently received from the mobile unit. Other technical advantages of the present invention will be readily apparent to one skilled in the art from the following figures, descriptions and claims.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1illustrates an exemplary communications system, indicated generally at10, that includes mobile units12coupled via wireless links to a managed network14that may be coupled to outside networks16. Managed network14includes base transceiver stations18, gateways20, a core packet network (CPN)22, and a roam manager24. In general, mobile unit12establishes a wireless link with one or more transceiver stations18to communicate with other mobile units12or with devices coupled to outside networks16. Managed network14supports packet voting between multiple copies of each packet received from mobile unit12. More specifically, CPN22may select between copies of a packet received from mobile unit12by multiple transceiver stations18, and gateway20may forward a selected one of the copies to an appropriate outside network16.

Mobile units12provide wireless communications using any suitable wireless communications protocol and may establish wireless links with transceiver stations18in managed network14. For example, mobile units12may be analog or digital cellular telephones, personal digital assistants (PDAs), pagers, or other suitable wireless devices providing wireless services for subscribers. Wireless links represent any channel or channels established between devices for the persistent, periodic, or sporadic communication of information via any suitable wireless communications protocols. Managed network14represents any collection and arrangement of components each aware of the topology within managed network14. That is, each component of managed network14may access information describing the network layout for other components of managed network14. This information may include network addresses, routing tables, or other suitable information. Thus, for example, if managed network implements Internet Protocol (IP) communications, each component of managed network14may be aware of the IP addresses for other components in managed network14.

Transceiver stations18represent hardware and/or software supporting wireless links with mobile units12using any suitable wireless communications protocol. Transceiver stations18receive information from mobile units12in packets or receive information from mobile units12and packetize the information for packet-switched communication via CPN22. CPN22represents any collection and arrangement of hardware and/or software providing packet-switched communications between transceiver stations18, gateways20, and roam managers24. For example, CPN22may include routers, bridges, gateways, switches, or other suitable network equipment providing packet-switched communications.

Gateways20represent hardware and/or software linking managed network14to outside networks16, such as mobile switching centers (MSCs), network gateways, or other suitable equipment. For example, gateways20may link to the public switched telephone network (PSTN), a global computer network such as the Internet, local area networks (LANs), wide area networks (WANs), or other communications networks. Moreover, gateways20may support conversions between the packet-switched communications supported by CPN22and protocols used by outside networks16. For example, gateway20may communicate information with CPN22using packet-switched protocols while providing circuit-switched communications with selected outside networks16.

Roam manager24represents hardware and/or software that monitors, manages and controls wireless links between mobile units12and transceiver stations18. As part of this management and control, roam manager24facilitates the roaming of mobile units12between transceiver stations18. Roaming refers to any activities supporting communications between mobile unit12and multiple transceiver stations18or supporting movement of mobile units12between areas serviced by different transceiver stations18or other wireless services equipment. Therefore, roam manager24supports management and control of links between mobile units12and transceiver stations18to provide substantially uninterrupted wireless services. While roam manager24is illustrated as a separate component of managed network14, system10contemplates incorporating the functionalities of roam manager24into any suitable components. For example, devices in CPN22, gateways20, transceiver stations18, mobile units12and/or other suitable equipment may provide some or all of the functions of roam manager24. Moreover, any of the functionalities of roam manager24may be separated and distributed among components of system10and may be implemented using any suitable combination of hardware and/or software.

To facilitate management and control of roaming of mobile units12, roam manager24may access information stored in a memory26. Memory26represents any one or combination of volatile or non-volatile, local or remote devices suitable for storing data, for example, random access memory (RAM) devices, read only memory (ROM) devices, magnetic storage devices, optical storage devices, or any other suitable data storage devices. In a particular embodiment, memory26stores a candidate table28and a link table30. Candidate table28maintains information for selecting candidate transceiver stations18for roaming from an original transceiver station18, and link table30maintains information for monitoring wireless links between transceiver stations18and mobile units12.

In operation, mobile unit12establishes a communications session with a remote location via a wireless link with a selected transceiver station18in managed network14. The communications session may use any suitable connection-oriented or connection-less, synchronous or asynchronous protocols. Establishing the session may result from mobile unit12initiating a telephone call, receiving a telephone call, establishing a data session, transmitting or receiving a page, roaming into an area, or any other suitable event. Transceiver station18monitors the wireless link and communicates information describing the link to roam manager24. These communications include any information describing the link, such as signal strength, bit error rate (BER), carrier-to-noise ratio (CNR), signal-to-noise ratio (SNR), or other suitable metrics. Roam manager24may maintain this information using link table30. During the communications session, CPN22routes packets associated with the session to an appropriate gateway20. However, if the remote location is serviced by a selected transceiver station18in managed network14, then CPN22may stream packets between transceiver station18communicating with mobile unit12and transceiver station18communicating with the remote location.

Roam manager24monitors the link based on information received from transceiver station18and, if an appropriate trigger occurs, initiates roaming of mobile unit12. For example, transceiver station18may report signal strength to roam manager24, and, when the signal strength drops below a threshold, roam manager24initiates roaming of mobile unit12. Given an appropriate triggering event, roam manager24determines candidate transceiver stations18for roaming. Candidate transceiver stations18include potential stations for establishing a new wireless link with mobile unit12. Roam manager24may determine candidate transceiver stations18based on the original transceiver station18, for example, by determining transceiver stations18in areas adjacent to the original transceiver station18. In a particular embodiment, roam manager24accesses candidate table28to determine candidate transceiver stations18based on the original transceiver station18. However, system10contemplates roam manager24using any suitable techniques or information for determining candidate transceiver stations18for roaming.

After determining candidate transceiver stations18, roam manager24directs the establishment of links between candidate transceiver stations18and mobile unit12. This may include instructing candidate transceiver stations18to communicate with mobile unit12using appropriate protocols and similarly instructing mobile unit12to communicate with candidate transceiver stations18. For example, consider mobile unit12roaming in a system using Walsh code/frequency combinations (typical of code division multiple access (CDMA) systems) for wireless links between mobile unit12and transceiver stations18. To set up links between mobile unit12and multiple candidate transceiver stations18, roam manager24may instruct candidate transceiver stations18to send outbound packets to mobile unit12using particular Walsh code/frequency combinations and to receive inbound packets from mobile unit12using a separate Walsh code/frequency combination. In addition, roam manager24may instruct mobile unit12to receive packets from candidate transceiver stations18using the specified Walsh code/frequency combinations. This establishes multiple, parallel, wireless links between mobile unit12and transceiver stations18. Therefore, each candidate transceiver station18and the original transceiver station18may receive a copy of each packet transmitted by mobile unit12, and mobile unit12may receive packets from each candidate transceiver station18and the original transceiver station18. While this example focuses on specific protocols, system10contemplates mobile units12and transceiver stations18establishing wireless links using any suitable communications protocols. Moreover, while this example includes mobile unit12establishing a single link and then roaming between a group of transceiver stations18, system10contemplates mobile unit12continuously roaming between multiple transceiver stations18.

In addition to directing communications between transceiver stations18and mobile unit12, roam manager24may also establish a selection group associated with the communications session to aid in streaming multiple copies of inbound and outbound packets through managed network14. For example, managed network14may use the selection group to select from multiple copies of each inbound packet received from mobile unit12and to distribute copies of each outbound packet to transceiver stations18communicating with mobile unit12. To establish the selection group, roam manager24may include the original transceiver station18providing a wireless link to mobile unit12and candidate transceiver stations18.

After determining transceiver stations18in the selection group, roam manager24propagates this selection group information to devices in managed network14, including components of CPN22. This propagation establishes a hierarchy for selecting between multiple copies of each packet received by transceiver stations18in the selection group. As previously discussed, during roaming of mobile unit12, each transceiver station18in the selection group receives a copy of each packet transmitted by mobile unit12. The selection group hierarchy provides a mechanism for selecting one of the copies of each packet transmitted by mobile unit12to communicate to the remote location.

In addition, devices in managed network14may use this selection group hierarchy to control the distribution of outbound packets (packets from the remote location to mobile unit12). For example, the selection group hierarchy may fan out a single packet from the remote location, resulting in each transceiver station18in the selection group receiving a copy of the packet. Each transceiver station18in the selection group then transmits its copy of the packet to mobile unit12, allowing mobile unit12to select the best available packet or otherwise combine or select from multiple copies of each packet received. Therefore, managed network14may use the selection group to aid in distribution of copies of outbound packets and to enable hierarchical packet voting resulting in a single copy of each inbound packet reaching the remote location.

To aid in this packet voting, components in system10encode metrics or other information in each inbound packet to enable selection between multiple copies of each inbound packet. In a particular embodiment, transceiver stations18determine a metric associated with each packet received from mobile unit12and generate a graded packet encoding this metric and the contents of the original packet. Transceiver stations18generate graded packets using any metric or metrics, such as signal strength, BER, CNR, SNR, or other suitable metrics. Thus, components in managed network14differentiate between copies of each packet based on the metrics or other information encoded in the graded packets. This allows a component receiving multiple copies of a packet, as graded packets, to intelligently select one or more of the graded packets to forward.

For example, consider mobile unit12communicating with two transceiver stations18of a selection group. Each transceiver station18receives a copy of an inbound packet, determines a metric associated with the wireless link to mobile unit12, generates a graded packet encoding this metric and the inbound packet, and forwards the graded packet to CPN22. An element of CPN22(or gateway20) receives the two graded packets, selects one of the packets based on the encoded metrics, and then forwards the selected packet. Thus, managed network14votes between multiple copies of a packet based on encoded metrics. System10contemplates using any suitable metrics or techniques for selecting between multiple copies of a packet. Furthermore, while these examples focus on wireless communications applications, similar techniques and methods may be used for other applications that may benefit from packet voting, such as conferencing or collaboration over wireless or wireline networks.

During roaming, roam manager24may also monitor wireless links between roaming mobile units12and transceiver stations18to determine when to terminate roaming and remove selection groups. In a particular embodiment, transceiver stations18monitor wireless links with mobile units12, generate monitoring information, and communicate monitoring information to roam manager24. For example, each transceiver station18continuously, periodically, or sporadically communicates values for metrics measuring characteristics associated with wireless links between that transceiver station18and mobile units12. Monitoring information may include any suitable metrics, such as signal strength, BER, CNR, and SNR. Memory26may store monitoring information in link table30. Based on this and/or other information, roam manager24determines when to terminate roaming and remove selection groups for mobile units12. For example, roam manager24may monitor each wireless link for mobile unit12communicating with multiple transceiver stations18. When one of the links meets certain criteria, roam manger24may terminate roaming and remove the selection group associated with that mobile unit12, allowing mobile unit12to continue wireless communications with a selected primary transceiver station18.

System10contemplates roam manager24using any suitable techniques and information for determining when to terminate roaming of mobile units12and to remove selections groups. Moreover, roam manager24may support “soft” roaming of mobile units12. In soft roaming, roam manager24adds and removes transceiver stations18from the selection group at any time without terminating the selection group. Thus, roam manager24may continuously maintain a selection group for mobile unit12, modifying the membership of the group as appropriate.

To terminate roaming, roam manager24suspends communications between mobile unit12and transceiver stations18in the selection group not selected as the primary transceiver station18. In a particular embodiment, roam manager24instructs the non-primary transceiver stations18to stop communicating outbound packets to mobile unit12and to stop receiving inbound packets from mobile unit12, and roam manager24instructs mobile unit12to stop receiving packets from the non-primary transceiver stations18. This results in a single wireless link between mobile unit12and primary transceiver station18. In addition to terminating roaming, roam manager24may also remove the selection group associated with mobile unit12. For example, roam manager24issues a command to elements in managed network14requesting all elements to stop streaming packets according to the selection group. As a result, managed network14discontinues packet voting according to the selection group hierarchy and discontinues copying of outbound packets to multiple transceiver stations18. While the preceding examples illustrate particular embodiments, system10contemplates roam manager24using any appropriate techniques for terminating roaming of mobile units12and for removing selection groups.

Moreover, managed network14may implement soft roaming using dynamic selection groups and, as previously discussed, may distribute selection group and roaming management among components in system10. For example, each transceiver station18may monitor signals from mobile units12, such as communications control signals, to determine mobile units12within an effective range of that transceiver station18. This includes, for example, transceiver station18determining all mobile units12that have a signal strength that exceeds a threshold. Based on these determinations, each transceiver station18registers with selection groups for mobile units12within range and drop from selection groups for mobile units12that have moved out of range. Furthermore, mobile units12may monitor signals and add or remove transceiver stations18from selection groups. This provides selection groups that dynamically add and remove members based on distributed management. However, system10contemplates managed network14using any distribution or centralization of roaming and selection group management functions.

FIG. 2illustrates an exemplary candidate table28maintained by memory26. Candidate table28includes entries for candidate transceiver stations18indexed according to a primary transceiver station18. Elements in system10, such as roam manager24, may use information in candidate table28to aid in managing and controlling roaming of mobile units12and in establishing selection groups. This exemplary candidate table28lists candidate transceiver stations18for two primary transceiver stations18, stations E and F. For example, consider mobile unit12participating in a communication session using a wireless link with station E. Roam manager24, monitoring this link, may determine that mobile unit12should roam between transceiver stations18. Roam manager24accesses candidate table28and determines that mobile units12roaming from station E potentially roam to stations F, G, or H. Based on this determination, roam manager24establishes a selection group including stations E, F, G, and H and initiates roaming of mobile unit12. Candidate table28illustrates only a particular embodiment for maintaining candidate information. System10contemplates using any suitable information maintained in any appropriate form for assisting with roaming decisions.

FIG. 3illustrates an exemplary link table30maintained by memory26. Roam manager24may access link table30to determine appropriate times for initiating and terminating roaming of mobile units12. For each mobile unit12monitored by roam manager24, link table30maintains monitoring information for wireless links between transceiver stations18and mobile units12. This information includes any suitable metrics, reports, or other data, such as signal strength, BER, CNR, SNR, or other suitable information. This exemplary link table30illustrates link information for two mobile units12, mobile units I and K. For example, link table28indicates that mobile unit I is currently communicating with stations E, F, G, and H. These transceiver stations18may represent members of a selection group established by roam manager24to facilitate roaming of mobile unit I. Table30also indicates that mobile unit K is currently communicating with station F. Thus mobile unit K, in this example, is not currently roaming. While this example includes specific metrics monitored by roam manager24, system10contemplates roam manager24monitoring and link table30maintaining any suitable metrics for determining characteristics of wireless links between mobile units12and transceiver stations18.

FIG. 4illustrates an exemplary selection group hierarchy40established within managed network14that includes routers42and transceiver stations18for a selection group associated with mobile unit12. Hierarchy40illustrates the operation of components in managed network14in accordance with an exemplary selection group hierarchy. In general, elements in hierarchy40may stream inbound and outbound packets associated with a communications session according to a selection group established for mobile unit12. Routers42select between copies of inbound packets at each juncture, and thus hierarchy40may ultimately forward a single copy of each inbound packet from mobile unit12. Hierarchy40may also generate multiple copies of outbound packets such that each transceiver station18receives copies of each outbound packet destined to mobile unit12.

Routers42represent hardware and/or software components in managed network14that receive and forward packets and select between multiple copies of packets. For example, routers may be gateways20, elements of CPN22, or other suitable devices. Routers42may include an interface for communicating with other elements in system10and a processor for controlling the operation of router42. These components may be implemented using any suitable combination or separation of modules using hardware and/or software components.

This illustration includes exemplary network addresses for each element. Thus, routers42have network addresses A, B, C, and D, transceiver stations18have network addresses E, F, G, and H, and mobile unit12has a network address of I. In addition, this example includes selection group information for various routers42illustrated as a first selection table44(maintained by router A) and a second selection table46(maintained by router B). Tables44and46each identify a mobile unit12associated with the selection group (mobile unit I) and network addresses for devices in the next lower level of hierarchy40. For each inbound packet, routers42select from copies of the packet received from each device on the next lower level. For example, router A selects between copies of inbound packets received from routers B, C, and D. Similarly, router B selects between copies of packets received from stations E and F. Some elements of hierarchy40, such as routers C and D, may simply forward packets without selecting between multiple copies.

Consider an inbound packet50transmitted by mobile unit I. In this example, packet50includes an origin, destination, identifier (ID), and content. The identifier may include a sequence number or other information for identifying the packet. Stations E, F, G, and H each receive a copy of packet50, determine a metric associated with the wireless communications link with mobile unit I, generate a graded packet encoding the metric and information from the original inbound packet, and then forward the graded packet up hierarchy40. For example, station E receives packet50, determines a metric associated with communications between station E and mobile unit I, generates a graded packet52encoding this metric and information from the inbound packet, and forwards graded packet52to router B. Therefore, in this example, graded packet52includes the origin, destination, ID, and content of packet50as well as an encoded metric. Station F performs similar functions upon receiving the inbound packet. Routers42determine the group of graded packets from which to select based on the identifiers encoded in the packets. This group of graded packets may be referred to as “redundant” packets. However, it should be understood that due to transmission or other errors, redundant packets may not be identical when received by a router42or other appropriate device (thus the need for packet selection).

Router B receives graded packets from stations E and F, selects one of these packets based on the encoded metrics, and forwards the selected graded packet to router A. Routers C and D simply forward graded packets received from stations G and H to router A. At the final selection point, router A receives graded packets from routers B, C, and D, selects between these graded packets based on the encoded metrics, and forwards a selected packet54. Therefore, hierarchy40may support a distributed selection process that allows mobile unit12to communicate with multiple transceiver stations18and provides intelligent selection between redundant packets received using multiple wireless links.

Using these techniques, hierarchy40may select the copy of each inbound packet with the highest potential for quality. For example, transceiver stations18may grade packets based on a signal strength associated with communications with mobile unit12while receiving the packet. Hierarchy40may then select between redundant packets based on signal strength and, for each inbound packet, forward the copy received on the wireless link having the highest signal strength for copies of that packet. In addition, hierarchy40may remove any metrics from the final packet selected. For example, router A may remove any metrics from the final selected packet, thus forwarding a single packet identical to the original packet transmitted by mobile unit I. Hierarchy40illustrates this, having selected packet54identical to packet50transmitted by mobile unit I.

While this example illustrates specific network elements and techniques for selecting between packets from multiple transceiver stations18, system10contemplates using any suitable methods and criteria for selecting between multiple copies of a single packet (redundant packets). Moreover, these selection techniques may be used in any system requiring selection between copies of packets. For example, similar selection techniques may be used to establish multiple parallel paths for communications between two points or to facilitate conferencing functions.

Also, while this example focuses on packet-based communication between transceiver station18and mobile unit12, system10contemplates wireless communications taking place using any appropriate techniques. Thus transceiver station18may receive information from mobile units12using any suitable protocols and then generate graded packets encoding the information and associated metrics. This information may include digital data, packets, voice information, control signals, video, telemetry data, and/or other suitable information. In addition, selection information, such as tables44and46, may be maintained in any suitable form enabling centralized or distributed management of selection group information. Furthermore, as is described in further detail below, routers42may selectively combine information from one or more packets to create one or more new packets.

For outbound communications, managed network14may use hierarchy40to distribute copies of outbound packets to each transceiver station18communicating with mobile unit12. For example, consider a single outbound packet for transmission to mobile unit I received by router A. Router A accesses selection group information, such as information stored in first table44, determines that routers B, C, and D are in the next level of hierarchy40, and forwards copies of the outbound packet to these routers42. Similarly, routers B, C, and D each access selection group information and, based on this information, forward copies of the outbound packet to appropriate recipients. Thus, for this example, router B forwards copies of the outbound packet to stations E and F, router C forwards the outbound packet to station G, and router D forwards the outbound packet to station H. Thus, stations E, F, G, and H may each communicate a copy of the outbound packet to mobile unit I.

Therefore, when roaming, mobile unit I may receive a copy of each outbound packet from multiple transceiver stations18. As previously discussed, mobile unit I may then select between the copies of each packet using any suitable selection criteria. For example, mobile unit I may select between copies based on signal strengths of wireless links with transceiver stations18. Moreover, mobile unit I may combine information from each copy of a packet received to construct a more accurate packet than any of the individual copies. However, system10contemplates mobile units12using any suitable techniques and criteria to select between and/or combine multiple copies of received packets.

In addition, while this example illustrates managed network14using hierarchy40to distribute copies of outbound packets, system10contemplates using any suitable techniques or information to facilitate the distribution of copies of outbound packets to multiple transceiver stations18. For example, managed network14may use different information, hierarchies, techniques, or groups to distribute outbound packets than are used for selecting between inbound packets.

FIG. 5illustrates an exemplary method for monitoring wireless links between mobile unit12and transceiver stations18and for establishing a selection group to facilitate roaming of mobile unit12between transceiver stations18. Initially, mobile unit12establishes a communications session using a wireless link with transceiver station18. Roam manager24monitors metrics for the wireless link between transceiver station18and mobile unit12at step100. As previously discussed, roam manager24may monitor any suitable metrics for determining characteristics of the wireless communications link and may also access link table30, or roam manager24may receive reports or requests from mobile unit12or transceiver stations18to initiate roaming. Roam manager24determines whether the metrics have fallen below a threshold at step102. If not, roam manager24continues monitoring the link at step100. However, if the metrics fall below a threshold, roam manager24initiates roaming of mobile unit12beginning at step104.

As part of initiating roaming, roam manager24determines candidate transceiver stations18at step104. As previously discussed, candidate transceiver stations18may, for example, include transceiver stations18in physical proximity to the current transceiver station18communicating with mobile unit12. To determine candidate transceiver stations18, roam manager24may access candidate table28. However, system10contemplates roam manager24determining candidate transceiver stations18using any suitable equipment and/or methods, such as responsive to requests or commands from mobile unit12or transceiver stations18. Roam manager24then establishes a selection group including the current transceiver station18communicating with mobile unit12and candidate transceiver stations18at step106. This may include, for example, determining a metric for use in selecting between redundant packets received from multiple locations. Roam manager24propagates selection group information to elements in managed network14at step108. This propagation establishes the hierarchical structure, as illustrated by hierarchy40, for selecting between redundant packets received by multiple transceiver stations18. By determining candidate transceiver stations18, establishing a selection group, and propagating this selection group throughout managed network14, roam manager24establishes a mechanism for receiving copies of packets from mobile unit12using multiple transceiver stations18, streaming these packets through managed network14, and selecting a single copy of each packet to forward to a remote destination.

Roam manager24may also direct the establishment of communications between transceiver stations18and mobile unit12at steps110and112. At step110, roam manager24directs candidate transceiver stations18to communicate with mobile unit12, thus setting up multiple wireless links between managed network14and mobile unit12. In addition, roam manager24directs mobile unit12to communicate with candidate transceiver stations18at step112. Because transceiver stations18and mobile units12may support wireless communications using any suitable wireless communications protocol, roam manager24directs communications between transceiver stations18and mobile units12using the appropriate protocol or protocols.

For example, in a CDMA system, roam manager24may instruct transceiver stations18to transmit communications to mobile unit12using particular Walsh code/frequency combinations and to receive transmission from mobile unit12using a particular Walsh code/frequency combination. Similarly, roam manager24may instruct mobile unit12to receive transmissions using the various Walsh code/frequency combinations assigned to candidate transceiver stations18. These steps permit mobile unit12to establish parallel wireless links with multiple transceiver stations18for the communication of packets associated with a communications session.

Accordingly, each transceiver station18in the established selection group may receive a copy of each inbound packet transmitted by mobile unit12. These redundant packets stream through CPN22according to the established selection group at step114. This may include hierarchically selecting between the redundant packets received by multiple transceiver stations18. The discussion above with respect to hierarchy40illustrates exemplary operation of a particular embodiment for streaming packets according to selection group information. However, system10contemplates using any suitable techniques for selecting between redundant packets and copying packets to multiple transceiver stations18.

While the selection group is operating, roam manager24monitors links with transceiver stations18in the selection group at step116. Through this monitoring, roam manager24may determine whether a selected one of these transceiver stations18should be chosen from among the group as the primary transceiver station18. As previously discussed, roam manager24may monitor any suitable metrics associated with wireless links between transceiver stations18and mobile unit12. For example, each transceiver station18may continuously, periodically, or sporadically communicate a metric indicating some characteristic associated with wireless communications between that transceiver station18and mobile unit12. Based on these and/or other metrics, roam manager24determines whether a selected one of transceiver stations18in the selection group should be chosen as a primary transceiver station18at step118. If not, packets continue to stream according to the selection group, and roam manager24continues monitoring selection group transceiver stations18.

However, if roam manager24determines a primary transceiver station18, roam manager24may then terminate roaming and remove the selection group associated with mobile unit12. To terminate roaming, roam manager24directs mobile unit12to discontinue communications with non-primary transceiver stations18at step120. For example, roam manager24may instruct mobile unit12to discontinue receiving communications on the Walsh code/frequency combinations assigned to the non-primary transceiver stations18. Roam manager24may also direct the non-primary transceiver stations18to discontinue communications with mobile unit12at step122. This may include, for example, roam manager24instructing these transceiver stations18to discontinue transmitting outbound packets to mobile unit12and to discontinue receiving inbound packets on the Walsh code/frequency combination assigned to mobile unit12.

In addition, roam manager24removes the selection group associated with mobile unit12at step124. To remove the selection group, roam manager24may propagate a command through managed network14. For example, roam manager24may instruct elements of managed network14to discard selection group information and to discontinue selecting between packets from mobile unit12based on the selection group information. After removing the selection group and terminating roaming, roam manager24returns to monitoring the remaining wireless link between transceiver station18and mobile unit12.

While this flowchart illustrates an exemplary method, system10contemplates using any suitable techniques and equipment for managing roaming of mobile unit12. As previously discussed, this includes the distribution or centralization of decision making components. For example, many of the steps performed by roam manager24may be implemented by various components within system10, such as transceiver stations18, gateways20, or other suitable equipment. In addition, while this flowchart illustrates the establishment of a static selection group, system10contemplates using soft roaming and dynamic selection groups as described above. Also, many of the steps in this flowchart may take place simultaneously and/or in different orders than as shown. Furthermore, system10contemplates using methods with additional steps, fewer steps, or different steps, so long as the methods remain appropriate for establishing selection groups to select between redundant packets received.

FIG. 6illustrates an exemplary method for registering and withdrawing from selection groups associated with mobile units. For the description of this flowchart, transceiver station18performs each of the steps. However, system10contemplates any of the components of system10, such as roam manager24, performing some or all of the steps described.

Transceiver station18monitors wireless signals from mobile units12at step130. This includes transceiver station18monitoring control channels, communications sessions, and/or other transmissions from mobile units12. For example, transceiver station18may attempt to receive any signals from mobile units12that wireless interface64of transceiver station18detects. Transceiver station18determines whether any signals have been received at step132and, if not, continues monitoring signals at step130. However, if a signal has been received from mobile unit12, transceiver station18determines whether it is currently registered for the selection group for that mobile unit12at step134.

If transceiver station18is registered for the selection group associated with mobile unit12, transceiver station18determines whether to remain in the selection group. Thus transceiver station18determines whether the signal indicates that wireless communications have dropped below a drop threshold at step136. To satisfy this determination, transceiver station18may delay until multiple signals below the drop threshold have been received or until signals have fallen below the drop threshold for a predetermined period of time. Alternatively, transceiver station18may determine whether it has ceased receiving any signals from mobile unit12. However, if the signal (or signals) have not dropped below the drop threshold, transceiver station18resumes monitoring signals at step130.

If the signal has dropped below the drop threshold, transceiver station18withdraws from the selection group associated with mobile unit12at step138and then resumes monitoring signals. After withdrawing from the selection group, transceiver station18ceases to participate as a link for communications sessions established by mobile unit12. That is, for communications sessions established by mobile unit12with remote devices, transceiver station18will not forward inbound or outbound communications. For example, in a CDMA system, transceiver station18may discontinue receiving session communications from mobile unit12on a Walsh code/frequency combination associated with transmissions from mobile unit12. Transceiver station18may also instruct mobile unit12to discontinue receiving communications from transceiver station18on a particular Walsh code/frequency combination.

If transceiver station18determines that it is not registered for the selection group associated with mobile unit12at step134, transceiver station18determines whether to register as a member of the selection group. Thus transceiver station18determines whether the signal indicates that wireless communications have exceeded an add threshold at step140. As with the drop threshold, transceiver station18may delay until multiple signals above the add threshold have been received or until signals have exceeded the add threshold for a predetermined period of time. If not, transceiver station18resumes monitoring signals at step130.

However, if the signal (or signals) have exceeded the add threshold, transceiver station18registers for the selection group associated with mobile unit12at step142and then resumes monitoring signals at step130. As a member of the selection group, transceiver station18participates as a link in communications sessions, such as telephone calls, established by mobile unit12with remote devices. For example, in a CDMA system, transceiver station18may begin receiving session communications from mobile unit12on a Walsh code/frequency combination associated with transmissions from mobile unit12. Transceiver station18may also instruct mobile unit12to begin receiving communications from transceiver station18on a particular Walsh code/frequency combination.

While this flowchart illustrates an exemplary method, system10contemplates using any suitable techniques and equipment for managing membership, registration, and removal from selection groups associated with mobile units12. For example, many of the steps in this flowchart may be performed by components other than transceiver station18. Moreover, many of the steps in this flowchart may take place simultaneously and/or in different orders than as shown. In addition, system10contemplates using methods with additional steps, fewer steps, or different steps, so long as the methods remain appropriate for managing membership of, registration to, and removal from selection groups associated with mobile units12.

FIG. 7illustrates an exemplary method for an element in managed network14to participate in a selection group hierarchy. This exemplary description focuses on the operation of a particular router42in managed network14; however, any other appropriate device may be used. Router42receives selection group information from roam manager24at step150. This information may include data such as a mobile unit12associated with the selection group, transceiver stations18in the selection group, a metric or other appropriate technique to use in selecting between packets, or other suitable information. Based on this information and network topology information, router42may determine an appropriate position in a selection group hierarchy at step152. For example, router42may determine a single network address for the next higher level in a hierarchy and multiple network addresses for the next lower level of the hierarchy. As routers42in managed network14perform these determinations, they may form a packet voting hierarchy similar to hierarchy40discussed above. Router42may then store the selection group information, including any network addresses, using any appropriate methods and devices at step154.

Router42monitors communications from other components in system10at step156. Router42determines whether an indication to remove the selection group has been received at step158. If so, router42removes the selection group information and completes processing of this selection group. If the selection group has not been removed, router42determines whether a graded packet originating from mobile unit12has been received at step162. Upon receiving a copy of an inbound packet in the form of a graded packet, router42may then access selection group information at step164. In this step, router42may determine how many copies of the inbound packet should be received before selecting and forwarding one of the graded packets. Router42may access packet identifiers, such as a sequence numbers, to determine the group of packets from which to select. Thus, router42determines whether all copies of this inbound packet have been received at step166. If not, router42determines whether to continue waiting for all expected graded packets at step168.

If the timeout has not been reached and all of the graded packets have not been received, router42continues checking for graded packets at step166. However, upon timing out or receiving all expected graded packets, router42selects one of the graded packets at step170. This includes router42comparing metrics encoded in the graded packets or using any other suitable technique for selecting between the graded packets. If a timeout has occurred, router42may also generate an error message. Router42then forwards the selected packet to the component in the next level up in the selection group hierarchy at step172and then continues monitoring communications at step156.

While this flowchart illustrates an exemplary method, system10contemplates using any suitable techniques and equipment for packet voting among redundant packets. Moreover, many of the steps in this flowchart may take place simultaneously and/or in different orders than as shown. In addition, system10contemplates using methods with additional steps, fewer steps, or different steps, so long as the methods remain appropriate for packet voting among redundant packets.

As described above, routers42or other appropriate devices are capable of selecting one or more redundant packets and forwarding the selected packets. In this case, the content of each selected packet is not modified before a router42forwards the packet. However, instead of forwarding selected packets without modification, routers42may combine different portions of two or more redundant packets from a single source to create one or more improved packets. As an example only, if two redundant packets are received, a router42may combine the first half (or any other portion) of the content of the first packet with a the second half (or any other portion) of the second packet. Therefore, if router42determines that the first half of the first packet is in error and determines that the second half of the second packet is in error, then router42may combine the halves of the packets that do not have errors to create am improved packet having no errors in its content. Router42may evaluate the content of each incoming packet on a bit-by-bit basis to determine which portions of the packet to include in an improved packet. For example, router42may evaluate the first bit of a first and a second packet and select one of the bits to include in the improved packet. Router42may then perform the same evaluation and selection on each successive bit of the first and second packets. Alternatively, router42may evaluate and select groups of bits or any other appropriate portions of the content of a packet.

A router42or other appropriate device may evaluate the bits or other portions of the content included in a packet using any appropriate technique. One such technique is to use forward error correction techniques to determine whether a bit is in error. If a bit from a first redundant packet is in error and the same bit in a second redundant packet is not in error, then router42may select the bit from the second packet. As described above, this evaluation may be performed on a bit-by-bit basis. Furthermore, any other appropriate evaluation technique may be use to select portions of a packet to include in an improved packet containing content from multiple packets received by a router42.

Although the combination of content from two redundant packets to form one improved packet is described above, the present invention also contemplates that content or other information from any appropriate number of redundant packets may be combined to create any appropriate number of improved packets. For example, a portion of the content from a first packet and a second packet which are redundant may be combined to create one improved packet and a portion of the content from the second packet and a third packet (which is also redundant) may be combined to create another improved packet. The determination of which portions of which packets are combined may be made using any appropriate technique. Router42may evaluate the content of all incoming redundant packets to determine which portions of which redundant packets to combine. Alternatively, router42may first select two or more of the redundant packets using an appropriate selection technique and then evaluate and combine, if appropriate, the content of the two or more of the selected packets.

The capability of routers42or other appropriate devices in a selection group to combine multiple redundant packets is advantageous since two or more packets that contain errors may be combined to create an improved packet that contains no errors or fewer errors. In addition, this capability may be used to improve error correction of the packets communicated from a mobile unit12or other device. More specifically, through the combination of information in multiple redundant packets, different error correction codes associated with each redundant packet may be concatenated to produce an improved error code.

FIG. 8illustrates exemplary functional components of a communication system200using forward error correction. Forward error correction (FEC) techniques are used to correct errors introduced during communication of content from mobile units12. FEC techniques use an encoder204to add redundant information, referred to as channel coding, to the content being communicated from a source202over a communication channel206(for example, the wireless communication channels used by mobile units12). This channel coding maps a sequence of bits or other information received from source202into a sequence of code bits that enable errors introduced during transmission of a sequence of bits or other information to be corrected. A modulator205is used to modulate the code bits into a signal for transmission over communication channel206.

A demodulator207receives and demodulates the signal to produce a sequence of code bits. A decoder208receives the code bits and attempts to correct any errors by replacing the received sequence of code bits (which include one or more errors) with a sequence of code bits that decoder208determines were most likely transmitted by encoder204. The mapping performed at encoder204is then inverted to hopefully produce the sequence of bits originally communicated from source202. Decoder208communicates this sequence of bits to the intended destination210.

Encoder204, modulator205, demodulator207, and decoder208may be implemented using any appropriate combination of hardware and/or software at one or more locations. Furthermore, it should be noted that although source202, encoder204, and modulator205are illustrated as separate components, two or more of these components may be co-located and/or integrated. As an example only, source202, encoder204, and modulator205may be co-located in a mobile unit12. Similarly, two or more of demodulator207, decoder208, and destination210may be co-located and/or integrated. As examples only, demodulator207and decoder208may be co-located at a transceiver station18or demodulator207may be located at a transceiver station18and decoder208may be located at a router42.

The two major types of channel coding are block codes and convolutional codes. When using block codes, encoder204splits up an incoming stream of bits or symbols from source202into blocks of k digits and adds redundancy (extra bits) to the block according to a pre-defined algorithm. The output of encoder204in this case is a “code word” including n bits, where n>k. The “code rate” for such a block code may be defined as k/n. For example, a code rate of 1/3 indicates that the code word is three times as long as the received bits and thus there are two code bits for every received bit. Unlike block codes, convolutional codes may be thought of as mapping a continuous stream of bits (one or more bits at a time) instead of mapping separate blocks of bits. Thus, convolutional codes map a stream of k bits per second into a stream of n bits per second. Convolutional codes may be described as having a “memory” since the mapping of information bits (representing content from mobile unit12) to code bits is a function of past information bits (unlike block codes).

One type of convolutional code that may be used in conjunction with the present invention are punctured codes. Punctured codes are similar to typical convolutional codes except for the fact that bits from a generated code word are strategically removed (the code word is “punctured”) to reduce the length of the code word and thus reduce the required bandwidth. However, this also increases the code rate and thus produces less effective error correction. Therefore, there is typically a balancing performed between the number of “punctures” or removed bits in a code word and the allocated bandwidth. One advantage of punctured codes is that two or more code words may be strategically punctured in different places such that there is a orthogonal relationship between the different code words. Therefore, an decoder208may combine information obtained from each of the code words to decode all of the code words. In other words, each code gives a unique insight into the error.

When using either block codes or convolutional codes, as the number of code bits that are added to information bits is increased (and thus as the code rate decreases), the probability of accurately correcting transmission errors in the information bits increases. However, a decrease in the code rate requires additional bandwidth in communication channel206decreasing the code rate requires increasing the number of bits that are communicated. It is often not possible or feasible to increase the bandwidth of communication channel206. On the other hand, error rates resulting from high code rates may also not be acceptable.

The above problems may be solved, at least in part, through the concatenation of error correction codes associated with redundant packet streams from a mobile unit12. In such an embodiment, complimentary code words may be generated for each packet stream such that the code words from two or more of the packet streams may be combined to create a code word having an effective code rate that is less than the code rate of either individual packet stream. As an example only, a code word in a first redundant packet with an associated code rate of 2/3 may be combined with a code word in a second redundant packet also having an associated code rate of 2/3 to create a packet having a code word with an associated code rate of 1/3.

FIG. 9illustrates an exemplary method of error correction using concatenated error codes from redundant packet streams. The exemplary method begins at step250where a selection group is formed for a mobile unit12, as described above. At step252, mobile unit12generates coded redundant content for each transceiver station18in the selection group. Each set of redundant content (the content generated for each transceiver station18) is coded using a punctured code or other appropriate code that is orthogonally related to the code used for the other sets of redundant content. Therefore, the codes used to encode the redundant sets of content are related and may be used together to decode the different sets of redundant content when received by transceiver stations18. The multiple transceiver stations18receive the coded content from mobile unit12at step254. At step256, each transceiver station18generates a graded packet including the coded content and the value of an appropriate metric, as described above. However, such grading of the received coded content may not be performed in particular embodiments. In such cases, a packet is generated that includes the coded content but not the metric value.

The packet including the coded content is communicated to an appropriate decoder208at step258. This decoder208may be included in or associated with a router42in the selection group or any other appropriate network device. At step260, decoder208receives two or more packets including redundant coded content from two or more transceiver stations18. At step262, decoder208concatenates the two or more orthogonally related codes associated with the redundant packets and then uses the concatenated code (the cross product of the codes) to decode the content and generate two or more redundant packets including the decoded content. One of the redundant packets is then selected at step264using any appropriate technique and communicated to the destination. This selection may be performed by a router42associated with decoder208or the multiple redundant packets may be communicated to a router42after decoding.

The decoded content in the two or more packets may be different due to different transmission errors in the various communication channels206over which the content was communicated from mobile unit12. However, the use of the concatenated code may produce two redundant packets with identical decoded content. The orthogonally related codes may be concatenated using any appropriate technique known in the art. For example, the multiple orthogonal codes may be generated such that the punctures in each code may be filled by another code (there are no common punctures between the codes). Therefore, the multiple codes may be combined to create a code with no punctures. Alternatively, the codes may be concatenated using more advanced techniques such as the use of serially concatenated convolutional codes (SCCC), parallel concatenated convolutional codes (PCCC), or any other appropriate techniques.

While this flowchart illustrates an exemplary method, system10contemplates using any suitable techniques and equipment for error correction using concatenated error codes from redundant packet streams. Moreover, many of the steps in this flowchart may take place simultaneously and/or in different orders than as shown. In addition, system10contemplates using methods with additional steps, fewer steps, or different steps, so long as the methods remain appropriate for packet voting among redundant packets.

In addition to or instead of error code concatenation, embodiments of the present invention may leverage the existence of multiple redundant packet streams to improve the decoding performed at decoder208. In an exemplary embodiment, decoder208is a Viterbi or trellis decoder. Viterbi decoders are one type of decoder208that may be used in conjunction with convolutional codes. In simplified terms, an exemplary Viterbi decoder operates as follows. For each set of two code bits (which may be referred to as a “symbol”) that are received, a Viterbi decoder computes a set of probabilities for each possible encoder state that could have produced that symbol. The possible states are each represented by a “branch”. As a number of consecutive symbols are received, the branches associated with each symbol form a tree-like structure or trellis (the branches are related and connected since convolutional coding for each symbol is based on previous symbols). Each branch has an associated probability and thus a state “path” through the trellis that includes multiple connected branches also has an associated probability. To decode a set of symbols, a Viterbi decoder determines the most probable path through the trellis (the path that leads to the most probable state) and then retraces the path to determine the values of the symbols. This decoding function and operation of a Viterbi decoder is well known in the art and will not be described in further detail.

The exemplary Viterbi decoder208described above as well as other types of decoders208may be hard decision decoders or a soft decision decoders. Hard decision decoding refers to the situation where demodulator207translates the received signal from communication channel206into a sequence of bits corresponding to the transmitted bit stream (for example, a single bit having a value of zero or one is generated for each “bit” represented in the modulated signal). Then, using the example above, consecutive bits are decoded in pairs using decoder208. The disadvantage of hard decision decoding is that additional error may be introduced during demodulation since demodulator207assigns each bit a value of one or zero even if the received signal does not clearly indicate which value should be assigned. For example, if a signal with an amplitude of one volt represents a bit value of one and a signal with an amplitude of zero volts represents a bit value of zero, demodulator207may determine that a received signal having an amplitude of 0.7 volts should represent a bit value of one (since 0.7 is closer to one than zero). However, this hard decision may be incorrect if the signal originally had a value of approximately zero volts and was altered due to transmission errors. Furthermore, this error will be promulgated by decoder208since decoder208will not know the true value of the signal that was received and thus cannot account for it.

In soft decision decoding, demodulator207communicates the actual received value associated with a bit (or a near representation of the value) to decoder208so that decoder208may more accurately decode the received bit stream. As an example only, demodulator may assign each incoming bit a number between “0” and “255” (represented using eight bits). These assigned bits may be referred to as “soft bits.” An ideal zero bit (a signal exactly representing a zero value) is assigned the soft bit value “0” and an ideal one bit is assigned the soft bit value “255.” Values between “0” and “255” are assigned to incoming bits having values between zero and one (according to the incoming signal). This provides two hundred fifty-six quantization levels that decoder208may use to determine whether a zero or a one has been transmitted for each value.

For example, using the above example, if a signal having an amplitude of one volt is received, it may be assigned the soft bit value “255.” If a signal having an amplitude of zero volts is received, it may be assigned the soft bit value “0.” If a signal having an amplitude of 0.7 volts is received, it may be assigned the soft bit value “178” (this value is seven tenths of 255, but any other appropriate value may be used). Since each incoming bit is represented by an eight-bit value (or any other appropriate number of bits) instead of a single bit, the design and operation of decoder208is somewhat more complex than when each bit is represented by a single hard bit (zero or one). However, since the soft bits that demodulator207provides to decoder208more accurately represent the corresponding received code bit, decoder208may more accurately decode the received code bits. The design of a decoder208, such as a Viterbi decoder208, for processing soft bit input from a demodulator207is well known in the art and will not be described in further detail.

Among its advantages, the use of soft decision decoding allows demodulator207, decoder208, or any other appropriate component to further refine the generated soft bits by modeling the noise or other error sources in channel206and correcting the soft bits to account for the error created by this noise using noise correction algorithms. One method of correcting for this noise is to communicate a known pilot signal to decoder208or another appropriate component. For example, source202or encoder204may attach a pilot signal to data to be communicated (for example, at the beginning of the data) or may send the pilot signal separately from other information communicated from source202. The contents (bit values) of the pilot signal are known to decoder208. Decoder208receives the pilot signal from demodulator207and decodes the pilot signal in the same manner that decoder208decodes other received information. Decoder208then compares the decoded pilot signal to the known value of the pilot signal. If the two signals are different, then decoder208can determine where errors have occurred (due to distortion caused by noise or other error sources in channel206) and can adjust the decoding process to correct these errors in subsequent information received by decoder208. This process may be repeated as often as necessary to correct for changing error sources in channel206.

FIG. 10illustrates an exemplary method for improved error correction using redundant packet selection information. In a similar manner that pilot signals are used to adjust the operation of a decoder208or other appropriate component, packet selection information in managed network14may also be used to adjust and improve the operation of decoder208or other appropriate components. However, instead of or in addition to the pilot signal being provided as the “known value,” the content of the packet ultimately selected by routers42serves as the known value. The exemplary method begins at step300where a selection group is formed for a mobile unit12, as described above. At step302, the transceiver stations18included in the selection group each receive coded content (which may be data, voice, video, or any other type of information in coded form) from mobile unit12. Each transceiver station18typically includes a demodulator207that receives the modulated coded content from a wireless communication channel206coupling the transceiver station18and mobile unit12, demodulates the coded content (for example, into soft bits), and communicates the coded content to a decoder208. The coded content received at each transceiver station18may be different since different errors may have been introduced in the coded content in the different communication channels206coupling mobile unit12and base transceiver stations18.

Decoder208, which may or may not be associated with a transceiver station18, receives the coded content and decodes the content at step304using any appropriate decoding method. As described above, decoder208may use a pilot signal to improve the decoding process. The decoded content is then communicated in a packet to one or more routers42in the selection group. Again, the decoded content from each transceiver station18may be different since the coded content received at each transceiver station18may have been different. In addition to the decoded content, each packet may also include a value for a metric, such as BER, SNR, or any other appropriate metric. This value may be associated with the content after the content is decoded or at any other appropriate time. At step306, the router or routers42receive multiple redundant packets, each including the decoded content (or variations thereof), and select one of the packets using any appropriate selection technique. For example, routers42may select the packet based on the metric value, based on a comparison of the relative content in each of the redundant packets, based on a comparison of the content in each of the redundant packets with an expected content, and/or any other appropriate selection technique.

At step308, selection information identifying the packet that was selected is communicated to the decoders208associated with the selection group. This selection information may include the packet ID of the selected packet, the actual decoded content included in the selected packet, or any other appropriate information enabling decoders208to determine what decoded content was selected and how that selected content corresponds to the decoded content that was communicated from each decoder208. As an example only, a decoder208may receive the ID of the selected packet then use that ID to determine a corresponding redundant packet that was sent from that particular decoder208(or determine that the selected packet is the same redundant packet communicated from that particular decoder208). At step310, each decoder208determines, based on the selection information, the decoded content that was selected by routers42and the decoded content that was communicated from the decoder208.

Each decoder208determines at step312whether the content communicated from the decoder208is different than the selected content (since the selected content will typically be the same as the content communicated from at least one of the decoders). However, it should be noted that if the content from multiple redundant packets is combined to form an improved packet, the selected content may be different than the content communicated by all decoders208. If the selected and communicated contents associated with a decoder208are the same (or substantially the same), the method ends for that decoder208. If the selected and communicated contents are different, the method proceeds to step314for that decoder208. At step314, each decoder208evaluates the differences between the selected content and the content communicated from the decoder208. This evaluation may include an analysis similar to the analysis decoder208may perform when using pilot codes, as described above. For example, decoder208may identify the differences, if any, between the selected content and the communicated content and determine how to correct the communicated content to remove the differences. At step316, each decoder208adjusts its decoding process, if appropriate, to compensate for the differences in the contents and the method ends. The method may be repeated for each packet or other appropriate set of content that is received from mobile unit12, decoded by decoders208, and communicated to routers42. Therefore, adjustments made as described above in step316may be used in decoding subsequent content and the decoding process may be continuously adjusted as new selection information is communicated to decoders208.

Although the present invention has been described in several embodiments, numerous changes and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes and modifications as fall within the scope of the present appended claims.