# A practical two-stage MMSE based MIMO detector for interference mitigation with non-cooperative interferers

- Anish Shah
^{1}Email author and - Babak Daneshrad
^{1}

**2011**:205

**DOI: **10.1186/1687-1499-2011-205

© Shah and Daneshrad; licensee Springer. 2011

**Received: **4 February 2011

**Accepted: **19 December 2011

**Published: **19 December 2011

## Abstract

Wireless Multiple Input Multiple Output systems provide system designers with additional degrees of freedom. These can be used to increase throughput, reliability, or even combat spatial interference. The classical Minimum Mean Squared Error (MMSE) solution is the optimal linear estimator for these systems. Its primary drawback is that it requires an estimate of the channel response. This is generally not an issue when interference is absent. However, in environments where interference power is stronger than the desired signal power, this can become difficult to estimate. The problem is even worse in packet-based systems, which rely on training data to estimate the channel before estimating the signal. A strong interference will hinder the receiver's ability to detect the presence of the packet. This makes it impossible to estimate the channel, a critical component for the classical MMSE estimator. For this reason, the classical solution is infeasible in real environments with stronger interferences. We propose a two-stage system that uses practically obtainable channel state information. We will show how this approach significantly improves packet detection, and how the overall solution approaches the performance of the classical MMSE estimator.

### Keywords

MIMO MMSE Interference Mitigation## 1 Introduction

The unlicensed nature of the ISM band has allowed for rapid development and deployment of various wireless technologies such as 802.11 and bluetooth. Since devices are allowed to operate in the same band without pre-determined frequency or spatial planning, they are bound to interfere with each other. There have been several attempts to mitigate this issue via higher layer protocols. Most of these involve some form of cooperative scheduling [1, 2]. Some work has been done to show that time domain signal processing can be used to mitigate the effects of narrowband interference [3–8]. They have shown in simulation how their techniques can suppress interference on the data payload, but have not taken into account how interference affects other parts of the receiver. The primary omission has been with respect to synchronization. This includes tasks such as packet detection, timing synchronization, and channel estimation. Without the ability to perform these tasks, it becomes impossible to build a practical system.

Some work has been done on MIMO-based interference mitigation for cellular systems [9, 10]. These approaches focus on reducing interference from neighboring cells or users by coordinating transmissions either in time, space, or frequency. They do not provide a method for mitigating interference from a non-cooperative external jammer.

The iterative maximum likelihood algorithm described in [8, 11, 12] is very effective, but computationally expensive making it difficult to implement for high datarate systems. They describe a turbo decoder approach to mitigate interference with an array of processors. Turbo decoders have a computational complexity of *O*(*l* 2^{
k
}) where *l* is the block length and *k* is the constraint length [13]. This method was proven on real systems, but only for low datarates. It also requires the use of a turbo code in order for it to work. The inability to work with an arbitrary FEC or modulation method makes the result specific to the system that was demonstrated. The minimum interference method offers good performance in some scenarios but degrades when the interference becomes weak. They address channel estimation in the presence of interference, but assume ideal packet detection in the presence of this interference.

It is our intention to demonstrate a method that can be practically implemented on a real system. As a design goal, we will ensure that our technique can operate without a priori knowledge of the nature or existence of the interference. We will show how a two-stage MMSE MIMO estimator can be used to facilitate packet detection as well as to provide superior bit error rate performance. The first stage will be a pre-filter that operates on reduced Channel State Information (CSI). This pre-filter will suppress the interference to a level that allows for reliable packet detection and timing synchronization. This will be followed by a secondary detection stage that uses slightly more information to recover the transmitted data. We will demonstrate how this allows the synchronization tasks to be performed and provides similar performance to an ideal MMSE MIMO estimator.

This paper will be organized as follows, Section 2 will describe the system model and provide derivations for the filters that we are proposing. Section 3 will discuss the simulation results. Section 4 will validate some of the basic assumptions on a real-time hardware testbed. Finally, Section 5 will conclude this work.

## 2 System model

We begin by defining some notation explicitly. We will use the superscript (*) to denote the complex conjugate transpose (Hermitian) of a vector or a matrix. Lowercase boldface symbols (**y**) will be used to denote vectors and uppercase boldface (**W**) will be used to denote matrices. The hat $\left(\widehat{\mathbf{x}}\right)$ will denote estimates of signals, while a tilde $\left(\tilde{\mathbf{x}}\right)$ will be used to denote residual error signals. The trace operator for a matrix will be denoted as *Tr*().

First, we will examine Rayleigh flat fading channels, the simplest class of channels. These channels are modeled as a single impulse chosen from a Rayleigh distribution. A new channel will be chosen at random for each packet, but remain constant throughout the duration of that packet. We will discuss the ideal Minimum Mean Squared Error (MMSE) solution and show why it is impractical in high interference scenarios. We will then review the Sample Matrix Inverse (SMI) [18] as well as Maximal Signal to Interference plus Noise Ratio (MSINR) [19] algorithms. These are both well suited for use as a pre-filter since neither require first-order information about the channel. Each of these algorithms will use a standard MMSE detector as the secondary filter to demodulate the data. We will then discuss our proposed two-stage solution with its pre-filter and secondary filter. We will show how the combination of these filters is equivalent to the ideal linear MMSE solution. Finally, we will extend each of these methods to cope with Rayleigh frequency selective channels.

### 2.1 Rayleigh flat fading channels

The time domain received signal **y**(*t*) (1) is the linear combination of the received signal of interest, **x**(*t*), convolved with its channel, **H**_{
s
}, additive white Gaussian noise (AWGN), **n**(*t*), and the interference signal, γ(*t*), convolved with its channel, **H**_{
i
}. Since the channel is a single impulse, the convolution of the channel with the signal is the same as multiplication.

**W**) that satisfies (2) will minimize the mean-squared error (MSE) of the estimator $\widehat{\mathbf{x}}$. This is equivalent to minimizing the trace of $\widehat{\mathbf{x}}{\widehat{\mathbf{x}}}^{*}$. For the ease of notation, we define the covariance for the signal of interest, interference and additive white Gaussian noise as

*E*[

**xx*** ] =

**R**

_{ x },

*E*[γγ*] =

**R**

_{ γ }, and

*E*[

**nn***] =

**R**

_{ n }, respectively. The solution to (2) is the classical MMSE solution given by Equation (3) [20]

The classical MMSE estimator is very powerful, but requires first-order channel state information (CSI) for the signal of interest (**H**_{
s
}). Traditional packet based systems transmit training data which the receiver can use to estimate (**H**_{
s
}). This is fine when there is no interference present allowing packet detection and timing synchronization algorithms to work as expected. It may even work when the interference is cooperative and can be canceled using a cooperative scheme, such as Walsh codes in a CDMA system. If the interference is non-cooperative and stronger than the desired signal, it may be impossible to detect the packet. This will cause the communications system to fail. When the packet cannot be detected and the symbol boundary cannot be determined, the channel cannot be estimated. These practical limitations render the classical approach infeasible in many real scenarios.

We propose a pre-filter based solely on second-order statistics $\left({\mathbf{H}}_{s}{\mathbf{R}}_{x}{\mathbf{H}}_{s}^{*},{\mathbf{H}}_{i}{\mathbf{R}}_{\gamma}{\mathbf{H}}_{i}^{*},{\mathbf{R}}_{n}\right)$. These statistics can easily be estimated by averaging outer products of received signals at different moments in time. Interference mitigation algorithms that can operate with only these covariance estimates offer greater exibility for communications systems dealing with non-cooperative interferences.

#### 2.1.1 Covariance estimates

*t*

_{1}indicates a time at which the packet is not being transmitted, and time

*t*

_{2}indicates the time during which the packet is being transmitted. Let

**R**

_{1}(4) be the covariance measured during time

*t*

_{1}, and

**R**

_{2}(5) be the covariance measured during time

*t*

_{2}. The methods described for pre-filtering below will require only these quantities. We will validate this assumption with an example from a real-time hardware testbed showing how these determinations can be made in Section 4.

**R**

_{2}and

**R**

_{1}measurements (6).

We will describe a few alternatives for the pre-filter in the following sections. These will be important for bootstrapping the system using the available measurements (**R**_{2} and **R**_{1} ).

#### 2.1.2 Sample matrix inverse

The advantage of this algorithm is that the pre-filter only needs knowledge of the covariance of the undesired signal components. This can be particularly useful during the initialization of the communications system. If a strong interference is present, it may not be possible to determine when the signal of interest is being transmitted. This will make it impossible to take an accurate **R**_{2} measurement. Instead, the receiver can take several **R**_{1} measurements and use the SMI as the pre-filter to improve synchronization performance.

Since the receiver will not know when the desired signal is present, it may still take improper measurements. It is therefore necessary to take consecutive measurements and apply the SMI until the desired signal can be detected by the synchronization algorithm. This equates to a series of Bernoulli trials. We know the likelihood of *x* consecutive failures decays exponentially with *x*. The number of trials required is simply a function of the time the desired signal occupies the band. This can easily be adjusted by the system designer to meet the requirements of the communication system. In Section 3, we will show how effective this algorithm is at improving synchronization performance in the presence of very strong interferences. SMI can be used to boot-strap the system. Once a good **R**_{1} measurement has been taken, the system will be able to determine whether the desired signal is present or not. It may not be able to estimate the symbol boundary accurately, but this information will make it possible to take an **R**_{2} measurement and improve the pre-filter.

#### 2.1.3 Maximal signal to interference and noise ratio

Instead of directly estimating the transmitted signal, this criterion will try to maximize its power relative to the noise and interference. Once again the demodulation can be done with a MMSE based decoder after packet detection, timing synchronization and channel estimation have been completed. This algorithm requires the covariance of the desired signal as well as the information used in the SMI. Once the pre-filter is performing well enough for synchronization to detect packets, the **R**_{2} measurement can be taken, and the SMI pre-filter can be replaced with the MSINR pre-filter.

#### 2.1.4 Two-stage MMSE

**R**

_{ x }

**H**

_{ s }*. If we left multiply the MMSE estimator with the channel matrix

**H**

_{ s }, we create an equation that is comprised entirely of second-order statistics (12).

This operation may introduce spatial interference by mixing the signal components from independent spatial streams. However, if there is only one spatial stream, the result will be a spreading of the desired signal. This is enough to allow many standard detection algorithms to detect and synchronize with an incoming packet. This modified version of the MMSE estimator leads us to our two-stage approach to interference mitigation.

**W**

_{S 1}) using only second-order statistics. The second stage is a simple zero-forcing MIMO decoder (13). We are able to use the first-order statistic

**H**

_{ s }at this point because we will have a channel estimate based on the training data from the packet header. We will show how this estimate can be obtained in (15)-(19).

The zero-forcing decoder is used because **H**_{
s
}may not be a square matrix. If the matrix is not square, it will not be directly invertible. This will happen anytime there are fewer transmit streams than receive antennas. Equation (14) shows how the application of these two filters in series results in the original MMSE linear estimator. Equations (13) and (14) together show how the MMSE estimator can be broken down into a two-stage process when ideal CSI is available.

**W**

_{S 1}). The measured channel will be modified from the actual channel by the pre-filter. The output of the pre-filter is given by (15).

### 2.2 Channel estimation

**P**= [

**p**

_{1}

**p**

_{2}

**p**

_{3}

**p**

_{4}], where each

**p**

_{ i }corresponds to a transmission vector. Each element in

**p**

_{ i }refers to the symbol transmitted from that antenna for this vector. The receiver can measure the received values for each vector and construct a matrix with the estimates. This measurement is

**Z**=

**H**

_{ s }

**P**. In order to estimate the channel,

**Z**is right multipliedby either the Hermitian or transpose of the training matrix. When this training matrix is real-valued (

*a*= 1), it does not matter which is used. We will use the Hermitian since it will work for both real and complex-valued training matrices. The result of the right multiplication is given by (17).

**Z**

_{S 1}that will be estimated from

**x**

_{ S1 }is shown in (18). In order to estimate the original channel from this modified version, we use the inverse of the pre-filter (19).

### 2.3 Rayleigh frequency selective channels

*M*= 3. The entities defined in (22)-(24) are related by (25).

**x**(

*t*) from

**y**

_{ M }(

*t*), the

*W*that satisfies the MMSE criterion will be given by (26). We must also define the covariance (27) of the signal components in (22) and (23). Assuming that the signals will be independent and identically distributed, these covariance matrices will block diagonal as shown in (28).

**x**(

*t*) with the compound

**y**

_{ M }(

*t*) is given by (29). The covariance of

**y**

_{ M }(

*t*) is straightforward and shown in (30). The resulting estimator is given by (31).

Once again, the MMSE estimator is very powerful, but requires first-order CSI (${\mathbf{H}}_{{s}_{MM}}$) for the signal of interest. As shown in the previous sections (4) and (5), we can estimate the second-order statistics by averaging the outer products of the compound received signals (22)-(23). This brings us back to the notion of building pre-filters using only second-order statistics. We will now consider extensions of the previous algorithms for the more complex frequency selective channel.

**W**

_{S 1}will function as a pre-filter similar to pre-filter from the flat fading scenario (12). It will facilitate packet detection and synchronization. The second stage is defined in (35). Equation (36) shows how the application of these two filters results in the original MMSE linear estimator. This derivation is similar to the flat fading scenario.

**W**

_{S 1}). The measured channel will be a modified version of the actual channel the signal went through.

*M*-sequences [22, 23]. These sequences have strong autocorrelations at 0-offset and very low correlations for all other offsets. In order to estimate the original channel from this modified version, we use the inverse of the pre-filter (39).

## 3 Simulation results

The algorithms described in Section 2 were simulated in MATLAB using a MIMO systems with 4 receive antennas. This included the ideal MMSE solution, SMI, MSINR and the proposed two-stage MMSE solution. The non-cooperative interference source was a single antenna transmission convolved with its own channel. The interference signal was a white Gaussian noise signal, which is essentially a wideband signal. The desired signal was modeled to have 2 or 3 independent spatial streams. The transmission started with a known sequence to be used for packet detection and timing synchronization. We used the standard 802.11a header [14] with well-known techniques for packet detection, and timing synchronization from [15–17]. This was followed by training data to be used for channel estimation by the receiver. The body of the packet was an uncoded bit stream modulated onto a QPSK constellation. Independent Rayleigh fading channels were generated randomly for each trial for both the desired and undesired signals. These channels remained constant throughout the duration of each trial.

### 3.1 Rayleigh flat fading channels

Rayleigh flat fading channels are the easiest channels to compensate. They consist of a single impulse and allow us to model the channel as a simple gain and phase adjustment of the transmitted signal. We begin our analysis by considering the original goal of our approach, which is to ensure packet synchronization can be performed. It is necessary to examine this performance before we can investigate the bit error rate (BER). Without packet detection, the communications system will fail. For our system to declare successful synchronization the receiver must correctly detect the presence of the packet, as well as accurately determine the symbol boundary. The symbol boundary is used to determine when the packet started and when each symbol begins and ends. Without this information, the receiver is unable to estimate the channel since it does not know when the training data begins and ends. The estimated channel is used by the receiver to estimate the transmitted signal in the secondary filter.

**W**

_{S 1}

**H**

_{ s }.

Legend entry descriptions

No pre-filt | Pre-filtering is omitted |
---|---|

IM MMSE | The ideal MMSE solution (3) is used in the pre-filter, no secondary filter is required |

MMSE2 | Equation (12) is used in the pre-filter and Equation (13) is used for MIMO detection with ideal CSI |

MSINR | Equation (11) is used in the pre-filter |

SMI | Equation (7) is used in the pre-filter |

*-*20 dB SIR for a two-antenna transmission scheme. As expected, the synchronization algorithm completely fails in the absence of pre-filtering. All of the methods described for pre-filtering offer significant improvements. It is clear that without a pre-filter, the system cannot survive in the presence of strong external interferences.

### 3.2 Rayleigh frequency selective channels

Once again we see how drastic the improvement in synchronization performance becomes with use of our pre-filter (Figure 7). Without the pre-filtering operation, synchronization fails completely. The two-stage MMSE pre-filtering operation improves that success rate to over 99% when the SNR is greater than 10 dB. This is a very significant improvement that contributes to the stability and throughput of the communications system. The alternatives available for the pre-filter are inferior to the proposed two-stage solution. The SMI solution also fails to outperform the two-stage solution in this complex channel.

## 4 Hardware implementation

The SMI multi-antenna interference mitigation scheme was implemented on a hardware testbed for verification. The purpose of this was to prove that this type of algorithm can work on real hardware in a real environment. Most importantly, it showed that the method described for obtaining the **R**_{1} and **R**_{2} measurements in Section 2 could be realized in a real system.

### 4.1 System overview

The estimation of the covariance is a straightforward averaging of the outer product of the incoming signal. The only concern when estimating the covariance is that the signal being received should contain only the interference and noise. This is required in order to compute an accurate **R**_{
1
} measurement. A controller state machine was designed to enable estimation of the covariance during time periods which are unlikely to contain the signal of interest. The details of this state machine are omitted.

An onboard microprocessor was used to calculate the spatial filtering matrix **W** based on the input covariance matrix **R**. This was computed on a microprocessor with double precision floating point arithmetic using well-known matrix inversion algorithms (Cholesky). A simple protocol was developed for passing matrices between the host and FPGA to prevent data corruption. The interval between passing **R** to the host and receiving a **W** back was 1 ms.

About a quarter of the way into the trace the filter input changes. This is when the interference signal became active. Unsurprisingly, it prevented the system from receiving packets. The time required for the system to recover and receive packets is a function of the system design parameters. In this case, the most significant source of delay was the matrix inversion required to compute the pre-filter. This computation took a considerable amount of time and dictated the rate at which we could update our pre-filter.

The absolute bottom row on the trace indicates when the controller is computing an **R**_{1} covariance estimate. When the system is behaving well and decoding every packet, the estimates are taken immediately after the packet ends. The transmitter guaranteed this time would be silent, which makes it the optimal time to estimate the interference. Note how these estimates become less frequent when the interference turns on.

The controller waits for a stimulus to begin estimation. If it does not receive the stimulus for a pre-defined time, it assumes interference is preventing the receiver from decoding packets. It then switches to a timeout mode where it measures the covariance on a fixed interval. The gap between the last good estimate and the next attempt is a function of this timeout period. In this example, the controller made a couple of failed attempts at covariance estimation while it was in timeout.

Once it makes a good estimate, it is able calculate the pre-filter. The yellow **W** indicates the time at which the pre-filter is updated with good coefficients. The improvement in performance is immediately visible at the output of the filter. In the second to last trace, the good packet indicators show successful reception of packets, coinciding with the updated pre-filter.

In this example, the system recovered from the onset of interference in 3 ms. This time can be shortened by reducing the timeout period for the controller. Another way to reduce the recovery time is to use a faster processor to compute the pre-filter from the covariance estimate.

This example validates the assumption that the receiver can reasonably make an **R**_{1} measurement even in the presence of strong interference.

## 5 Conclusion

We have demonstrated a practically realizable two-stage MMSE based approach to interference mitigation and MIMO detection. The advantage of our algorithm is that it enables synchronization tasks such as packet detection, timing synchronization, and channel estimation to be performed in the absence of complete channel state information. The pre-filtering operation uses information that can be easily estimated in the absence of training sequences. The second-stage filter uses information from the pre-filter as well as channel estimates computed during synchronization.

We have shown how the synchronization performance of this algorithm is superior to the classical approach with no pre-filter. We have also shown that the BER performance is within a 0.5 dB of the ideal (yet infeasible) classical MMSE solution. We have demonstrated significant improvement over the existing algorithms for complex transmission schemes and channels. We have also demonstrated how the necessary statistics can be estimated and how the system can be built to achieve good performance. This has not only been done for Rayleigh flat fading channels but for frequency selective channels as well.

Our approach is significant because it lends itself to practically realizable systems. The use of second-order statistics in the pre-filter is something that can easily be implemented on real-time hardware. We have also shown how a system can be designed to make the necessary measurements in the presence of a strong interference. This was demonstrated on a real-time hardware testbed with a non-cooperative interference source.

## Declarations

## Authors’ Affiliations

## References

- Peha J: Wireless communications and coexistence for smart environments.
*Pers Commun IEEE [see also IEEE Wireless Communications]*2000, 7(5):66-68. - Chiasserini C, Rao R: Coexistence mechanisms for interference mitigation between ieee 802.11 wlans and bluetooth. INFOCOM 2002.
*Proceedings of IEEE, Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies*2002, 2: 590-598.View Article - Wu Z, Nassar C: Narrowband interference rejection in ofdm via carrier interferometry spreading codes.
*IEEE Trans Wirel Commun*2005, 4(4):1491-1505.View Article - Le Floch B, Alard M, Berrou C: Coded orthogonal frequency division multiplex [tv broadcasting].
*Proc IEEE*1995, 83(6):982-996. 10.1109/5.387096View Article - Wiegandt D, Nassar C: High-throughput, high-performance ofdm via pseudo-orthogonal carrier interferometry coding.
*Proceedings of 12th IEEE International Symposium on Personal, Indoor and Mobile Radio Communications*2001, 2: G-98-G-102. - Wiegandt D, Nassar C: High-throughput, high-performance ofdm via pseudo-orthogonal carrier interferometry type 2.
*Proceedings of the 5th International Symposium on Wireless Personal Multimedia Communications*2002, 2: 729-733.View Article - Coulson A: Narrowband interference in pilot symbol assisted OFDM systems.
*IEEE Trans Wirel Commun*2004, 3(6):2277-2287. 10.1109/TWC.2004.837471View Article - Bliss D: Robust mimo wireless communication in the presence of interference using ad hoc antenna arrays.
*Military Communications Conference, 2003. MILCOM 2003. IEEE*2003, 2: 1382-1385.View Article - Zhang H, Dai H: Cochannel interference mitigation and cooperative processing in downlink multicell multiuser mimo networks.
*EURASIP J Wirel Commun Netw*2004, 222-235. [Online]. Available: http://dx.doi.org/10.1155/S1687147204406148 - Andrews J: Interference cancellation for cellular systems: a contemporary overview.
*IEEE Wirel Commun*2005, 12(2):19-29. 10.1109/MWC.2005.1421925View Article - Bliss D, Wu P, Chan A: Multichannel multiuser detection of space-time turbo codes: experimental performance results.
*Conference Record of the Thirty-Sixth Asilomar Conference on Signals, Systems and Computers*2002, 2: 1343-1348. - Bliss D, Chan A, Chang N: Mimo wireless communication channel phenomenology.
*IEEE Trans Antennas Propag*2004, 52(8):2073-2082. 10.1109/TAP.2004.832363View Article - Costello J, Banerjee A, He C, Massey P: A comparison of low complexity turbo-like codes.
*Conference Record of the Thirty-Sixth Asilomar Conference on Signals, Systems and Computers*2002, 1: 16-20. - IEEE Std. 802.11a-1999, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
*IEEE*1999. - Schmidl T, Cox D: Robust frequency and timing synchronization for OFDM.
*IEEE Trans Commun*1997, 45(12):1613-1621. 10.1109/26.650240View Article - Nandula S, Giridhar K: Robust timing synchronization for OFDM based wireless lan system. TENCON 2003.
*Conference on Convergent Technologies for Asia-Pacific Region*2003, 4: 1558-1561.View Article - Singh J, Tolochko I, Wang K, Faulkner M: Timing synchronization for 802.11a WLAN under multipath channels. In
*Proc ATNAC*. Melbourne, Australia; 2003. - Steinhardt A, Pulsone N: Subband stap processing, the fifth generation.
*Proceedings of the 2000 IEEE Sensor Array and Multichannel Signal Processing Workshop*2000. - Mallioux RJ:
*Phased Array Handbook*. Artech House, Norwood, MA; 1994. - Sayed A:
*Fundamentals of Adaptive Filtering*. Wiley, Hoboken, NJ; 2003. - Shah Anish, Daneshrad B, Zhu Weijun: Narrowband jammer resistance for MIMO OFDM. In
*MILCOM*. San Diego, CA; 2008. - Davies W:
*System Identification for Self-Adaptive Control*. New York. Wiley-Interscience; 1970. - Buracas GT, Boynton GM: Efficient design of event-related FMRI experiments using m-sequences.
*NeuroImage*2002, 163(Part 1):801-813. [Online]. Available: http://www.sciencedirect.com/science/article/B6WNP-46HDMPV-T/2/289fe67ae0ab5106dc08562a0c18e6a8View Article - Zhu W, Daneshrad B, Bhatia J, Chen J, Kim H-S, Mohammed K, Nasr O, Sasi S, Shah A, Tsai M: A real time mimo ofdm testbed for cognitive radio & networking research. In
*Proceedings of the 1st International Workshop on Wireless Network Testbeds, Experimental Evaluation & Characterization, ser. WiNTECH '06*. ACM, New York, NY, USA; 2006:115-116. [Online]. Available: http://doi.acm.org/10.1145/1160987.1161018View Article

## Copyright

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.