Orthogonal frequency division multiple access resource allocation method, device, storage medium and program product
Patent Information
- Application Number
- CN202610968903.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-01
- Publication Date
- 2026-09-29
AI Technical Summary
[0010]本发明的目的是提供正交频分多址资源分配方法、设备、存储介质及程序产品,用于解决现有的验证方法容易出现资源单元分配重叠的问题
[0038]本发明通过预构建资源单元的索引冲突表,并预先约束资源单元的大小,能确保所有不重叠、不越界的资源单元分配方案被充分验证,保证了资源单元分配的正确性。
Smart Images

Figure CN122845540A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of wireless communication, and more particularly to orthogonal frequency division multiple access (OFDM) resource allocation methods, devices, storage media, and program products. Background Technology
[0002] Currently, wireless communication standards have introduced Orthogonal Frequency Division Multiple Access (OFDMA) technology, which divides the channel into multiple Resource Units (RUs) to serve multiple users simultaneously. There are various types of Resource Units, corresponding to different numbers of subcarriers and bandwidth usage.
[0003] The allocation of resource units needs to consider non-overlapping and boundary constraints: non-overlapping means that there cannot be overlapping subcarriers between the allocation of resource units of different users; the boundary constraint of resource units means that the allocation of resource units within a 20MHz channel bandwidth range can only be up to 242-tones.
[0004] In the prior art, patent application number CN202211162159.4 discloses a spatial mapping simulation system and method, belonging to the field of simulation technology. This invention, when the number of RUs is greater than 1, not only supports all RUs using the same spatial mapping method, but also supports setting separate spatial mapping methods for each RU, thereby realizing spatial mapping simulation in OFDMA+MU-MIMO scenarios. When calculating the subcarrier index range, a detailed analysis is performed on the subcarrier index range occupied by each RU, forming a subcarrier index range composed of the union of the effective subcarrier index ranges occupied by each RU, and excluding invalid subcarriers such as DC subcarriers and empty subcarriers. It not only supports OFDMA+MU-MIMO spatial mapping simulation when the number of RUs is greater than 1, but is also compatible with Wi-Fi 6 communication scenarios when the number of RUs is equal to 1 in the prior art.
[0005] Patent application CN201580003342.1 discloses a method for transmitting data in a wireless network. The method includes: a transmitter generating an Orthogonal Frequency Division Multiple Access (OFDMA) frame, the OFDMA frame including a payload of 256 subcarriers, the payload of the 256 subcarriers consisting of 234 subcarriers carried in one or more Resource Units (RUs) and 22 subcarriers not included in the one or more RUs, the 22 subcarriers not included in the one or more RUs including empty subcarriers, reserved subcarriers, or combinations thereof, each of the one or more RUs consisting of a multiple of 26 subcarriers; and transmitting the generated OFDMA frame to at least one receiver via a 20 MHz frequency channel.
[0006] Patent application CN202510862607.9 discloses a resource reservation method, electronic device, storage medium, and computer program product, relating to the field of data processing. The resource reservation method includes: responding to a demand profile of the initiator of a resource reservation request; determining the initiator's reservation priority; the resource reservation request is a request for access to a target resource, and the reservation priority represents the order in which the initiator obtains access to the target resource; comparing the initiator's reservation priority with a first mapping table to determine the resource level of the resource units that the initiator can reserve within the target resource; the first mapping table records the correspondence between reservation priorities and resource levels; and allocating the access rights of the resource units corresponding to the resource levels to the initiator. According to the technical solution disclosed herein, the resource reservation process ensures that differentiated needs are met while guaranteeing the fairness of resource allocation.
[0007] There are two main existing methods for verifying RU allocation:
[0008] 1. Manually constructing targeted test cases: This requires manually calculating the RU allocation configuration, generating trigger frames, and verifying the response of the device under test (DUT). Test case design relies on personal experience and has limited scenario coverage.
[0009] 2. Randomized Testing Method: Random constraints are configured in the verification platform, and the constraint solver randomly generates RU assignment combinations. However, this method is prone to constraint conflicts or overlapping RU assignments. Therefore, it is necessary to improve this structure to overcome these shortcomings. Summary of the Invention
[0010] The purpose of this invention is to provide an orthogonal frequency division multiple access (OFDM) resource allocation method, device, storage medium, and program product to solve the problem of overlapping resource unit allocation that easily occurs in existing verification methods.
[0011] The above-mentioned technical objective of the present invention is achieved through the following technical solution:
[0012] An orthogonal frequency division multiple access (OFDM) resource allocation method includes the following steps:
[0013] Establish a mapping relationship between bandwidth and resource units;
[0014] Construct an index conflict table for resource units;
[0015] Allocate resource units of different sizes to each user and generate an array of resource units;
[0016] Sort the resource unit array based on the size of the resource unit;
[0017] Generate an array of resource unit indices that each user can select based on the sorted array of resource units;
[0018] Resource unit index allocation is performed on the resource unit index array based on the index conflict table;
[0019] Resource unit allocation schemes are generated based on resource unit index allocation.
[0020] Functional simulation is performed based on the resource unit allocation scheme to generate a resource unit allocation table.
[0021] Constructing the index conflict table for a resource unit specifically includes the following steps:
[0022] Calculate the conflict relationship between resource cell arrays: Construct an N×N conflict matrix, where N is the total number of resource cell arrays; if the subcarrier ranges of the resource cell arrays intersect, it is determined that there is a conflict; if the subcarrier ranges of the resource cell arrays do not intersect, it is determined that there is no conflict.
[0023] Sort the resource unit array based on the size of the resource units, specifically including the following steps: Sort the resource unit array in descending order.
[0024] Generating a resource unit allocation scheme based on the resource unit index includes the following steps:
[0025] Create an array of allocated indices;
[0026] Select a candidate index array from the resource unit index array that each user can choose;
[0027] Based on the index conflict table, compare the candidate index array with the index array in the allocated index array to see if there is a conflict;
[0028] If a conflict exists, the next candidate index array is selected; if there is no conflict, the candidate index array is added to the allocated index array and marked as successfully allocated; the above process is repeated until all users are allocated.
[0029] Resource unit allocation schemes include: fully random allocation schemes and targeted allocation schemes.
[0030] Generating a resource unit allocation scheme based on resource unit index allocation also includes the following steps:
[0031] When the bandwidth is greater than 20MHz, the bandwidth is divided into 20MHz segments, and a resource unit allocation scheme is generated for each 20MHz bandwidth segment.
[0032] Generating a resource unit allocation table specifically includes the following steps:
[0033] Generate a visual resource unit allocation table, marking the corresponding user identifier for each allocated RU, and displaying unallocated RUs as preset symbols, so that verification personnel can intuitively check the allocation results.
[0034] A verification device for orthogonal frequency division multiple access (OFDM) resource allocation includes: a processor and a memory storing computer program instructions; the processor reads and executes the computer program instructions to implement an OFDM resource allocation method, device, storage medium, and program product.
[0035] A computer storage medium storing computer program instructions, wherein the computer program instructions, when executed by a processor, implement an orthogonal frequency division multiple access resource allocation method, apparatus, storage medium, and program product.
[0036] A computer program product includes a computer program, which, when executed by a processor, implements an orthogonal frequency division multiple access resource allocation method, apparatus, storage medium, and program product.
[0037] In summary, the present invention has the following beneficial effects:
[0038] This invention ensures that all non-overlapping and non-boundary resource unit allocation schemes are fully verified by pre-constructing an index conflict table for resource units and pre-constraining the size of resource units, thus guaranteeing the correctness of resource unit allocation. Attached Figure Description
[0039] Figure 1 This is a flowchart illustrating the present invention.
[0040] Figure 2 This is a flowchart illustrating an embodiment.
[0041] Figure 3 This is a flowchart for generating a resource unit allocation tag table. Detailed Implementation
[0042] To make the technical means, creative features, objectives and effects of this invention easier to understand, the invention will be further described below with reference to the figures and specific embodiments.
[0043] Despite the following shortcomings of existing RU allocation verification methods (such as manually constructed targeted test cases and randomized testing methods):
[0044] Manual construction methods rely on the designer's personal experience and cannot exhaustively cover all legal resource unit allocation combinations. For example, with a 20MHz channel bandwidth, there are up to eight combinations with different numbers of users. Considering the RU type and location allocation for different users, the combination space expands dramatically, making it impossible for manual methods to fully cover all scenarios. Although randomized testing methods generate random combinations using constraint solvers, their coverage depends on probability. Critical boundary scenarios often require a large number of random seeds to be hit, still posing a risk of omission and failing to ensure sufficient verification of all resource unit allocation scenarios.
[0045] The RU allocation rules differ significantly across channel bandwidths such as 20MHz, 40MHz, 80MHz, and 160MHz. For example, a 40MHz channel consists of two 20MHz segments, and the cross-segment allocation rules for its 484-tone RUs differ from those for the 242-tone RUs within the same 20MHz channel. Similarly, the location constraints for the 996-tone RUs supported by the 80MHz channel also differ significantly from those in the 20MHz scenario. Existing methods require separate development of verification logic for each bandwidth, resulting in low code reusability, high maintenance costs, and significant workload when adding or modifying bandwidth support.
[0046] When resource unit allocation verification fails, existing methods struggle to quickly pinpoint the root cause of the violation. Simulation results typically only report "simulation failure" or assertion violations, failing to provide a clear indication of whether the issue stems from resource unit overlap, out-of-bounds access, or other unreasonable allocation problems. Especially in multi-user scenarios, the random allocation of RU overlaps or interference lacks structured labeling and visualization mechanisms, requiring verification personnel to repeatedly review simulation logs or waveforms, resulting in extremely low debugging efficiency.
[0047] Example 1:
[0048] like Figures 1 to 3 As shown, the orthogonal frequency division multiple access (OFDM) resource allocation method proposed in this invention includes the following steps:
[0049] S1: Establish the mapping relationship between bandwidth and resource unit (hereinafter omitted).
[0050] Different system bandwidths (e.g., 20MHz, 40MHz, 80MHz, 160MHz) support different RU types and numbers. To mitigate the allocation complexity caused by bandwidth differences, a mapping relationship between bandwidth and available RUs is first established. For example, for a 20MHz bandwidth, different sized resource units include: 26-tone RUs (9 units), 52-tone RUs (4 units), 106-tone RUs (2 units), and 242-tone RUs (1 unit), etc. This mapping relationship provides a unified allocation benchmark for subsequent steps, reducing the complexity of resource unit allocation caused by different bandwidths.
[0051] S2: Construct an index conflict table for resource units.
[0052] The subcarrier sets corresponding to different resource unit arrays may partially or completely overlap, therefore they cannot be allocated to different users simultaneously. This step pre-calculates the conflict relationships between all resource unit arrays, constructing an N×N conflict matrix (N being the total number of resource unit arrays). For example, if the subcarrier ranges of resource unit array i and resource unit array j intersect, then the conflict table entry Conflicts[i][j] = True; otherwise, it is False. By referring to the index conflict table, it is determined which resource unit arrays will have overlapping issues.
[0053] S3: Allocate resource units of different sizes to each user and generate an array of resource units. Verify that the sum of the resource units allocated to all users is less than or equal to the total number of available resource units.
[0054] Assume there are currently M users awaiting allocation. From the total available resource units, randomly allocate a resource unit of a different size to each user, forming an array RU_size[M]. Then verify: sum(RU_size) <= Total_RU_size, where Total_RU_size is the maximum total available resource units under the current bandwidth. If the verification fails, reassign resource units of a different size to each user until the verification is satisfied, thus ensuring that the total available resource units are not exceeded.
[0055] S4: Sort the resource unit array based on the size of the resource units.
[0056] Sort RU_size[M] in descending order so that users with larger resource units are prioritized. Users with larger resource units occupy a wider range in the frequency domain and have fewer available starting positions. Prioritizing their allocation can prevent situations where suitable positions cannot be found in subsequent allocations, thereby improving the overall allocation success rate, especially when there are many users.
[0057] For each sorted user, based on the size of their resource unit, iterate through all possible starting positions under the current bandwidth and calculate the resource unit index array corresponding to each starting position. Store these indices in the user's resource unit index array Optional_idx[user]. For example, under a 20MHz bandwidth, a 52-tone resource unit may have two different starting positions.
[0058] S5: Generate an array of resource unit indices that each user can select based on the sorted array of resource units.
[0059] S6: Allocate resource unit indexes based on the index conflict table for the resource unit index array.
[0060] Create an array of allocated indices, Allocated_idx[Null], initially empty.
[0061] Process each user sequentially, selecting a candidate index array from the resource unit index array that each user can choose;
[0062] (1) Select a candidate index array candidate from its Optional_idx[user].
[0063] (2) Using the index conflict table of the resource unit constructed in step S2, check whether there is a conflict between the candidate index array `candidate` and all allocated index arrays in the allocated index array `Allocated_idx[Null]`. Specifically, for each allocated index array in `Allocated_idx[Null]`, check whether `Conflicts[candidate][alloc]` is True. If a conflict exists, discard the candidate index array `candidate` and select the next one.
[0064] (3) If there is no conflict, add the candidate index array candidate to the allocated index array Allocated_idx[Null] and mark the user as successfully allocated.
[0065] (4) Repeat the above process until all users have been assigned. If all candidate index arrays of a user conflict with the assigned index array, mark the user as having failed to be assigned, terminate the current assignment process, and return the assignment failure result.
[0066] S7: Generate resource unit allocation scheme based on resource unit index allocation.
[0067] To further improve the controllability and verification coverage of allocation, a directional control interface is set up. This interface has several built-in verified resource unit allocation schemes, such as:
[0068] Option A: Allocate 242-tone RUs to a single user across the entire bandwidth.
[0069] Option B: Mixed allocation, first allocate 2 106-tone RUs, then allocate 4 26-tone RUs.
[0070] Option C: Evenly distribute 9 26-tone RUs.
[0071] All built-in schemes are designed with a minimum bandwidth granularity of 20MHz. When the actual system bandwidth is greater than 20MHz (e.g., 40MHz, 80MHz), the bandwidth is sliced in 20MHz increments, and each slice is independently and randomly selected from one of the built-in schemes for execution, thereby quickly generating allocation results that conform to protocol constraints. This interface also supports externally input custom allocation strategies, facilitating the testing of boundary conditions.
[0072] S8: Perform functional simulation based on the resource unit allocation scheme and generate a resource unit allocation table.
[0073] After allocation, initiate the simulation verification process. Read the resource unit allocation parameters from the simulation environment, including: bandwidth, the size of the resource unit allocated to each user, and the resource unit index array. Generate a visual resource unit allocation table. Each row of the table corresponds to a 20MHz bandwidth slice or the entire bandwidth, and each column corresponds to the resource unit index array. In the table, label each allocated resource unit with its corresponding user ID or color. For example, if user A occupies resource unit index arrays 1 and 2, then "A" will be displayed at the corresponding position in the table. Unallocated resource units are displayed as "-".
[0074] Verifiers can use this table to intuitively and quickly check: whether the RU size allocated to each user is consistent with expectations; whether two users are assigned to the same resource unit index array (conflict detection); and whether the resource units are contiguous and correctly positioned in the frequency domain.
[0075] This embodiment provides a verification system for orthogonal frequency division multiple access resource allocation, including:
[0076] Mapping relationship storage module: A mapping relationship table between storage bandwidth and resource units.
[0077] Conflict table storage module: Stores index conflict tables of pre-computed resource units.
[0078] Resource unit allocation module: Implements the random allocation and sum verification logic in step S3.
[0079] Sorting module: Implements the descending sorting in step S4.
[0080] Optional index generation module: Implements step S5, generating an optional index list based on the size of the user resource unit and the current bandwidth.
[0081] Conflict avoidance allocation module: Implement step S6, and use the conflict table to perform conflict-free allocation.
[0082] Directional control interface module: Implements step S7, providing a built-in allocation scheme with a granularity of 20MHz and a custom interface.
[0083] Simulation verification module: Implements step S8, generates a resource unit allocation table and provides a graphical or textual display.
[0084] Example 1:
[0085] The overall process of the RU allocation verification method in this application is as follows: Figure 1 As shown.
[0086] Test cases can be specified via an external interface as either fully randomized or targeted.
[0087] (1) Fully randomized assignment test
[0088] If a fully random allocation test is specified, parameters such as the number of users and bandwidth must be provided. Bandwidth will be mapped to available resource units. The mapping rules are as follows: RU 26-tone is the smallest unit, RU size is 1; 52-tone RU size is 2; 106-tone RU size is 4; 242-tone (maximum allocable at 20MHz) RU size is 8; 484-tone (maximum allocable at 40MHz) RU size is 16; 996-tone (maximum allocable at 80MHz) RU size is 32; 2x996-tone (maximum allocable at 160MHz) RU size is 64.
[0089] The protocol specifies 69 resource unit arrays (0-68), each corresponding to a resource unit of different sizes. These arrays are independent of each other, which can lead to overlapping resource unit allocations. Taking resource unit array 0 as an example, the possible resource unit arrays with overlapping issues include 0, 37, 53, 61, 65, 67, and 68. The conflict values for each resource unit array are iterated through to construct an index conflict table for the resource units.
[0090] Then, resource units of different sizes are randomly assigned to each user. Due to bandwidth limitations, the sum of the sizes of all randomly assigned resource units cannot exceed the maximum allocatable resource unit. The assigned resource units are sorted from largest to smallest, with larger resource units selected in advance to avoid insufficient remaining allocatable resource unit space, which could result in some users having no resource units available for allocation.
[0091] The process iteratively selects suitable resource unit array values for each user: The available resource unit array is calculated based on the RU size; to ensure fairness, values are randomly selected; the previously constructed resource unit index conflict table is compared sequentially with the already allocated resource unit arrays to determine if there are any overlaps or conflicts; if a conflict exists, the resource unit is removed from the available array; otherwise, it is added to the allocated index array. Once all users' resource unit arrays have been allocated, this parameter can be used for simulation testing.
[0092] (2) Randomly assigned test within a specified range or with a specific orientation
[0093] If the test is specified as targeted or random allocation within a specified range, in addition to specifying the number of users and bandwidth, a sequence number or a partial random flag of the preset resource unit allocation scheme must also be provided. When a sequence number is given, it can be directly mapped to the corresponding resource unit allocation parameter; when a partial random flag is given, allocation is performed based on bandwidth and the number of users, randomly selecting a preset resource unit allocation scheme, and finally forming the corresponding resource unit allocation parameter. After the resource unit arrays for all users are allocated, simulation testing is performed.
[0094] (3) Visual analysis
[0095] After the simulation test is completed, if it is necessary to mark the resource unit allocation based on the parameters to form a visual analysis, a script can be used to generate the corresponding marking table. The script implementation process is as follows: Figure 2 As shown: First, obtain the simulation resource unit allocation parameters and read the resource unit allocation mark table template file; since the resource unit index values of each user are known, it is easy to find the corresponding values in the table through the index values, which are the table cells that need to be marked (filled with normal color); when it is found that there are two or more mark colors in a column of data in the table, it indicates that there is an overlapping part, which is considered an abnormal situation, and a different color (abnormal color) is used to fill it; finally, output the RU allocation mark table file.
[0096]
[0097] Table 1
[0098]
[0099] Table 2
[0100] Tables 1 and 2 are resource unit allocation tables. The first row represents the primary 80MHz resource unit array values (ru_index0) and the secondary 80MHz resource unit array values (ru_index1). Rows 2 to 8 represent the optional resource unit array values of 26-tone, 52-tone, 106-tone, 242-tone, 484-tone, 996-tone, and 2x996-tone, respectively. Rows 9 to 12 correspond to the bandwidth configurations. If one user is allocated 37 from ru_index0, and another user is allocated 0, 1, 53, 61, 65, 67, or 68 from ru_index0, an overlap problem will occur.
[0101] In the description of this invention, it should be noted that the terms "upper," "lower," "inner," "outer," "left," and "right," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings, or the orientation or positional relationship commonly used when the product of this invention is in use, or the orientation or positional relationship commonly understood by those skilled in the art. These terms are used only for the convenience of describing this invention and for simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this invention. Furthermore, the terms "first," "second," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance. In the description of this invention, it should also be noted that, unless otherwise explicitly specified and limited, terms such as "set" and "connect" should be interpreted broadly. For example, "connection" can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection or an indirect connection through an intermediate medium; it can be a connection within two components. Those skilled in the art can understand the specific meaning of the above terms in this invention according to the specific circumstances. In this document, the terms “comprising,” “including,” or any other variations thereof are intended to cover non-exclusive inclusion, which includes not only the elements listed but also other elements not expressly listed.
[0102] The foregoing has shown and described the basic principles, main features, and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited to the above embodiments. The embodiments and descriptions in the specification are merely illustrative of the principles of the invention. Various changes and modifications can be made to the invention without departing from its spirit and scope, and all such changes and modifications fall within the scope of the present invention as claimed. The scope of protection of this invention is defined by the appended claims and their equivalents.
Claims
1. A method for allocating orthogonal frequency division multiple access resources, characterized in that, Includes the following steps: Establish a mapping relationship between bandwidth and resource units; Construct an index conflict table for resource units; Allocate resource units of different sizes to each user and generate an array of resource units; Sort the resource unit array based on the size of the resource unit; Generate an array of resource unit indices that each user can select based on the sorted array of resource units; Resource unit index allocation is performed on the resource unit index array based on the index conflict table; Resource unit allocation schemes are generated based on resource unit index allocation. Functional simulation is performed based on the resource unit allocation scheme to generate a resource unit allocation table.
2. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Constructing the index conflict table for a resource unit specifically includes the following steps: Calculate the conflict relationship between resource cell arrays: Construct an N×N conflict matrix, where N is the total number of resource cell arrays; if the subcarrier ranges of the resource cell arrays intersect, it is determined that there is a conflict; if the subcarrier ranges of the resource cell arrays do not intersect, it is determined that there is no conflict.
3. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Sort the resource unit array based on the size of the resource units, specifically including the following steps: Sort the resource unit array in descending order.
4. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Generating a resource unit allocation scheme based on the resource unit index includes the following steps: Create an array of allocated indices; Select a candidate index array from the resource unit index array that each user can choose; Based on the index conflict table, compare the candidate index array with the index array in the allocated index array to see if there is a conflict; If a conflict exists, the next candidate index array is selected; if there is no conflict, the candidate index array is added to the allocated index array and marked as successfully allocated; the above process is repeated until all users are allocated.
5. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Resource unit allocation schemes include: fully random allocation schemes and targeted allocation schemes.
6. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Generating a resource unit allocation scheme based on resource unit index allocation also includes the following steps: When the bandwidth is greater than 20MHz, the bandwidth is divided into 20MHz segments, and a resource unit allocation scheme is generated for each 20MHz bandwidth segment.
7. The orthogonal frequency division multiple access resource allocation method according to claim 1, characterized in that, Generating a resource unit allocation table specifically includes the following steps: Generate a visual resource unit allocation table, marking the corresponding user identifier for each allocated RU, and displaying unallocated RUs as preset symbols, so that verification personnel can intuitively check the allocation results.
8. A verification device for orthogonal frequency division multiple access resource allocation, characterized in that, include: Processor, and memory storing computer program instructions; The processor reads and executes the computer program instructions to implement the method as described in any one of claims 1-7.
9. A computer storage medium, characterized in that, The computer storage medium stores computer program instructions, which, when executed by a processor, implement the method as described in any one of claims 1-7.
10. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method as described in any one of claims 1-7.
Citation Information
Patent Citations
Systems and methods for resource allocation in Orthogonal Frequency Division Multiple Access (OFDMA)
CN105850088B
A space mapping simulation system and method
CN115696594B
Resource reservation method, electronic device, storage medium and computer program product
CN120354976A