Robust WLAN reception in WiFi-Bluetooth combination systems by interference whitening

The embodiments described herein are directed at techniques to de-correlate Bluetooth interference seen across WLAN receive antennas/space in a Bluetooth transceiver/WLAN transceiver combination device. A Bluetooth interference whitening technique may be utilized, wherein a whitening matrix is computed based on a leakage signal resulting from a training signal transmitted by the Bluetooth transceiver. The leakage signal may leak in to the WLAN transceiver and a set of attributes is calculated for each frequency the leakage signal is received on. One or more whitening matrixes are calculated based on the set of attributes for each frequency the leakage signal is received on. In response to the WLAN transceiver receiving a signal of interest, an appropriate whitening matrix from the one or more whitening matrixes is selected and is then applied to the received signal of interest to de-correlate any interference generated as a result of the Bluetooth transmission.

TECHNICAL FIELD

The present disclosure relates generally to multi-communication protocol transceiver chips (e.g., combination WiFi™ and Bluetooth™ systems), and more particularly to interference reduction between transceivers of different communication protocols that are combined on the same chip.

BACKGROUND

Various devices may include transceivers configured to transmit/receive data according to any of various communication protocols. For example, a transceiver can transmit/receive signals using the WiFi protocol, the Bluetooth protocol, or the WiMAX protocol, among others. In some cases, multiple transceivers can be implemented in a single multi-protocol combination device and can share other system resources, such as transmission media. For example, a single device can include a Bluetooth transceiver as well as a wireless local area network (WLAN) transceiver (operating with the WiFi protocol, for example), which may both at least partially share a common wireless transmission medium of e.g., a 2.4 gigahertz (GHz) band.

There are a number of interference avoidance techniques that such combination devices can use to reduce interference caused by different transceivers simultaneously transmitting/receiving signals. By using such interference avoidance techniques, devices that operate within the same frequency band and within the same physical area can detect the presence of each other and adjust their communication systems to reduce the amount of overlap (interference) caused by each other. For example, Bluetooth (hereinafter referred to as “BT”) packet error rates for channels can be used by WLAN transceivers to avoid higher error rate channels.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques are not shown in detail, but rather in a block diagram in order to avoid unnecessarily obscuring an understanding of this description.

Reference in the description to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The phrase “in one embodiment” located in various places in this description does not necessarily refer to the same embodiment.

Many multi-protocol combination devices discussed above include both WLAN and BT transceivers/antennas, which are co-located and share the same spectrum in the 2.4 GHz ISM band. Due to this coexistence of WLAN and Bluetooth radios, and their sharing of the same band, simultaneous WLAN/Bluetooth traffic can create interference that degrades the performance of the WLAN transceiver. This interference may be severe in cases where the Bluetooth transceiver transmits a signal, while the WLAN transceiver is receiving a signal, resulting in an increase in in-band interference during WLAN reception, which can cause reception failure.

Some multi-protocol combination devices may utilize a time sharing operation such as time division multiplexing (TDM) between WLAN and Bluetooth transceivers using a coexistance (coex) arbitration mechanism to avoid mutual interference. Using TDM, the WLAN and Bluetooth transceivers may ensure that they are not transmitting or receiving at the same time as each other. However, such time sharing operations may adversely impact the WLAN throughput (i.e. the amount of data that can be transmitted will be limited). Additionally, some devices may operate in a parallel mode in which both the WLAN and Bluetooth radios operate in a parallel fashion, independent of each other. However, this type of parallel operation may only be practical? when the passive isolation between the WLAN and Bluetooth transceivers is at or greater than ˜35 dB. Achieving such a level of isolation is difficult in combination devices because the antennas of various transceivers are positioned in close proximity to each other.

Further still, some devices may operate in a hybrid mode wherein certain operations use time sharing techniques and others use parallel mode operation. Hybrid mode operation may involve simultaneous WLAN/Bluetooth transceiver operation with WLAN receiver gain de-sensing during Bluetooth transmissions when the passive isolation is less than e.g., 25 dB. However, while gain de-sensing would assist in avoiding receiver radio saturation, it will not address the WLAN in-band noise floor increase due to Bluetooth interference.

The embodiments described herein are directed at techniques to de-correlate Bluetooth interference seen across WLAN receive antennas/space in a Bluetooth transceiver/WLAN transceiver combination device wherein the WLAN transceiver has two or more receive chains. The techniques described herein may be implemented as part of, and alleviate the drawbacks of the hybrid de-sensing mode of operation discussed above. In this way, the WLAN transceiver performance may be improved, while allowing for simultaneous Bluetooth transmission and WLAN reception operation. A Bluetooth interference whitening technique may be utilized, wherein a whitening matrix is computed based on a leakage (interference) signal resulting from a Bluetooth training signal transmitted by the Bluetooth transceiver while the combination device is in a training mode. The Bluetooth transceiver may transmit the training signal while the WLAN transceiver is operational, but is not transmitting or receiving a signal. The leakage signal may leak into the WLAN transceiver (over one or multiple frequencies) at which point a set of attributes is calculated for each frequency the leakage signal is received on. One or more whitening matrixes are calculated based on the set of attributes for each frequency the leakage signal is received on.

After calculating the one or more whitening matrixes, the combination device may exit training mode. In response to the WLAN transceiver receiving a signal of interest (e.g., WiFi signal) while the Bluetooth transceiver is transmitting, an appropriate whitening matrix from the one or more whitening matrixes is selected and is then applied to the received signal of interest on each receiver chain of the WLAN transceiver to de-correlate any interference generated as a result of the Bluetooth transmission. By de-correlating such interference in this way, the performance of a demodulator of the WLAN transceiver may be optimized as the noise/interference is now uncorrelated across space/the receiver chains and thus the signal to noise ratio of the received signal of interest will be improved. Although discussed in terms of WiFi and Bluetooth communication protocols for illustrative/exemplary purposes, it should be noted that the embodiments described herein may be applied to a multi-protocol combination device employing transceivers operating under any appropriate communication protocol.

In one embodiment, an apparatus is disclosed, the apparatus comprising a first transceiver configured to transmit, using a first communication protocol, a training signal over a set of frequencies and a second transceiver configured to operate using a second communication protocol, the second transceiver comprising two or more receiver chains and configured to receive a leakage signal corresponding to interference from the training signal. The apparatus may further comprise a processing device configured to compute one or more whitening filters based on a set of attributes of the leakage signal for each of the set of frequencies the training signal is transmitted over. The processing device may further, in response to the second transceiver receiving a desired signal, apply a whitening filter of the one or more whitening filters to the desired signal to de-correlate interference as a result of the first communication protocol seen across the receive chains of the second transceiver.

FIG. 1is a block diagram illustrating an apparatus100, which may be a multi-protocol combination communication chip that combines a first transceiver operating using a first communication protocol and a second transceiver operating using a second communication protocol. In the example shown in the FIGS, apparatus100may be a WLAN and BT transceiver combination chip, in accordance with some embodiments of the present disclosure. The apparatus100may include a BT transceiver110and a WLAN transceiver115. The WLAN transceiver115may comprise two or more receive chains118(in the example ofFIG. 1, the WLAN transceiver115comprises two receive chains118A and118B), and each receive chain118may be comprised of signal processing components such as a low noise amplifier, a mixer, a variable gain amplifier, and a low pass filter (not illustrated). Each receive chain118may be coupled to a respective antenna119through which it may send and receive signals. Each receive chain118may also be coupled to an analog to digital converter (ADC) which it may use to digitize received signals and output the digitized signals to a digital demodulator116(also referred to as a digital detector) which may extract any information content from the received digitized signals (e.g., by extracting the information bearing signal from a carrier wave). Similarly, the BT transceiver110may be coupled to antenna111which it may use to send and receive signals. As discussed above, because the WLAN and BT transceivers are co-located on the same chip and share the same band, simultaneous WLAN/BT traffic may create interference which significantly degrades WLAN performance. This interference may be severe in cases where the BT transceiver110is transmitting and the WLAN transceiver115is receiving, which results in a severe increase in in-band interference during WLAN reception, which can cause reception failure.FIG. 1illustrates a BT signal121being transmitted by the BT transceiver110, and a resultant leakage signal123(e.g., 25 dB isolation) originating from the BT signal121that interferes with the reception of WiFi signals by the WLAN transceiver115. The interference caused by the leakage signal123can be seen as correlated noise across the receiver chains118of the WLAN transceiver115(i.e. the interference/noise is correlated across space). The demodulator116may include a maximal ratio combiner and a maximum-likelihood detector, which may provide optimum performance when the overall noise and interference is uncorrelated across space/the receiver chains118.

FIG. 2Aillustrates the signal to noise ratio (SNR) of a desired signal received by the WLAN transceiver115in the absence of the leakage signal123generated by the BT transceiver110as a result of transmission of BT signal121. As can be seen, the WLAN noise floor is at approximately −97 dBm in the absence of the leakage signal123, and the SNR of the desired signal is higher.FIG. 2Billustrates the scenario once the BT signal121is introduced. The signal power of the leakage signal123begins leaking into the desired signal power and the WLAN noise floor increases to approximately −80 dBm. As can be seen, the SNR of the desired signal suffers and may result in reception failure. Embodiments of the present disclosure provide techniques to de-correlate the BT interference across receiver chains118so as to improve the performance of WLAN transceiver115, while allowing for simultaneous BT transmission and WLAN reception operation by the apparatus100.

FIG. 3illustrates the apparatus100according to some embodiments of the present disclosure. As shown inFIG. 3, the apparatus100may include a processing device120which may include a whitening filter computation module120A. Processing device120may execute the module120A to perform the techniques described herein. Although illustrated as e.g., a firmware module within the processing device120, the functionality of the module120A may be realized using dedicated hardware (e.g., an application specific integrated circuit (ASIC)) or software stored in a memory device and accessed/executed by processing device120. The processing device120may utilize techniques such as adaptive frequency hopping (AFH) to reduce the effects of interference between BT and other types of devices. AFH adapts the access channel sharing method so that BT transmission does not occur on channels that have significant interference (e.g., channels that are used by the WLAN transceiver115). By using interference avoidance, devices that operate within the same frequency band and within the same physical area can detect the presence of each other and adjust their communication systems to reduce the amount of overlap (interference) caused by each other. The adaptive frequency hopping process reassigns the transmission of BT packets on frequency channels that have interference to other channels that have lesser interference levels. This reduced level of interference increases the amount of successful transmissions therefore increasing the overall efficiency and increased overall data transmission rates for the Bluetooth device and reduces the effects of interference from the Bluetooth transmitter to other devices. The processing device120may map the channel frequencies that are available for transmission by the BT transceiver110and store the mapping as an AFH map (not shown), which it may continuously update.

Upon execution of the module120A, the processing device120may shift the apparatus100into a training phase where the BT transceiver110may transmit a training signal124across all channel frequencies available in the AFH map. Thus, for each of the available channel frequencies in the AFH map, each antenna119of the WLAN transceiver115may receive a leakage (interference) signal127resulting from transmission of the training signal124, and process the leakage signal127using the respective receive chain118and the respective ADC117. The WLAN transceiver115may provide the output of each ADC117to the processing device120which may (executing module120A) determine a set of attributes of the leakage signal127for each frequency the leakage signal is received on (i.e., each available channel frequency in the AFH map) to obtain one or more sets of attributes. The processing device120may use the one or more sets of attributes to generate a whitening filter (also referred to as a whitening transformation) for each frequency the leakage signal is received on. A whitening transformation is a linear transformation that transforms a vector of random variables with a known covariance matrix into a set of new variables whose covariance is the identity matrix, meaning that they are uncorrelated and each have variance of “1.”

The set of attributes of the leakage signal127for a particular frequency may include the power of the leakage signal127at each of the receive chains118and a cross-correlation of the leakage signal127at each pair of receiver chains118among the two or more receiver chains118. In the example ofFIG. 3, for each frequency that the leakage signal127is received on, processing device120may calculate the power of the leakage signal127at each receiver chain118, and measure the cross-correlation of the leakage signal127between receiver chains118A and118B. In another example, if WLAN transceiver115has 4 receiver chains118A-D, then for each frequency that the leakage signal127is received on, processing device120may calculate the power of the leakage signal127at each receiver chain118, and measure the cross-correlation of the leakage signal127between receiver chains118A and B, receiver chains118B and C, receiver chains118C and D, and receiver chains118D and A. For each frequency that the leakage signal127is received on, the processing device120(executing module120A) may utilize the calculated set of attributes to generate a whitening filter (whitening transformation) for that particular frequency. Processing device120may ensure that no WiFi signal is being transmitted or received by the WLAN transceiver115when the leakage signal127is received at antennas119(i.e., during training mode/transmission of the training signal124), otherwise it may abort the whitening filter calculation operation and re-initialize the training phase. Since the BT antenna111is co-located with WLAN antennas119, there is expected to be minimal time variation of the BT transmission/WLAN reception link, which allows for the training phase to be initiated less frequently.

For each frequency the leakage signal127is received on, the set of attributes of the leakage signal127will be different. If the number of frequencies (hops) that the leakage signal127is received on is large, it may be difficult for the processing device120to calculate a whitening filter for each of those frequencies. Thus, in some embodiments, processing device120may group the frequencies that the leakage signal127is received on together into subsets and calculate a whitening filter for each subset of frequencies instead of calculating a whitening filter for each individual frequency. In some embodiments, the processing device120may determine a static frequency grouping using correlation statistics of the leakage signal at each and every frequency that the leakage signal127is received on. The processing device120may group a set of frequencies together in one group if they have similar correlation coefficients. Processing device120may calculate a whitening filter for a subset of frequencies based on the set of attributes for each frequency in the subset. Processing device120may store the calculated whitening filters in an on-board memory, or in a separate memory device (not shown) of apparatus100.

Once the whitening filter is determined for each of the frequencies (or each subset of frequencies), the processing device120may exit apparatus100from training mode and may utilize an appropriate whitening filter125to transform a desired WiFi signal received by the WLAN transceiver115from a remote device (not shown in the FIGS).FIG. 4illustrates the apparatus100while applying the whitening filter125to transform a received WiFi signal133that includes a BT interference component131as a result of the BT transceiver110simultaneously transmitting BT signal129(i.e. includes a leakage signal resulting from transmission of BT signal129). The processing device120may select the appropriate whitening filter based on the frequency of the BT signal129(e.g., a whitening filter computed for a frequency that most closely matches the frequency of the BT signal129). It should be noted that in some embodiments, processing device120may utilize the whitening filter125to transform the received WiFi signal133only when there is ongoing (simultaneous) transmission by the BT transceiver110(and thus, ongoing BT interference) during reception of the WiFi signal133. When the WLAN transceiver115is receiving the WiFi signal133, the BT transceiver110may indicate any ongoing transmission (e.g., of BT signal129) to the WLAN transceiver115using BT-WiFi coex signaling (as shown inFIG. 4). The processing device120may apply the whitening filter125to the received WiFi signal133(which includes the BT interference component131generated by simultaneous transmission of BT signal129(also referred to herein as a “data signal”) by BT transceiver110) at the output of the ADCs117A and117B, to de-correlate the BT interference component131of the received WiFi signal133. Stated differently, the whitening filter (whitening matrix)125may be multiplied with the received WiFi signal133on the two receiver chains118A and118B to de-correlate the BT interference component131. As discussed above, the demodulator116may comprise a maximal ratio combiner and a maximum-likelihood detector which provide optimal performance when the overall noise and interference is uncorrelated across space/the receiver channels118. Thus, by de-correlating the BT interference component131, the performance of the demodulator116(e.g., the maximal ratio combiner along and maximum-likelihood detector thereof) will improve resulting in the SNR of the received WiFi signal133at the demodulator116improving. Stated differently, the ability of the demodulator116to separate the received WiFi signal133from the BT interference component131will improve.

In some embodiments, the apparatus100may include logic blocks126A and126B which may function as selectors to receive the BT-WiFi coex signaling as well as the transformed and untransformed (e.g., not subject to the whitening filter125) versions of the WiFi signal133. If the BT-WiFi coex signaling indicates that transmission of BT signal129is ongoing, then the selectors126A and126B may pass the transformed versions of the WiFi signal133to the demodulator116, otherwise the selectors126A and126B may pass the untransformed versions of the WiFi signal133to the demodulator116.

The processing device120may initiate additional training phases to update the one or more whitening filters at regular intervals, or based on any appropriate criteria. As discussed above, because the BT antenna111is co-located with WLAN antennas119, there is expected to be minimal time variation of the BT transmission/WLAN reception link, which allows for the training phase to be initiated less frequently. The processing device120may trigger additional training phases either before association with an access point or by indicating to an access point that the apparatus100will be entering a power save mode so as to not schedule intended traffic.

FIG. 5illustrates a graph505illustrating noise reduction that may be realized by the interference reduction techniques described herein. Graph505plots the packet error rate (on the Y-axis) versus the receiver power level (X-axis) for signals received in the presence of BT interference without any interference reduction (represented by curve500), with a level of interference reduction achieved with standard interference reduction techniques (represented by curve501), and with interference reduction using techniques according to embodiments of the present disclosure (represented by curve502). As shown inFIG. 5, generally, as the receiver power level decreases, the packet error rate increases, and as the receiver power level increases, the packet error rate will decrease. Observing curve500, the receiver power level when signal represented by curve500has a 10% error rate is ˜−30 dB, which is relatively high. In order to reduce the level of receiver power required to achieve the 10% packet error rate, interference reduction techniques may be applied. Observing curve501(representing a signal which has been received with standard interference reduction techniques), it can be seen that the receiver power level required to achieve a 10% packet error rate is lower (˜−55 dB). Observing curve502(representing a signal which has been received with interference reduction techniques according to the embodiments described herein), it can be seen that the receiver power level required to achieve a 10% packet error rate is ˜−60.5 dB, which represents a 5.5 dB improvement over standard interference reduction techniques.

FIG. 6is a flow diagram of a method600for de-correlating Bluetooth interference seen across WLAN receive chains/space in a Bluetooth transceiver/WLAN transceiver combination device, in accordance with some embodiments. Method600may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, a processor, a processing device, a central processing unit (CPU), a system-on-chip (SoC), etc.), software (e.g., instructions running/executing on a processing device), firmware (e.g., microcode), or a combination thereof. For example, the method600may be performed by a processing device120executing module120A.

With reference toFIGS. 3 and 4as well, at block605, upon execution of the module120A, the processing device120may shift the apparatus100into a training phase where the BT transceiver110may transmit a training signal124across all channel frequencies available in the AFH map. Thus, for each of the available channel frequencies in the AFH map, at block610, each antenna119of the WLAN transceiver115may receive a leakage (interference) signal127resulting from transmission of the training signal124, and process the leakage signal127using the respective receive chain118and the respective ADC117. The WLAN transceiver115may provide the output of each ADC117to the processing device120which may (executing module120A) determine a set of attributes of the leakage signal127for each frequency the leakage signal is received on (i.e., each available channel frequency in the AFH map) to obtain one or more sets of attributes. At block615, the processing device120may use the one or more sets of attributes to generate a whitening filter (also referred to as a whitening transformation) for each frequency the leakage signal is received on. A whitening transformation is a linear transformation that transforms a vector of random variables with a known covariance matrix into a set of new variables whose covariance is the identity matrix, meaning that they are uncorrelated and each have variance of “1.”

Once the whitening filter is determined for each of the frequencies (or each subset of frequencies), at block620the processing device120may exit apparatus100from training mode and may utilize an appropriate whitening filter125to transform a desired WiFi signal received by the WLAN transceiver115from a remote device (not shown in the FIGS).FIG. 4illustrates the apparatus100while applying the whitening filter125to transform a received WiFi signal133that includes a BT interference component131as a result of the BT transceiver110simultaneously transmitting BT signal129(i.e. includes a leakage signal resulting from transmission of BT signal129). The processing device120may select the appropriate whitening filter based on the frequency of the received WiFi signal133(e.g., a whitening filter computed for a frequency that most closely matches the frequency of the received WiFi signal13). It should be noted that in some embodiments, processing device120may utilize whitening filter125to transform the received WiFi signal133only when there is ongoing (simultaneous) transmission by the BT transceiver110(and thus, ongoing BT interference) during reception of the WiFi signal133. When the WLAN transceiver115is receiving the WiFi signal133, the BT transceiver110may indicate any ongoing transmission (e.g., of BT signal129) to the WLAN transceiver115using BT-WiFi coex signaling (as shown inFIG. 4). The processing device120may apply the whitening filter125to the received WiFi signal133(which includes the BT interference component131generated by simultaneous transmission of BT signal129by BT transceiver110) at the output of the ADCs117A and117B, to de-correlate the BT interference component131of the received WiFi signal133. Stated differently, the whitening matrix125may be multiplied with the received WiFi signal133on the two receiver chains118A and118B to de-correlate the BT interference component131. As discussed above, the demodulator116may comprise a maximal ratio combiner and a maximum-likelihood detector which provide optimal performance when the overall noise and interference is uncorrelated across space/the receiver channels118. Thus, by de-correlating the BT interference component131, the performance of the demodulator116(e.g., the maximal ratio combiner along and maximum-likelihood detector thereof) will improve resulting in the SNR of the received WiFi signal133at the demodulator116improving. Stated differently, the ability of the demodulator116to separate the received WiFi signal133from the BT interference component131will improve.

FIG. 7is a block diagram illustrating a communication device700, in accordance with some embodiments of the present disclosure. The communication device700may fully or partially include and/or operate the example embodiments of the apparatus100or portions thereof as described with respect toFIGS. 1-4. The communication device700may be in the form of a computer system within which sets of instructions may be executed to cause the communication device700to perform any one or more of the methodologies discussed herein. The communication device700may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the communication device700may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a P2P (or distributed) network environment.

The communication device700may be an Internet of Things (IoT) device, a server computer, a client computer, a personal computer (PC), a tablet, a set-top box (STB), a voice controlled hub (VCH), a Personal Digital Assistant (PDA), a mobile telephone, a web appliance, a network router, switch or bridge, a television, speakers, a remote control, a monitor, a handheld multi-media device, a handheld video player, a handheld gaming device, or a control panel, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single communication device700is illustrated, the term “device” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The communication device700is shown to include processor(s)702. In embodiments, the communication device700and/or processors(s)702may include processing device(s)705such as a System on a Chip processing device, developed by Cypress Semiconductor Corporation, San Jose, Calif. Alternatively, the communication device700may include one or more other processing devices known by those of ordinary skill in the art, such as a microprocessor or central processing unit, an application processor, a host controller, a controller, special-purpose processor, digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or the like. Bus system701may include a communication block (not shown) to communicate with an internal or external component, such as an embedded controller or an application processor, via communication interfaces(s)709and/or bus system701.

Components of the communication device700may reside on a common carrier substrate such as, for example, an IC die substrate, a multi-chip module substrate, or the like. Alternatively, components of the communication device700may be one or more separate ICs and/or discrete components.

The memory system704may include volatile memory and/or non-volatile memory which may communicate with one another via the bus system701. The memory system704may include, for example, random access memory (RAM) and program flash. RAM may be static RAM (SRAM), and program flash may be a non-volatile storage, which may be used to store firmware (e.g., control algorithms executable by processor(s)702to implement operations described herein). The memory system704may include instructions703that when executed perform the methods described herein. Portions of the memory system704may be dynamically allocated to provide caching, buffering, and/or other memory based functionalities.

The memory system704may include a drive unit providing a machine-readable medium on which may be stored one or more sets of instructions703(e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions703may also reside, completely or at least partially, within the other memory devices of the memory system704and/or within the processor(s)702during execution thereof by the communication device700, which in some embodiments, constitutes machine-readable media. The instructions703may further be transmitted or received over a network via the communication interfaces(s)709. The communication interface(s)709may be where the apparatus100discussed herein is implemented.

The communication device700is further shown to include display interface(s)706(e.g., a liquid crystal display (LCD), touchscreen, a cathode ray tube (CRT), and software and hardware support for display technologies), audio interface(s)708(e.g., microphones, speakers and software and hardware support for microphone input/output and speaker input/output). The communication device700is also shown to include user interface(s)710(e.g., keyboard, buttons, switches, touchpad, touchscreens, and software and hardware support for user interfaces).

Embodiments descried herein may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory computer-readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions. The term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, magnetic media, any medium that is capable of storing a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments.