1 Introduction

Over the last decade, the number of smart devices and average amount of data traffic incurred by each user has seen explosive growth. According to the 2013 Ericsson Mobility Report [1], data traffic grew approximately 10% quarter-on-quarter and 60% year-on-year, and the total monthly smartphone traffic over mobile networks is predicted to increase by approximately 8 times that of 2014 by the end of 2020. In addition, a majority of the mobile traffic originates from the indoor environment because mobile devices are increasingly used at home, or in the office. Unfortunately, the capacity provided by the traditional macrocell is limited, and the wireless propagation is inefficient owing to the signal attenuation caused by the building walls and other obstacles. As a result, new approaches are required to offer ubiquitous coverage to this large population of indoor users. Femtocell technology offers the possibility of increasing both the coverage and capacity of the existing cellular network, it and has emerged as a promising and viable solution. Femtocells are low-power access points, providing wireless voice and broadband services to customers in homes, offices, or even outdoors [2]. The low cost and plug-and-play features of femtocells allow subscribers to install them autonomously [3].

However, because of the rapidly increasing demands of users, a large number of improperly planned femtocells have been deployed. The demand for additional data rate is continuously rising while the amount of spectrum available is not. Owing to the scarcity of wireless resources, femtocells typically operate with macrocells in a common spectrum. Nonetheless, because of the denser deployment of femtocells, the spectrum reuse occurring in the femtocell network is far more frequent than the macro network can accommodate. Inefficient and unreasonable spectrum utilization will introduce interference that cannot be ignored. The traditional approaches used in the macrocell network, such as coloring methods, are not feasible for femtocells because the location of cells is variable and the numbers may far exceed the number of macrocells. In [4], a frequency sharing mechanism is proposed using frequency reuse with pilot sensing to reduce cross-tier co-channel interference between macrocells and femtocells. In the study, HeNBs (Home eNode B) discard the sub-bands with the largest received power by using eNB (eNode B) to protect the MUEs (Macro User Equipment) from interference, through pilot signal sensing. [5] proposes a femtocell-aware spectrum arrangement scheme for co-channel interference avoidance between a macrocell and femtocells. This scheme divides the spectrum into a macrocell-dedicated section and macro-femto shared section to mitigate to cross-tier interference.

Cognitive radio (CR) technology is also introduced as a promising approach to enhance spectrum utilization. CR provides the capability to opportunistically use or share the spectrum [6]. The cognitive-enabled femtocell is able to monitor the spectrum through independent spectrum sensing and accesses the available channels opportunistically. Furthermore, femtocells can avoid using the same channel occupied by neighboring femto network elements, based on the spectrum sensing [7]. In [8], a cognitive-based interference management solution is proposed for LTE-Advanced femtocells by sharing measured pathloss information with neighboring femtocells. The spectrum allocation is based on the number of LTE component carriers (CCs) and the bandwidth per CC. Numerical results show that this scheme can effectively avoid spectrum collision and significantly improve overall network capacity. In [9], a spectrum access policy exploiting the information of the activity in the nearest macrocell base station is designed to help femtocell base stations make the access decisions. In [10], a femtocell is able to access both the femto-tier and macro-tier spectrum with a spectrum access probability. An optimization algorithm was developed to find the optimal spectrum access probability. In [11], several spectrum sharing schemes between macrocells and femtocells, as well as between femtocells are proposed to improve spatial reuse. General models have been developed using stochastic geometry to study the effects of information sensed at femtocells on downlink performance in the proposed spectrum sharing schemes.

As mentioned above, the CR enabled femtocell shows an attractive approach for resource allocation and interference management. However, several research challenges still exist. First, coordination between femtocells is usually required to avoid possible interference because of resource allocation collisions. Generally, centralized coordination schemes using graph theory, or coloring algorithms have been proposed for mitigating the inter-femtocell interference. However, the centralized schemes not only increase the complexity of the system, but also produce a large signaling load. Second, the previous research on cognitive femtocells only focuses on the optimum resource allocation for the maximum capacity. Fairness issues among femtocells with respect to femtocell user’s traffic demands have not been deeply considered even though fair resource sharing is one of the significant problems, especially where spectrum resources are scarce. An unfair resource allocation among femtocells may lead to resource starvation, or waste [12].

This study aims to achieve a fair and efficient resource allocation between femtocells using the proposed distributed fair resource allocation (DFRA) algorithm. In particular, we ensure the fairness in two ways. First, we ensure fairness in the numbers of resource blocks (RBs) allocated to each HeNB. We have defined the parameter, satisfaction degree (SD), as the ratio between allocated number of RBs and the desired number of RBs for each HeNB. Second, we provide fairness in the average throughput of the HeNBs. The proposed DFRA algorithm is fully distributed without any central coordination. By exchanging messages with neighboring femtocells, HeNBs can obtain the resource allocation demands and sense results of their neighbor femtocells so that the DFRA can allocate resources fairly and mitigate the inter-femtocell interference.

The remaining content of this paper is organized as follows: Sect. 2 describes the femtocell channel status management and distribution mechanism for the proposed system architecture. Section 3 presents the proposed DFRA algorithm in detail. Section 4 evaluates the performance of the proposed algorithm and compares it to some existing methods. Finally, Sect. 5 provides the conclusion.

2 Channel Status Management and Distribution Mechanism

2.1 Cognitive Femtocell System Model

We consider a cognitive femtocell network where a set of femtocells are overlaid within the coverage area of a macrocell, as shown in Fig. 1. The macrocell and femtocell are also called the eNB and HeNB in LTE-Advanced systems, respectively. In this paper, we assume that femtocells utilize the same licensed spectrum bands that are allocated to macrocells. To avoid any harmful interference to macro users, each HeNB and its femto user equipment (FUEs) perform spectrum sensing and obtain information for the available resource blocks (RB) for their location. FUEs should not utilize RBs that are already used by MUEs.

Fig. 1
figure 1

Network structure

When the total number of RBs for the macro cell service is \( N \), each HeNB can classify the RBs into four types based on local femtocell sensing results, as follows:

  1. 1.

    \( RB_{m} \): RBs that are currently used by macro base stations (eNBs), or macro user equipment (MUEs). To avoid harmful interference to neighboring macro users, the HeNB must not use \( RB_{m} \).

  2. 2.

    \( RB_{f} \): RBs that are already occupied by neighboring femtocells. A neighboring femtocell can easily interfere with the HeNB if they use the same RBs. The use of \( RB_{f} \) shall be avoided to mitigate this inter-femtocell interference.

  3. 3.

    \( RB_{u} \): RBs that are already used by the HeNB itself.

  4. 4.

    \( RB_{a} \): RBs available to use further because they are not used currently, or occupied by neighboring macrocells, neighboring femtocells, or the HeNB itself.

2.2 Channel Status Table Management

In the proposed system, each femto HeNB maintains several channel status tables for available resource blocks \( RB_{a} \) based on its local sensing. At the femtocell \( i \), the measured total interference \( \left( {TI_{n}^{i} } \right) \) for a certain resource block \( n \) is the sum of the interference from the macro eNB, or MUE and the interference from other femtocells, represented as in (1).

$$ TI_{n}^{i} = P_{n}^{m} \left| {H_{n}^{m,i} } \right|^{2} + \mathop \sum \limits_{k = 1,k \ne i}^{{N_{f} }} I_{n}^{k,i} $$
(1)

where \( P_{n}^{m} \) is the transmission power of the eNB, or MUE; \( H_{n}^{m,i} \) is the channel gain between macro to femtocell \( i \); \( N_{f} \) is the number of femtocells in the macrocell area; \( I_{n}^{k,i} \) is the interference to femtocell \( i \) from femtocell \( k. \) The SINR(Signal to Interference plus Noise Ratio) of HeNB \( i \) is derived as in (2).

$$ SINR_{n}^{i} = \frac{{P_{n}^{f} \left| {\bar{H}_{n}^{i} } \right|^{2} }}{{N_{n} + TI_{n}^{i} }} $$
(2)

where \( P_{n}^{f} \) is the transmission power of the HeNB, or FUE; \( \bar{H}_{n}^{i} \) is the average channel gain at femtocell \( i \); \( N_{n} \) is the noise power. In this study, to evaluate each RB’s channel condition using the normalized SINR, \( N\_SINR_{n}^{i} \), for the RB \( n \) at HeNB \( i \) as in (3). \( N\_SINR_{n}^{i} \) is simply the inverse of the measured total interference by spectrum sensing.

$$ NSINR_{n}^{i} = \frac{1}{{N_{n} + TI_{n}^{i} }} $$
(3)

Table 1 shows the Channel State Table (CST) by sorting available resource blocks in descending order based on their channel conditions, where \( CS_{j}^{i} \) indicates the channel condition of the \( j \)-th ranked resource block for HeNB \( i \). In Table 1, there only exist the resource blocks that are not currently used by the femtocell and the \( NSINR \) of the resource block is greater than the predefined threshold value \( \left( {i.e., NSINR_{n}^{i} > NSINR_{threshold} } \right) \).

Table 1 Channel state table (CST) for HeNB \( i \)

When using conventional resource allocation in cognitive femtocell networks, HeNBs send their CSTs to a central coordinator that allocates resource blocks to each HeNB. In order to maximize the entire femto network capacity, a resource block is allocated to the node that has the highest channel condition for the RB channel. Otherwise, round-robin allocation can be used to provide fair allocation. However, round-robin-based allocation cannot achieve capacity optimization.

In this study, we consider not only maximizing femto network capacity, but also provide fairness between femtocells. The Channel State Difference Table (CSDT) has been defined in this paper as shown in Table 2 indicating the channel state difference between the currently ranked RB and the RB ranked next. \( CSD_{j,k}^{i} \) represents the channel state difference of \( CS_{j}^{i} \) and \( CS_{k}^{i} \). It should be noted that the CSD value ranked last for each HeNB is the CS value itself.

Table 2 Channel state difference table (CSDT) for HeNB \( i \)

Figure 2 shows example cases for resource block allocation based on CST and CSDT, where it is assumed that each HeNB only requires one RB. Figure 2a, b represent the CSTs and the CSDTs of HeNB1 and HeNB2, respectively, where both HeNBs are neighbors and cannot utilize the same RBs. According to Fig. 2a, RB 4 is ranked first for both HeNB1 and HeNB2. Figure 2c shows the RB allocation results for case 1 (CST-based) and case 2(CSDT-based). In case 1, because the channel state of the first ranked resource block RB4 of HeNB1 is larger than that of HeNB2 (i.e., \( CS_{1}^{1} > CS_{1}^{2} \)), RB4 will be allocated to HeNB1. In case 2, the resource block allocation is performed based on CSDT. The first ranked resource block RB4 is assigned to HeNB2 because the channel state difference between the RB ranked first and the RB ranked second is greater than that of HeNB1. This indicates that if RB4 is not allocated to HeNB2, then HeNB2 will have a very poor quality resource block RB6. When RB1 is allocated to HeNB2, HeNB will not suffer large quality degradation because the channel quality of RB6 ranked next is still relatively good. As we can see in Fig. 2c, case 2 provides better results in terms of fairness and total network capacity.

Fig. 2
figure 2

Example resource allocation scenario

In the proposed mechanism, each HeNB also maintains a Resource Block Usage Table (RBUT), as shown in Table 3. Based on the RBUT, the satisfaction degree at the current time \( t \) of HeNB \( i \), \( SD_{i} \left( t \right) \), is defined as in (4). A novel fair resource allocation mechanism is applied according to the current satisfaction degree of contending femtocell neighbors. In Sect. 3, the distributed and fair resource allocation is explained in detail.

Table 3 Resource block usage table (RBUT) for HeNB \( i \)
$$ SD_{i} \left( t \right) = \frac{{N_{S\_RB}^{i} \left( t \right)}}{{N_{D\_RB}^{i} \left( t \right)}} $$
(4)

3 Distributed Fair Resource Allocation Algorithm

In this section, we propose a novel distributed fair resource allocation (DFRA) algorithm in cognitive femtocell networks. The proposed resource allocation mechanism for cognitive femtocell networks has the following unique features:

  1. 1.

    The resource allocation procedure is performed between HeNBs without any control or coordination of macro base stations. They utilize available resource blocks based on their spectrum sensing results.

  2. 2.

    A distributed resource sharing mechanism is applied to avoid mutual interference between neighboring femtocells. When femtocells require resource allocation, they simply exchange CSDTs and RBUTs. The resource allocation procedure is then performed by each HeNB as a distributed task maximizing the network throughput and avoiding interference. In this paper, we assume that there is a common control channel for HeNB message exchanges.

  3. 3.

    To provide fair resource allocation, the channel quality difference for the sorted available channels at each HeNB is considered. Periodic re-initialization of the currently used resource blocks also contributes to the fair utilization of the available resources between the neighboring femtocells.

3.1 Periodic Re-initialization of Resource Block Usage

Each HeNB may start its service at any time so that the set of HeNBs for a given area can be different over time. In addition, the number of required resource blocks of a HeNB also can vary over time. Therefore, if some of the HeNBs already have taken most of the available resource blocks, then newly joining HeNBs, or the HeNBs that need more resources will suffer unfair resource scarcity. To guarantee fair resource sharing and to avoid having some HeNBs occupy RBs all the time, the proposed scheme has each operational HeNB periodically reinitialize its previously allocated RBs. For periodic re-initialization, each HeNB maintains a re-initialization timer \( T_{r} \).

Figure 3 shows an example scenario for the re-initialization procedure. Suppose at \( t_{1} \), the HeNB1 timer \( T_{r} \) has expired, and it broadcasts a ‘Re-Initialization Request (RIREQ)’ packet to its neighbors. The HeNB that broadcasts the RIREQ packet is called the ‘trigger HeNB’. A newly joining HeNB also can broadcast an RIREQ. The trigger node should release a predefined portion of its currently occupied RBs and broadcast its desired amount of resources. In Fig. 3, HeNB2 is a neighbor of HeNB1, so HeNB2 can hear the RIREQ from HeNB1. HeNB1 and HeNB2 participate in the proposed distributed and fair resource allocation procedure. At \( t_{2} \), HeNB2 broadcasts an RIREQ and its neighbors, HeNB1 and HeNB3, take part in the resource allocation procedure. It should be noted that any coordination with the macro base station is not required. However, neighboring HeNBs only need to exchange a few messages prior to the actual resource allocation.

Fig. 3
figure 3

Periodic re-initialization of the resource block usage

The trigger HeNB broadcasts an RIREQ packet and any HeNBs that receive the RIREQ are considered triggered HeNBs. Any triggered HeNB should respond with a ‘Re-Initialization Response (RIREP)’ packet that includes its CSDT and RBUT tables. The neighboring HeNBs use CSMA/CA (carrier sense multiple access with collision avoidance) to reply to the RIREPs. In this paper, we denote the trigger HeNB and its neighboring HeNBs as group \( {\mathcal{G}} \). The RIREP messages sent by triggered HeNBs will be not only received by the trigger HeNB, but also overheard by other HeNBs. If a HeNB can overhear an RIREP message from another HeNB, then it means they are neighbors.

Figure 4 shows an example scenario of the formation of a group \( {\mathcal{G}} \). HeNB1 is the trigger HeNB and four other HeNBs exist in the network. Owing to the limited transmission range of HeNB1, HeNB5 cannot receive the RIREQ message. Suppose HeNB3 first replies to the RIREP because it has the shortest backoff time in the CSMA/CA mechanism. HeNB4 can overhear the RIREP of HeNB3 so HeNB4 knows that HeNB3 is a neighbor of HeNB. Therefore, when HeNB4 responds with the RIREP to the trigger HeNB, it can also include the neighbor node list. In addition to CSDT and RBUT tables, the neighbor HeNB list (= {HeNB3}) of HeNB4 is included in the RIREP of HeNB4. After all RIREPs are received by the trigger HeNB, it builds up the group neighboring information table (GNIT), as shown in Table 4. If HeNB \( i \) and HeNB \( j \left( {j \ne i} \right) \) are neighbors, then the label of the corresponding cell is ‘1’ (otherwise ‘0’). Finally, the trigger HeNB broadcasts a ‘Status Table Sharing (STS)’ packet as in Fig. 4. The STS includes a GNIT that shows the neighboring relationship between group members and {CSDT, RBUT} tuples for each HeNB group member. In this way, each HeNB in the group has the required knowledge of all the group members. With these tables, HeNBs can implement the distributed fair resource allocation process without any further coordination.

Fig. 4
figure 4

Message exchanges between HeNBs in an allocation group

Table 4 Group neighbour information table (GNIT)

3.2 Distributed Fair Resource Allocation Procedure

This study aims to provide fair resource allocation between neighboring HeNBs in a distributed manner. We assume that each HeNB has different traffic demands that vary over time. In real cognitive radio femtocell networks, the neighboring network topology and available resource conditions can be changed dynamically. The dynamic resource allocation mechanism should not only maximize the network throughput, but also support fair resource usage between femtocells.

Once an HeNB requests to re-initialize, the trigger HeNB releases some of the currently occupied RBs \( \left( {R{\text{\% }}} \right) \) to make a resource block pool that is resource-rich and fair in resource distribution between the current neighboring HeNBs. The RBs in the resource pool can be used by any HeNB that require additional resources. In the proposed distributed fair resource allocation scheme, each HeNB maintains the RB Distribution Table (RBDT), as shown in Table 5.

Table 5 Resource block distribution table (RBDT) of HeNB \( i \)

Before the resource re-allocation procedure, each HeNB has already taken \( N_{S\_RB}^{i} \) resource blocks where the trigger HeNB should have released R% of the previous RBs. The number of serving RBs of the trigger HeNB can be described as \( \frac{100 - R}{100} \) of the previous serving RBs. \( N_{to\_RB}^{i} \) denotes the number of RBs to be additionally allocated to HeNB i. As a result, the number of RBs still needed by HeNB i to meet the desired number of RBs is computed as in (5).

$$ counter^{i} = N_{D\_RB}^{i} - N_{S\_RB}^{i} - N_{to\_RB}^{i} $$
(5)

In addition, \( N_{A\_RB}^{i} \) is the number of total available RBs of HeNB \( i \) as a result of local spectrum sensing. \( N_{R\_RB}^{i} \) represents the number of remaining available RBs of HeNB \( i \) during the RB selection. Among \( N_{A\_RB}^{i} \) RBs, \( N_{R\_RB}^{i} \) RBs have not been allocated yet to HeNB \( i \) or its neighboring HeNBs. \( SD^{i} \) represents the expected satisfaction degree of HeNB \( i \) after this resource re-allocation, and is computed as in (6).

$$ SD^{i} = \frac{{N_{S\_RB}^{i} + N_{to\_RB}^{i} }}{{N_{D\_RB}^{i} }} $$
(6)

Each HeNB already knows the information needed for the resource allocation by receiving an STS message from the trigger HeNB; the message includes GNIT and {CSDT, RBUT} tuples for each HeNB group member. Therefore, the RB allocation can be done by each HeNB in a distributed manner without any central coordinator, or additional control message exchanges with neighboring HeNBs.

Even though a HeNB has triggered the re-initialization, we still have to check whether it is necessary to perform the algorithm. If all the HeNBs’ requirements are satisfied, or there are no qualified RBs for any of them (i.e., for every HeNB \( i \in {\mathcal{G}} \), \( counter^{i} = 0 or N_{R\_RB}^{i} = 0 \)), there is no need to continue the allocation. This verification should also be done every time prior to the RB selection. The DFRA algorithm will be activated if this starting condition is met.

The proposed distributed RB allocation process is shown in Fig. 5. First, HeNBs whose available RBs are less than the demanded one (i.e., \( N_{R\_RB}^{i} \le counter^{i} \)) are taken into account. If only one HeNB meets this condition, the RB ranked first in the CSDT of that HeNB is be selected and allocated to the HeNB. Suppose there are \( k (k > 1) \) HeNBs that meet this condition. In this case, they have insufficient available RBs so we need to determine which HeNB should be considered first. In order to provide fairness, we compare the degrees of satisfaction of these HeNBs. The HeNB with a lower SD is more eager to access to the spectrum. Therefore, the RB ranked first in HeNB \( i \) with the lowest SD is allocated to HeNB \( i \). However, if all the HeNBs have enough available RBs (\( N_{R\_RB}^{i} > counter^{i} \)), we will select the HeNB \( i \) that has the largest CSD (Channel State Difference) for the RB ranked first among the multiple contending HeNBs and is allocated to HeNB \( i \).

Fig. 5
figure 5

Proposed distributed RB allocation process

The proposed algorithm can be performed by each HeNB individually and the resulting resource block allocation to a specific HeNB is the same to all neighboring HeNBs. One RB is allocated to only one HeNB. Once an RB is allocated, it is marked as a selected RB and deleted from the CSDTs of the selected HeNB and all neighboring HeNBs. Each time an RB selection is completed, we need to update the RBUTs of the selected HeNB and its neighbors. Because one RB is selected for HeNB \( i \), \( N_{to\_RB}^{i} \) should be increased by 1 while \( counter^{i} \) and \( N_{R\_RB}^{i} \) should be reduced by 1. For each neighbor HeNB \( j \) of HeNB \( i \), \( N_{R\_RB}^{j} \) should be decreased by 1 as one of its available RBs has been selected by its neighbor HeNB \( i \). Based on each RB allocation, the SD of the selected HeNB is re-calculated using (3). The table update procedure is shown in Algorithm 1.

Figure 6 shows an example scenario to explain the proposed distributed fair resource allocation method. Figure 6a indicates the re-initialization conditions, where neighbor HeNB tables are exchanged and each node has the same table, as shown in Fig. 6a. For HeNB3 and HeNB4, the number of remaining RBs \( N_{R\_RB}^{{}} \) is less than or equal to its \( counter \) value. For the two HeNBs, the HeNB that has a lower satisfaction degree (SD) is selected to allocate a RB. Therefore, HeNB4 is selected and RB2 is allocated to it. After RB2 allocation, RB2 is deleted from the CSDTs of HeNB4 and neighboring HeNBs. It should be noted that once a RB is allocated to a neighboring HeNB, the RB needs to be removed from its table to avoid any harmful interference. HeNB1 and HeNB3 are the neighbors of HeNB4. RB2 is only available for HeNB3, as shown in Fig. 6b so that RB2 is deleted from HeNB3.

figure c
Fig. 6
figure 6

Distributed fair resource allocation example. a Re-initialization condition. b Parameter updates after RB2 allocation to HeNB4. c Parameter updates after RB3 allocation to HeNB3

After parameter updating, the remaining RBs for HeNB3 and HeNB4 are less than their required \( counter \) value, as shown in Fig. 6b. HeNB3 is selected from among them for the next RB allocation because its SD is less than that of HeNB4. HeNB1 and HeNB4 are neighbors of HeNB3, so we need to delete RB3 from their CSDTs. However, only HeNB1 has RB3 in its table, so RB3 of HeNB 1’s table is deleted and some related parameters are updated, as shown in Fig. 6c. This process is repeated until all RBs are allocated to satisfy the demands of the HeNBs.

4 Simulation Results

In this simulation study, we assume that there are one eNB and multiple HeNBs. For the sake of simplicity, HeNBs are randomly deployed in a 25 m×25 m single-floor building. MUEs are uniformly distributed in the building. The coverage radius of macrocells and femtocells are 500 m and 15 m, respectively. Each HeNB operates at a fixed power and uses an omnidirectional antenna. In the simulation, the total number of MUEs is N, and each MUE is served on one RB. HeNBs can share these RBs with an eNB. We changed the number of HeNBs (\( N_{HeNB} ) \) and the number of RBs (\( N_{RB} ) \). The number of FUEs attached to a HeNB is less than 4. Each femtocell UE (FUE) desires a random amount of resource blocks, but not more than 4 RBs. We assume that the initial serving RBs for each HeNB are less than half of the desired number of RBs. Shadowing effect is modeled as a Gaussian random variable whose standard deviation is 6 dB. The simulation parameters are shown in Table 6.

Table 6 Simulation parameters

In this simulation, a comparison has been made between our proposed algorithm and two other existing algorithms: the random resource allocation (RRA) algorithm, and the channel state-based resource allocation (CSRA) algorithm. In the RRA algorithm, each HeNB randomly take the required amount of RBs from its available RBs without considering neighbor HeNBs so that it always satisfies the demands for the number of RBs for all HeNBs if the available RBs are enough. Consequently, some RBs can be also allocated to neighboring HeNBs, causing severe inter-cell interference. The CSRA algorithm only allocates RBs based on their channel state, in which an RB is allocated to the HeNB whose channel state value for the RB is highest compared with its neighbor HeNBs. We compared these three algorithms based on the following two cases:

  1. 1.

    Case 1 The desired number of RBs of each HeNB is the same, i.e., \( N_{D\_RB}^{i} = N_{0} \left( {i \in {\mathcal{G}}} \right) \).

  2. 2.

    Case 2 The desired number of RBs of each HeNB is different.

We captured one allocation result of the three algorithms for the two cases. In Fig. 7, the horizontal axis represents the HeNBs in an allocation group while the vertical axis shows the percentage of the desired number of RBs of each HeNB. The total number of allocated RBs is considered the sum of initialized serving RBs and the RBs allocated during the algorithm. Therefore, the black bar plus the gray bar represents the SD of a HeNB. As shown in the figure, the total number of allocated RBs of RRA equals the desired number of RBs because the RRA algorithm always satisfies the demand of HeNBs. However, both CSRA and DFRA algorithms are based on the principle that the same RB cannot be allocated to the adjacent HeNBs, which may result in insufficient RB allocations. From the results shown in Fig. 7, we can observe that the SD levels of different HeNBs are not significantly different when the proposed DFRA algorithm is applied, while noticeable unfairness appears for the CSRD algorithm.

Fig. 7
figure 7

Result of SD level comparison for the three algorithms (\( N_{HeNB} = 25 \), \( N_{RB} = 50 \))

Figure 8 shows the effect of the number of HeNBs on the maximum satisfaction degree \( SD_{max} \) and the minimum satisfaction degree \( SD_{min} \) among the HeNBs participating in the allocation. First, we see that in both cases, larger \( N_{HeNB} \) results in a lower SD. This is because when the number of HeNBs increases, the density of HeNBs becomes higher, leading to a larger number of HeNBs in the same resource allocation group. However, the number of RB (\( N_{RB} \)) is fixed so the SDs of the HeNBs are reduced when we increase the \( N_{HeNB} \). The SDs of the HeNBs using the RRA algorithm is always 100% because of full allocation. Figure 8 also shows that the gap between \( SD_{max} \) and \( SD_{min} \) is narrower when we apply the proposed DFRA algorithm, compared with CSRA, indicating that the proposed algorithm can achieve better fairness than the CSRA algorithm. Figure 9 clearly shows the difference between \( SD_{max} \) and \( SD_{min} \) in terms of \( N_{HeNB} \). Max–min fairness is one of the qualitative fairness measures used to evaluate the allocation fairness. The results shown in Fig. 9 illustrate that the proposed DFRA algorithm performs better in terms of fairness because the max–min value of DFRA is smaller than CSRA.

Fig. 8
figure 8

Maximum and minimum values of satisfaction degree for different \( N_{HeNB} \) (\( N_{RB} = 50 \))

Fig. 9
figure 9

Difference between \( {\text{SD}}_{ \hbox{max} } \) and \( {\text{SD}}_{ \hbox{min} } \) for different \( N_{HeNB} \) (\( N_{RB} = 50 \))

Figure 10 shows the variance of SD in terms of \( N_{HeNB} \). The SD variance using DFRA is much lower than CSRA, which also illustrates that the proposed DFRA algorithm outperforms the CSRA algorithm in respect of fairness.

Fig. 10
figure 10

Variance of satisfaction degree for different \( N_{HeNB} \) (\( N_{RB} = 50 \))

Figure 11 shows the \( SD_{max} \) and \( SD_{min} \) among the HeNBs for different \( N_{RB} \). The results show that the SDs of the HeNBs increase with an increasing number of RBs. As the \( N_{RB} \) increases, the number of available RBs for each HeNB increases leading to a higher SD for each HeNB. When we apply the proposed DFRA algorithm, the gap between \( SD_{max} \) and \( SD_{min} \) is also narrower than the CSRA algorithm, which is what we would expect. Moreover, the difference between \( SD_{max} \) and \( SD_{min} \) is getting smaller and tends to be 0 when \( N_{RB} \) increases to 110. This is because when \( N_{RB} \) is really large, the requirement of all the HeNBs can be satisfied and the SDs will eventually reach 100%. Figure 12 shows the difference between \( SD_{max} \) and \( SD_{min} \) for \( N_{RB} \). Similar to the \( N_{HeNB} \) case, the results illustrate that the proposed DFRA algorithm performs better in terms of fairness.

Fig. 11
figure 11

Maximum and minimum values of satisfaction degree for different \( N_{RB} \) (\( N_{HeNB} = 25 \))

Fig. 12
figure 12

Difference between \( {\text{SD}}_{ \hbox{max} } \) and \( {\text{SD}}_{ \hbox{min} } \) for different \( N_{RB} \) (\( N_{HeNB} = 25 \))

The variance of degrees of satisfaction for \( N_{RB} \) is shown in Fig. 13. The SD variance using the proposed DFRA is lower than CSRA. This means that the difference between the SDs of the HeNBs in an allocation group is smaller when compared to the DFRA algorithm.

Fig. 13
figure 13

Variance of satisfaction degree for different \( N_{RB} \) (\( N_{HeNB} = 25 \))

Figures 8, 9, 10, 11, 12, and 13 show the results of the satisfaction degree fairness for each case. From a different point of view, SD only takes into account the number of allocated RBs. Even when more RBs are allocated to a HeNB, multiple neighboring HeNBs may utilize the same RB, causing the actual throughput to reduce owing to mutual interference. Figure 14 shows the variance of the average throughput of the femtocell UEs (FUEs) of the HeNBs in terms of \( N_{HeNB} \), while Fig. 15 is based on \( N_{RB} \). The improvement of fairness for average throughput that we achieved is due mostly to the channel state difference applied in the proposed DFRA algorithm.

Fig. 14
figure 14

Variance of average throughput of femtocell UEs (FUEs) of the HeNBs for different \( N_{HeNB} \) (\( N_{RB} = 50 \))

Fig. 15
figure 15

Variance of average throughput of femtocell UEs (FUEs) of the HeNBs for different \( N_{RB} \) (\( N_{HeNB} = 25 \))

Figure 16 shows the total throughput of an allocation group for \( N_{RB} \). In Fig. 16, we observe that the total throughput of the DFRA and CSRA algorithms are almost the same, indicating that the proposed algorithm can improve the fairness performance without causing any degradation to the throughput. Although the RRA algorithm is the fairest one when compared to the other two algorithms, the fairness is acquired at the expense of throughput degradation.

Fig. 16
figure 16

Total throughput of an allocation group for different \( N_{RB} \) (\( N_{HeNB} = 25 \))

5 Conclusions

In this paper, we proposed a distributed scheme to manage the fair resource allocation in a cognitive femtocell network. The proposed algorithm can improve the fairness for resource allocation between neighboring femtocells while maintaining considerable throughput. Given a simple and feasible cognitive function, the HeNBs identified the available RBs free of interference and qualified to be utilized. In particular, the proposed DFRA algorithm guaranteed the total number of allocated RBs to be fair by exploiting the satisfaction degree concept. Furthermore, we took the channel state difference as the indicator to achieve fairness based on average throughput. In addition, the distributed nature of the DFRA algorithm allows it to be easily implemented in the HeNBs without any central coordinator. Simulation results have shown that the proposed algorithm works well not only for equally desired RBs of the HeNBs, but also for the different number of desired RBs. Moreover, when compared with the RRA algorithm and the CSRA algorithm, the proposed algorithm is able to improve the fairness performance significantly in both the satisfaction degree and the average throughput, and at the same time, achieve good network throughput performance.