Data transmission method, device and electronic equipment for multi-carrier system
By dividing data into multiple data slices and allocating redundant transmission in a multi-carrier system, the performance degradation problem caused by the complexity of erasure codes in wireless communications is solved, and efficient and reliable data transmission is achieved.
Patent Information
- Application Number
- CN202411647574.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2044-09-27
AI Technical Summary
In existing wireless communication systems, although erasure coding technology improves data transmission reliability, the encoding and decoding processes are complex, resulting in reduced system performance. Optimizing the reliability and efficiency of data transmission remains a challenge.
The data to be transmitted is divided into multiple data slices, and at least two subcarriers are allocated to each data slice for transmission. All subcarriers participate in the transmission, and the redundant subcarriers are used to recover the data, avoiding the complex calculation process.
Redundant transmission of data slices in a multi-carrier system improves data transmission reliability and system performance, avoids complex computational overhead, and ensures data integrity and reliability.
Smart Images

Figure CN119316093B_ABST
Abstract
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, data transmission reliability and efficiency are crucial. With the widespread adoption of the internet, wireless communications, and IoT devices, data transmission faces increasing challenges. Due to physical layer instabilities, various errors can occur during data transmission, such as signal attenuation, interference, noise, and multipath effects. These issues are particularly prominent in wireless communications. For example, in scenarios requiring highly reliable data transmission, existing technologies generally employ erasure coding. The 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 recovered from the remaining data blocks and parity blocks. For example, assuming k = 4 data blocks D1, D2, D3, D4, and m = 2 parity blocks P1, P2, the original data is divided into 6 blocks (4 data blocks and 2 parity blocks). Even if any two blocks (either data blocks or parity blocks) are lost, the original data can still be recovered from the remaining 4 blocks, ensuring reliable data transmission. However, despite the significant advantages of erasure coding in improving data reliability, the encoding and decoding processes of erasure coding are complex, computationally expensive, and can lead to reduced system performance. Therefore, how to further optimize and improve the reliability of data transmission in wireless communication systems is still a technical problem that those skilled in the art are studying and urgently need to solve. Summary of the Invention
[0004] In view of this, embodiments of the present invention provide a data transmission method, apparatus, and electronic device for a multi-carrier system to solve the technical problem of how to improve data transmission reliability in existing wireless communication technologies.
[0005] According to a first aspect of an embodiment of the present invention, a data transmission method for 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 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; 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 to be S; identifying the size of the data to be transmitted to be 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 being S, calculating the number of data slices to be K by rounding up, and dividing the data into slices of size S data slices are received 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 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.
[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 based on 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 effects of the embodiments of the present invention compared with the prior art are as follows: 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 these divided data slices, and then allows all 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 realizes the 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 following briefly introduces the drawings required for use in the embodiments or descriptions of the prior art. 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 any creative work.
[0010] Figure 1 1 is a flow chart of a data transmission method for a multi-carrier system provided by an embodiment of the present invention;
[0011] Figure 2 1 is a schematic structural diagram of a data transmission device for a multi-carrier system provided by an embodiment of the present invention;
[0012] Figure 3 It is a structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0013] In the following description, specific details such as particular system structures and techniques are provided for purposes of illustration, not limitation, to facilitate a thorough understanding of the embodiments of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.
[0014] See also Figure 1 In a first embodiment of the application, a data transmission method for a multi-carrier system is provided, which includes 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, wherein 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, the data to be transmitted is transmitted using each subcarrier.
[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 still 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 due to an error in a single subcarrier, and improving the reliability of data transmission using the multi-carrier system.
[0020] In practice, considering that the number of data slices is related to the allocation of subcarrier data in subsequent steps, there is no single 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 of non-uniform size of the data to be transmitted, if a fixed number of data slices is used, the size of the data slices 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 using the formula S=N / K based on the determined target K value and the size N of the data to be transmitted.
[0022] In this embodiment, the data to be transmitted is divided into a plurality of data slices of equal size. Therefore, 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 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 then increased sequentially until a target K value is found that makes N exactly divisible by K. For example, when K = 2, 1005 ÷ 2 = 502.5; however, 502.5 is not an integer and does not meet the requirement. At this point, we attempt to find a more suitable K value by continuing to increase K. When K = 3, 1005 ÷ 3 = 335, which is an integer and meets the requirement. At this point, 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; and dividing the data to be transmitted into a target K value for the number of data slices determined as the total number, and using the number of tasks as selection data, calculating a 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 segment of data to be transmitted, of size N. It needs to be divided into data slices and assigned to multiple subcarriers for transmission, with each subcarrier required to carry at least two data slices. For example, the size of the data to be transmitted, N, is 1200 units, each data slice is 100 units, and the bandwidth of each subcarrier is 300 units. The first step is data division: divide data N into fixed-size data slices Ck, with a total number of data slices of 1200 / 100 = 12. The second step is determining the number of tasks: set the number of data slices (number of tasks) to be transmitted per subcarrier to t, where t ≥ 2t. Initially, the number of tasks t = 2, and cyclically increase the number of tasks t until the transmission requirements are met. The third step is calculating the number of combinations: Based on the number of tasks t and the total number of data slices K, the number of combinations is calculated to determine the required number of subcarriers. The combination number calculation formula is: C(K, t) = t! / (Kt)! K!, which represents the number of possible combinations of selecting t elements from K elements, where K! is the factorial of K, representing all permutations of K elements. t! is the factorial of t, representing the number of permutations of the selected t elements. (Kt)! is the number of permutations of the remaining Kt elements. For example, if 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 is: C(12, 2) = 12!2! (12-2)! = 12 × 112 × 1 = 66. Therefore, the number of required subcarriers is 66.
[0027] This embodiment divides a large amount of data into multiple small data slices and utilizes a scenario of parallel transmission of multiple subcarriers to ensure that the load of each subcarrier is balanced when transmitting a large amount of data, and all data slices can be effectively transmitted and recovered.
[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 does not impose any limitation on 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 divided 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 by the current available bandwidth of the system to determine whether it can carry the amount of data after the subcarrier task is allocated, 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: pre-setting the size of the data slice as S; identifying the size of the data to be transmitted as N; judging 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 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] For the case where the data to be transmitted is divided into multiple data slices of the same size S, for example, assuming that the size N of the data to be transmitted is 1200 units and 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 slices, and set the size of each data slice to S=300 units (for example, in 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, so the condition is not met.
[0037] Step 4: Based on the size S of the data slice, calculate the number K of data slices:
[0038] Indicates the number of groups or divisions to be 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 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.
[0040] Division process:
[0041] 1. Expansion 1: 300 units;
[0042] 2. Expansion 2: 300 units;
[0043] 3. Expansion 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 the preset data slice size S = 300 bytes and the data size 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 be further divided according to the solution. Then, use rounding up to calculate the number of data slices K: Therefore, the data needs to be divided into four data slices. Finally, the data slices are divided into the following: the first data slice: 300 bytes, the second data slice: 300 bytes, the third data slice: 300 bytes, and the fourth data slice: the remaining data size, that is, 1100 - 900 = 200 bytes. 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 four 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 fixed-size data slices through this method, which is convenient for subsequent transmission using subcarriers.
[0048] Preferably, 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: 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 transferred 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 embodiment, each subcarrier is allocated a data slice to be transmitted, 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 divided 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, the data slices are cyclically interleaved and allocated to each subcarrier.
[0065] For example, assuming that the number of data slices K = 4, i.e., data slices D1, D2, D3, D4; and the number of subcarriers N = 4, i.e., subcarriers C1, C2, C3, C4. Based on the request that each subcarrier transmit the same number of data slices, the following steps are taken to allocate data slice transmission:
[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 manner, with 3 data slices allocated 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 recovered by receiving the data slices of other subcarriers.
[0079] When processing data at the receiving end, two scenarios must be considered: when the received data slice is error-free and when it is erroneous. Assuming each data slice is transmitted over at least two subcarriers, even if one subcarrier's data slice contains an error, the original data can still be recovered from the other subcarriers' data slices.
[0080] In an optional embodiment, the above method also includes: the receiving end collects data slices from all subcarriers, and counts the number of times each data slice appears and generates a data slice reception list; based on the number of times each data slice appears, checks whether there is a subcarrier transmission error; 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 receiver simply collects all data slices from the subcarriers and reassembles them into the original data. In the presence of errors, the receiver needs to identify the erroneous data slices and recover them using redundant data slices.
[0082] For example, suppose a data slice is transmitted by two subcarriers. The receiver receives the data slices transmitted by the subcarriers and then counts the number of times the data slice appears. If the counted number of times for a data slice is 2, it means that there was no error during the transmission of this data slice and it is valid data. If the counted number of times for a data slice is 1, it means that an error occurred in one of the subcarriers transmitting the data slice, resulting in the receiver receiving the data slice only once. In this case, the data slice is redundant and can be used together with other valid data slices to restore the original data. In addition, if the counted number of times for a data slice is 0, it means that the data slice has been lost and the original data cannot be restored.
[0083] By counting the number of occurrences of each data slice, this embodiment allows the receiving end to effectively identify and recover the original data, even if errors occur in the transmission of data slices of certain 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, and will not be described in detail here.
[0085] The following are embodiments of the apparatus of the present invention, which can be used to implement the method embodiments of the present invention. For details not disclosed in the apparatus 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 apparatus for a multi-carrier system is provided, comprising:
[0087] The data partitioning module 201 is configured to partition the data to be transmitted into at least two data slices;
[0088] The carrier determination module 202 is configured 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 configured to allocate 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;
[0090] The data transmission module 204 is configured 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 to be 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 divided by 2; if so, determine the task number of data slices to be transmitted by each subcarrier as the ratio; if not, determine the task number of data slices to be transmitted by each subcarrier as the preset value.
[0094] In some optional embodiments, the above-mentioned data partitioning module 201 is used to pre-set the size of the 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 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 based on the number of data slices divided; initialize the number of data slices transmitted by each subcarrier to N=1; based on 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 task allocation module 203 is used to replicate the data slices into which the data to be transmitted is divided according to the number of tasks for each subcarrier to transmit data slices, and the number of replications is equal to the number of tasks to obtain a corresponding data slice array; create 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, 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 apparatus of the multi-carrier system further includes:
[0098] The data receiving module 205 is used to collect data slices from all subcarriers at the receiving end, count the number of times each data slice appears, and generate a data slice receiving list; based on the number of times each data slice appears, check whether there is a subcarrier transmission error; 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; 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 size of the serial numbers of the steps in the above embodiments does not 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 embodiments of the present invention.
[0100] Figure 3 FIG. 3 is a 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 by the processor 301. When the processor 301 executes the computer program 303, the steps of 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 This is merely an example of the electronic device 3 and does not limit the electronic device 3 . The electronic device 3 may include more or fewer components than 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 can be an internal storage unit of the electronic device 3, such as a hard disk or memory of the electronic device 3. The memory 302 can also be an external storage device of the electronic device 3, such as a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) card, a Flash Card, etc. equipped on the electronic device 3. The memory 302 can 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 will clearly understand that for the sake of convenience and brevity of description, only the division of the above-mentioned functional modules is used as an example for illustration. In actual applications, the above-mentioned functions can be distributed and completed by 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 process in the above-mentioned embodiment method, and can also be completed by a computer program to instruct the relevant hardware. The computer program can be stored in a computer-readable storage medium, and when the computer program is executed by the processor, it can implement the steps of each of the above-mentioned method embodiments. The computer program may include computer program code, which 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, USB flash drive, 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, computer-readable media 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 they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the various embodiments of the present invention, and should all be included in the scope of protection 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; Determining 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; transmitting the data to be transmitted using each of the subcarriers according to the allocation result; The dividing the data to be transmitted into at least two data slices includes: presetting a size of a data slice as S; identifying a 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 S, calculating the number of data slices as K by rounding up, and sequentially dividing the data into data slices of size S 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 based on the number of divided data slices includes: determining the total number of data slices required to be 2K based on the number of divided data slices; initializing the number of data slices transmitted by each subcarrier to N=1; based on the size S of each data slice, cyclically checking whether S*N≤the bandwidth B of the subcarrier holds, and 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 target number of data slices required in total; and calculating the ratio of the target number of data slices required in total to the task number to obtain the required number of subcarriers M.
2. The method according to claim 1, characterized in that The 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 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 any subcarrier transmission error based on the number of times each data slice appears; If there is no error, the received data slice is restored 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, configured to partition the data to be transmitted into at least two data slices; A carrier determination module, configured 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 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; The data transmission module is configured 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, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 3 are implemented.