Post on 13-Aug-2015
transcript
Micheal A. Fisher
Oblivious Cooperative Communication in Cognitive Radio Networks
CHAPTER I
INTRODUCTION
Cognitive Radio (CR) is a paradigm for wireless communication that promises an
enhanced utilization of the limited spectral resource. In a CR network, there are two types
of CR’s referred to as primary (licensed) and secondary (unlicensed) and they coexist in
the same frequency spectrum. In a CR network, wireless nodes change its transmission
or reception parameters to communicate efficiently avoiding interface with primary
(licensed) or secondary (unlicensed) user. In Cooperative Communication, distributed
individual single-antenna nodes cooperate on information transmission and reception,
which can be used to extend communication range, reducing error rate, or increasing data
transmission rate [1]. Cooperative communication refers to processing of the information
at the surrounding nodes and transmission towards the destination to create spatial
diversity, therefore to obtain higher throughout and reliability. Cooperative
communication node might use self-interference and other user’s interference to improve
the performance of data encoding and decoding, whereas conventional nodes are
generally directed to avoid the interference. Primary (licensed) users are usually expected
to lack awareness of the secondary terminals. They can also actively grant channel access
to the secondary (unlicensed) user for a fraction of the temporal resource in exchange for
some form of deserved penalty
1
Proposed Research
In this project, we consider the cooperative communication in CR networks in
order to enhance the performance of primary and exploit idle periods of primary (spectral
hole). In [2], a secondary user is used to help data transmission from one primary user to
another, where the secondary users are oblivious to the presence of secondary users. In
their approach, the distance of the helping secondary user and primary users must be
smaller than the distance between the primary transmission source and destination. In this
research we propose the new approach that enables multiple secondary users
cooperatively helping the data transmission between primary users using cooperative
communication even they are far away from the primary users.
Challenges
The challenge in this project is the remove this restriction that the secondary user
must stay close to the primary user. We will use multiple secondary users to cooperate
the data relay for primary users. We expect that cooperative communication among
multiple secondary users will relax the position condition, therefore, enhance the
performance of primary and exploit idle periods of primary (spectral hole).
This research aims for exploiting periods of primary users from multiple
transceivers cooperative data relay. Cooperative relay is a promising approach to
improving the throughput to the secondary nodes by increasing the transmission
opportunities.
2
CHAPTER II
REQUIREMENTS ANALYSIS
Functional Requirements
1. Data rate of primary users must be increased proportionally to the number of
cooperative secondary terminals. The goal is to maximize the spectrum
opportunity towards the secondary receiver. Numerical results are provided in
order to discuss the advantage and limits of cognitive relaying.
2. Primary users must be oblivious to the presence of secondary terminals. Thus
they behave as if they had exclusive access to the spectrum. Therefore, secondary
terminals aim at exploiting the idle periods of primary in an opportunistic fashion.
Primary users for a fraction of the temporal/spectral resource in exchange for
some form of retribution.
3. Transmission error rate must be lower than the given threshold. The secondary
transmitter is interested in choosing the optimum detection threshold as the result
of a trade-off between limiting the interference on the primary and increasing
secondary channel access. The optimal detection threshold is larger than the case
of no relaying.
4. The ability to reliably detect the presence of licensed primary transmissions.
While detecting the presence of a particular transmission is itself a well-studied
3
communication problem, the specific case of cognitive radio introduces many
more constraints on the detection system, which makes it a lot more involved.
Cognitive radio systems that utilize unused spectral holes within licensed bands
have been proposed as a possible solution to the spectrum crisis.
5. The cooperative relay should saves energy and reduces latency simultaneously at
transmission links even when the diameters of virtual nodes are large.
Non-Functional Requirements
1. The system shall be developed using Visual Studio.Net. The development team is
familiar with C#.Net Programming Language and it also allows the programmers
to enhance their C# skills. Code should be written in an understandable manner to
allow extensibility in the future.
2. The system should be user friendly. The interface should be created to a use
whereas someone who hasn’t read our project or read our functional and non-
functional requirements shall be able to understand and be able to generalize it
with other problems.
3. Number of the secondary terminals cooperating transmission or reception shall be
adjustable. The primary users should get the help from an optimal number of
secondary users. Using too few secondary users may not achieve the
communication quality of the primary users; using too many secondary users may
waste resources.
4
4. Position of the cooperative secondary terminals shall be flexible. The secondary
terminals shall be able to automatically form a cooperating group according to
their positions and the primary users’ positions.
5. Cost of cooperative communication devices shall be efficient. The price range
should be kept at a minimum so that the company or users who are building or
intend on buying will have a reasonable price to work with.
5
CHAPTER III
SYSTEM DESIGN
In this chapter, we design of a novel system for cooperative relay in cognitive
radio networks. We first describe the model we use for cognitive radio networks. Then
we describe the schemes we use for cooperative communication and relay. Finally, we
describe the architecture of cooperative relay system that we proposed for cognitive radio
networks, and formulas for the evaluation of the system.
Cognitive Radio Network Model
Cognitive Radio (CR) is a new paradigm in a wireless communication that
promises an enhanced utilization of the limited spectral resource. There are two types of
CR’s and they can be referred to as primary (licensed) users/terminals and secondary
(unlicensed) users/terminals. In our model (Figure 3.1), primary users are expected to be
oblivious to the presence of secondary users, acting as if they had exclusive access to the
spectrum. The secondary users aim at exploiting the idle periods of primary (spectral
holes) in an opportunistic fashion and use the same licensed bandwidth/channel that the
primary users use. In CR devices, the transmission or reception parameters can be
changed to avoid interference with licensed users. In Figure 3.1, licensed primary users
form a wireless radio network and they communication with each other without knowing
the existence of secondary users. On the other hand, the secondary users look for the
opportunities to use the same channels that primary users hold but not using.
6
Cooperative Communication Scheme
In cooperative communication, multiple single-antenna nodes/devices cooperate
on data transmission and reception. By doing this it creates a virtual multiple-input
multiple-output (MIMO) system. Cooperative communication provides potentially two
types of advantages: (1) diversity gain, which is created by transmitting the same data
stream from multiple single-antenna nodes simultaneously, and it can be used to extend
communication range and/or reducing error rate; and (2) multiplexing gain, which is
created by transmitting independent data streams by multiple single-antenna nodes
7
Figure 3.1 Model of cognitive radio networks.
simultaneously, and it increases the data transmission rate. The broadcast nature of
wireless radios suggests that a source signal transmitted towards the destination can be
“overheard” by other nodes in surrounding areas. Diversity gain in cooperative
communication refers to processing the overheard information at operative nodes and
transmission towards the destination to create spatial diversity, which in the end will
result in a higher throughput and reliability. We are using the diversity gain in this
research.
In cooperative communication, there are three communication schemes: MIMO,
MISO, and SIMO. In a MIMO scheme, there are multiple nodes in both transmission side
and reception side. In a MISO scheme, there are multiple nodes in transmission side but
there is only one node in reception side. In a SIMO side, there is only one node in
transmission side but there are multiple nodes in reception side. In this research, we use
MISO and SIMO schemes (Figure 3.2)
8
We design a system in which multiple secondary transceivers/users cooperative
data relay for primary users. The system aims at exploiting idle periods of primary
(spectral holes) users. Primary users are expected to be oblivious to the presence of
9
Figure 3.2 Cooperative communication schemes.
secondary terminals, thus behaving as if they had exclusive access to the spectrum. This
is how the secondary users aim at the idle periods of primary in a opportunistic fashion.
In the proposed architecture (Figure 3.3), multiple secondary users cooperatively
help and speed up primary users’ communication so that the secondary users can use
primary users’ channels. Suppose that P1 transmits data streams to primary user P2. If
P2 received the data, it sends P1 an acknowledgement. In the case that P1 did not receive
the acknowledgement, P1 has to send the same data stream again. If for some reason, say
the distance of P1 and P2 is larger than the transmission range that the transmission from
P1 to P2 does not go well, it needs extra time for the data communication between P1 and
P2. In our architecture, a group of secondary users (S1, S2 and S3 in Figure 3.3) always
save the data that P1 sends to P2. When P2 cannot receive the data, the secondary users
will transmit the same data simultaneously to P2. Because of the diversity gain, P2 will
get strong signals of the data and it will send the acknowledgement to P1. In this way, the
transmission from P1 to P2 can be finished fast, and then the secondary users can use the
channels of P1 and P2.
10
Evaluation Model
We use the following formulas to find how far that secondary users can be from the
primary users when given the number of secondary users, error rate, energy and other
parameters. The formulas are as follows:
(1) Energy per bit for location communication between secondary users:
eL( r )=(1+α )4
3N f σ 2(2b−1 )
bln
4 (1−2−
b2 )
bPb
×Gd ( Pct+rPcr )1bB
+2 Psyn×T tr /n
where Pct=48. 24 , Pcr=62 .5 , P syn=50 , Gd=107×d3. 5 ,
α=3(√2b−1)
0 .35 (√2b+1), N f=10 dB ,T tr=5 μs .
11
Figure 3.3 Approach of cooperative relay.
(2) Energy per bit for communciation in MIMO link
eMIMO( mt ,mr )=(1+α )e (b,mt ,mr )×(4 πD)2
Gt Gr λ2M l N f +Pc(mt ,mr ) ,
where Pc( t , r )=( tPct+rPcr+2 Psyn )/( bB) , Gt Gr=5 dBi , M l=40 dB .
In the formulas, eL(r ) represents the energy cost per bit for local communication
among cooperative nodes, eMIMO(mt , mr )represents the energy cost per bit for long-haul
MIMO link with mt cooperative nodes in transmission side and mr cooperative nodes in
reception side. Specifically, for a SIMO link mt = 1, and for a MISO link mr =1. In the
formula, pd , B, d, D, b ,n are the bit error rate, bandwidth, diameter of virtual MIMO
node, length of virtual MIMO link, constellation size, and information size at a source
node, respectively, and pct , pcr , psyn are the circuit energy for transmission, reception and
synchronization. When b, mt and mr are given, and e (b ,mt , mr )can be numerically
calculated by the formula in [1].
12
CHAPTER IV
DESIGN IMPLEMENTATION
Implementation Algorithms for Cooperative Relay MIMO Scheme
In this section, we discuss and explain the implementation algorithms that enable
the secondary users helping the primary user by using the proposed cooperative relay
MIMO scheme in cognitive radio networks. Suppose that primary user P1 transmits data
to primary user P2, and k secondary user h1, h2,…,hk help this transmission. The steps in
the proposed cooperative relay MIMO Scheme can be described as follows:
Step1: P1 transmit the data to P2. At the same time, h1, h2,…, hk receive the same data
and save them (see Figure 4.1, where k = 3). In this case, P1 and h1, h2,…,hk form a 1×k
SIMO communication link.
Figure 4.1 Cooperative Communication from P1 to k secondary nodes.
If h1, h2,…,hk don’t receive the acknowledgment from P2 (it means that P1 doesn’t
receive the acknowledgment from P2), then the scheme proceeds to follow steps.
13
Step2: h1 – h(k-1) transmit the same saved data at different timeslots to hk and hk
receives the data and decodes/combines the data (see Figure 4.2). In this step, the
communications is local only among the secondary users.
Figure 4.2 Local Communication from h1, h2, …, h(k-1) to hk.
Step3: hk transmits the decoded/combined data back to h1, h2,…, h(k-1) (see Figure 4.3).
In this step, the communication is local only among the secondary users.
Figure 4.3 Local Communication from hk to h1, h2, ,,,, h(k-1).
14
Step4: h1, h2,…,hk transmit the same data simultaneously to primary user P2 (see Figure
4.4). In this case, h1, h2,…,hk and P2 form a k×1 MISO link.
Figure 4.4 Cooperative Communication from k secondary node to P2.
Evaluation Formula for the Cooperative Relay MIMO Scheme
In this section, we derive the formulas for calculating the largest distance that the
secondary users can be away from the primary users. As we described in the previous
chapters, the larger the distance, the better the solution. The following formula is used to
calculatee MIMO(mt , mr , D ), the energy for transmitting one bit in an mt×mr MIMO link
with distance D:
(1)
In the formula (1) mt and mr are the numbers of cooperative transmission nodes and
reception nodes in an mt×mr MIMO link, respectively, D is the distance of the MIMO
link, Pb is error rate, Pc( mt ,mr )is circuit energy and b (mt,mr) is the constellation size for
15
the mt×mr MIMO link, e is the function of mt, mr, b, and Pb , B is bandwidth, and others
are the constant. Given in formula (1)Pc( mt ,mr )= (mtPct +mrPcr +2 P syn )/(b( mt ,mr ) B) ,
the following to come are constantsGt G r=5 dBi ,M l=40 , N f=10 , λ=0 .1199 ,
Pct=48. 24×10−3 w , Pcr=62 .5×10−3 w , andPsyn=50×10−3 w . The optimal values of b and
e have already be evaluated in a separated research and we use these values. By
replacing all the parameters, formula (1) is as follows:
EMIMO (mt ,mr , D)= e (b(mt,mr ) ,mt,mr )×{3×( √2b−1 )
(√2b+1 )×(4 πD)2×105}/{0 .35×3 .1623×0 .11992}
+{48 .2368 mtb∗B
+62 .4978mrb∗B
+100b∗B
}×10-3
The above formula can also be used for calculating the transmission distance as follows if
e MIMO(mt , mr , D )is known:
(2)
Steps of Evaluation
In this section, we use the formulas (1) and (2) in Section B to calculate the largest
distance that can be between the secondary users and primary users.
16
Step1: Give D, the transmission distance between primary users P1 and P2, calculate E,
the energy for transmitting per bit from P1 to P2 (see Figure 4.5). In this case, mt = mr =
1. The formula (1) in Section B can be written as follows:
E=e (b( mt,mr ),mt,mr )×{3×(√2b−1)
(√2b+1)×(4 πD )2×105}/{0.35×3.1623×0.11992}
+{48 .2368 mtb∗B
+62 .4978mrb∗B
+100b∗B
}×10-3
We evaluate the energy for D= 100, 110, 120, 130, 140, 150 meters.
When D = 100 meters, b = 12, ē = 7.999966¿10-19.
When D = 110 meters, b = 12, ē = 7.999966¿10-19.
When D = 120 meters, b = 1, ē = 1.571391¿10-18
When D = 130 meters, b = 1, ē = 1.571391¿10-18
When D =140 meters, b = 1, ē = 1.571391¿10-18
When D = 150 meters, b = 1, ē = 1.571391¿10-18
Figure 4.5 Transmitting distance D and Energy E.
17
Step2: Using the E evaluated in Step 1 to calculate the transmission distance D1 of the
1×k SMIO link between P1 and secondary users h1, h2, …, hk (see Figure 4.6). In this
case, mt = 1 and mr = k. The formula (2) in Section B can be written as follows:
D= 14 π √ ( E−{{48 .2368
1b∗B
+62.4978k
b∗B +
100b∗B
}×10-3}×{0 . 35×3 .1623×0 .11992}
3×(√2b−1)
(√2b+1)×10−22 e×40×10×e (10-3 , b(1 , k ), 1 , k )
When D = 100, k = 2, (mt =1, mr = 2), b = 16, ē = 7.943¿10−22
k = 3, (mt =1, mr = 3),b =4, ē = 8.255¿10−20
When D = 110, k = 2, (mt =1, mr = 2), b = 16, ē = 7.943¿10−22
k = 3, (mt =1, mr = 3), b = 4, ē = 8.255¿10−20
When D = 120, k = 2, (mt =1, mr = 2), b = 16, ē = 7.943¿10−22
k = 3, (mt =1, mr = 3), b = 4, ē = 8.255¿10−20
When D = 130, k = 2, (mt =1, mr = 2), b = 16, ē = 7.943¿10−22
k = 3, (mt =1, mr = 3), b = 4, ē = 8.255¿10−20
When D = 140, k = 2, (mt =1, mr = 2), b = 16, ē = 7.943¿10−22
k = 3, (mt =1, mr = 3), b = 4, ē = 8.255¿10−20
When D = 150, k = 2, (mt =1, mr = 2),b = 16, ē =7.943¿10−22
k = 3, (mt =1, mr = 3), b =4, ē =8.255¿10−20
18
Figure 4.6 Transmitting distance D1 and energy from P1 to k secondary nodes.
Step 3: Using the E evaluated in Step 1 to calculate the transmission distance D2 of the
k×1 MISO link between secondary users h1, h2, …, hk and P2 (see Figure 4.7). In this
case, mt = k and mr = 1. The formula (2) in Section B can be written as follows:
D= 14 π √ ( E−{{48 .2368
kb∗B
+62.49781
b∗B +
100b∗B
}×10-3}×{0 .35×3 .1623×0 .11992}
3×(√2b−1)
(√2b+1)×10−22 e×40×10×e (10-3 , b( k ,1 ), k ,1)
When D = 100, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
When D = 110, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
When D = 120, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
When D = 130, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
19
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
When D = 140, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
When D = 150, k = 2, (mt =2, mr = 1),b = 16, ē = 7.943086¿10−22
k = 3, (mt =3, mr = 1),b = 16, ē = 7.943086¿10−22
Figure 4.7 Transmitting distance D2 and energy from k secondary nodes to P2.
20
CHAPTER V
RESULTS
In this chapter we show the results from the system evaluation in Chapter IV. When
given D, the transmission distance between primary users, and k, the number of
secondary users/helpers, we calculated D1, the largest possible transmission distance
from primary user P1 to k secondary users, and D2, the largest possible transmission
distance from k secondary users to primary user P2. The largest possible transmission
distance between k secondary users and primary users is defined to be min(D1, D2).
Table 5.1 shows min(D1, D2), the largest possible transmission distance between
secondary users and primary users in the cases of D = 100, 110, 120, 130, 140, 150 k = 1,
2, 3.
Table 5.1
Distance that helpers can be away from primary users.
Position of Secondary Users
D = 100 D = 110 D = 120 D = 130 D = 140 D = 150
K = 1 100 110 120 130 140 150
K = 2 3114 3116 3738 3791 3844 4236
K = 3 330 328 417 423 429 483
21
Table 5.1 shows how far the secondary user can be from the primary user when
given D, the transmission distance between the primary users, and k, the number of
secondary users/helpers.
22
100 110 120 130 140 1500
300600900
120015001800210024002700300033003600390042004500
Distance that Helpers (secodnary-users) can be away from Primary Users
number of secondary users = 2 number of secondary users = 3Distance between primary users
Dis
tan
ce b
etw
een
pri
mar
y &
sec
ond
ary
use
rs
23
100 110 120 130 140 150100400700
100013001600190022002500280031003400370040004300
number of secondary users = 2 number of secondary users = 3
Distance between primary users
Dis
tan
ce b
etw
een
pri
mar
y &
sec
ond
ary
use
rs
Figure 5.1 Distance that helpers can be away from primary users.
From the table and graph, we can see that if use only one secondary user/helper,
the distance between the secondary user and the primary users is smaller than D.
However, if use multiple secondary users/helper, the distance between the secondary user
and the primary users is much larger than than D. When using 2 cooperative secondary
users, the distance can be 28 – 30 times larger than using 1 secondary user; when using 3
cooperative secondary users, the distance can be 3 – 4 times larger than using 1
secondary user. The reason why 2 cooperative secondary users can achieve better
solution is that 3 cooperative secondary users consume more energy in local
communication.
24
CHAPTER VI
CONCLUSION
In this project, we considered the cooperative communication in CR networks in
order to enhance the performance of primary and exploit idle periods of primary (spectral
hole). In previous research, a secondary user is used to help data transmission from one
primary user to another, where the secondary users are oblivious to the presence of
secondary users. In their approach, the distance of the helping secondary user and
primary users must be smaller than the distance between the primary transmission source
and destination. In this research we propose the new approach that enables multiple
secondary users cooperatively helping the data transmission between primary users using
cooperative communication even they are far away from the primary users. We designed
and implemented the cooperative relay scheme and algorithms for cognitive radio
network. From the evaluation results, we can see that if use only one secondary
user/helper, the distance between the secondary user and the primary users is smaller than
D. However, if use multiple secondary users/helper, the distance between the secondary
user and the primary users is much larger than D. When using 2 cooperative secondary
users, the distance can be 28 – 30 times larger than using 1 secondary user; when using 3
cooperative secondary users, the distance can be 3 – 4 times larger than using 1
secondary user. The reason why 2 cooperative secondary users can achieve better
solution is that 3 cooperative secondary users consume more energy in local
communication. We confirmed that our approach is efficient and effective
25
APPENDIX
SOURCE CODES
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace SeniorProjectProgram{ class Program { static void Main(string[] args) { double dis = 100; double dist = 150; int k, b; double E, D1, D2, D11, D22, D111, D222, D1111, D2222, x, y, z, ehat, Pi, D3, D4, D5, D6, D33, D44, D55, D66, D333, D444, D555, D666, D3333, D4444, D5555, D6666;
Pi = 3.14159; y = 0.35 * 3.1623 * Math.Pow(0.1199, 2);
/* calculate E, D1 and D2 for D = 100 */
/* calculate E, where mt =1 mr =1 */ b = 12; ehat = (7.999966 * Math.Pow(10, -19)); x = (4.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 100 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * dis), 2) / y + x;
/* calculate D1 and D2 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 100 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D1 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D1 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 100 k = {0}, b = {1}, D1 = {2}\n,", k, b, D1);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 100 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3);
26
z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D2 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D2 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 100 k = {0}, b = {1}, D2 = {2}\n", k, b, D2);
/* calculate D11 and D22 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 100 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D11 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D11 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 100 k = {0}, b = {1}, D1 = {2}\n", k, b, D11);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); k = 3; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 100 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D22 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D22 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 100 k = {0}, b = {1}, D1 = {2}\n", k, b, D22);
/* calculate E, D111 and D222 for D = 110 */ /* calculate E, where mt =1 mr =1 */ b = 12; ehat = (7.999966 * Math.Pow(10, -19)); x = (4.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 110 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * dis), 2) / y + x;
/* calculate D111 and D222 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 110 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5);
27
if (E - x >= 0) D111 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D111 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 110 k = {0}, b = {1}, D1 = {2}\n,", k, b, D111);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 110 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D222 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D222 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 110 k = {0}, b = {1}, D2 = {2}\n", k, b, D222);
/* calculate D1111 and D2222 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 110 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D1111 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D1111 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 110 k = {0}, b = {1}, D1 = {2}\n", k, b, D1111);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); k = 3; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 110 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D2222 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D2222 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 100 k = {0}, b = {1}, D1 = {2}\n", k, b, D2222);
/* calculate E, D3 and D4 for D = 120 */ /* calculate E, where mt = mr =1 */ b = 1; ehat = (1.571391 * Math.Pow(10, -18)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 120 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3);
28
z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * 120), 2) / y + x;
/* calculate D3 and D4 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 120 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D3 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D3 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 120 k = {0}, b = {1}, D1 = {2}\n", k, b, D3);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 120 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D4 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D4 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 120 k = {0}, b = {1}, D2 = {2}\n", k, b, D4);
/* calculate D5 and D6 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 120 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D5 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D5 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 120 k = {0}, b = {1}, D1 = {2}\n", k, b, D5);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); Pi = 3.14159; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + (120 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3)); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5);
29
if (E - x >= 0) D6 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D6 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 120 k = {0}, b = {1}, D2 = {2}\n", k, b, D6);
/* calculate E, D33 and D44 for D = 130 */ /* calculate E, where mt = mr =1 */ b = 1; ehat = (1.571391 * Math.Pow(10, -18)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 130 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * 120), 2) / y + x;
/* calculate D33 and D44 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 130 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D33 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D33 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 130 k = {0}, b = {1}, D1 = {2}\n", k, b, D33);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 130 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D44 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D44 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 130 k = {0}, b = {1}, D2 = {2}\n", k, b, D44);
/* calculate D55 and D66 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 130 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D55 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z));
30
else D55 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 130 k = {0}, b = {1}, D1 = {2}\n", k, b, D55);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); Pi = 3.14159; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + (130 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3)); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D66 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D66 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 130 k = {0}, b = {1}, D2 = {2}\n", k, b, D66);
/* calculate E, D333 and D444 for D = 140 */ /* calculate E, where mt = mr =1 */ b = 1; ehat = (1.571391 * Math.Pow(10, -18)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 140 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * 120), 2) / y + x;
/* calculate D333 and D444 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 140 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D333 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D333 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 140 k = {0}, b = {1}, D1 = {2}\n", k, b, D333);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 140 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D444 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D444 = -1;
Console.WriteLine("Enegry = {0}", E);
31
Console.WriteLine("\tWhen Distance is 140 k = {0}, b = {1}, D2 = {2}\n", k, b, D444);
/* calculate D555 and D666 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 140 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D555 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D555 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 140 k = {0}, b = {1}, D1 = {2}\n", k, b, D555);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); Pi = 3.14159; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + (140 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3)); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D666 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D666 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 140 k = {0}, b = {1}, D2 = {2}\n", k, b, D666);
/* calculate E, D3333 and D4444 for D = 150 */ /* calculate E, where mt =1 mr =1 */ b = 1; ehat = (1.571391 * Math.Pow(10, -18)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 150 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); E = ehat * z * Math.Pow((4 * Pi * dist), 2) / y + x;
/* calculate D3333 and D4444 for k = 2 */ k = 2; b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 150 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D3333 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D3333 = -1;
Console.WriteLine("Enegry = {0}", E);
32
Console.WriteLine("\tWhen Distance is 150 k = {0}, b = {1}, D1 = {2}\n", k, b, D3333);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 150 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D4444 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D4444 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 150 k = {0}, b = {1}, D2 = {2}\n", k, b, D4444);
/* calculate D5555 and D6666 for k = 3 */ k = 3; b = 4; ehat = (8.255124 * Math.Pow(10, -20)); x = (48.2368 * (1 / (b * Math.Pow(10, 4))) + 62.4978 * (k / (b * Math.Pow(10, 4))) + 150 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D5555 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D5555 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 150 k = {0}, b = {1}, D1 = {2}\n", k, b, D5555);
b = 16; ehat = (7.943086 * Math.Pow(10, -22)); Pi = 3.14159; x = (48.2368 * (k / (b * Math.Pow(10, 4))) + 62.4978 * (1 / (b * Math.Pow(10, 4))) + 150 / (b * Math.Pow(10, 4))) * Math.Pow(10, -3); z = 3 * (Math.Sqrt(Math.Pow(2, b)) - 1) / (Math.Sqrt(Math.Pow(2, b)) + 1) * Math.Pow(10, 5); if (E - x >= 0) D6666 = 1 / (4 * Pi) * Math.Sqrt((E - x) * y / (ehat * z)); else D6666 = -1;
Console.WriteLine("Enegry = {0}", E); Console.WriteLine("\tWhen Distance is 150 k = {0}, b = {1}, D2 = {2}\n", k, b, D6666); } }}
REFERENCES
33
1. Wei Chen, Heh Miao, Liang Hong, Jim Savage, HusamAdas, “Cross Layer Design of Heterogeneous Virtual MIMO Radio Networks with Multi-Optimization,” Proceedings of IEEE International Parallel & Distributed Processing Symposium, 2010.
2. O. Simeone, J. Gambini, Y. Bar-Ness, U. Spagnolini, “Cooperation and Cognitive Radio,” Proceedings of IEEE International Conference on Communications, 2007.
34