Journal of Electronic Science and Technology  2019, Vol.17 Issue (3): 252-259   DOI: 10.11989/JEST.1674-862X.71018179   PDF    
http://dx.doi.org/10.11989/JEST.1674-862X.71018179
51K

Article

Yung-Fa Huang, Jyu-Wei Wang
Cooperative Spectrum Sensing in Cognitive Radio Using Bayesian Updating with Multiple Observations
Journal of Electronic Science and Technology, 2019, 17(3): 252-259
http://dx.doi.org/10.11989/JEST.1674-862X.71018179

Article History

Manuscript received January. 23, 2017
revised June. 06, 2017
Cooperative Spectrum Sensing in Cognitive Radio Using Bayesian Updating with Multiple Observations
Yung-Fa Huang, Jyu-Wei Wang    
Y.-F. Huang is with the Department of Information and Communication Engineering, Chaoyang University of Technology, Taichung 41368 (e-mail: yfahuang@cyut.edu.tw);
J.-W. Wang is with the Department of Photonics and Communication Engineering, Asia University, Taichung 41354 (e-mail: jwwang@asia.edu.tw)
Manuscript received 2017-01-23; revised 2017-06-06
Yung-Fa Huang received the B.Eng. degree from National Taipei University of Technology, Taipei in 1982, M.Eng. degree from National Tsing Hua University, Hsinchu in 1987, and Ph.D. degree from National Chung Cheng University, Chiayi in 2002, all in electrical engineering. During 1987 to 2002, he was an instructor with Chung Chou Institute of Technology, Yuanlin. From February 2002 to July 2004, he worked with the Department of Electrical Engineering, Chung Chou Institute of Technology, as an associate professor. From August 2004 to July 2007, he was an associate professor with the Graduate Institute of Networking and Communication Engineering, Chaoyang University of Technology, Taichung. From August 2007 to July 2008, he was the Head of the Department of Computer and Communication Engineering and the Institute Chair of the Graduate Institute of Networking and Communication Engineering, Chaoyang University of Technology. From August 2008 to July 2010, he was the Head of the Department of Information and Communication Engineering, Chaoyang University of Technology. Since September 2012, he has been a professor with the Department of Information and Communication Engineering, Chaoyang University of Technology. His current research interests include multiuser detection in orthogonal frequency division multiplexing-code division multiple-access (OFDM-CDMA) cellular mobile communications systems, communications signal processing, fuzzy systems, and wireless sensor networks. He is also the Member of IEEE and serves as a co-chair of IEEE System Man and Cybernetics (SMC) Society Technical Committee on Intelligent Internet Systems.
Jyu-Wei Wang received the Ph.D. degree in electrical engineering from National Chung Cheng University in 1999. He spent most of his past career time with Chunghwa Telecom Co., Ltd., Taipei. Now he is working with the Department of Photonics and Communication Engineering, Asia University, Taichung, where he is an associate professor. His current research interests inculde wireless communications, wireless sensor networks, and computer communications networks
Abstract: We study cooperative spectrum sensing in cognitive radio (CR) networks using the hidden Markov model (HMM) for opportunistic spectrum access (OSA). We assume that the primary channel operates in a time division multiple address (TDMA) manner. Thus, spectrum sensing is operating in a slot-by-slot basis. In contrast to the conventional Bayesian updating using only one observation, in this work, we propose to perform the update in a concatenated fashion with all the observations available from the secondary users (SUs). In the proposed scheme, a predefined threshold on the belief is used for determining the channel activity. With the threshold, the proposed scheme is more flexible in the system operation than the simple majority vote scheme, in which no such threshold is available. We compare, by simulations, the performance of the proposed concatenated update scheme with that of the majority vote scheme and show that the probabilities of correctly detecting a busy state and an idle state are about 1 as the number of SUs is as large as 15, so the effects of the further increase in the number of SUs are limited.
Key words: Bayesian updating    cognitive radio (CR)    cooperative sensing    hidden Markov model (HMM)   
1. Introduction

The spectrum resources are rare, and a large part of the spectrum licensed for various applications is not fully used in time or in space. These facts motivate the use of cognitive radio (CR) networks coexisting with the licensed primary networks[1],[2]. In CR networks, the secondary users (SUs) are allowed to utilize the frequency channels assigned for the primary users (PUs) when they are currently not being used. This kind of spectrum sharing is referred to as opportunistic spectrum access (OSA). In the OSA method, SUs try to explore the unused spectrum left over by PUs by sensing the primary channel. The approaches for spectrum sensing can be classified as matched filter detection, cyclostationary feature detection, and energy detection. The energy detection approach is a noncoherent detection method that detects the PU signal based on the sensed energy. In this work, we assume that SUs do not have the prior information of PUs and apply the energy detection approach for spectrum sensing.

However, spectrum sensing is imperfect and incorrect sensing results cause interference to PUs or wasting in unused resources. To increase the correctness of spectrum sensing, SUs can cooperate with each other instead of just working alone. Recently, cooperative spectrum sensing has been receiving intensive attention[3]-[10]. Cooperative operation helps increase the accuracy in tracking the hidden channel state. The main idea underlying the scheme is to enhance the sensing performance by exploiting the spatial diversity in the observations of spatially located CR users. By cooperation, CR users can share their sensing information for making a combined decision more accurately than the individual decision. However, cooperative spectrum sensing is obviously more complicated than the single non-cooperative case. For example, additional control channels are required for SUs to exchange information they gain[3].

In cooperative sensing, data fusion is a necessary process which is executed in a fusion center (FC) to combine local sensing data for hypothesis testing. Depending on the control channel bandwidth requirement, reported sensing results may be of different forms, types, and sizes. In general, cooperative sensing may operate in the following ways: Soft combining, quantized soft combining, and hard combining[3]. In soft combining, the entire local sensing samples of SUs are collected. When hard combining is used, SUs make a one-bit decision for data fusion. Quantized soft combining is a compromise between the detection performance and communications complexity.

On the other hand, machine learning may be used in the cooperative spectrum sensing scenario, as its ability to dynamically adapt and train in response to the fluctuations of features and attributes of the system which are often difficult to formulate analytically. In [6], the authors studied cooperative spectrum sensing in CRs for the IEEE 802.22 wireless regional area network. The authors used a perceptron learning module in FC to dynamically adjust the weight of each SU in the module for making a final decision. However, this kind of soft decision requires more bandwidth for the dedicated control channel.

In [7], the authors considered a listen-and-talk protocol for CR networks in which SUs can sense and access the spectrum simultaneously with the assistance of full-duplex techniques. Fuzzy logic can be used for cooperative spectrum sensing as shown in [8], in which SUs used the ordinary energy detection method to characterize a membership function and its output was sent to FC to make a decision. The effects of channel fading on cooperative spectrum sensing also have been considered, as shown in [9]. In that paper, the performance analysis of the effects of wireless large and small scale fading channels was conducted. In a recent study shown in [10], the authors compared the performance of different fusion rules, including two witnesses: AND and OR rules. In our work, we shall use another rule called majority vote[3] for the performance comparison.

As spectrum sensing is imperfect, the hidden Markov model (HMM) is usually used to model the behaviors of individual SUs[11]-[16]. After the parameters charactering the process to be determined, one can use the hidden model for performance analysis or channel state prediction. In this work, with HMM, we study the performance of cooperative sensing by using Bayesian updating with multiple observations. The channel is assumed to operate in a time division multiple access (TDMA) manner. SUs consecutively sense the channel in a slot-by-slot basis and possibly access those slots that are sensed to be idle. Each SU makes a hard decision on the observation using energy detection and the result is then transmitted to FC for data fusion. At the beginning of each slot, by collecting reports from SUs, FC performs Bayesian updating in a concatenated fashion with all the observations available to make a decision on the activity of the channel. We shall compare the performance of the proposed concatenated update scheme to that of the simple majority vote scheme.

The rest of this paper is organized as follows. Section 2 describes HMM in detail. In Section 3, we present the cooperative spectrum sensing scheme. The performance metrics and simulation results are given in Section 4. Finally, Section 5 concludes the paper.

2. HMM

The activity of PUs is assumed to be characterized by a two-state Markov channel with transition probabilities ${\text{α}} ,$ from idle to busy, and ${\text{β}} ,$ from busy to idle. At the beginning of each slot, each SU senses the channel to decide whether the channel is busy or not in order to acquire the opportunity for accessing. Thus, we use HMM to model OSA in CR networks. The used HMM is illustrated in Fig. 1.

Fig. 1 State-transition diagram and imperfect sensing of HMM.

As Fig. 1 shows, the hidden process alternates between the idle S(1) and busy S(0) states characterized by the state-transition probabilities. Let ${\text{π}} = [{{\text{π}} ^1}\;{{\text{π}} ^0}],$ where ${{\text{π}} ^i}$ denotes the probability of the process $x(t)$ being in state i. The state transition may be expressed by

${\text{π}} = {\text{π}} {\text{T}},$ (1)

where ${\text{T}}$ is the transition probability matrix defined as

${\text{T}} = \left[ {\begin{array}{*{20}{c}} {\text{α}} &{1 - {\text{α}} } \\ {1 - {\text{β}} }&{\text{β}} \end{array}} \right].$ (2)

The hidden process $x\!(t)$ can only be partially observed by the observation process $o(t),$ which takes the same state variables as $x\!(t).$ SUs sense the channel trying to detect the activity. But spectrum sensing is imperfect, errors may occur. If a busy state is detected and the channel is actually busy, we say the detection occurs. The detection probability is denoted by pd. On the other hand, if the channel is detected to be busy but it is actually idle, we say a false alarm occurs. The false alarm probability is denoted by ${p_{{\rm{fa}}}}.$ When a busy state is misdetected, the transmission from SU will collide with that from PU. This causes interference to PU, so the detection probability should be set at a higher level. A false alarm causes the idle slot to be wasted, so in terms of system efficiency, this probability should be set as small as possible. However the settings of pd and ${p_{{\rm{fa}}}}$ are conflict objects, in the CR applications, pd should be set at a reasonable level and then the value of ${p_{{\rm{fa}}}}$ is determined.

As described, every SU consecutively senses the slots, and the sensing results are used to track the variations in the channel state. In a traditional Bayesian updating process, a Bayesian filter is used to track the hidden process $x\!(t)$ by up to date observations $o(t).$ To do this, the belief ${\text{b}}(t)$ on the hidden process is maintained, where ${\text{b}}$ is defined to be a row vector with two elements, that is ${\text{b}} = [b\;\;1\!-\!b\;]$ with b being the probability of $x\!=\!1.$ The belief is a posterior distribution over the current state, given all the evidences to date. By using HMM, one usually assumes that ${\text{x}}\!(0)$ and thus ${\text{b}}(0)$ are known and the observations are available beginning from time $t\!=\!1.$ The observation $o(t)$ is used to update the belief at the precious time instant ${\text{b}}(t\!-\!1)$ to obtain the current belief ${\text{b}}(t)$ by the Bayesian updating rule[10]. Bayesian updating may be viewed as composed of two stages: First, the previous belief is updated with the state transition probabilities of the Markov model to obtain the one-step predicted belief; then, the one-step predicted belief is further updated using the new evidence $o(t)$ . Following the notation used in [10], we may express Bayesian updating by

${\text{b}}(t){|_{o(t)}} = c\,[p(o|x\!=\! {\rm{idle)}}\quad p(o|x\!=\!{\rm{bus\;\,\!\!y)}}] \!\circ \!{\text{b}}(t - 1){\text{T}},$ (3)

where $c$ is a normalizing constant used to make probabilities sum to 1 and the symbol ${\text{a}}\! \circ \!{\text{b}}$ denotes the component-wise multiplication of the two row vectors ${\text{a}}$ and ${\text{b}}.$ In (3), ${\text{b}}(t - 1){\text{T}}$ represents the one-step prediction and the component-wise multiplication means the update with the evidence. If $o(t) = 1,$ we have

${\text{b}}(t){|_{o(t) = 1}} = c\,[1 - {p_{{\rm{fa}}}}\quad 1 - {p_{{d}}}]\! \circ \!{\text{b}}(t - 1){\text{T}},$ (4)

and if $o(t) = 0,$ we have

${\text{b}}(t){|_{o(t) = 0}} = c\,[{p_{{\rm{fa}}}}\quad {p_{{d}}}]\! \circ \!{\text{b}}(t - 1){\text{T}}.$ (5)

In the rest of this paper, if there is no ambiguity in time instants, we will omit the time variable t in the expressions. For notation simplification, we define $\hat {\text{b}} = {\text{b}}(t - 1){\text{T}}.$ By $\hat {\text{b}},$ we always mean the predicted belief obtained from updating the previous belief using the transition model.

3. Cooperative Spectrum Sensing

Fig. 2 illustrates the operation of cooperative spectrum sensing in the CR networks, where each SU is synchronized to the slot time. Fig. 3 shows the slot structure for the operation of SUs. At the beginning of each slot, there is a period dedicated for spectrum sensing. During this period, all SUs in the system independently sense the slot and then the results are sent to the central controller through the dedicated control channel. Before the end of each slot, there is an acknowledgment period dedicated for the use of the corresponding receiver to transmit the acknowledgment about whether the transmission is successful or not to the transmitter. We assume that FC can overhear the acknowledgment as well. Assume also that all SUs are willing to cooperate; that is, we do not consider the case that selfish users may take strategies to get unilateral benefits. In the conventional Bayesian updating, after the one-step prediction, the observation update is exercised by using the only observation. When multiple observations are available, one can perform the observation update in a concatenated fashion using all the observations. It is believed that the more the observations, the more accurate the sensing result. The performance of imperfect sensing can approach to that of the perfect sensing case as the number of cooperative users approaches infinity.

Fig. 2 Illustration of cooperative spectrum sensing.

Fig. 3 Slot structure of the primary channel for SUs.

The concatenated update performed by FC works as follows. First the one-step predicted belief $\hat {\text{b}}$ is obtained. Then the concatenated operation is performed as

${\text{b}} = {c_n}{\text{v}}({o_n})\! \circ \cdots \circ\! {c_2}{\text{v}}({o_2})\! \circ \!{c_1}{\text{v}}({o_1})\! \circ \! \hat {\text{b}} = {c'\!_n}{\text{v}}({o_n}) \!\circ \cdots \circ\! {\text{v}}({o_2}) \!\circ \!{\text{v}}({o_1}) \!\circ \!\hat {\text{b}}$ (6)

where ${o_i}$ denotes the observation of the ith SU, ${c'\!_n}\!=\!\prod\limits_{i = 1}^n {{c_i}} $ is a normalizing constant, and ${\text{v}} ({o_i})$ is defined as

${\text{v}}({o_i}) = \left\{\!\!\!{\begin{array}{*{20}{l}} {[1 - {p_{{\rm{fa}}}}\quad 1 - {p_{{d}}}],}&{{\rm{if}}\;{o_i} = 1,}\\ {[{p_{{\rm{fa}}}}\quad {p_{{d}}}],}&{{\rm{if}}\;{o_i} = 0.} \end{array}} \right.$ (7)

For example, if ${o_n} = 1,$ ${o_2} = 0$ , and ${o_1} = 1,$ we have

${\text{b}} = {c'\!_n}[1 - {p_{{\rm{fa}}}}\quad 1 - {p_{{d}}}] \!\circ \! \cdots \! \circ\! [{p_{{\rm{fa}}}}\quad {p_{{d}}}]\! \circ\! [1 - {p_{{\rm{fa}}}}\quad 1 - {p_{{d}}}] \!\circ\! \hat {\text{b}},$ (8)

where if $b \!\geq\!\! {\text{η}} ,$ the decision output of the hidden state is $\hat x = 1\,;$ otherwise $\hat x = 0.$

In the operation we assume that the channel is perfectly reliable, and that all errors are due to collisions. All SUs are assumed to operate in the saturated regime for which each of them always has a packet to send. When an idle slot is detected, FC can assign the slot to SU for transmission. We also assume that after a transmission an acknowledgement about whether the transmission is successful or not is available. Therefore, FC further updates the current belief to $b\!=\!1$ if the transmission is successful; otherwise update to $b\!=\!0.$ This update will help track the channel state more accurately.

4. Simulation Results

In the simulations, we are interested in comparing the performance of the proposed concatenated update scheme with one of the cooperative sensing schemes using majority vote. In the majority vote scheme, the same HMM is used for the observation process, but FC does not need to know the state transition model and no attempt is made to track the channel state. Instead, FC simply corrects the sensing results from SUs and makes a decision based on the majority vote rule. Thus, in contract to the proposed scheme making a decision based on a predefined threshold, no such threshold is used in the majority vote scheme in FC. The rule for the majority vote may be expressed as

$\sum\limits_i{{I\!_{\{ {o_i} = 1\} }}} \mathop {\gtrless }\limits_{{\rm{busy}}}^{{\rm{idle}}} \sum\limits_i {{I\!_{\{ {o_i} = 0\} }}}$ (9)

where ${I\!_{\{ x\} }}$ is the indicator function, which is equal to 1 if $x$ is true and 0 otherwise. We assume the number of SUs is an odd integer so there is no tie.

For the performance measures, we define two probabilities: ${p_{{\rm{DI}}}}\!=\!{\rm{prob(}}\hat x\!=\!1|x\!=\!1{\rm{),}}$ and ${p_{{\rm{DB}}}}\!=\!{\rm{prob(}}\hat x\!=\!0|x\!=\!0{\rm{)}}{\rm{.}}$ That is, ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}}$ are the probabilities of correctly detecting an idle state and a busy state, respectively.

We conducted computer simulations to examine the performance of the two considered cooperative sensing schemes. In the simulations, we set ${\text{α}} \!=\!{\text{β}} \!=\!0.1,$ ${p_{{d}}}\!=\!0.8$ , and ${p_{{\rm{fa}}}}\!=\!0.2.$ All the results shown are obtained by simulating over ${10^6}$ slots.

Figs. 4 and 5 show ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}}$ , respectively, as a function of the threshold ${\text{η}} .$ We can observe from Fig. 4 that when ${\text{η}} $ is low, ${p_{{\rm{DI}}}}$ is very high, and as ${\text{η}} $ increases, the probability becomes lower. So a higher ${\text{η}} $ tends to waste idle slots. We can also observe that when the number of SUs, M, increases, ${p_{{\rm{DI}}}}$ increases. Thus, cooperative sensing indeed can help detect the channel state more accurately. As shown in Fig. 5, when ${\text{η}} $ is low, ${p_{{\rm{DB}}}}$ is low, as ${\text{η}} $ increases, the probability becomes higher. This fact suggests that a lower ${\text{η}} $ causes more collisions with PU’s transmissions. We can also see from Fig. 5 that as M increases, the probability increases as a result of cooperatively working. By comparing the results shown in Figs. 4 and 5, we know that the setting of ${\text{η}} $ is a conflict object in ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}}.$ But collisions with PU’s transmissions may be considered to be more serious than just wasting idle slots, the setting of ${\text{η}} $ can base on a given constraint on the collision probability, that is, the complementary of ${p_{{\rm{DB}}}}.$

Fig. 4 Probability ${p_{{\rm{DI}}}}$ as a function of threshold.

Fig. 5 Probability ${p_{{\rm{DB}}}}$ as a function of threshold.

Figs. 6 and 7 show ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}},$ respectively, as a function of M and also show the corresponding probabilities resulting from the majority vote scheme. As $1\!-\!{p_{{\rm{fa}}}}\!=\!0.8$ and ${p_{{d}}}\!=\!0.8,$ we can see from the figures that when there is only one SU, the probabilities shown in the two figures are about 0.8 for the majority vote scheme. As M increases, ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}}$ of both schemes approach unity. We can also see from the figures that for the proposed concatenated update scheme, we can adjust the probabilities by using ${\text{η}} ,$ but no such threshold is available for the majority vote scheme. Thus, the proposed scheme is more flexible in terms of system operation. In addition, both figures also suggest that when M is as large as 15, the probabilities are about 1, the effects of increasing M on the performance are limited.

Fig. 6 Probability ${p_{{\rm{DI}}}}$ as a function of the number of SUs.

Fig. 7 Probability ${p_{{\rm{DB}}}}$ as a function of the number of SUs.
5. Conclusions

We proposes a concatenated fashion of update using multiple observations for cooperative spectrum sensing using HMM. We compares the performance of the proposed concatenated update scheme with that of the majority vote scheme by computer simulations. Results show that in the proposed scheme, we can adjust the threshold on the belief to obtain different values of ${p_{{\rm{DI}}}}$ and ${p_{{\rm{DB}}}}.$ This fact suggests that the proposed scheme is more flexible than the majority vote scheme in which no such threshold exists. We also show that the two probabilities of correct detection are about 1 as the number of SUs is as large as 15, so the effects of the further increase in M on the performance of cooperative sensing are limited.

References
[1] S Haykin, " Cognitive radio: Brain-empowered wireless communications,” IEEE JSAC, vol. 23, no. 2, pp. 201-220, May 2005.
[2] I. F. Akyildiz, W.-Y. Lee, M. C. Vuran, and S. Mohanty, " NeXt generation/dynamic spectrum access/cognitive radio wireless networks: A survey,” Computer Networks, vol. 50, pp. 2127-2159, May 2006.
[3] I. F. Akyildiz, B. F. Lo, and R. Balakrishnan, " Cooperative spectrum sensing in cognitive radio networks: A survey,” Physical Communication, vol. 4, no. 1, pp. 40-62, Mar. 2011.
[4] D. Treeumnuk and D. C. Popescu, " Using hidden Markov models to evaluate performance of cooperative spectrum sensing,” IET Communications, vol. 7, no. 17, pp. 1969-1973, 2013.
[5] W. Zhang, R. Mallik, and K. Letaief, " Optimization of cooperative spectrum sensing with energy detection in cognitive radio networks,” IEEE Trans. on Wireless Communications, vol. 8, no. 12, pp. 5761-5766, 2009.
[6] V. Balaji, P. Kabra, P. V. P. K. Saieesh, C. Hota, and G. Raghurama, " Cooperative spectrum sensing in cognitive radios using perceptron learning for IEEE 802.22 WRAN,” Procedia Computer Science, vol. 54, pp. 14-23, 2015, DOI: 10.1016/j.procs.2015.06.002
[7] Y. Liao, T.-Y. Wang, L.-Y. Song, and B.-L. Jiao, " Cooperative spectrum sensing for full-duplex cognitive radio networks,” in Proc. of 2014 IEEE Intl. Conf. on Communication Systems, 2014, pp. 56-60.
[8] A. Mohammadia and M. R. Tabanb, " Cooperative spectrum sensing using fuzzy membership function of energy statistics,” AEU-Intl. Journal of Electronics and Communications, vol. 70, pp. 234-240, Mar. 2016.
[9] J.-F. Li, B.-B. Li, and M.-Q. Liu, " Performance analysis of cooperative spectrum sensing over large and small scale fading channels,” AEU-Intl. Journal of Electronics and Communications, vol. 78, pp. 90-97, Aug. 2017.
[10] R. Bouraoui and H. Besbes, " Cooperative spectrum sensing for cognitive radio networks: Fusion rules performance analysis,” in Proc. of Intl. Wireless Communications and Mobile Computing Conf., 2016, pp. 493-498.
[11] J. Jaffar, S. K. S. Yusof, N. Ahmad, and J. C. Mustapha, " Location assisted proactive channel in heterogeneous cognitive radio network,” Journal of Telecommunication, Electronic and Computer Engineering, vol. 8, no. 3, pp. 49-53, 2016.
[12] E. Chatziantoniou, B. Allen, and V. Velisavljevic, " An HMM-based spectrum occupancy predictor for energy efficient cognitive radio,” in Proc. of the IEEE 24th Annual Intl. Symposium on Personal, Indoor, and Mobile Radio Communications, 2013, pp. 601-605.
[13] A. Saad, B. Staehle, and R. Knorr, " Spectrum prediction using hidden Markov models for industrial cognitive radio,” in Proc. of the IEEE 12th Intl. Conf. on Wireless and Mobile Computing, Networking and Communications, 2016, pp. 1-7.
[14] P. P. Roy and M. Muralidhar, " Hidden Markov model based channel state prediction in cognitive radio networks,” Intl. Journal of Engineering Research & Technology, vol. 4, no. 2, pp. 391-394, 2015.
[15] J.-W. Wang and R. Adriman, " Analysis of opportunistic spectrum access in cognitive radio networks using hidden Markov model with state prediction,” EURASIP Journal on Wireless Communications and Networking, vol. 10, pp. 1-8, Dec. 2015.
[16] S. Russel and P. Norvig, Artificial Intelligence: A Modern Approach, 3rd ed. Englewood: Prentice Hall, 2010, pp. 566-609.