International Journal of Distributed Sensor Networks

Volume 2012 (2012), Article ID 950296, 10 pages

doi:10.1155/2012/950296

Research Article

Low-Complexity Decoding Algorithms for Distributed Space-Time Coded Regenerative Relay Systems

Chao Zhang¹ and Huarui Yin²

¹School of Electronics and Information Engineering, Xi’an Jiaotong University, Xi'an 710049, China

²Department of Electronics Engineering and Information Science, University of Science and Technology of China, China

Received 5 June 2012; Revised 22 July 2012; Accepted 9 August 2012

Academic Editor: Hongli Xu

Copyright © 2012 Chao Zhang and Huarui Yin. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract.

We examine decoding structure for distributed space-time coded regenerative relay networks. Given the possible demodulation error at the regenerative relays, we provide a general framework of error aware decoder, where the receiver exploits the demodulation error probability of relays to improve the system performance. Considering the high computational complexity of optimal Maximum Likelihood (ML) decoder, we also propose two low-complexity decoders, Max-Log decoder and Max-Log-Sphere decoder. Computational complexities of these three decoders are also analyzed. Simulation results show that error aware decoders can improve system performance greatly without high system overload and Max-Log decoder and Max-Log-Sphere decoder can drastically reduce the decoding complexity with negligible performance degradation.

1. Introduction

Relay-assisted communication is a promising strategy that exploits spatial diversity available among a collection of distributed single antenna terminals for both centralized and decentralized wireless networks. In most relay networks, a two-stage relaying strategy is used. In the first stage, a source transmits and all relays listen; in the second stage, the relays cooperate to forward the source symbols to the destination. Generally speaking, the relay functions can be separated into two types, regenerative and nonregenerative. If the relay processes the received signal, we call it regenerative relay, such as Decode-and-Forward (DCF) [1] and Demodulation-and-Forward (DMF) [2]. Otherwise, we call nonregenerative relay, such as Amplify-and-Forward (AF) [1].

It is well known that the channel between source and relay is unreliable because of fading and noise. The relay receives an attenuated version of the source signal. AF relaying scheme amplifies noise. DCF scheme always using cyclic redundancy check (CRC) will cause interruptions when the relay detects errors from the received message. DMF scheme is a tradeoff between AF and DCF in relay processing. Relay can always keep a transmit link from the source and detects and possibly decodes the source signal [3]. Moreover, the DCF scheme can also be considered as a special case of DMF if we consider the null signal as one choice of the modulation constellation. Therefore, in this paper, we treat DMF as the object to be studied for regenerative relay networks. However, DMF relay has an important disadvantage, which is the error produced in relay's Maximum Likelihood demodulation degrades the effective SNR at the destination significantly, which is called error propagation [4]. For distributed space-time coding system in regenerative relay networks, the degradation is more drastic [5, 6]. In [3], we proposed a threshold-based scheme to minimize the error propagation, which is an active mechanism equipped in relays but subject to the large computation complexity.

In this paper, we intend to investigate the ML decoding structure where the destination is able to be aware of the error probability at the relays. Since the error probability at relay is a monotonic decreasing function of received SNR at relay, the destination can estimate the error probability through training sequences which is transmitted by source and amplified by relay. Meanwhile, each relay also transmits its training sequence to estimate the relay-destination channel [5, 7]. Therefore, error aware distributed space-time decoding is reasonable. After analyzing the conditional likelihood function, we give a general framework of error aware decoder for regenerative relay networks. Because the proposed ML decoder is composed of multiple likelihood function generators, the computational complexity is too large to be affordable in some cases. Due to max-log approximation, we provide a Max-Log decoder based on Csiszár-Tusnady algorithm [8]. Moreover, to reduce the complexity further, we also propose a Max-Log-Sphere decoder which combines max-log approximation and sphere decoding. In addition, we analyze complexities of these decoders in terms of elementary operation number. Finally, simulations verify the low complexity and improved performance of our proposed decoders.

2. System Model

We consider a wireless network with randomly placed relay nodes, relay , one source node , and a destination node . Each node is equipped with only a single antenna and uses the Half-duplex mode. Denote the channel from the source to the th relay as and the channel from the th relay to the destination as . Assume that and are independent complex Gaussian random variables with zero-mean and variance and , respectively. Receiver noise is assumed as complex Gaussian random variable with zero-mean and unit-variance. We assume a block fading channel model, where channel gain stays constant during a time block and changes from block to block [1]. We also assume that the instantaneous channel is unknown to the transmitting node but perfectly known at receiving node. Assume that the source wishes to send the signal to the destination, where and is a finite constellation with average power . Here is the signal block length. Hence, . Assume is in the codebook , where is the cardinality of the codebook. For the convenience of expression, we consider all transmit power is unit.

During the first stage, the source node transmits to all relays, then each relay tries to demodulate the received signal. Denote the demodulated symbol vector at the th relay is , and . By (6.5) of [9], the demodulation probability can be written as

where . If the source node transmits , the th relay decode its received signal as with probability . Obviously, the probability of decoding successfully at the th relay is .

At the th relay, the received signal is mapped onto a vector (not necessary), , as processed at one antenna of colocated space-time coding transmitter. We assume the map function is invertible. Therefore, there are possible transmitted vectors to the destination for the th relay, because could be any vector in . Herein, we assume all mapping functions , are different with each other. Then, all relays transmit the mapped vectors to the destination. At the destination, the received signal is

where is the received signal, is the relay to destination channel vector, and is Gaussian white noise. Define a codebook . Clearly, includes elements. We define the th element of is , where . Thus, if is transmitted, we can express (2) as

Denote the inverse function of as . Then, we have

where . So, by (1), we can derive the exact value of (4). Given a , the conditional probability density function of is

3. Error Aware Maximum Likelihood Decoder

In this section, we provide a general Maximum Likelihood decoder for distributed space-time coded regenerative relay networks. First of all, destination should know the channel information in this relay networks. The channels from relays to the destination , can be estimated through pilot symbols which are transmitted by each relay before data transmission [10]. Herein, we assume all the estimators are ideally accurate without error. The effect of estimation error will be checked in simulations. To let the destination know the demodulation error probability of each relay, we propose the following extra channel estimation scheme.

Step 1. The source transmits its pilot symbol to all relays through channels . Without demodulating, each relay maps the noise version signal to a vector like the scheme proposed in [11].

Step 2. Each relay transmits the vector to the destination like the Amplify-and-Forward based distributed space-time coding [12].

Step 3. The cascaded channel between source and destination carried by amplified pilots, that is, , can be estimated at the destination like [11].

Therefore, also can be estimated by the above channel estimation scheme. It is difficult to analyze the effect of channel estimation error in error aware decoders, but we simulate that in Section 6. In following context, we just assume there is no channel estimation error to allow us to focus only on structures of error aware decoders. Because the signal vector set and all mapping functions are known at the destination as a prior knowledge, (4) can be derived at the destination.

If the transmitted signal is , the likelihood function is

Therefore, the error aware ML decoder is

Utilize (4)–(6), then (7) is derived. By (5), is independent of , so that according to the estimated channel , can be calculated first. Then, using the amplified pilot, is also derived. Therefore, the ML decoder can be built in Figure 1, where we show the structure of error aware ML decoder for regenerative distributed space-time coding. Note that there are adders and likelihood function generators.

Figure 1: Error aware ML decoder.

The complexity of the error aware ML decoder equals to that of colocated space-time decoders it is too large to be affordable if the signal block length, modulation order, and the number of relay are considerablely large. Reference [2] considered a piecewise-linear approximation to solve a similar problem, but in this case it is also too complicated to design an approximation function.

3.1. Optimality of Error Aware Decoder

To prove the optimality of our proposed error aware receiver, we need to analyze the error performance difference between the error aware decoder and nonerror aware decoder (traditional receiver). Unfortunately, it is difficult to derive the exact error performances of error aware decoder and nonerror aware decoder. To illustrate the optimality, we try to give following two points (in Figure 2).

Figure 2: Illustration of the signal space.

Receiver Rule

Since the error aware decoder is based on ML rule, it should be the optimal receiver [10].

Signal Space Description

To express clearly, we set the source transmit a symbol and . We assume is transmitted by the source. Consider there are 2 relays in the relay networks. Then, it is obvious that there could be possible decoding combinations at the relay network, that is, , , , . In the nonerror aware decoder, combinations , and are considered. In following, we consider two cases.

Case 1 (No error happens at relays). In this case, relays decode the received message as , which means decode set is (red ball). According to (6), error aware decoder is equivalent to the nonerror aware decoder. Therefore, both have the same error performances.

Case 2 (Error happens at relays). In our interested situation, the impact of noise is very slight therefore, the system SNR is very high and we could only consider the closest symbols as errors. As a result, our candidates are also limited between and in error aware decoder. As we know, the error performance is a Q-function of the distance between the transmitted symbol and the received symbols on the signal space [10]. Therefore, the error performance of nonerror aware receiver could be expressed as . By (6), the error performance of error aware decoder is . As we consider high SNR regime, then there is . Then the error performance of error aware decoder can be approximated as . Denote the angle between and as . Because the received signal is so close to , then . By the law of cosines, we have . For , we can obtain the same result. So we can prove that error aware decoder outperforms nonerror aware decoder.

4. Low-Complexity Error Aware Decoders

In this section, we will introduce two low-complexity error aware decoders through analyzing and simplifying the structure of ML decoder. The simplifying process we used herein can be extended for more general cases to obtain low-complexity decoders. First, we use Max-Log approximation to derive a Max-Log error aware decoder which can work with Csiszár-Tusnady algorithm. Second, to reduce the complexity further, sphere decoding also is combined into the Max-Log decoder, which is called Max-Log-Sphere decoder.

4.1. Error Aware Max-Log Decoder

Substitute (6) into (7), there is

Because is an increasing monotonic function, the ML decoder can be rewritten as

According to (5) and max-log approximation in [13], we derive

where .

We can see that decoding distributed space-time code becomes searching a two-dimension array, which is indexed by . Intuitively, this decoder also needs ML detector like ML decoder. The only difference is that calculating the likelihood function of each symbol vector does not need cross-computation. However, double maximization problem can take advantage of Csiszár-Tusnady algorithm to reduce computing [8]. Because the set is a set of distance measure which is one-one mapped to a probability distribution set and is the set of probability distribution, moreover, , then (10) can be seemed to seek the vector which has the minimum sum distance which equals to the distance from to plus the distance from to . Thus, Csiszár-Tusnady algorithm does converge to the maximum element [8]. We summarize the iterative Max-Log decoder as follows (Figure 3).

Figure 3: Max-Log decoder.

4.2. Error Aware Max-Log-Sphere Decoder

If the length of vector and the constellation size are sufficiently large, Max-Log decoder is also subject to the implementation. The largest computation is required for searching code set with cardinality . Reducing the decoder complexity depends on searching .

To state the Max-Log-Sphere decoder, we first find the real-valued equivalent of (3), Define

where and denote real part and imaginary part. By (10), we yield

For a specific , the decoding object is

where is the Kronecker product operation. Obviously, we can use sphere decoding method [14, 15] to searching , which minimizes (13). Note that is an random variable with degrees of freedom. We choose the radius to be a linear function of the variance of

where the coefficient is chosen in such a way that with a high probability we can find a lattice inside a sphere

where . Note that the radius is chosen based on the noise not on channel efficiency. As stated in [14], this point has a beneficial effect on the computational complexity.

For expression convenience, we define and with size . Therefore, searching is equal to searching . Applying the idea of the Fincke Pohst algorithm (See Algorithm 1), we search for the point that belongs to the geometric body described by

where and is the low triangular matrix obtained from QR factorization of . The search radius is chosen according to the statistical properties of noise and the decoding error at relays. Denote , then, a necessary condition for , the th element of , is

where is defined as

Herein we allocate the additional weight averagely over relays. Moreover, we define

and a new necessary condition can be written as

In a similar fashion, one proceeds for , and so on, and until all components of vector are found. Note that the dominant difference between Max-Log-Sphere decoder and sphere decoder proposed in [14] is that radius varies according to all possible code words. In this Max-Log-Sphere decoder, for each , we just check whether to meet its radius. If there exists more than one can meet the constraint (17) for , keep these survival code word and go to next code word. If some of these code words cannot meet the new constraint, then drop them. That is to say for each lattice we must try all possible radiuses. For a specific , Max-Log-Sphere decoder can be summarized as Figure 4.

  Initialization: Set error probability set . Take any element of and compute .

  Step 1: Find the l that makes is maximum for the chosen , where and is calculated by (4).

  Step 2: Fix and find a which makes is maximum.

  Decision: If , goto End, otherwise, goto Step 1.

  End: is the decoded vector.

Algorithm 1

Figure 4: Max-Log-Sphere decoder.

After terminating the decoder algorithm for (See Algorithm 2), select the which achieves the minimum distance to . Then through Max-Log-Sphere decoder with , choose the which minimizes the distance to .

Input , Set .

Set , , .

(Set bounds for ) Set ,

    , .

(Check ) Set ,

    if and , go to , else to .

(Increase ) , If , terminate algorithm, else go to .

(Decrease ) If go to . Else , ,

    , and go to

Solution found for . Save , and exact distance . and set , if , terminate algorithm, else go to .

Algorithm 2

Note that Max-Log-Sphere decoder needs estimating the noise variance of the receiver. However, Max-Log decoder using Eulerian distance and error probability is more realizable. Hence, there is a tradeoff between computational complexity and implementation to choose which one is suitable.

5. Computational Complexity Analysis

In this section, we analyze and compare the computational complexity of above three decoders. We use the average numbers of real elementary operation, (including addition, subtraction, multiplication, and division), as a measure for computational complexity.

5.1. Complexity of ML Decoder

By (5), it easy to know that compute needs times additions and multiplications. Similarly, observe (4), we also can figure out that compute needs multiplications. Therefore, there are additions and multiplications to obtain . As a result, it needs

operations (additions and multiplications) to perform ML decoder.

5.2. Complexity of Max-Log Decoder

Recall (10), needs additions and multiplications and needs multiplications. Therefore, Max-Log decoder needs

real operations. To compare the complexities of ML decoder and Max-Log decoder, we have

As stated in system model, and , so there is . That is to say ML decoder has higher complexity than Max-Log decoder.

5.3. Complexity of Max-Log-Sphere Decoder

Max-Log-Sphere decoder for a has radiuses but each radius is only assigned for searching one possible . According to [14, 15], an arbitrary lattice point that belongs to an dimensional sphere of radius around the transmitted point is given by the following incomplete Gamma function:

where , and is the relay transmit power, which is assumed as unit in above context. The number of elementary operations that the Max-Log-Sphere decoder performs per each visited point in dimension is

Denote (24) as ; therefore, of Max-Log-Sphere decoder is yielded as

It is difficult to compare Max-Log-Sphere decoder with other decoders, but in next section we will show simulation results to illustrate the differences.

6. Simulation Results

In this section, we provide the simulation results to show the proposed error aware decoders. We denote the total power noise ratio as the system signal-noise ratio (SNR) indicator. And half of total power is assigned for source transmit power, and another half is equally divided by all relays. In this simulation, we adopt distributed linear dispersion code proposed in [12] as the coding scheme for its simplicity, where and is a random unitary matrix. For Max-Log-Sphere decoder, herein we set . All other parameters are the same with system model. We also should claim the nonerror aware decoder is

where .

6.1. Performance Comparison with Ideal Receivers

Figure 5 demonstrates bit error rate (BER) performances of different decoders where two relays are employed and the signal modulation is BPSK. That is to say . We can see that at high SNR regime error aware decoders achieve almost 6 dB gain than nonerror aware decoder and outperform AF scheme-based ML decoder about 3 dB. Thus it is worthy to bring slight system overhead for delivering channel estimation to improve the system performance. Over all SNR range, Max-Log decoder and Max-Log-Sphere decoder have nearly the same performance with ML decoder. Therefore, the degradation of Max-Log approximation is negligible. Carefully observing, we found that the slope of BER curve decreases. The reason is that the hard-decision error at relay limits the systems performance even though SNR is enough high.

Figure 5: BER performance of error aware decoders (2 relays, ideal receiver).

In Figure 6, we also simulate a 4-relay network to show the BER performance of that decoders. Herein, and modulation is QPSK. Similarly, error aware decoders can bring about 7 dB power gain than nonerror aware decoder at 22 dB SNR. We can see that it is different from Figure 5 that error aware decoders only achieve about 1.5 dB gain than AF-based ML decoder. The reason is that high-order modulation incurs more error after decoding at relays and enlarges errorpropagation so that deceases the possible gain of error aware decoder. And in this case, the differences of three error aware decoders are more slight. It is interesting that the slope of BER curve does not decrease here. That is because more relays bring more error conditions and consume more power. Therefore, the slope decreasing threshold is larger than 2 relay with BPSK system. From both two figures, we can assert that error aware decoders can improve the system performance efficiently with little system cost.

Figure 6: BER performance of error aware decoders (4 relays, ideal receiver).

For distributed space-time coded (DSTC) relay networks, [12] had proved that the maximum achievable diversity order is . Reference [16] addressed that demodulate-and-forward scheme in a relay network where direct link is available can only achieve half of maximum diversity. In our simulations, relay network with nonerror aware decoder has an even less diversity, that is, the diversity of nonerror aware decoder in Figure 5 is 1 and in Figure 6 is only 1.2. That is because there is no direct link in our model and direct link which does not produce demodulation error. Adding a direct link can increase the system diversity by one but adding on one relay could not gain advantages, but even get worse. Essentially speaking, demodulation error limits the diversity growing. On the other hand, error aware decoder has a larger diversity than nonerror aware decoder. That is to say error aware decoder gains advantages from the available error probabilities. Since there are also demodulation errors at relays, error aware decoder cannot achieve the full diversity at finite SNR.

6.2. Performance Comparison with Practical Receiver

In order to validate the practical performance of our proposed error aware decoders, we also consider a practical receiver at the destination, where channel state information is generated by channel estimator. It means that channel state information is not perfect and has estimation error. We set the transmit power of pilot symbols used to estimate channel equal to the transmit power of data symbols. The procedure of channel estimation follows that 3-step scheme described in Section 3. Channel estimators are built on minimum mean square error (MMSE) rule [11]. In addition, the performance degradation of low-complexity decoders is incurred by less searching in codebook. Moreover, both Figures 5 and 6 prove that low-complexity decoders achieve similarly performance compared with the error aware ML decoder. Therefore, in following simulation, we do not draw the performance of all three error aware decoders but error aware ML to compare with other schemes.

Figures 7 and 8 give the BER performances of different decoders with practical receivers where channel state information is not perfect. Clearly, the channel estimation error does not change performance relationship among nonerror aware decoder, AF-based ML decoder, and error aware ML decoder. Comparing Figures 5 and 7, we can see that the performance gain obtained by error aware decoder as compared to AF-based ML decoder decreases from 3 dB to 2.5 dB. We also can find that the gain of error aware decoder over nonerror aware decoder decreases from 6 dB to 5 dB through comparing Figures 6 and 8. That is to say that the uncertainty of channel state information does degrade the performance of our proposed error aware decoder but the degradation is limited. Error aware decoder still outperforms nonerror aware decoder. In summary, our proposed error aware decoder works well in practical receivers.

Figure 7: BER performance of error aware decoders (2 relays, practical receiver).

Figure 8: BER performance of error aware decoders (4 relays, ideal receiver).

6.3. Complexity Comparison

We will show the computational complexity of three error aware decoders by elementary operation number. Note that the operation number of Max-Log-Sphere decoder varies with unitary matrices and the channel realization because of (13). We average the elementary operation number over 1000 channel realizations.

In Figure 9, we show the average operation number of these three decoders when 2 relays are employed. Obviously, s of ML decoder and Max-Log decoder are independent of SNR. Max-Log decoder has a lower complexity than ML decoder. Max-Log-Sphere decoder needs far smaller operation number than that of ML decoder and Max-Log decoder. Of course, for 2-relay network, the operation number of ML decoder is trivial compared with current hardware computing rate. However, for 4 relays with QPSK modulation scheme, it is too large to be affordable. Figure 10 gives the elementary operation number in this case. We can see that ML decoder has operations! The operation number of Max-Log decoder is nearly of that of ML decoder. It is notable that Max-Log-Sphere decoder needs only operation number of Max-Log decoder. Therefore, Max-Log-Sphere decoder achieves the same BER performance with optimal ML decoder but costs drastically low computation. Although Max-Log-Sphere has an attractive performance, the noise variance should be estimated first to calculate searching radius [14]. Max-Log decoder just utilizes Eulerian distance and error probabilities; therefore, it is a good tradeoff for decoding structure between implementation and computational complexity. We can choose one of them due to different receivers.

Figure 9: Average operation number of three decoders with 2 relay, BPSK.

Figure 10: Average operation number of three decoders with 4 relay, QPSK.

7. Conclusion

In this paper, we provide a general framework of error aware distributed space-time decoder for regenerative relay networks. Through two-stage pilot symbols, the destination can estimate not only the relay-destination channel but also the error probability happening at relays. Using these estimated error, Maximum Likelihood decoder is provided. To reduce computational complexity, Max-Log decoder and Max-Log-Sphere decoder are also proposed by max-log approximation. Simulations show that error aware decoders can improve the performance drastically. Max-Log-Sphere decoder can achieve the same performance with ML decoder and needs far lower computational complexity. Without noise estimating, Max-Log decoder can make a good tradeoff between implementation and computational complexity.

Acknowledgments

This work is supported by National Nature and Science Funding of China (no. 61102082), National High-tech R&D Program (863 Program, no. 2011AA01A105), National Science and Technology Major Project of China (no. 2012ZX03001032-002), the Fundamental Research Funds for the Central Universities, the Specialized Research Fund for the Doctoral Program of Higher Education (no. 20110201120011), and the Open Research Fund of National Mobile Communications Research Laboratory, Southeast University (no. 2011D14).

References

J. N. Laneman, D. N. C. Tse, and G. W. Wornell, “Cooperative diversity in wireless networks: efficient protocols and outage behavior,” IEEE Transactions on Information Theory, vol. 50, no. 12, pp. 3062–3080, 2004.

H. Li and Q. Zhao, “Distributed modulation for cooperative wireless communications,” IEEE Signal Processing Magazine, vol. 23, no. 5, pp. 30–36, 2006.

C. Zhang, J. Zhang, H. Yin, and G. Wei, “Selective relaying schemes for distributed space-time coded regenerative relay networks,” IET Communications, vol. 4, no. 6, pp. 967–979, 2010.

F. A. Onat, A. Adinoyi, Y. Fan, H. Yanikomeroglu, and J. S. Thompson, “Optimum threshold for SNR-based selective digital relaying schemes in cooperative wireless networks,” in Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC '07), pp. 970–975, March 2007.

G. Scutari and S. Barbarossa, “Distributed space-time coding for regenerative relay networks,” IEEE Transactions on Wireless Communications, vol. 4, no. 5, pp. 2387–2399, 2005.

R. Hoshyar and R. Tafazolli, “A pre-BSC model for distributed turbo codes,” in Proceedings of the 69th Vehicular Technology Conference (VTC '09), April 2009.

M. N. Khormuji and E. G. Larsson, “Receiver design for wireless relay channels with regenerative relays,” in Proceedings of the IEEE International Conference on Communications (ICC '07), pp. 4034–4039, June 2007.

T. M. Cover and J. A. Thomas, Elements of Information Theory, John Wiley & Sons, 1991.

A. Paulraj, R. Nabar, and D. Gore, Introduction to Space-Time Wireless Communications, Cambridge University Press, 2003.

A. Goldsmith, Wireless Communications, Cambridge University Press, 2005.

F. Gao, T. Cui, and A. Nallanathan, “On channel estimation and optimal training design for amplify and forward relay networks,” IEEE Transactions on Wireless Communications, vol. 7, no. 5, pp. 1907–1916, 2008.

Y. Jing and B. Hassibi, “Distributed space-time coding in wireless relay networks,” IEEE Transactions on Wireless Communications, vol. 5, no. 12, pp. 3524–3536, 2006.

S. Lin D and J. Costello Jr., Error Control Coding, Pearson Education, 2nd edition, 2004.

B. Hassibi and H. Vikalo, “On the sphere-decoding algorithm I. Expected complexity,” IEEE Transactions on Sginal Processing, vol. 53, no. 8, pp. 2806–2818, 2005.

H. Vikalo, B. Hassibi, and T. Kailath, “Iterative decoding for MIMO channels via modified sphere decoding,” IEEE Transactions on Wireless Communications, vol. 3, no. 6, pp. 2299–2311, 2004.

D. Chen and J. N. Laneman, “Modulation and demodulation for cooperative diversity in wireless systems,” IEEE Transactions on Wireless Communications, vol. 5, no. 7, pp. 1785–1794, 2006.