Data transmission method and device of multi-carrier system and electronic equipment

By dividing data into multiple data slices in a multi-carrier system and transmitting them by multiple subcarriers, the problem of degradation of data transmission reliability and system performance in wireless communication is solved, and an efficient and simplified data transmission process is achieved.

CN119316093AActive Publication Date: 2025-01-14WEIZHUN BEIJING ELECTRONICS TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411647574.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-27
Publication Date
2025-01-14
Estimated Expiration
2044-09-27

AI Technical Summary

Technical Problem

The reliability of data transmission in existing wireless communication technologies is affected by problems such as physical layer instability, signal attenuation, interference and noise. Although the erasure coding technology improves reliability, the encoding and decoding process is complex, resulting in a degradation of system performance.

Method used

Using the data transmission method of a multi-carrier system, the data to be transmitted is divided into multiple data slices, and at least two subcarriers are allocated to each data slice for transmission, ensuring that each data slice is transmitted by multiple subcarriers, so that during the transmission process Recover data with redundant data slices to avoid data transmission failure caused by single subcarrier errors.

Benefits of technology

It improves the reliability and system performance of data transmission in multi-carrier systems, simplifies the calculation process, realizes the efficiency and reliability of data transmission, and avoids complex erasure and coding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316093A_ABST
    Figure CN119316093A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of carrier communication, and provides a data transmission method and device of a multi-carrier system and electronic equipment, and the method comprises the steps: dividing to-be-transmitted data into at least two data pieces; determining the number of subcarriers for transmitting the data to be transmitted according to the number of the divided data pieces; a data piece to be transmitted is allocated to each subcarrier, each data piece is transmitted by at least two subcarriers, and all the subcarriers participate in data piece transmission; and transmitting the to-be-transmitted data by using each subcarrier according to the distribution result. In the transmission process, even if an individual sub-carrier has an error, each data piece has redundancy due to the factor that each data piece has transmission of a plurality of different sub-carriers, so that the data pieces transmitted by other normal sub-carriers are used for recovering the data, and the method does not need complex calculation, can effectively improve the system performance, and is suitable for large-scale popularization and application. And the data transmission reliability of the multi-carrier system is realized.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese patent application with an application date of September 27, 2024, application number 202411356178X, and invention name "A data transmission method, device and electronic device for a multi-carrier system". The entire content of the Chinese patent application is hereby introduced into this divisional application as a reference. Technical Field

[0002] The present invention relates to the field of carrier communication technology, and in particular to a data transmission method, device and electronic equipment for a multi-carrier system. Background Art

[0003] In modern communication systems, the reliability and efficiency of data transmission are crucial. With the popularization of the Internet, wireless communications, and IoT devices, data transmission faces more and more challenges. Due to the instability of the physical layer, various errors may occur during data transmission, such as signal attenuation, interference, noise, and multipath effects, which are particularly prominent in wireless communications. Taking some scenarios that require high-reliability data transmission as an example, the prior art generally uses erasure coding technology for data transmission. Its basic principle is to encode data using mathematical algorithms so that even if some data blocks are lost or damaged, the original data can be restored through the remaining data blocks and check blocks. For example, assuming k = 4 data blocks D1, D2, D3, D4, and using m = 2 check blocks P1, P2, the original data is divided into 6 blocks (4 data blocks and 2 check blocks). Even if any 2 blocks (whether data blocks or check blocks) are lost, the original data can still be restored through the remaining 4 blocks to ensure the reliability of data transmission. However, although erasure codes have significant advantages in improving data reliability, the encoding and decoding process of erasure codes is complex and computationally expensive, which may lead to system performance degradation. Therefore, how to further optimize and improve the reliable transmission of data in wireless communication systems is still a technical problem that technicians in this field need to study and urgently solve. Summary of the invention

[0004] In view of this, the embodiments of the present invention provide a data transmission method, device and electronic device for a multi-carrier system to solve the technical problem of how to improve the reliability of data transmission in the existing wireless communication technology.

[0005] According to a first aspect of an embodiment of the present invention, a method for transmitting data in a multi-carrier system is provided, comprising: dividing data to be transmitted into at least two data slices; determining the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices; allocating the data slices to be transmitted to each subcarrier, wherein each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slices; and transmitting the data to be transmitted using each subcarrier according to the allocation result; dividing the data to be transmitted into at least two data slices comprises: presetting the size of the data slice as S; identifying the size of the data to be transmitted as N; determining whether the data to be transmitted N is less than or equal to 2S; if so, dividing the data to be transmitted N into 2 data slices; if not, based on the size of the data slice as S, calculating the number of data slices as K by rounding up, and dividing the data into pieces of size K in sequence. S data slices are divided until the size of the remaining data is less than S, and the size of the last data slice is determined to be the size of the remaining data; the number of subcarriers for transmitting the data to be transmitted is determined according to the number of divided data slices, including: determining the total number of data slices required to be 2K according to the number of divided data slices; initializing the number of data slices transmitted by each subcarrier to N=1; according to the size S of each data slice, cyclically checking whether S*N≤the bandwidth B of the subcarrier is established, if so, executing N+=1, if not, ending the loop and executing N-=1 to obtain the task number of data slices to be transmitted by each subcarrier; adjusting the total number of data slices required so that it can be divided by the number of tasks to obtain the total number of target data slices required; calculating the ratio of the total number of target data slices required to the number of tasks to obtain the required number of subcarriers M.

[0006] According to a second aspect of an embodiment of the present invention, a data transmission device for a multi-carrier system is provided, which is used to implement the above method and includes: a data division module, which is used to divide the data to be transmitted into at least two data slices; a carrier determination module, which is used to determine the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices; a task allocation module, which is used to allocate the data slice to be transmitted to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice; and a data transmission module, which is used to transmit the data to be transmitted using each of the subcarriers according to the allocation result.

[0007] According to a third aspect of an embodiment of the present invention, an electronic device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the above method when executing the computer program.

[0008] The beneficial effect of the embodiments of the present invention compared with the prior art is: the data transmission method of the multi-carrier system divides the data to be transmitted into multiple data slices, and then determines the corresponding number of subcarriers allocated for transmitting the divided data slices, and then allows all the allocated subcarriers to participate in the transmission of the data slices, and each data slice is transmitted by at least two different subcarriers, so that the divided data slices are sent to the receiving end using these subcarriers to complete the transmission of the data to be transmitted. During the transmission process, even if errors occur in individual subcarriers, each data slice will be redundant because each data slice is transmitted by multiple different subcarriers, so that the data can be restored by using data slices transmitted by other normal subcarriers. This method does not require complex calculations, can effectively improve system performance, and achieves data transmission reliability of the multi-carrier system. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0010] Figure 1 It is a flowchart of a data transmission method of a multi-carrier system provided by an embodiment of the present invention;

[0011] Figure 2 It is a structural schematic diagram of a data transmission device of a multi-carrier system provided by an embodiment of the present invention;

[0012] Figure 3 It is a structural schematic diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0013] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present invention. However, it should be clear to those skilled in the art that the present invention may be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present invention.

[0014] See also Figure 1 In a first embodiment of the application, a data transmission method for a multi-carrier system is provided, which comprises the steps of:

[0015] S101, dividing the data to be transmitted into at least two data slices;

[0016] S102, determining the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices;

[0017] S103, allocating a data slice to be transmitted to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice;

[0018] S104: According to the allocation result, use each subcarrier to transmit the data to be transmitted.

[0019] The data transmission method of the above-mentioned multi-carrier system divides the data to be transmitted into at least two data slices, and then allocates subcarriers to the divided data slices, so that each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slices. In this way, even if an error occurs in one data slice during the transmission process, the erroneous data slice can be transmitted by another subcarrier, so that the data can be recovered from the transmission result of the other subcarrier, avoiding the problem of data transmission failure caused by an error in a single subcarrier, and improving the reliability of data transmission using a multi-carrier system.

[0020] In practice, considering that the number of data slices is associated with the allocation of subcarrier data in subsequent steps, there is no unique way to divide the data to be transmitted into data slices, including but not limited to dividing the data to be transmitted into data slices of equal size, or dividing the data to be transmitted into multiple data slices of fixed size. In the case where the size of the data to be transmitted is not uniform, if a method of dividing the data slices with a fixed number is used, the size of the data slice may exceed the bandwidth of the subcarrier, or the total size of multiple data slices transmitted by a single subcarrier may exceed its bandwidth, resulting in transmission failure.

[0021] In some optional embodiments, in step S101, the data to be transmitted is divided into at least two data slices, including: identifying the size of the data to be transmitted as N, and setting the number of data slices to be divided as K, and the size of each data slice as S; initializing the number of divided data slices K to 2, where K is an integer greater than or equal to 2; increasing the value of K in sequence until a target K value is found that makes N just divisible by K; and calculating the target S value of each data slice according to the determined target K value and the size N of the data to be transmitted using the formula S=N / K.

[0022] In this embodiment, the data to be transmitted is divided into a plurality of data slices of equal size, so the number K of data slices into which the data to be transmitted is divided and the size of each data slice are not fixed.

[0023] Specifically, assume that the size of the data to be transmitted is N = 1005 units, and the number of data slices initially divided is K = 2. The value of K is increased successively until the target K value that makes N just divisible by K is found. For example, when K = 2, 1005 ÷ 2 = 502.5; 502.5 is not an integer and does not meet the condition. At this time, try to find a more suitable K value, and continue to increase the value of K: when K = 3, 1005 ÷ 3 = 335, 335 is an integer and meets the condition. At this time, the target K value is 3.

[0024] It can be seen that this embodiment divides the data by dividing the number of data slices into which the data to be transmitted is divided, thereby ensuring that the size of each data slice is consistent, thereby preserving the rationality of data division to meet the subsequent carrier balanced transmission requirements.

[0025] Based on the above optional embodiment, in step S102, the number of subcarriers for transmitting the data to be transmitted is determined according to the number of divided data slices, including: obtaining the number of tasks for each subcarrier to transmit the data slices, the number of tasks being greater than or equal to 2; determining the target K value for the number of data slices into which the data to be transmitted is divided as the total number, and using the number of tasks as the selection data, calculating the corresponding number of combinations, and determining the number of combinations as the number of subcarriers for transmitting the data to be transmitted.

[0026] Specifically, suppose there is a piece of data to be transmitted, whose size is N, which needs to be divided into data slices and allocated to multiple subcarriers for transmission, and each subcarrier needs to transmit at least two data slices. For example, the size of the data to be transmitted is N, N is 1200 units, the size of each data slice is 100 units, and the bandwidth of each subcarrier is 300 units. The first step is to divide the data: divide the data N into fixed-size data slices Ck, and the total number of data slices is 1200 / 100=12; the second step is to determine the number of tasks: set the number of data slices (number of tasks) transmitted by each subcarrier to t, where t≥2t, the initial number of tasks t=2, and the number of tasks t is increased cyclically until the transmission requirements are met. The third step is to calculate the number of combinations: according to the number of tasks t and the total number of data slices K, calculate the number of combinations, determine the number of subcarriers required, and use the combination number calculation formula: C(K, t)=t! / (Kt)! K!, which represents the number of combinations of selecting t elements from K elements, where K! is the factorial of K, indicating all permutations of K elements, t! is the factorial of t, indicating the number of permutations of the selected t elements, and (Kt)! is the number of permutations of the remaining Kt elements. For example, t=2 is selected as the initial number of tasks, and the number of combinations is calculated. K=12, the number of tasks t=2, and the number of combinations: C(12,2)=12!2! (12-2)! =12×112×1=66, so the number of subcarriers required is 66.

[0027] This embodiment divides a large amount of data into multiple small data slices and utilizes a scenario of multi-subcarrier parallel transmission to ensure that when transmitting a large amount of data, the load of each subcarrier is balanced and all data slices can be effectively transmitted and restored.

[0028] It is understandable that the number of tasks may be a pre-set initial value, or may be a new initial value obtained by adjusting the number of tasks according to data transmission requirements during use, and the present invention is not limited to this.

[0029] Preferably, in the above embodiment, obtaining the task number of data slices to be transmitted by each subcarrier includes: obtaining the current available bandwidth of the multicarrier system, and determining the amount of data transmitted per unit time of the available bandwidth; calculating the ratio of the amount of data transmitted per unit time to the data to be transmitted; judging whether the ratio is greater than or equal to a preset value, wherein the preset value includes the value of the target K value divisible by 2, that is, dividing the target K value by 2 and taking the integer part; if so, determining the task number of data slices to be transmitted by each subcarrier as the ratio; if not, determining the task number of data slices to be transmitted by each subcarrier as the preset value.

[0030] In this embodiment, the number of tasks is a dynamic value, not a fixed value. The ratio of the data to be transmitted can be evaluated through the current available bandwidth of the system to determine whether it can carry the amount of data after the subcarrier task allocation, thereby achieving efficient utilization of the current available bandwidth.

[0031] In an optional embodiment, in step S101, the data to be transmitted is divided into at least two data slices, including: presetting the size of the data slice as S; identifying the size of the data to be transmitted as N; determining whether the data to be transmitted N is less than or equal to 2S; if so, dividing the data to be transmitted N into 2 data slices; if not, based on the size of the data slice as S, the number of data slices is calculated as K by rounding up, and the data is divided into data slices of size S in sequence until the size of the remaining data is less than S, and the size of the last data slice is determined to be the size of the remaining data.

[0032] Specifically, when the size of the data slice is preset, data of different sizes to be transmitted may be divided into multiple data slices of the same size, or may not be exactly divisible, so that the last data slice is smaller than S.

[0033] In the case where the data to be transmitted is divided into multiple data slices of the same size S, for example, it is assumed that the size N of the data to be transmitted is 1200 units; the size S of each data slice is 300 units. In combination with the technical solution provided in this embodiment, the specific processing steps include:

[0034] Step 1: pre-set the size of the data slice, and set the size of each data slice to S=300 units (for example, the unit is bytes);

[0035] Step 2: Identify the size of the data to be transmitted, the size of the data to be transmitted N = 1200 units;

[0036] Step 3: Determine whether N is less than or equal to 2S. First calculate 2S = 2 × 300 = 600 units. Then determine whether N is less than or equal to 600 units. N = 1200 units > 600 units, which does not meet the condition.

[0037] Step 4: Based on the size S of the data slice, calculate the number K of data slices:

[0038] Indicates that the number of groups or divisions is calculated by rounding up. Therefore, K means that the total amount of 1200 needs to be divided into groups of size 300, resulting in 4 groups.

[0039] Step 5: Divide the data into data slices of size S in order until the size of the remaining data is less than S, and determine that the size of the last data slice is the size of the remaining data.

[0040] Division process:

[0041] 1. Data Pack 1: 300 units;

[0042] 2. Data Pack 2: 300 units;

[0043] 3. Data Pack 3: 300 units;

[0044] 4.Expansion Pack 4: 300 units.

[0045] It can be seen that there is no remaining data and the size of all data slices is 300 units.

[0046] For the case where the data to be transmitted cannot be exactly divided into multiple data slices of the same size S, for example, assuming that the preset data slice size S = 300 bytes and the size of the data to be transmitted N = 1100 bytes; according to the technical solution provided by the above embodiment, first determine whether N = 1100 is less than or equal to 2S = 600, 1100> 600, therefore, the data to be transmitted N is greater than 2S, and needs to continue to be divided according to the solution. Next, use rounding up to calculate the number of data slices K: Therefore, the data needs to be divided into 4 data slices. Finally, the data slices are divided into: the first data slice: 300 bytes, the second data slice: 300 bytes, the third data slice: 300 bytes, the fourth data slice: the remaining data size, that is, 1100-900=200 bytes, and the size of the last data slice is determined: since the data N=1100 cannot be divided by S=300, the remaining 200 bytes will be used as the size of the last data slice. Therefore, the sizes of the 4 divided data slices are: 300 bytes, 300 bytes, 300 bytes, and 200 bytes respectively.

[0047] This embodiment can effectively divide a large amount of data into data slices of fixed size through this method, so as to facilitate subsequent transmission using subcarriers.

[0048] Preferably, based on the above optional embodiments, in step S102, the number of subcarriers for transmitting the data to be transmitted is determined according to the number of divided data slices, including: determining the total number of data slices required to be 2K according to the number of divided data slices (assuming it is K); initializing the number of data slices transmitted by each subcarrier to N=1; according to the size S of each data slice, cyclically checking whether S*N≤the bandwidth B of the subcarrier is established, if so, executing N+=1, if not, ending the loop and executing N-=1 to obtain the task number of data slices to be transmitted by each subcarrier; adjusting the total number of data slices required so that it can be divided by the number of tasks to obtain the total target number of data slices required; calculating the ratio of the total target number of data slices required to the number of tasks to obtain the required number of subcarriers M, where M is a positive integer.

[0049] Specifically, suppose there is a large file N = 3600 units that needs to be transmitted to a remote server via the network. Combined with the above solution, the specific processing process is as follows:

[0050] Step 1: Determine that the total number of data slices required is 2K, divide the data N into fixed-size data slices S=150 units, K=3600 / 150=24, and determine that the total number of data slices required is 2K=2×24=48.

[0051] Step 2: Initialize the number of data slices transmitted by each subcarrier to N=1.

[0052] Step 3: Loop and check if S×N≤B;

[0053] The bandwidth of each subcarrier is B = 600 units;

[0054] Cycle process:

[0055] N=1:150×1=150≤600, established, N=2;

[0056] N=2:150×2=300≤600, established, N=3;

[0057] N=3:150×3=450≤600, established, N=4;

[0058] N=4:150×4=600≤600, established, N=5;

[0059] N=5:150×5=750>600, not true, end the loop, N=4.

[0060] Step 4: Adjust the total number of data slices required so that it is divisible by the number of tasks. Specifically, adjust the total number of data slices required so that it is divisible by N=4: 48÷4=12, no adjustment is required.

[0061] Step 5: Calculate the required number of subcarriers M, calculate the ratio of the total required number of target data slices to the number of tasks, and obtain the required number of subcarriers M=48 / 4=12.

[0062] It can be seen that the technical solution provided by this embodiment can quickly confirm the subcarrier data volume of the transmission data slice.

[0063] Preferably, on the basis of the above optional embodiments, a data slice to be transmitted is allocated to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice, including: according to the number of tasks for each subcarrier to transmit the data slice, the data slices into which the data to be transmitted are copied, and the number of copies is equal to the number of tasks, to obtain a corresponding data slice array; according to the determined number of subcarriers for transmitting the data to be transmitted, a subcarrier array of corresponding length is created; based on the data slice array and the subcarrier array, a cyclic interleaving allocation strategy is used to allocate the data slices to the subcarriers, wherein each subcarrier is allocated a corresponding number of data slices, and the number of data slices allocated to the subcarriers is different.

[0064] Specifically, given the total number of data slices K and the number of subcarriers M, to ensure that each subcarrier is allocated the same number of data slices, the number of data slices is replicated to ensure that each subcarrier is allocated the same number of data slices, while ensuring that each data slice is transmitted by at least two subcarriers. In the replicated data slice array, they are cyclically interleaved and allocated to each subcarrier.

[0065] For example, assume that the number of data slices K = 4, i.e., data slices D1, D2, D3, D4; the number of subcarriers N = 4, i.e., subcarriers C1, C2, C3, C4. According to the request that each subcarrier transmits the same number of data slices, the following steps are taken to perform data slice transmission allocation:

[0066] Step 1: Determine the number of data slices transmitted by each subcarrier. Assume that the number of data slices to be transmitted by each subcarrier is 3 (ie, the number of tasks), so that each subcarrier is allocated the same number of data slices.

[0067] Step 2: Duplicate the data slices. To meet the requirements, duplicate each data slice to ensure that each subcarrier is allocated the same number of data slices. The duplication is as follows:

[0068] D1 is replicated 3 times: D1, D1, D1;

[0069] D2 is replicated 3 times: D2, D2, D2;

[0070] D3 is copied 3 times: D3, D3, D3;

[0071] D4 is copied 3 times: D4, D4, D4.

[0072] The final array of copied data slices is: D1, D1, D1, D2, D2, D2, D3, D3, D3, D4, D4, D4.

[0073] Step 3: Cyclic interleaving allocation strategy, allocate data slices to subcarriers in a cyclic interleaving allocation manner, and allocate 3 data slices to each subcarrier. The allocation results are as follows:

[0074] Subcarrier C1 allocation: D1, D2, D3;

[0075] Subcarrier C2 allocation: D1, D2, D4;

[0076] Subcarrier C3 allocation: D1, D3, D4;

[0077] Subcarrier C4 allocation: D2, D3, D4.

[0078] It is understandable that if the number of data slices K and the number of subcarriers M are uneven, the data slices can be further replicated to ensure that each subcarrier transmits the same amount of data, while ensuring that each data slice is transmitted by multiple subcarriers. Through the technical solution provided by this embodiment, each data slice is transmitted by at least two subcarriers, the number of data slices transmitted by each subcarrier is the same, all subcarriers participate in the transmission of data slices, and the same data slice is not transmitted repeatedly. At the receiving end, even if a subcarrier is transmitted incorrectly, the complete data can be restored through the data slices received from other subcarriers.

[0079] When processing data at the receiving end, two situations need to be considered: the received data slice has no errors and the received data slice has errors. Assuming that each data slice is transmitted by at least two subcarriers, even if the data slice of one subcarrier has errors, we can still recover the original data through the data slices of other subcarriers.

[0080] In an optional embodiment, the above method also includes: the receiving end collects data slices from all subcarriers, counts the number of times each data slice appears and generates a data slice reception list; checks whether there is a subcarrier transmission error based on the number of times each data slice appears; if there is no error, restores the received data slice to the original data; if there is an error, determines whether there is a copy of the data slice lost due to the subcarrier transmission error based on the number of times each data slice appears in the data slice reception list, and if so, uses the copy of the data slice lost due to the subcarrier transmission error to restore the original data.

[0081] Specifically, in the absence of errors, the receiving end needs to simply collect all data slices from the subcarriers and reassemble them into the original data. In the presence of errors, the receiving end needs to identify the erroneous data slices and use the redundant data slices for recovery.

[0082] For example, suppose a data slice is transmitted by two subcarriers, and the receiving end receives the data slice transmitted by the subcarriers, and then counts the number of times the data slice appears. If the statistical number of a data slice is 2, it means that there is no error in the transmission of this data slice and it is valid data. If the statistical number of a data slice is 1, it means that there is an error in a subcarrier transmitting the data slice, resulting in the receiving end receiving the data slice only once, then the data slice is a redundant data slice, and then the redundant data slice is used together with other normal and valid data slices to restore the original data. In addition, if the number of occurrences of a data slice is 0, it means that the data slice has been lost, and the original data cannot be restored at this time.

[0083] By counting the number of occurrences of each data slice in this embodiment, the receiving end can effectively identify and restore the original data, even if errors occur in the transmission of data slices of some subcarriers. This method ensures the reliability and integrity of data transmission.

[0084] All the above optional technical solutions can be arbitrarily combined to form optional embodiments of the present invention, which will not be described in detail here.

[0085] The following are embodiments of the device of the present invention, which can be used to implement the method embodiments of the present invention. For details not disclosed in the device embodiments of the present invention, please refer to the method embodiments of the present invention.

[0086] See also Figure 2 In a second embodiment of the present invention, a data transmission device of a multi-carrier system is provided, comprising:

[0087] The data partitioning module 201 is used to partition the data to be transmitted into at least two data slices;

[0088] The carrier determination module 202 is used to determine the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices;

[0089] The task allocation module 203 is used to allocate a data slice to be transmitted to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice;

[0090] The data transmission module 204 is used to transmit the data to be transmitted using each subcarrier according to the allocation result.

[0091] In some optional embodiments, the above-mentioned data partitioning module 201 is used to identify the size of the data to be transmitted as N, and set the number of data slices to be divided as K, and the size of each data slice as S; initialize the number of divided data slices K to 2, where K is an integer greater than or equal to 2; increase the value of K successively until the target K value that makes N just divisible by K is found; according to the determined target K value and the size N of the data to be transmitted, the target S value of each data slice is calculated using the formula S=N / K.

[0092] In some optional embodiments, the above-mentioned carrier determination module 202 is used to obtain the number of tasks for each subcarrier to transmit data slices, and the number of tasks is greater than or equal to 2; the target K value for dividing the data to be transmitted into data slices is determined as the total number, and the number of tasks is used as the selection data to calculate the corresponding number of combinations, and the number of combinations is determined as the number of subcarriers for transmitting the data to be transmitted.

[0093] In some optional embodiments, the above-mentioned carrier determination module 202 is used to obtain the current available bandwidth of the multi-carrier system and determine the amount of data transmitted per unit time of the available bandwidth; calculate the ratio of the amount of data transmitted per unit time to the data to be transmitted; determine whether the ratio is greater than or equal to a preset value, wherein the preset value includes the value of the target K value that is integer-divided by 2; if so, determine that the task number of data slices to be transmitted for each subcarrier is the ratio; if not, determine that the task number of data slices to be transmitted for each subcarrier is the preset value.

[0094] In some optional embodiments, the data partitioning module 201 is used to pre-set the size of a data slice as S; identify the size of the data to be transmitted as N; determine whether the data to be transmitted N is less than or equal to 2S; if so, divide the data to be transmitted N into 2 data slices; if not, based on the size of the data slice as S, use rounding up to calculate the number of data slices as K, and divide the data into data slices of size S in sequence until the size of the remaining data is less than S, and determine that the size of the last data slice is the size of the remaining data.

[0095] In some optional embodiments, the above-mentioned carrier determination module 202 is used to determine that the total number of data slices required is 2K according to the number of divided data slices; initialize the number of data slices transmitted by each subcarrier to N=1; according to the size S of each data slice, cyclically check whether S*N≤the bandwidth B of the subcarrier is established, if so, execute N+=1, if not, end the loop and execute N-=1 to obtain the task number of data slices to be transmitted by each subcarrier; adjust the total number of data slices required so that it can be divided by the number of tasks to obtain the total target number of data slices required; calculate the ratio of the total target number of data slices required to the number of tasks to obtain the required number of subcarriers M.

[0096] In some optional embodiments, the above-mentioned task allocation module 203 is used to copy the data slices into which the data to be transmitted is divided according to the task number of data slices to be transmitted by each subcarrier, and the number of copies is equal to the task number to obtain a corresponding data slice array; according to the determined number of subcarriers for transmitting the data to be transmitted, create a subcarrier array of corresponding length; based on the data slice array and the subcarrier array, use a cyclic interleaving allocation strategy to allocate the data slices to the subcarriers, wherein each subcarrier is allocated a corresponding number of data slices, and the number of data slices allocated to the subcarriers is different.

[0097] In some optional embodiments, the data transmission device of the multi-carrier system further includes:

[0098] The data receiving module 205 is used for the receiving end to collect data slices from all subcarriers, count the number of times each data slice appears and generate a data slice receiving list; check whether there is a subcarrier transmission error based on the number of times each data slice appears; if there is no error, restore the received data slice to the original data; if there is an error, determine whether there is a copy of the data slice lost due to the subcarrier transmission error based on the number of times each data slice appears in the data slice receiving list, and if so, use the copy of the data slice lost due to the subcarrier transmission error to restore the original data.

[0099] It should be understood that the order of execution of the steps in the above embodiment does not necessarily mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present invention.

[0100] Figure 3 Schematic diagram of an electronic device 3 provided in an embodiment of the present invention. Figure 3As shown, the electronic device 3 of this embodiment includes: a processor 301, a memory 302, and a computer program 303 stored in the memory 302 and executable on the processor 301. When the processor 301 executes the computer program 303, the steps in the above-mentioned method embodiments are implemented. Alternatively, when the processor 301 executes the computer program 303, the functions of the modules in the above-mentioned device embodiments are implemented.

[0101] The electronic device 3 may be a transmitting device, a receiving device or a data processing terminal in a multi-carrier system. The electronic device 3 may include but is not limited to a processor 301 and a memory 302. Those skilled in the art will appreciate that Figure 3 The electronic device 3 is merely an example and does not limit the electronic device 3 , and may include more or less components than those shown in the figure, or different components.

[0102] The processor 301 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0103] The memory 302 may be an internal storage unit of the electronic device 3, for example, a hard disk or memory of the electronic device 3. The memory 302 may also be an external storage device of the electronic device 3, for example, a plug-in hard disk, a smart memory card (SmartMediaCard, SMC), a secure digital (SecureDigital, SD) card, a flash card (FlashCard), etc. equipped on the electronic device 3. The memory 302 may also include both an internal storage unit of the electronic device 3 and an external storage device. The memory 302 is used to store computer programs and other programs and data required by the electronic device.

[0104] Those skilled in the art can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional modules in the embodiment can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units.

[0105] If the integrated module is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present invention implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of the above-mentioned various method embodiments can be implemented. The computer program may include computer program code, and the computer program code may be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium. It should be noted that the content contained in the computer-readable medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable medium does not include electric carrier signals and telecommunication signals.

[0106] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention, and should be included in the protection scope of the present invention.

Claims

1. A data transmission method for a multi-carrier system, characterized in that: include: Dividing the data to be transmitted into at least two data slices; Determine the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices; Allocate a data slice to be transmitted to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice; According to the allocation result, using each of the subcarriers to transmit the data to be transmitted; The method of dividing the data to be transmitted into at least two data slices includes: presetting the size of the data slice as S; identifying the size of the data to be transmitted as N; determining whether the data to be transmitted N is less than or equal to 2S; if so, dividing the data to be transmitted N into two data slices; if not, based on the size of the data slice as S, calculating the number of data slices as K by rounding up, and dividing the data into data slices of size S in sequence until the size of the remaining data is less than S, and determining that the size of the last data slice is the size of the remaining data; The method of determining the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices includes: determining the total number of data slices required as 2K according to the number of divided data slices; initializing the number of data slices transmitted by each subcarrier to N=1; according to the size S of each data slice, cyclically checking whether S*N≤the bandwidth B of the subcarrier holds, if so, executing N+=1, if not, ending the loop and executing N-=1 to obtain the task number of data slices to be transmitted by each subcarrier; adjusting the total number of data slices required so that it can be divided by the task number to obtain the total target number of data slices required; calculating the ratio of the total target number of data slices required to the task number to obtain the required number of subcarriers M.

2. The method according to claim 1, characterized in that The step of allocating a data slice to be transmitted to each subcarrier, wherein each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice, includes: According to the task number of data slices to be transmitted by each subcarrier, the data slices into which the data to be transmitted is divided are copied, and the number of copies is equal to the task number, so as to obtain a corresponding data slice array; Creating a subcarrier array of corresponding length according to the determined number of subcarriers for transmitting the data to be transmitted; Based on the data slice array and the subcarrier array, the data slices are allocated to the subcarriers using a cyclic interleaving allocation strategy, wherein each subcarrier is allocated a corresponding number of data slices, and the number of data slices allocated to the subcarriers is different.

3. The method according to claim 1 or 2, characterized in that: Also includes: The receiving end collects data slices from all subcarriers, counts the number of occurrences of each data slice and generates a data slice reception list; Check whether there is a subcarrier transmission error based on the number of times each data slice appears; If there is no error, restore the received data slice to the original data; If there is an error, determine whether there is a copy of the data slice lost due to the subcarrier transmission error based on the number of times each data slice appears in the data slice reception list. If so, use the copy of the data slice lost due to the subcarrier transmission error to restore the original data.

4. A data transmission device for a multi-carrier system, characterized in that: For implementing the method according to any one of claims 1 to 3, the data transmission device of the multi-carrier system comprises: A data partitioning module, used for partitioning the data to be transmitted into at least two data slices; A carrier determination module, used to determine the number of subcarriers for transmitting the data to be transmitted according to the number of divided data slices; A task allocation module, used for allocating a data slice to be transmitted to each subcarrier, each data slice is transmitted by at least two subcarriers, and all subcarriers participate in transmitting the data slice; The data transmission module is used to transmit the data to be transmitted using each of the subcarriers according to the allocation result.

5. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 3 are implemented.

Citation Information

Patent Citations

  • Multi-carrier hybrid transmission method, sending end and receiving end

    CN110401517A

  • Data transmission control method, system and equipment for communication equipment and storage medium

    CN111490850A

  • Multi-carrier data transmission method and device, computer equipment, chip and medium

    CN118042616A

  • Communication apparatus, control method thereof and communication system

    JP2009077302A