Uplink spectrum resource allocation method and device, electronic equipment and storage medium
By segmenting and iteratively allocating unavailable RBs in the uplink time slots, the problem of spectrum resource waste is solved, and efficient utilization of spectrum resources in 5G communication is achieved.
Patent Information
- Application Number
- CN202511463049.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-14
- Publication Date
- 2026-02-13
AI Technical Summary
In 5G mobile communication, the existing frequency selective scheduling technology leads to the waste of spectrum resources. When the RBs that are unavailable due to strong interference in the entire frequency band are discretely distributed, the timing advance value cannot be accurately measured, resulting in the RBG being unable to be allocated and causing resource blocks to be wasted.
By segmenting multiple unavailable resource blocks (RBs) in the uplink time slot, the channel capacity of each resource segment is determined, and multiple continuously available RBs are allocated to the UE to be scheduled based on the maximum channel capacity. The resource allocation is optimized by using an iterative allocation method.
It effectively avoids heavily interfered RBs, reduces spectrum resource waste, and improves spectrum resource utilization. Especially when there are many UEs waiting to be scheduled in the uplink time slot, it can improve resource utilization efficiency while resisting interference.
Smart Images

Figure CN121531469A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of communication, and in particular to an uplink spectrum resource allocation method and device, electronic equipment and storage medium. BACKGROUND
[0002] Wireless communication exchanges information in free space through electromagnetic wave signals, which makes wireless communication have a wide coverage range and flexibility. However, electromagnetic wave signals are also easily affected by various factors during transmission, resulting in signal quality degradation or interference. In order to cope with the interference problem in wireless communication, new anti-interference technologies need to be continuously researched and developed. Among them, the frequency selective scheduling technology selects the time-frequency resource block with better quality through the sub-band channel quality indicator (CQI) or signal to interference plus noise ratio (SINR) in the case of large frequency domain fluctuations of wireless signals caused by multipath effect, and allocates it to the scheduled user equipment (UE), which aims to improve resource utilization and system capacity.
[0003] In the fifth generation mobile communication technology (5G), the existing frequency selective scheduling technology is implemented based on "Resource Allocation Type 0 (RAT0)", which is a frequency domain resource allocation method based on resource block group (RBG) bitmap to indicate the allocated resource block (RB) information. In this way, each RBG contains a certain number of continuous RBs, and each bit in the bitmap corresponds to an RBG, which is used to represent whether the RBG is allocated. However, when the unavailable RBs are discretely distributed in the entire frequency band due to strong interference, simulation results show that the accurate timing advance (TA) value cannot be measured from the demodulation reference signal (DMRS) received on these RBs. Since any RB in an RBG is unavailable, the entire RBG cannot be allocated to any UE, so using "RAT0" to allocate RBs will cause a large amount of RB waste, resulting in waste of spectrum resources. SUMMARY
[0004] The application provides an uplink spectrum resource allocation method and device, electronic equipment and storage medium to solve the problem of waste of spectrum resources.
[0005] The application provides an uplink spectrum resource allocation method, comprising: Segmenting the uplink spectrum resource based on a plurality of unavailable resource blocks (RBs) in an uplink time slot to obtain a plurality of resource segments; For a current UE to be scheduled, determining the channel capacity of each resource segment based on each resource segment; Allocating a plurality of continuous available RBs to the current UE to be scheduled based on a target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
[0006] According to the uplink spectrum resource allocation method provided by the application, the channel capacity of each resource segment is determined based on each resource segment, comprising: For each resource segment, determining the signal-to-interference-plus-noise ratio (SINR) when the current UE to be scheduled uses all RBs in the resource segment; Determining the channel capacity of the resource segment based on the SINR.
[0007] According to the uplink spectrum resource allocation method provided by the application, the channel capacity of the resource segment is determined based on the SINR, comprising: Determining the index value of the transmission modulation and coding strategy (MCS) when the current UE to be scheduled uses all RBs in the resource segment based on the SINR; Determining the channel capacity of the resource segment based on the total number of RBs contained in the resource segment, the index value of the transmission MCS, the number of transmission layers of the current UE to be scheduled, and the number of orthogonal frequency division multiplexing (OFDM) symbols of the current UE to be scheduled in the time domain resource.
[0008] According to the uplink spectrum resource allocation method provided by the application, a plurality of continuous available RBs are allocated to the current UE to be scheduled based on a target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment, comprising: Determining whether the maximum channel capacity meets the total number of bits that the current UE to be scheduled needs to transmit; In the case that the maximum channel capacity does not meet the total number of bits that the current UE to be scheduled needs to transmit, allocating all RBs in the target resource segment corresponding to the maximum channel capacity to the current UE to be scheduled; In the case that the maximum channel capacity meets the total number of bits that the current UE to be scheduled needs to transmit, allocating a plurality of continuous available RBs to the current UE to be scheduled based on the target resource segment in an iterative allocation manner.
[0009] According to an uplink spectrum resource allocation method provided by the present invention, the step of allocating multiple consecutively available RBs to the currently scheduled UE based on the target resource segment using an iterative allocation method includes: Step A: For each iteration, based on the RB step size of the current iteration and the index value of the last RB of the target resource segment, determine the index value of the last RB allocated in the target resource segment during the current iteration; Step B: Based on the index values of the last RB allocated to the target resource segment and the index values of the first RB of the target resource segment, determine the total number of RBs allocated to the target resource segment in the current iteration; Step C: Determine the transport block size allocated in the current iteration based on the total number of RBs allocated in the target resource segment during the current iteration; Step D: Determine whether the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment; Step E: If, during the current iteration, the index value of the last RB allocated to the target resource segment is not equal to the index value of the last RB of the target resource segment, determine the RB step size for the next iteration based on the transport block size allocated in the current iteration, and repeat steps A-E above until, during the current iteration, the index value of the last RB allocated to the target resource segment is equal to the index value of the last RB of the target resource segment, or the transport block size allocated in the current iteration satisfies the total number of bits that the currently scheduled UE needs to transmit. At this point, the iteration ends, and based on the final total number of RBs allocated to the target resource segment and the index value of the starting RB of the target resource segment, allocate multiple consecutive available RBs to the currently scheduled UE.
[0010] According to an uplink spectrum resource allocation method provided by the present invention, determining the transport block size allocated in the current round of iteration based on the total number of RBs allocated in the target resource segment during the current round of iteration includes: The SINR of the current iteration is determined based on the uplink received power of the UE to be scheduled, the sum of the interference plus noise power IpN corresponding to the total number of RBs allocated in the target resource segment during the current iteration, and the outer loop adjustment value of the uplink SINR of the UE to be scheduled. Based on the SINR of the current iteration, determine the MCS index value assigned in the current iteration; The transport block size allocated in the current round of iteration is determined based on the MCS index value allocated in the current round of iteration, the total number of RBs allocated in the target resource segment in the current round of iteration, the transport layer number of the currently scheduled UE, and the number of OFDM symbols of the currently scheduled UE in the time domain resources.
[0011] According to an uplink spectrum resource allocation method provided by the present invention, determining the RB step size for the next iteration based on the transport block size allocated in the current iteration includes: Determine whether the size of the transport block allocated in the current iteration is less than the total number of bits that the currently scheduled UE needs to transmit; If the transport block size in the current iteration is less than the total number of bits that the currently scheduled UE needs to transmit, determine whether the transport block size allocated in the previous iteration is less than the transport block size allocated in the current iteration. Based on the judgment results, determine the RB step size for the next iteration.
[0012] According to an uplink spectrum resource allocation method provided by the present invention, determining the RB step size for the next iteration based on the judgment result includes: If the transport block size allocated in the previous iteration is smaller than the transport block size in the current iteration, the RB step size for the next iteration is determined based on the spread factor, the RB step size for the current iteration, the total number of bits that the currently scheduled UE needs to transmit, the transport block size for the current iteration, and the transport block size allocated in the previous iteration. If the size of the transport block allocated in the previous iteration is not less than the size of the transport block in the current iteration, the RB step size for the next iteration is calculated based on the RB step size of the current iteration.
[0013] The present invention also provides an uplink spectrum resource allocation device, comprising: The resource segmentation module is used to segment uplink spectrum resources based on multiple unavailable resource blocks (RBs) in the uplink time slot, resulting in multiple resource segments. The determination module is used to determine the channel capacity of each resource segment based on each resource segment for the current UE to be scheduled; The allocation module is used to allocate multiple consecutively available Resource Blocks (RBs) to the currently scheduled UE based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
[0014] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the uplink spectrum resource allocation device method as described above.
[0015] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the uplink spectrum resource allocation device method as described above.
[0016] The present invention also provides a computer program product, including a computer program that, when executed by a processor, implements the uplink spectrum resource allocation device method as described above.
[0017] The uplink spectrum resource allocation method, apparatus, electronic device, and storage medium provided by this invention segment uplink spectrum resources based on multiple unavailable resource blocks (RBs) in the uplink time slots to obtain multiple resource segments. For the currently scheduled UE, the channel capacity of each resource segment is determined based on each of the resource segments. Based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment, multiple consecutive available RBs are allocated to the currently scheduled UE. By segmenting uplink spectrum resources into multiple resource segments, the target resource segment corresponding to the maximum channel capacity is determined. Then, multiple consecutive RBs are allocated to the currently scheduled UE based on the target resource segment, thus realizing the allocation of uplink spectrum resources. In spectrum resource allocation, RBs that are unavailable due to strong interference can be avoided. Furthermore, when there are many UEs to be scheduled in the uplink time slots, it can effectively resist interference while greatly reducing the waste of spectrum resources, thereby improving the effective utilization rate of spectrum resources. Attached Figure Description
[0018] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0019] Figure 1 This is a flowchart illustrating the uplink spectrum resource allocation method provided by the present invention.
[0020] Figure 2 This is a schematic diagram of the process for obtaining the unavailable RB list provided by the present invention.
[0021] Figure 3 This is a schematic diagram of the process for segmenting uplink spectrum resources provided by the present invention.
[0022] Figure 4 This is a flowchart illustrating the process of determining the maximum channel capacity and the target resource segment corresponding to the maximum channel capacity, provided by the present invention.
[0023] Figure 5 This is a schematic diagram of the iterative allocation process provided by the present invention.
[0024] Figure 6 This is a schematic diagram of the uplink spectrum resource allocation device provided by the present invention.
[0025] Figure 7This is a schematic diagram of the structure of the electronic device provided by the present invention. Detailed Implementation
[0026] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.
[0027] To address interference issues in wireless communication, continuous research and development of new anti-interference technologies are necessary. These technologies include spectrum allocation and management, antenna technology, signal coding and modulation, and channel selection. By employing reasonable spectrum planning and power control, selecting appropriate antenna types and performance parameters, adopting advanced signal coding and modulation techniques, and utilizing channel selection or switching, signal interference in wireless communication can be effectively reduced, thereby improving communication quality and efficiency.
[0028] The following is combined Figures 1-5 The uplink spectrum resource allocation method of the present invention is described.
[0029] Figure 1 This is a flowchart illustrating the uplink spectrum resource allocation method provided by the present invention, as follows: Figure 1 As shown, the method includes steps 101-103.
[0030] Step 101: Based on multiple unavailable resource blocks (RBs) in the uplink time slot, the uplink spectrum resources are segmented to obtain multiple resource segments.
[0031] It should be noted that the uplink spectrum resource allocation method provided by this invention can be applied to scenarios involving uplink spectrum resource allocation for UEs. The executing entity of this method can be an uplink spectrum resource allocation device, such as an electronic device, an uplink medium access control (MAC) scheduler for cellless base stations, or a control module in the uplink spectrum resource allocation device for executing the uplink spectrum resource allocation method. This invention uses the "RAT1" method to allocate uplink spectrum resources for the UE. The "RAT1" method means allocating several consecutive RBs in one resource segment to the UE based on multiple RBs included in an RBG.
[0032] Uplink spectrum resources refer to the spectrum resources of the uplink bandwidth part (BWP). Unavailable RBs refer to multiple RBs in the uplink time slots that are unavailable on the service channel (such as the Physical Uplink Shared Channel (PUSCH)) due to strong interference, occupation by the control channel or random access channel. For example, the control channel is the Physical Uplink Control Channel (PUCCH), and the random access channel is the Physical Random Access Channel (PRACH).
[0033] Obtain the list of unavailable RBs in the current uplink slot. This list will include RBs occupied by Physical Random Access Channel (PRACH) and Physical Uplink Control Channel (PUCCH) formats 1, 3, or 4 (i.e. long format PUCCH), as well as RBs that are unavailable due to severe interference.
[0034] After obtaining multiple unavailable resource blocks (RBs) in the uplink time slot, the uplink spectrum resources can be segmented using the "two-pointer method" to obtain multiple resource segments.
[0035] Step 102: For the UE to be scheduled, determine the channel capacity of each resource segment based on each resource segment.
[0036] Specifically, for the UE currently to be scheduled, the channel capacity of each resource segment can be determined separately based on each resource segment. The UE currently to be scheduled is the UE with the highest priority among multiple UEs to be scheduled.
[0037] Step 103: Based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment, allocate multiple continuously available RBs to the currently scheduled UE.
[0038] It should be noted that when the uplink MAC scheduler allocates frequency domain resources to all UEs to be scheduled in the current uplink time slot, it must follow the calculated resource allocation priority of each UE. That is, UEs at the front of the queue will have their transmission bit rate requirements met first. Furthermore, due to the "RAT1" constraint, each UE can only be allocated several consecutive RBs within one resource segment. To ensure the transmission bit rate requirements of the current UE as much as possible, before allocating RBs to the current UE, the maximum channel capacity of each resource segment for the current UE needs to be calculated (to reduce the time complexity of the algorithm, and considering that all RBs subject to strong interference have been excluded from each resource segment, it is assumed here that the channel capacity of the resource segment will reach its maximum when all RBs in the resource segment are used). Then, the resource segment with the largest channel capacity is selected, and RBs are allocated to the current UE through several iterations.
[0039] Specifically, the maximum channel capacity is determined from the channel capacity of each resource segment, and multiple continuously available resource blocks (RBs) are allocated to the currently scheduled UE based on the target resource segment corresponding to the maximum channel capacity.
[0040] The uplink spectrum resource allocation method provided by this invention segments the uplink spectrum resource based on multiple unavailable resource blocks (RBs) in the uplink time slot, obtaining multiple resource segments. For the currently scheduled UE, the channel capacity of each resource segment is determined based on each of the resource segments. Based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment, multiple consecutive available RBs are allocated to the currently scheduled UE. By segmenting the uplink spectrum resource into multiple resource segments, the target resource segment corresponding to the maximum channel capacity is determined. Then, multiple consecutive RBs are allocated to the currently scheduled UE based on the target resource segment, thus realizing the allocation of uplink spectrum resources. This method avoids RBs that are unavailable due to strong interference during spectrum resource allocation. Furthermore, when there are many UEs scheduled in the uplink time slot, it can effectively resist interference while greatly reducing the waste of spectrum resources, thereby improving the effective utilization rate of spectrum resources.
[0041] Based on the above description, the following section explains how to obtain the list of unavailable RBs in the current uplink time slot and how to segment uplink spectrum resources using the "two-pointer method".
[0042] Figure 2 This is a schematic diagram of the process for obtaining the unavailable RB list provided by the present invention, as shown below. Figure 2 As shown, it includes steps 201-209.
[0043] Step 201: The uplink MAC scheduler reads the cell configuration parameters of the cell without a cellular base station to obtain all the RBs that may exist in the uplink time slot and are occupied by the PRACH channel, thus obtaining the "PRACH Occupied RB List". The cell configuration parameters are the PRACH configuration index (prach-ConfigurationIndex), message 1 (msg1) - Orthogonal Frequency Division Multiplexing (FDM), and message 1 (msg1) - FrequencyStart value (FrequencyStart).
[0044] Step 202: The uplink MAC scheduler reads the relevant configuration parameters of the scheduling request (SR) and obtains the RBs that may be occupied by PUCCH format 1 / 3 / 4 (i.e. long format PUCCH) in the current uplink time slot from the downlink MAC scheduler, thus obtaining the "PUCCH occupied RB list".
[0045] Step 203: The physical layer of the cellular base station performs interference plus noise (IpN) detection on each RB in the uplink time slot and reports the measurement results to the uplink MAC scheduler.
[0046] Step 204: During initialization, the uplink MAC scheduler creates an empty "strong interference RB list" and sets the current RB index value to 0 (RbIdx=0).
[0047] Step 205: Determine if the current RB index value is less than the total number of RBs contained in the upstream BWP. If the current RB index value is less than the total number of RBs contained in the upstream BWP, proceed to step 206; if the current RB index value is not less than the total number of RBs contained in the upstream BWP, proceed to step 209.
[0048] Step 206: Determine whether the current RB's IpN value (RB[RbIdx].IpN) is greater than a preset threshold (IpnThresholdForUnavailRb). RB[RbIdx].IpN represents the sum of "interference + noise" power detected by the physical layer of the cellular base station on the uplink RB with index value RbIdx, in mW; IpnThresholdForUnavailRb represents the IpN threshold value for determining that the uplink RB belongs to the RB "unusable for data transmission due to strong interference". That is, when the IpN detected on the uplink RB is higher than the IpN threshold value, the RB will not be allocated to any UE for uplink data transmission. If the RB's IpN value is greater than the preset threshold, proceed to step 207; if the RB's IpN value is not greater than the preset threshold, proceed to step 208.
[0049] Step 207: Add the current RB to the "Strong Interference RB List".
[0050] Step 208: Increment the current RB index value by 1, i.e., RbIdx++, and proceed to step 205.
[0051] Step 209: The uplink MAC scheduler merges the above "PRACH occupied RB list", "PUCCH occupied RB list" and "strong interference RB list", and then removes duplicate RBs to obtain the "unavailable RB list" for the uplink time slot.
[0052] Figure 3 This is a flowchart illustrating the uplink spectrum resource segmentation process provided by the present invention, as follows: Figure 3 As shown, it includes steps 301-316.
[0053] Step 301: Input the list of unavailable RBs, BwpStart, and BwpSize. BwpStart represents the starting RB index of the uplink bandwidth portion, and BwpSize represents the total number of RBs included in the uplink bandwidth portion.
[0054] Step 302: Initialize MaxSegNum, StartRB, EndRB, and SegIdx. MaxSegNum represents the maximum number of resource segments into which the uplink BWP is divided by all unavailable RBs. StartRB represents the starting RB index of the newly found resource segment and is initialized to the starting RB index of the uplink BWP, i.e., StartRB = BwpStart. EndRB represents the ending RB index of the newly found resource segment and is initialized to the starting RB index of the uplink BWP, i.e., EndRB = BwpStart.
[0055] Step 303: Define the structure and array. Structure: `Struct RbSegment{RbStart,RbEnd,RbLen,TotIpN}`, where `Segment[SegIdx].RbStart` represents the starting RB index of the resource segment with index value `SegIdx`; `Segment[SegIdx].RbEnd` represents the ending RB index of the resource segment with index value `SegIdx`; `Segment[SegIdx].RbLen` represents the total number of RBs contained in the resource segment with index value `SegIdx`; and `Segment[SegIdx].TotIpN` represents the sum of the "interference + noise" power of all RBs within the resource segment with index value `SegIdx`. Array: `RbSegment Segment[MaxSegNum]`.
[0056] Step 304: Determine whether StartRB <= BwpEnd && EndRB <= BwpEnd. If satisfied, go to Step 305; if not satisfied, go to Step 316.
[0057] Step 305: Determine whether StartRB is an unavailable RB && StartRB < BwpEnd. If StartRB is unavailable and StartRB < BwpEnd, go to Step 306; if StartRB is available or StartRB < BwpEnd, go to Step 307.
[0058] Step 306: Increment StartRB by 1, i.e., StartRB++, and go to Step 305.
[0059] Step 307: Determine whether StartRB == BwpEnd && StartRB is an available RB. If StartRB is not equal to BwpEnd or StartRB is an unavailable RB, go to Step 308. If StartRB is equal to BwpEnd && StartRB is an available RB, go to Step 316.
[0060] Step 308: Initialize the total IpN of this resource segment to the IpN of the starting RB of this resource segment, i.e., Segment[SegIdx].TotIpN = RB[StartRB].IpN.
[0061] Step 309: Point the pointer "EndRB" to the next RB index after the starting RB of this resource segment, i.e., EndRB = StartRB + 1.
[0062] Step 310: Fix the pointer "StartRB" and keep moving the pointer "EndRB" forward. Determine whether EndRB is an available RB && EndRB <= BwpEnd. If satisfied, go to Step 311; if not satisfied, go to Step 313.
[0063] Step 311: Accumulate the IpN on the RB it points to during each movement, i.e., Segment[SegIdx].TotIpN += RB[StartRB].IpN.
[0064] Step 312: Increment EndRB by 1, i.e., EndRB++, and go to Step 310.
[0065] Step 313: At this point, the RB index preceding the RB pointed to by the pointer "EndRB" is the end RB index of the newly found resource segment. The difference between the pointers "EndRB" and "StartRB" is the total number of RBs contained in the newly found resource segment, i.e., Segment[SegIdx].RbStart = StartRB, Segment[SegIdx].RbEnd = EndRB - 1, Segment[SegIdx].RbLen = EndRB - StartRB.
[0066] Step 314: Increment the resource segment index SegIdx by 1, i.e., SegIdx++.
[0067] Step 315: Set the pointer "StartRB" to the next RB index after the RB pointed to by the pointer "EndRB", that is, StartRB = EndRB + 1, and start searching for the next resource segment (resource segment index SegIdx++).
[0068] Step 316: When the pointer "StartRB" or "EndRB" points to the next RB index after the last RB of BWP (i.e., the end of BWP is reached), the sub-algorithm ends. At this time, SegIdx is equal to the total number of resource segments found, i.e., SegNum = SegIdx (Note: SegIdx represents the resource segment index value, which is initially 0 and increments by 1 for each new resource segment found). Output the number of resource segments SegNum = SegIdx.
[0069] Optionally, the specific implementation of step 102 above includes: For each resource segment, determine the signal-to-interference-plus-noise ratio (SINR) when the currently scheduled UE uses all RBs in the resource segment; based on the SINR, determine the channel capacity of the resource segment.
[0070] Specifically, for each resource segment, the SINR when the UE to be scheduled uses all RBs in the resource segment is calculated using formula (1).
[0071] Wherein, UE[UeIdx][CurSegIdx].SINR represents the SINR of the UE when using all RBs in the resource segment; UE[UeIdx].UeRxPwr represents the uplink received power (in dBm) of the UE with index value UeIdx, given by the physical layer measurement of the cellular base station; Segment[CurSegIdx].TotIpN represents the sum of "interference + noise" power (in mW) of all RBs in the resource segment with index value SegIdx; UE[UeIdx].ULOutloopAdj represents the outer loop adjustment value of the uplink SINR of the UE with index value UeIdx, which is a pre-known parameter.
[0072] Based on SINR, the channel capacity of the resource segment can be further determined.
[0073] It's important to note that in a cellular architecture, the UE's uplink data transmission is jointly detected by the receiving antennas of each Access Point (AP). Therefore, unlike traditional 4G / 5G base stations, when configuring the UE's transmit power, there's no need to consider interference with neighboring cells (in fact, there are no so-called "neighboring cells" in a cellular architecture). The power reference value (P0) can be configured to the maximum. P0 mainly refers to the power reference value of the uplink signals (such as PUSCH, PUCCH, etc.) that the wireless base station expects to receive. The result of this configuration is that regardless of the uplink bandwidth allocated to the UE by the base station, the UE will always transmit uplink data at a constant maximum transmit power Pmax. Therefore, the uplink receive power of the UE detected by the physical layer of the cellular base station on each RB is only related to the uplink path loss, and is independent of the number of uplink RBs used by the UE. This is fundamentally different from traditional 4G / 5G cellular cells and is also the theoretical basis for the formula for calculating SINR mentioned above.
[0074] In this embodiment, for each resource segment, the signal-to-interference-plus-noise ratio (SINR) is determined when the UE to be scheduled uses all RBs in the resource segment; then, based on the SINR, the channel capacity of the resource segment is determined, and the target resource corresponding to the maximum channel capacity is determined, thereby realizing the allocation of uplink spectrum resources, greatly reducing the waste of spectrum resources, and thus improving the effective utilization rate of spectrum resources.
[0075] Optionally, determining the channel capacity of the resource segment based on the SINR includes: Based on the SINR, determine the index value of the transmission modulation and coding scheme (MCS) when the currently scheduled UE uses all RBs in the resource segment; based on the total number of RBs in the resource segment, the index value of the transmission MCS, the number of transmission layers of the currently scheduled UE, and the number of orthogonal frequency division multiplexing (OFDM) symbols of the currently scheduled UE in the time domain, determine the channel capacity of the resource segment.
[0076] Specifically, based on SINR, querying the "SINR to MCS mapping table" can yield the transmission modulation and coding scheme (MCS) index value (UE[UeIdx][CurSegIdx].Mcs) when the currently scheduled UE uses all RBs in the current resource segment, and save it as an attribute of the currently scheduled UE using the resource segment: UE[UeIdx][CurSegIdx].SegMcs=UE[UeIdx][CurSegIdx].Mcs; where the "SINR to MCS mapping table" represents the mapping relationship between SINR and MCS.
[0077] Based on the total number of RBs contained in the resource segment (Segment[CurSegIdx].RbLen), the index value of the transmission MCS (UE[UeIdx][CurSegIdx].SegMcs), the number of transmission layers of the currently scheduled UE (UE[UeIdx].LayerNum), and the number of Orthogonal Frequency Division Multiplexing (OFDM) symbols of the currently scheduled UE in the time domain resource (UE[UeIdx].SymNum), the "Transmission Block Size Configuration Table" can be consulted to obtain the transmission block size (TBSize) when the currently scheduled UE uses all RBs in the current resource segment, and the transmission block size (TBSize) is stored as the channel capacity (UE[UeIdx][CurSegIdx].SegCap) of the currently scheduled UE using the resource segment: that is, UE[UeIdx][CurSegIdx].SegCap=UE[UeIdx][CurSegIdx].TBSize.
[0078] For the UE to be scheduled, after determining the channel capacity of each resource segment, the target resource segment corresponding to the maximum channel capacity is determined, and the index value of the target resource segment UE[UeIdx].MaxSegIdx and the channel capacity UE[UeIdx][MaxSegIdx].SegCap are recorded.
[0079] It should be noted that when the uplink MAC scheduler allocates frequency domain resources to all UEs to be scheduled in the current uplink time slot, it must follow the resource allocation priority of each UE. That is, UEs at the front of the queue will have their transmission bit rate requirements met first. Furthermore, due to the "RAT1" constraint, each UE can only be allocated several consecutive RBs within one resource segment. To ensure the transmission bit rate requirements of the current UE as much as possible, before allocating RBs to the current UE, the maximum channel capacity of each resource segment for the current UE needs to be calculated (to reduce the time complexity of the algorithm, and considering that all RBs subject to strong interference have been excluded from each resource segment, it is assumed here that the channel capacity of the resource segment will reach its maximum when all RBs in the resource segment are used). Then, the resource segment with the largest channel capacity is selected, and RBs are allocated to the current UE through several iterations.
[0080] The reason for storing the maximum channel capacity of the resource segment and the MCS used by the currently scheduled UE when transmitting with this maximum channel capacity as attribute parameters of the currently scheduled UE in a specific resource segment is as follows: When the maximum channel capacity of the resource segment with the largest channel capacity cannot meet the transmission bit rate requirements of the currently scheduled UE, the uplink MAC scheduler can directly allocate all RBs of the resource segment to the currently scheduled UE and specify the stored maximum channel capacity as the transport block size. The stored MCS used by the UE when transmitting with this maximum channel capacity is the selected MCS, thus eliminating the need for multiple iterative calculations and further reducing the time complexity of the algorithm.
[0081] In this embodiment, the index value of the MCS when the UE to be scheduled uses all RBs in the resource segment is determined based on SINR; then, based on the total number of RBs in the resource segment, the index value of the transmission MCS, the transmission layer number of the UE to be scheduled, and the number of OFDM symbols of the UE to be scheduled in the time domain, the channel capacity of the resource segment is determined, and the target resource corresponding to the maximum channel capacity is determined, thereby realizing the allocation of uplink spectrum resources, greatly reducing the waste of spectrum resources, and thus improving the effective utilization rate of spectrum resources.
[0082] Figure 4 This is a flowchart illustrating the process of determining the maximum channel capacity and the target resource segment corresponding to the maximum channel capacity, as provided by the present invention. Figure 4 As shown, it includes steps 401-413.
[0083] Step 401, Input parameters: the uplink received power of the UE (UE[UeIdx].UeRxPwr), the outer loop adjustment value of the uplink SINR of the UE (UE[UeIdx].ULOutloopAdj), the number of transmission layers of the UE (UE[UeIdx].LayerNum), the number of OFDM symbols of the UE in the time domain resource (UE[UeIdx].SymNum), the number of resource segments (SegNum).
[0084] Step 402, Initialize the maximum channel capacity (UE[UeIdx].MaxChanCap), the resource segment corresponding to the maximum channel capacity (UE[UeIdx].MaxSegIdx), and the current resource segment (CurSegIdx) to 0, that is, UE[UeIdx].MaxChanCap = 0, UE[UeIdx].MaxSegIdx = 0, CurSegIdx = 0.
[0085] Step 403, Determine whether the current resource segment index is less than the number of resource segments, that is, CurSegIdx < SegNum. If the current resource segment index is less than the number of resource segments, go to Step 404; if the current resource segment index is not less than the number of resource segments, go to Step 413.
[0086] Step 404, Input parameters: the total number of RBs included in the resource segment (Segment[CurSegIdx].RbLen), the index values of the transmission MCSs corresponding to all the RBs included in the resource segment (UE[UeIdx][CurSegIdx].SegMcs), and the sum of the IpNs corresponding to all the RBs included in the resource segment (Segment[CurSegIdx].TotIpN).
[0087] Step 405, Determine whether the total number of RBs included in the resource segment is equal to 0, that is, Segment[CurSegIdx].RbLen == 0? If the total number of RBs included in the resource segment is equal to 0, go to Step 406; if the total number of RBs included in the resource segment is not equal to 0, go to Step 407.
[0088] Step 406, Increment the current resource segment index by 1, that is, CurSegIdx++.
[0089] Step 407, For the current resource segment, determine the SINR when the UE uses all the RBs in the resource segment; based on the SINR, query the "SINR to MCS mapping table" to determine the index value of the transmission MCS when the UE uses all the RBs in the resource segment.
[0090] Step 408: Based on the total number of RBs included in the resource segment, the index value of the transmission MCS, the number of transmission layers of the UE, and the number of OFDM symbols of the UE in the time-domain resource, query the "Transport Block Size Configuration Table" to obtain the transport block size (TBSize) when the currently scheduled UE uses all the RBs in the current resource segment, and use the transport block size (TBSize) as the channel capacity of the UE for this resource segment.
[0091] Step 409: Output parameters: the channel capacity of the resource segment (UE[UeIdx][CurSegIdx].SegCap) and the index value of the transmission MCS when the UE uses all the RBs in the resource segment (UE[UeIdx][CurSegIdx].SegMcs).
[0092] Step 410: Determine whether the initialized maximum channel capacity is less than the channel capacity of the output resource segment, that is, UE[UeIdx].MaxChanCap < UE[UeIdx][CurSegIdx].SegCap. If the initialized maximum channel capacity is less than the channel capacity of the output resource segment, go to Step 411; if the initialized maximum channel capacity is not less than the channel capacity of the output resource segment, go to Step 412.
[0093] Step 411: Assign the channel capacity of the output resource segment to the initialized maximum channel capacity, that is, UE[UeIdx].MaxChanCap = UE[UeIdx][CurSegIdx].SegCap, and assign the index value of the current resource segment to the resource segment corresponding to the maximum channel capacity, that is, UE[UeIdx].MaxSegIdx = CurSegIdx.
[0094] Step 412: Increment the index value of the current resource segment by 1, that is, CurSegIdx++.
[0095] Step 413: Output the parameters of the maximum channel capacity and the resource segment corresponding to the maximum channel capacity, that is, UE[UeIdx].MaxSegIdx, UE[UeIdx].MaxSegIdx = UE[UeIdx].MaxChanCap.
[0096] Optionally, the specific implementation manner of the above Step 103 includes: Determine whether the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit; if the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, allocate all RBs in the target resource segment corresponding to the maximum channel capacity to the currently scheduled UE; if the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit, allocate multiple consecutive available RBs to the currently scheduled UE based on the target resource segment using an iterative allocation method.
[0097] Specifically, the total number of bits that the currently scheduled UE needs to transmit includes the total number of bits that the currently scheduled UE needs to transmit in the data plane and the number of bits that need to be carried on the service channel PUSCH for extended uplink control information (UCI). It is then determined whether the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit. If the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, all RBs of the target resource segment are allocated to the currently scheduled UE without subsequent RB allocation iterations. The attributes of the target resource segment are directly assigned to the currently scheduled UE and output. The attributes of the target resource segment include the transmission MCS, the starting RB, the total number of RBs, and the channel capacity, i.e.: UE[UeIdx].Mcs=UE[UeIdx][MaxSegIdx].SegMcs, UE[UeIdx].RbStart=Segment[UE[UeIdx].MaxSegIdx].RbStart, UE[UeIdx].RbNum=Segment[UE[UeIdx].MaxSegIdx].RbLen, UE[UeIdx].TbSize = UE[UeIdx][MaxSegIdx].SegCap. And update the remaining number of RBs in the target resource segment: Segment[UE[UeIdx].MaxSegIdx].RbLen=0.
[0098] If the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit, multiple consecutive available Resource Blocks (RBs) are allocated to the currently scheduled UE using an iterative allocation method based on the target resource segment.
[0099] In this embodiment, it is determined whether the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit. If the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, all Resource Blocks (RBs) in the target resource segment corresponding to the maximum channel capacity are allocated to the currently scheduled UE. If the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit, multiple consecutively available RBs are allocated to the currently scheduled UE based on the target resource segment using an iterative allocation method. By determining the maximum channel capacity and the total number of bits that the currently scheduled UE needs to transmit, uplink spectrum resources are allocated. This avoids RBs that are unusable due to strong interference during spectrum resource allocation. Furthermore, when there are many uplink time slots for scheduled UEs, it can effectively resist interference while greatly reducing the waste of spectrum resources, thereby improving the effective utilization rate of spectrum resources.
[0100] Optionally, the step of allocating multiple consecutively available Resource Blocks (RBs) to the currently scheduled UE based on the target resource segment using an iterative allocation method includes: Step A: For each iteration, based on the RB step size of the current iteration and the index value of the last RB of the target resource segment, determine the index value of the last RB allocated in the target resource segment during the current iteration.
[0101] For each iteration, based on the RB step size (UE[UeIdx].RbStepSizeCur) of the current iteration and the index value of the last RB of the target resource segment (Segment[MaxSegIdx].RbEnd), the index value of the last RB allocated in the target resource segment in the current iteration (MaxSegEndRbIdxCur) is determined by formula (2).
[0102] Step B: Based on the index values of the last RB allocated to the target resource segment and the index values of the first RB of the target resource segment, determine the total number of RBs allocated to the target resource segment in the current iteration.
[0103] Specifically, based on the index value of the last RB allocated in the target resource segment (MaxSegEndRbIdxCur) and the index value of the starting RB of the target resource segment (Segment[MaxSegIdx].RbStart), the total number of RBs allocated in the target resource segment in the current iteration (UE[UeIdx].TempRbNum) is determined using formula (3).
[0104] Step C: Determine the transport block size allocated in the current iteration based on the total number of RBs allocated in the target resource segment during the current iteration.
[0105] Specifically, based on the total number of RBs allocated in the target resource segment during the current iteration (UE[UeIdx].TempRbNum), the transport block size allocated in the current iteration (UE[UeIdx].TempTBSize) can be further determined.
[0106] Step D: Determine whether the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment.
[0107] Specifically, determine whether the index value of the last RB allocated in the target resource segment in the current iteration (MaxSegEndRbIdxCur) is equal to the index value of the last RB of the target resource segment (Segment[MaxSegIdx].RbEnd).
[0108] Step E: If, during the current iteration, the index value of the last RB allocated to the target resource segment is not equal to the index value of the last RB of the target resource segment, determine the RB step size for the next iteration based on the transport block size allocated in the current iteration, and repeat steps A-E above until, during the current iteration, the index value of the last RB allocated to the target resource segment is equal to the index value of the last RB of the target resource segment, or the transport block size allocated in the current iteration satisfies the total number of bits required to be transmitted by the currently scheduled UE. At this point, the iteration ends, and based on the final total number of RBs allocated to the target resource segment and the index value of the starting RB of the target resource segment, allocate multiple consecutive available RBs to the currently scheduled UE.
[0109] Specifically, if the index value of the last RB allocated in the target resource segment during the current iteration is not equal to the index value of the last RB of the target resource segment, it indicates that the iteration has not yet reached the last RB of the target resource. Based on the transport block size allocated in the current iteration, the RB step size for the next iteration can be determined, and steps A-E above are repeated until the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment, or the transport block size allocated in the current iteration can meet the total number of bits required to be transmitted by the UE to be scheduled. At this point, the iteration ends, and the total number of RBs allocated in the target resource segment (UE[UeId)) is determined. The system allocates multiple consecutive available RBs to the currently scheduled UE using the following parameters: UE[UeIdx].TempRbNum, the allocated transport block size (UE[UeIdx].TempTBSize), and the index value of the starting RB of the target resource segment (Segment[MaxSegIdx].RbStart). The final scheduling parameters are then output: UE[UeIdx].RbStart = Segment[MaxSegIdx].RbStart, UE[UeIdx].RbNum = UE[UeIdx].TempRbNum, UE[UeIdx].TbSize = UE[UeIdx].TempRbNum. TempTBSize.
[0110] Optionally, the final iteratively allocated MCS index value (UE[UeIdx].TempMcs) can also be output, where UE[UeIdx].Mcs = UE[UeIdx].TempMcs. Simultaneously, the relevant parameters of the remaining RBs in the target resource segment are updated: the index value of the starting RB of the remaining RBs (i.e., Segment[MaxSegIdx].RbStart = MaxSegEndRbIdxCur + 1), and the number of remaining RBs (i.e., Segment[MaxSegIdx].Len = Segment[MaxSegIdx].RbEnd - Segment[MaxSegIdx]. RbStart+1), the sum of IpN of the remaining RBs (i.e., Segment[MaxSegIdx].TotIpN-=UE[UeIdx].TempTotIpN).
[0111] Optionally, the specific implementation of step C above includes: 1) Determine the SINR for the current round of iteration based on the uplink received power of the current UE to be scheduled, the sum of the interference plus noise power IpN corresponding to the total number of RBs allocated in the target resource segment during the current round of iteration, and the outer loop adjustment value of the uplink SINR of the current UE to be scheduled.
[0112] Specifically, based on the uplink received power of the current UE to be scheduled (UE[UeIdx].UeRxPwr), the sum of interference plus noise power IpN corresponding to the total number of RBs allocated in the target resource segment during the current iteration (UE[UeIdx].TempTotIpN), and the outer loop adjustment value of the uplink SINR of the current UE to be scheduled (UE[UeIdx].ULOutloopAdj), the SINR of the current iteration (UE[UeIdx].TempSinr) can be determined by the above formula (4).
[0113] 2) Based on the SINR of the current iteration, determine the MCS index value assigned in the current iteration.
[0114] Specifically, based on the SINR of the current round of iteration, the "SINR to MCS mapping table" is queried to obtain the MCS index value (UE[UeIdx].TempMcs) assigned to the UE to be scheduled in the current round of iteration.
[0115] 3) Determine the transport block size allocated in the current round of iteration based on the MCS index value allocated in the current round of iteration, the total number of RBs allocated in the target resource segment in the current round of iteration, the transport layer number of the currently scheduled UE, and the number of OFDM symbols of the currently scheduled UE in the time domain resources.
[0116] Specifically, based on the MCS index value allocated in the current round of iteration (UE[UeIdx].TempMcs), the total number of RBs allocated in the target resource segment in the current round of iteration (UE[UeIdx].TempRbNum), the number of transport layers of the UE (UE[UeIdx].LayerNum), and the number of OFDM symbols of the UE in the time domain resources (UE[UeIdx].SymNum), the "Transport Block Size Configuration Table" is queried to obtain the transport block size (UE[UeIdx].TempTBSize) allocated to the UE to be scheduled in the current round of iteration.
[0117] Optionally, determining the RB step size for the next iteration based on the transport block size allocated in the current iteration includes: Determine whether the size of the transport block allocated in the current iteration is less than the total number of bits that the UE to be scheduled needs to transmit; if the size of the transport block in the current iteration is less than the total number of bits that the UE to be scheduled needs to transmit, determine whether the size of the transport block allocated in the previous iteration is less than the size of the transport block allocated in the current iteration; based on the determination result, determine the RB step size of the iteration.
[0118] Specifically, it is determined whether the transport block size allocated in the current iteration (UE[UeIdx].TempTBSize) is less than the total number of bits that the currently scheduled UE needs to transmit (UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI). If the transport block size in the current iteration (UE[UeIdx].TempTBSize) is less than the total number of bits that the currently scheduled UE needs to transmit, it indicates that iteration needs to continue, and it is determined whether the transport block size allocated in the previous iteration (UE[UeIdx].TempTBSizePrev) is less than the transport block size allocated in the current iteration (UE[UeIdx].TempTBSize). Based on the determination result, the RB step size of the next iteration can be determined.
[0119] Optionally, if the transport block size at the time of the current iteration is not less than the total number of bits that the UE to be scheduled needs to transmit, the iteration ends, and based on the total number of RBs allocated to the target resource segment obtained in the current iteration (UE[UeIdx].TempRbNum), the allocated transport block size (UE[UeIdx].TempTBSize), and the index value of the starting RB of the target resource segment (Segment[MaxSegIdx].RbStart), multiple consecutive available RBs are allocated to the UE to be scheduled. That is, the scheduling parameters UE[UeIdx].RbStart=Segment[MaxSegIdx].RbStart, UE[UeIdx].RbNum=UE[UeIdx].TempRbNum, UE[UeIdx].TbSize=UE[UeIdx]. TempTBSize.
[0120] Optionally, the final iteratively allocated MCS index value (UE[UeIdx].TempMcs) can also be output, where UE[UeIdx].Mcs = UE[UeIdx].TempMcs. Simultaneously, the relevant parameters of the remaining RBs in the target resource segment are updated: the index value of the starting RB of the remaining RBs (i.e., Segment[MaxSegIdx].RbStart = MaxSegEndRbIdxCur + 1), and the number of remaining RBs (i.e., Segment[MaxSegIdx].Len = Segment[MaxSegIdx].RbEnd - Segment[MaxSegIdx]. RbStart+1), the sum of IpN of the remaining RBs (i.e., Segment[MaxSegIdx].TotIpN-=UE[UeIdx].TempTotIpN).
[0121] Optionally, determining the RB step size for the next iteration based on the judgment result includes: If the transport block size allocated in the previous iteration is smaller than the transport block size in the current iteration, the RB step size for the next iteration is determined based on the spread factor, the RB step size for the current iteration, the total number of bits that the currently scheduled UE needs to transmit, the transport block size for the current iteration, and the transport block size allocated in the previous iteration. If the transport block size allocated in the previous iteration is not smaller than the transport block size in the current iteration, the RB step size for the current iteration is used as the RB step size for the next iteration.
[0122] Specifically, when the transport block size allocated in the previous iteration (UE[UeIdx].TempTBSizePrev) is smaller than the transport block size in the current iteration (UE[UeIdx].TempTBSize), the RB step size (UE[UeIdx].RbStepSizeCur) of the current iteration is determined by formula (5) based on the scaling factor (ScaleFactor), the RB step size of the current iteration (UE[UeIdx].RbStepSizeCur), the total number of bits that the UE to be scheduled needs to transmit (UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI), the transport block size of the current iteration (UE[UeIdx].TempTBSize), and the transport block size allocated in the previous iteration (UE[UeIdx].TempTBSizePrev).
[0123] If the transport block size allocated in the previous iteration (UE[UeIdx].TempTBSizePrev) is not less than the transport block size in the current iteration (UE[UeIdx].TempTBSize), the RB step size for the next iteration is determined based on the RB step size of the current iteration (UE[UeIdx].RbStepSizeCur), i.e., UE[UeIdx].RbStepSizeNext=UE[UeIdx].RbStepSizeCur.
[0124] In this invention, in order to reduce the number of final iterations and thus reduce the time complexity of the algorithm, the RB step size (i.e., the number of RB increments) in the next iteration is calculated approximately proportionally, instead of iterating one RB at a time, which improves the efficiency of the iteration.
[0125] Figure 5 This is a schematic diagram of the iterative allocation process provided by the present invention, as shown below. Figure 5 As shown, steps 501-520 are included.
[0126] Step 501: Determine if the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit. That is, UE[UeIdx][MaxSegIdx].SegCap <= UE[UeIdx].RequiredBitNumOfQ LoadAndScaledUCI. If the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, proceed to step 502; if the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, proceed to step 505.
[0127] Step 502: Allocate all RBs in the target resource segment corresponding to the maximum channel capacity to the currently scheduled UE.
[0128] Step 503: Directly assign the attributes of the target resource segment to the currently scheduled UE and output them. The attributes of the target resource segment include the transmission MCS, starting RB, total number of RBs, and channel capacity, i.e.: UE[UeIdx].Mcs=UE[UeIdx][MaxSegIdx].SegMcs, UE[UeIdx].RbStart=Segment[UE[UeIdx].MaxSegIdx].RbStart, UE[UeIdx].RbNum=Segment[UE[UeIdx].MaxSegIdx].RbLen, UE[UeIdx].TbSize=UE[UeIdx][MaxSegIdx].SegCap.
[0129] Step 504: Update the remaining number of RBs in the target resource segment: Segment[UE[UeIdx].MaxSegIdx].RbLen=0.
[0130] Step 505, Initialize parameters: the RB step size (i.e., the number of RBs to be increased) (UE[UeIdx].RbStepSizeCur) at the current round of iteration, the RB step size (UE[UeIdx].RbStepSizeNext) at the next round of iteration, the index value of the last RB allocated in the previous round (MaxSegEndRbIdxPrev), the index value of the last RB allocated in this round of iteration (MaxSegEndRbIdxCur), the transport block size found in the current round of iteration (UE[UeIdx].TempTBSize), the transport block size found in the previous round of iteration (UE[UeIdx].TempTBSizePrev), and the IpN on all the selected RBs in the current round of iteration (UE[UeIdx].TempTotIpN). That is, UE[UeIdx].RbStepSizeCur = InitialRbStepSize, UE[UeIdx].RbStepSizeNext = InitialRbStepSize, MaxSegEndRbIdxPrev = Segment[UE[UeIdx].MaxSegIdx].RbStart - 1, MaxSegEndRbIdxCur = Segment[UE[UeIdx].MaxSegIdx].RbStart - 1, UE[UeIdx].TempTBSize = 0, UE[UeIdx].TempTBSizePrev = 0, UE[UeIdx].TempTotIpN = 0.
[0131] Step 506, Determine whether the transport block size (UE[UeIdx].TempTBSize) found in the current round of iteration is less than the total number of bits that the currently scheduled UE needs to transmit (UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI), i.e., UE[UeIdx].TempTBSize < UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI. If the transport block size found in the current round of iteration is less than the total number of bits that the currently scheduled UE needs to transmit, go to Step 507; if the transport block size found in the current round of iteration is not less than the total number of bits that the currently scheduled UE needs to transmit, go to Step 516.
[0132] Step 507: Assign the transport block size found in the current iteration to the transport block size found in the previous iteration (i.e., UE[UeIdx].TempTBSizePrev=UE[UeIdx].TempTBSize), assign the RB step size for the next iteration to the RB step size for the current iteration (i.e., UE[UeIdx].RbStepSizeCur=UE[UeIdx].RbStepSizeNext), and assign the index value of the last RB allocated in the current iteration. Assign the index value of the last RB allocated in the previous iteration (i.e., MaxSegEndRbIdxPrev = MaxSegEndRbIdxCur); where the index value of the last RB allocated in the current iteration is the minimum value among the index value of the last RB allocated in the current iteration, the sum of the RB step size in the current iteration, and the index value of the last RB of the target resource segment, i.e., MaxSegEndRbIdxCur = min(MaxSegEndRbIdxCur + UE[UeIdx]). .RbStepSizeCur,Segment[MaxSegIdx].RbEnd).
[0133] Step 508: Initialize the index value of the current RB in the current iteration, i.e., RbIdx = MaxSegEndRbIdxPrev + 1.
[0134] Step 509: Determine whether the index value of the current RB in the current iteration is less than or equal to the index value of the last RB allocated in the current iteration, i.e., RbIdx <= MaxSegEndRbIdxCur. If the index value of the current RB is less than or equal to the index value of the last RB allocated in the current iteration, proceed to step 510; if the index value of the current RB is greater than the index value of the last RB allocated in the current iteration, proceed to step 512.
[0135] Step 510: Accumulate the sum of IpN of all selected RBs in the previous iteration, that is, the IpN of all selected RBs in the current iteration, i.e., UE[UeIdx].TempTotIpN+=IpN[RbIdx].
[0136] Step 511: Increment the current index value of RB by 1, i.e., RbIdx++, and proceed to step 509.
[0137] Step 512: Calculate the SINR for the current iteration. Specifically, based on the uplink received power of the current UE to be scheduled (UE[UeIdx].UeRxPwr), the sum of interference plus noise power IpN corresponding to the total number of RBs allocated in the target resource segment during the current iteration (UE[UeIdx].TempTotIpN), and the outer loop adjustment value of the uplink SINR of the current UE to be scheduled (UE[UeIdx].ULOutloopAdj), the SINR for the current iteration is determined using the above formula (5).
[0138] Step 513: Determine the MCS index value allocated in the current round of iteration based on the SINR of the current round of iteration. Specifically, based on the SINR of the current round of iteration, query the "SINR to MCS mapping table" to obtain the MCS index value (UE[UeIdx].TempMcs) allocated to the UE to be scheduled in the current round of iteration.
[0139] Step 514: Determine the transport block size allocated in the current iteration based on the MCS index value allocated in the current iteration, the total number of RBs allocated in the target resource segment during the current iteration, the number of transport layers of the currently scheduled UE, and the number of OFDM symbols of the currently scheduled UE in the time domain resources. Specifically, based on the MCS index value allocated in the current iteration (UE[UeIdx].TempMcs), the total number of RBs allocated in the target resource segment during the current iteration (UE[UeIdx].TempRbNum), the number of transport layers of the currently scheduled UE (UE[UeIdx].LayerNum), and the number of OFDM symbols of the currently scheduled UE in the time domain resources (UE[UeIdx].SymNum), query the "Transport Block Size Configuration Table" to obtain the transport block size (UE[UeIdx].TempTBSize) allocated to the currently scheduled UE in the current iteration.
[0140] Step 515: Determine whether the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment, i.e., MaxSegEndRbIdxCur == Segment[MaxSegIdx].RbEnd. If the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment, proceed to step 516; if the index value of the last RB allocated in the target resource segment during the current iteration is not equal to the index value of the last RB of the target resource segment, proceed to step 517.
[0141] Step 516: The iteration ends. Based on the index value of the starting RB of the target resource segment, the total number of RBs allocated to the target resource segment in the current round of iteration, and the transport block size allocated in the current round of iteration, allocate multiple consecutive available RBs to the currently scheduled UE, and output the final scheduling parameters: UE[UeIdx].RbStart = Segment[MaxSegIdx].RbStart, UE[UeIdx].RbNum = UE [UeIdx].TempRbNum, UE[UeIdx].TbSize = UE[UeIdx].TempTBSize, UE[UeIdx].Mcs = UE[UeIdx].TempMcs. Meanwhile, update the relevant parameters of the remaining RBs in this target resource segment: the index value of the starting RB of the remaining RBs (i.e., Segment[MaxSegIdx].RbStart = MaxSegEndRbIdxCur + 1), the number of remaining RBs (i.e., Segment[MaxSegIdx].Len = Segment[MaxSegIdx].RbEnd - Segment[MaxSegIdx]. RbStart + 1), the sum of IpN of the remaining RBs (i.e., Segment[MaxSegIdx].TotIpN -= UE[UeIdx].TempTotIpN).
[0142] Step 517: Determine whether the transport block size allocated in the current round of iteration is less than the total number of bits that the currently scheduled UE needs to transmit, that is, UE[UeIdx].TempTBSize < UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI. If the transport block size in the current round of iteration is less than the total number of bits that the currently scheduled UE needs to transmit, go to Step 518; if the transport block size in the current round of iteration is not less than the total number of bits that the currently scheduled UE needs to transmit, go to Step 506.
[0143] Step 518: Determine whether the transport block size allocated in the previous round of iteration is less than the transport block size allocated in the current round of iteration, that is, UE[UeIdx].TempTBSizePrev < UE[UeIdx].TempTBSize. If the transport block size allocated in the previous round of iteration is less than the transport block size in the current round of iteration, go to Step 519; if the transport block size allocated in the previous round of iteration is not less than the transport block size in the current round of iteration, go to Step 520.
[0144] Step 519: Determine the RB step size for the next iteration based on the scaling factor, the RB step size of the current iteration, the total number of bits that the current scheduled UE needs to transmit, the transport block size of the current iteration, and the transport block size allocated in the previous iteration. Based on the scaling factor (ScaleFactor), the RB step size of the current iteration (UE[UeIdx].RbStepSizeCur), the total number of bits that the current scheduled UE needs to transmit (UE[UeIdx].RequiredBitNumOfQLoadAndScaledUCI), the transport block size of the current iteration (UE[UeIdx].TempTBSize), and the transport block size allocated in the previous iteration (UE[UeIdx].TempTBSizePrev), the RB step size (UE[UeIdx].RbStepSizeNext) for the next iteration is determined using formula (6).
[0145] Step 520: Determine the RB step size for the next iteration based on the RB step size of the current iteration. That is, UE[UeIdx].RbStepSizeNext = UE[UeIdx].RbStepSizeCur.
[0146] The uplink spectrum resource allocation method provided by this invention addresses the scenario where frequency domain interference is distributed in a "discrete" manner (i.e., the interfered RBs are distributed "discretely" throughout the entire carrier bandwidth). It employs the RAT1 frequency domain resource allocation method, first selecting resource segments for the UE to be scheduled, then iteratively allocating RBs within those segments, while simultaneously selecting the UE's MCS and calculating its TBsize. This method, unlike the traditional RAT0-based "frequency selective scheduling" frequency domain resource allocation method, can effectively combat interference while significantly reducing spectrum resource waste, thereby improving the effective utilization rate of spectrum resources.
[0147] The uplink spectrum resource allocation device provided by the present invention is described below. The uplink spectrum resource allocation device described below and the uplink spectrum resource allocation method described above can be referred to in correspondence.
[0148] Figure 6 This is a schematic diagram of the uplink spectrum resource allocation device provided by the present invention, as shown below. Figure 6 As shown, the uplink spectrum resource allocation device 600 includes: a resource segmentation module 601, a determination module 602, and an allocation module 603; wherein, Resource segmentation module 601 is used to segment uplink spectrum resources based on multiple unavailable resource blocks RB in uplink time slots to obtain multiple resource segments; The determining module 602 is used to determine the channel capacity of each resource segment based on each resource segment for the current UE to be scheduled. The allocation module 603 is used to allocate multiple continuously available Resource Blocks (RBs) to the currently scheduled UE based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
[0149] The uplink spectrum resource allocation device provided by this invention segments the uplink spectrum resource based on multiple unavailable resource blocks (RBs) in the uplink time slot to obtain multiple resource segments. For the currently scheduled UE, the channel capacity of each resource segment is determined based on each of the resource segments. Based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment, multiple consecutive available RBs are allocated to the currently scheduled UE. By segmenting the uplink spectrum resource to obtain multiple resource segments, the target resource segment corresponding to the maximum channel capacity is determined. Then, multiple consecutive RBs are allocated to the currently scheduled UE based on the target resource segment, thus realizing the allocation of uplink spectrum resources. In spectrum resource allocation, RBs that are unavailable due to strong interference can be avoided. Moreover, when there are many UEs to be scheduled in the uplink time slot, it can effectively resist interference while greatly reducing the waste of spectrum resources, thereby improving the effective utilization rate of spectrum resources.
[0150] Optionally, the determining module 602 is specifically used for: For each resource segment, determine the signal-to-interference-plus-noise ratio (SINR) when the currently scheduled UE uses all RBs in the resource segment; Based on the SINR, the channel capacity of the resource segment is determined.
[0151] Optionally, the determining module 602 is further configured to: Based on the SINR, determine the index value of the transmission modulation and coding strategy (MCS) when the currently scheduled UE uses all RBs in the resource segment; The channel capacity of the resource segment is determined based on the total number of RBs contained in the resource segment, the index value of the transmission MCS, the transmission layer number of the currently scheduled UE, and the number of Orthogonal Frequency Division Multiplexing (OFDM) symbols of the currently scheduled UE in the time domain resources.
[0152] Optionally, the allocation module 603 is specifically used for: Determine whether the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit; If the maximum channel capacity does not meet the total number of bits that the currently scheduled UE needs to transmit, all RBs in the target resource segment corresponding to the maximum channel capacity will be allocated to the currently scheduled UE. If the maximum channel capacity meets the total number of bits that the currently scheduled UE needs to transmit, multiple consecutive available Resource Blocks (RBs) are allocated to the currently scheduled UE based on the target resource segment using an iterative allocation method.
[0153] Optionally, the allocation module 603 is further configured to: Step A: For each iteration, based on the RB step size of the current iteration and the index value of the last RB of the target resource segment, determine the index value of the last RB allocated in the target resource segment during the current iteration; Step B: Based on the index values of the last RB allocated to the target resource segment and the index values of the first RB of the target resource segment, determine the total number of RBs allocated to the target resource segment in the current iteration; Step C: Determine the transport block size allocated in the current iteration based on the total number of RBs allocated in the target resource segment during the current iteration; Step D: Determine whether the index value of the last RB allocated in the target resource segment during the current iteration is equal to the index value of the last RB of the target resource segment; Step E: If, during the current iteration, the index value of the last RB allocated to the target resource segment is not equal to the index value of the last RB of the target resource segment, determine the RB step size for the next iteration based on the transport block size allocated in the current iteration, and repeat steps A-E above until, during the current iteration, the index value of the last RB allocated to the target resource segment is equal to the index value of the last RB of the target resource segment, or the transport block size allocated in the current iteration satisfies the total number of bits that the currently scheduled UE needs to transmit. At this point, the iteration ends, and based on the final total number of RBs allocated to the target resource segment and the index value of the starting RB of the target resource segment, allocate multiple consecutive available RBs to the currently scheduled UE.
[0154] Optionally, the allocation module 603 is further configured to: The SINR of the current iteration is determined based on the uplink received power of the UE to be scheduled, the sum of the interference plus noise power IpN corresponding to the total number of RBs allocated in the target resource segment during the current iteration, and the outer loop adjustment value of the uplink SINR of the UE to be scheduled. Based on the SINR of the current iteration, determine the MCS index value assigned in the current iteration; The transport block size allocated in the current round of iteration is determined based on the MCS index value allocated in the current round of iteration, the total number of RBs allocated in the target resource segment in the current round of iteration, the transport layer number of the currently scheduled UE, and the number of OFDM symbols of the currently scheduled UE in the time domain resources.
[0155] Optionally, the allocation module 603 is further configured to: Determine whether the size of the transport block allocated in the current iteration is less than the total number of bits that the currently scheduled UE needs to transmit; If the transport block size in the current iteration is less than the total number of bits that the currently scheduled UE needs to transmit, determine whether the transport block size allocated in the previous iteration is less than the transport block size allocated in the current iteration. Based on the judgment result, determine the RB step size for the next iteration, and repeat the step of determining the index value of the last RB allocated in the target resource segment in the current iteration based on the RB step size of the current iteration and the index value of the last RB of the target resource segment.
[0156] Optionally, the allocation module 603 is further configured to: If the transport block size allocated in the previous iteration is smaller than the transport block size in the current iteration, the RB step size for the next iteration is determined based on the spread factor, the RB step size for the current iteration, the total number of bits that the currently scheduled UE needs to transmit, the transport block size for the current iteration, and the transport block size allocated in the previous iteration. If the size of the transport block allocated in the previous iteration is not less than the size of the transport block in the current iteration, the RB step size of the next iteration is determined based on the RB step size of the current iteration.
[0157] Figure 7 This is a schematic diagram of the physical structure of an electronic device provided by the present invention, such as... Figure 7 As shown, the electronic device 700 may include a processor 710, a communications interface 720, a memory 730, and a communication bus 740. The processor 710, communications interface 720, and memory 730 communicate with each other via the communication bus 740. The processor 710 can call logical instructions in the memory 730 to execute an uplink spectrum resource allocation method. This method includes: segmenting the uplink spectrum resources based on multiple unavailable resource blocks (RBs) in the uplink time slot to obtain multiple resource segments; determining the channel capacity of each resource segment for the currently scheduled UE based on each of the resource segments; and allocating multiple consecutively available RBs to the currently scheduled UE based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
[0158] Furthermore, the logical instructions in the aforementioned memory 730 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, essentially, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0159] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the uplink spectrum resource allocation method provided by the above methods. The method includes: segmenting the uplink spectrum resource based on multiple unavailable resource blocks (RBs) in the uplink time slot to obtain multiple resource segments; determining the channel capacity of each resource segment for the current UE to be scheduled based on each resource segment; and allocating multiple consecutively available RBs to the current UE to be scheduled based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
[0160] In another aspect, the present invention also provides a non-transitory computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the uplink spectrum resource allocation method provided by the above methods. The method includes: segmenting uplink spectrum resources based on multiple unavailable resource blocks (RBs) in uplink time slots to obtain multiple resource segments; determining the channel capacity of each resource segment for the current UE to be scheduled based on each of the resource segments; and allocating multiple consecutively available RBs to the current UE to be scheduled based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of the resource segments.
[0161] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.
[0162] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.
[0163] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. An uplink spectrum resource allocation method, characterized in that, The method comprises: segmenting uplink spectrum resources based on a plurality of unavailable resource blocks (RBs) in an uplink time slot to obtain a plurality of resource segments; determining the channel capacity of each resource segment based on each resource segment for the current UE to be scheduled; allocating a plurality of continuous available RBs to the current UE to be scheduled based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment.
2. The uplink spectrum resource allocation method of claim 1, wherein, The method of determining the channel capacity of each resource segment based on each resource segment comprises: determining the signal-to-interference-plus-noise ratio (SINR) of the current UE to be scheduled using all RBs in the resource segment for each resource segment; determining the channel capacity of the resource segment based on the SINR.
3. The uplink spectrum resource allocation method of claim 2, wherein, The method of determining the channel capacity of the resource segment based on the SINR comprises: determining the index value of the transmission modulation and coding strategy (MCS) of the current UE to be scheduled using all RBs in the resource segment based on the SINR; determining the channel capacity of the resource segment based on the total number of RBs included in the resource segment, the index value of the transmission MCS, the number of transmission layers of the current UE to be scheduled, and the number of orthogonal frequency division multiplexing (OFDM) symbols of the current UE to be scheduled in the time domain resource.
4. The uplink spectrum resource allocation method according to any one of claims 1 to 3, characterized in that, The method of allocating a plurality of continuous available RBs to the current UE to be scheduled based on the target resource segment corresponding to the maximum channel capacity among the channel capacities of each resource segment comprises: determining whether the maximum channel capacity meets the total number of bits that the current UE to be scheduled needs to transmit; in the case that the maximum channel capacity does not meet the total number of bits that the current UE to be scheduled needs to transmit, allocating all RBs in the target resource segment corresponding to the maximum channel capacity to the current UE to be scheduled; in the case that the maximum channel capacity meets the total number of bits that the current UE to be scheduled needs to transmit, allocating a plurality of continuous available RBs to the current UE to be scheduled based on the target resource segment in an iterative allocation manner.
5. The uplink spectrum resource allocation method of claim 4, wherein, The method of allocating a plurality of continuous available RBs to the current UE to be scheduled based on the target resource segment in an iterative allocation manner comprises: Step A: for each iteration, determining the index value of the last RB allocated in the target resource segment at the current iteration based on the RB step length of the current iteration and the index value of the last RB of the target resource segment; Step B: determining the total number of RBs allocated in the target resource segment at the current iteration based on the index value of the last RB allocated in the target resource segment and the index value of the starting RB of the target resource segment; Step C: determining the transport block size allocated at the current iteration based on the total number of RBs allocated in the target resource segment at the current iteration; Step D: determining whether the index value of the last RB allocated in the target resource segment at the current iteration is equal to the index value of the last RB of the target resource segment. Step E: in the case that the index value of the end RB of the target resource segment allocated at the current round iteration is not equal to the index value of the end RB of the target resource segment, determining the RB step length of the next round iteration based on the transport block size allocated at the current round iteration, and repeating the execution of the above steps A-E until the index value of the end RB of the target resource segment allocated at the current round iteration is equal to the index value of the end RB of the target resource segment or the transport block size allocated at the current round iteration meets the total number of bits to be transmitted by the current UE to be scheduled, and the iteration ends, and a plurality of continuous available RBs are allocated to the current UE to be scheduled based on the total number of RBs of the target resource segment finally obtained and the index value of the starting RB of the target resource segment.
6. The uplink spectrum resource allocation method of claim 5, wherein, The method further includes: determining the transport block size allocated at the current round iteration based on the total number of RBs allocated at the current round iteration in the target resource segment, including: determining the SINR of the current round iteration based on the uplink received power of the current UE to be scheduled, the sum of the interference plus noise power IpN corresponding to the total number of RBs allocated at the current round iteration in the target resource segment, and the outer loop adjustment value of the uplink SINR of the current UE to be scheduled; determining the MCS index value allocated at the current round iteration based on the SINR of the current round iteration; 7. The uplink spectrum resource allocation method of claim 5, wherein, determining the transport block size allocated at the current round iteration based on the MCS index value allocated at the current round iteration, the total number of RBs allocated at the current round iteration in the target resource segment, the number of transmission layers of the current UE to be scheduled, and the number of OFDM symbols of the current UE to be scheduled in the time domain resource. The method further includes: determining the RB step length of the next round iteration based on the transport block size allocated at the current round iteration, including: determining whether the transport block size allocated at the current round iteration is less than the total number of bits to be transmitted by the current UE to be scheduled; 8. The uplink spectrum resource allocation method of claim 7, wherein, in the case that the transport block size at the current round iteration is less than the total number of bits to be transmitted by the current UE to be scheduled, determining whether the transport block size allocated at the last round iteration is less than the transport block size allocated at the current round iteration; determining the RB step length of the next round iteration based on the determination result. The method further includes:
9. An uplink spectrum resource allocation device, characterized in that, in the case that the transport block size allocated at the last round iteration is less than the transport block size at the current round iteration, determining the RB step length of the next round iteration based on the expansion factor, the RB step length of the current round iteration, the total number of bits to be transmitted by the current UE to be scheduled, the transport block size of the current round iteration, and the transport block size allocated at the last round iteration; in the case that the transport block size allocated at the last round iteration is not less than the transport block size at the current round iteration, determining the RB step length of the next round iteration based on the RB step length of the current round iteration. The method further includes: a resource segmentation module configured to segment the uplink frequency spectrum resource based on a plurality of unavailable resource block (RB) in the uplink time slot to obtain a plurality of resource segments; a determination module configured to determine the channel capacity of each of the resource segments based on each of the resource segments for the current UE to be scheduled. An allocating module is configured to allocate a plurality of continuous available RBs to the current UE to be scheduled based on a target resource segment corresponding to a maximum channel capacity in channel capacities of the resource segments.
10. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The computer program is executed by the processor to implement the uplink spectrum resource allocation method in any one of claims 1 to 8. 11.A non-transitory computer-readable storage medium having stored thereon a computer program. The computer program is executed by the processor to implement the uplink spectrum resource allocation method in any one of claims 1 to 8.
12. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the uplink spectrum resource allocation method in any one of claims 1 to 8. The computer program is executed by the processor to implement the uplink spectrum resource allocation method in any one of claims 1 to 8.