FFT calculation method, system and device based on angle precoding circumference system CORDIC and medium
By employing the CORDIC method for angle precoding circular systems, and utilizing predefined tables and Taylor expansion to calculate the scaling-free rotation factor, the iteration process is simplified. This solves the problems of high iteration count and high hardware resource consumption in the traditional CORDIC algorithm for FFT calculation, achieving efficient and low-latency FFT calculation.
Patent Information
- Application Number
- CN202511756564.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-27
- Publication Date
- 2026-02-27
AI Technical Summary
The existing traditional CORDIC algorithm requires multiple iterations in FFT calculation to achieve the required accuracy, resulting in low computational real-time performance and throughput. Furthermore, the scaling factor introduced in each iteration requires additional compensation, increasing implementation cost and energy consumption.
The CORDIC method of angle precoding circular system is adopted. The residual angle is obtained by querying a predefined table, grouped and encoded, and Taylor expansion is used to calculate the unscaled rotation factor. The iterative process is simplified by combining multiply-accumulate operations. The serial delay feedback module is used to perform complex multiplication and data exchange in each butterfly operation unit of FFT.
It reduces the number of iterations, improves computational accuracy and speed, reduces hardware resource consumption, and enhances the efficiency and performance of FFT computation.
Smart Images

Figure CN121579834A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of digital signal processing, and in particular to a CORDIC-based FFT calculation method, system, device and medium. BACKGROUND
[0002] The Coordinate Rotation Digital Computer (CORDIC) was first proposed in 1959 to solve the vector rotation problem in the aviation control system. In 1971, the CORDIC algorithm under the circular system, hyperbolic system and linear system was unified by changing some simple parameters. The CORDIC algorithm can approximate calculate mathematical calculations such as trigonometric functions, inverse trigonometric functions, multiplication and division, logarithms, exponents and square roots only by using simple shift and addition operations, so the CORDIC algorithm has been widely used in digital signal processing, such as Fast Fourier Transform (FFT), Discrete Cosine Transform (DCT), QR decomposition, Direct Digital Frequency Synthesizer (DDS) and the like.
[0003] The circular CORDIC algorithm is essentially based on the geometric properties of the unit circle: on the unit circle, the coordinates of any point can be converted to new coordinates by rotating an angle , satisfying , . To avoid complex multiplication operations, the circular CORDIC introduces a "micro-rotation" strategy, which selects a small angle ( i is the iteration index) each iteration, approximates the target rotation angle by accumulating these micro-rotation angles, and only requires addition and shift operations in the iteration process, greatly simplifying hardware implementation. In addition, since the CORDIC algorithm is an iterative approximation method, each iteration step will introduce a certain error, so the accuracy and calculation time need to be balanced. Most existing circular CORDIC algorithms focus on eliminating the compensation of the scaling factor and the approximation of the rotation factor using Taylor expansion, but existing research cannot well reduce the number of iterations and improve the calculation accuracy of the algorithm.
[0004] The Discrete Fourier Transform (DFT) is a basic and important transformation method in digital signal processing, which can convert a time-domain discrete signal into a frequency-domain discrete signal, and its mathematical definition is: for a discrete sequence of length N , its DFT is: (k=0,1,…,N-1), where The rotation factor is the key factor in the FFT algorithm. The FFT algorithm is a highly efficient optimization of the DFT, cleverly utilizing the symmetry and periodicity of signals to decompose large-point DFT operations into multiple small-point DFT operations. Employing a divide-and-conquer strategy and a butterfly operation structure, it significantly reduces computational complexity. In FFT calculations, the CORDIC algorithm can be used to calculate rotation factors, which play a crucial role in the butterfly operation of the FFT. Using the CORDIC algorithm to calculate rotation factors avoids the complex trigonometric function calculations of traditional methods, thus significantly reducing computational complexity and improving computational speed. Summary of the Invention
[0005] In view of the existing problems with computational accuracy and speed, this invention is proposed.
[0006] Therefore, this invention provides an FFT calculation method, system, device, and medium based on the angle precoding circular system CORDIC. This solves the problem that the existing traditional CORDIC algorithm requires multiple approximation iterations to achieve the required accuracy, which severely restricts the real-time performance and throughput of FFT processing. Furthermore, each iteration introduces a scaling factor, which must be eliminated through additional compensation circuitry or subsequent calculations. The large number of iterative calculations and scaling factor compensation logic leads to high overall implementation cost and low energy efficiency.
[0007] To solve the above-mentioned technical problems, the present invention provides the following technical solution: In a first aspect, the present invention provides an FFT calculation method based on the CORDIC angle precoding circular system, comprising: Obtain the input angle to be calculated, and get the vector and residual angle by querying the predefined allocation table; Based on the grouping and encoding of the residual angles, the unscaling rotation factor corresponding to the encoded angles is obtained through Taylor expansion, and the vector is rotated to obtain the rotated vector and the small angle. Based on the rotated vector and the small angle, the trigonometric function value corresponding to the input angle is obtained by approximation and multiplication-addition operations. Based on the received sampled sequence data and using the trigonometric function values as rotation factors, complex multiplication and data exchange are performed in each butterfly operation unit of the FFT to obtain the FFT calculation result.
[0008] As a preferred embodiment of the FFT calculation method based on the CORDIC (Correlative Circular System) precoding system described in this invention, the following steps are included: obtaining the input angle to be calculated, and obtaining the vector and residual angle by querying a predefined allocation table, including: Obtain the input angle to be calculated and determine the range to which the input angle belongs; Based on the range of the input angle, by querying the predefined angle combination and the mapping relationship between the output result in a single query, the vector and residual angle equivalent to the CORDIC rotation performed a preset number of times are obtained.
[0009] As a preferred embodiment of the FFT calculation method based on the CORDIC angle precoding circular system described in this invention, the method includes: based on grouping and encoding the residual angles, obtaining the unscaling rotation factor corresponding to the encoded angles through Taylor expansion, and rotating the vector to obtain the rotated vector and the minute angle, including: Based on the median bit segment of the residual angle, perform block coding; Based on the encoding results of each subgroup, and combined with the principle of angle precoding algorithm, the unscaling rotation factor corresponding to the encoding results of each subgroup is calculated using Taylor expansion. By performing a one-time composite rotation on the vector coordinates without scaling rotation factor, the rotated vector and its minute angle are obtained.
[0010] As a preferred embodiment of the FFT calculation method based on the CORDIC (Correlative Circular System) precoding system described in this invention, the method involves obtaining the trigonometric function value corresponding to the input angle based on the rotated vector and the small angle through approximation processing combined with multiplication and addition operations, including: Based on the approximate formula for a small angle, the rotated vector is multiplied and added to the small angle, simplifying the rotation correction to a single multiplication rotation, and obtaining the trigonometric function values corresponding to the input angle, including sine and cosine values.
[0011] As a preferred embodiment of the FFT calculation method based on the CORDIC angle precoding circular system described in this invention, the method involves: performing complex multiplication and data exchange in each butterfly operation unit of the FFT based on the received sampled sequence data and applying the trigonometric function values as rotation factors to obtain the FFT calculation result, including: It receives sampled sequence data of powers and, through a serial delay feedback structure, initiates the first-level butterfly operation when the sampled sequence data is half-filled, and triggers subsequent operations level by level. In each stage of the butterfly operation, the input data and the trigonometric function values obtained in real time through the four-stage pipeline are used as rotation factors for complex multiplication, and the result is added or subtracted from the delayed data to complete the butterfly operation. After multi-level butterfly operations, the final results are rearranged through a shuffling network to obtain the Fast Fourier Transform (FFT) calculation results.
[0012] As a preferred embodiment of the FFT calculation method based on the CORDIC angle precoding circular system described in this invention, wherein: the trigonometric function values obtained through real-time calculation via a four-stage pipeline are used as rotation factors, including: The first-level pipeline operation, based on the input angle to be calculated, performs the equivalent operation of CORDIC rotation by querying a predefined allocation table to obtain the vector and the residual angle; The second-level pipeline operation encodes the first subgroup based on the residual angle and calculates the corresponding unscaling rotation factor through Taylor expansion to complete the rotation operation of the first subgroup. The third-level pipeline operation encodes the second subgroup based on the vector and residual angle after the first subgroup rotation, and calculates the corresponding unscaling rotation factor through Taylor expansion to complete the rotation operation of the second subgroup. The fourth-level pipeline operation, based on the rotated vector and the small angle, completes the final rotation correction through approximation processing combined with multiply-accumulate operations, and obtains the trigonometric function value corresponding to the input angle; Through a four-stage pipelined operation, the process of obtaining the corresponding trigonometric function value from the input angle is completed in a streamlined manner within four clock cycles.
[0013] As a preferred embodiment of the FFT calculation method based on the CORDIC angle precoding circular system described in this invention, the method includes: calculating the unscaling rotation factor corresponding to the encoding result of each subgroup based on the encoding result of each subgroup, combined with the principle of angle precoding algorithm, using Taylor expansion, including: Based on the encoding results of each subgroup, combined with the principle of angle precoding algorithm, it is determined that the subgroup applies single-bit rotation. A preset Taylor expansion polynomial is used to approximate the cosine and sine components in the unscaled rotation factor as a combination of negative powers of a finite number of terms. When determining the subgroup to apply the two-bit iteration, the triangular identity is used to decompose it into two single-bit rotation operations, and then the corresponding unscaling rotation factor approximated by Taylor expansion is calculated for each of the two single-bit rotations.
[0014] 8. An FFT calculation system based on the CORDIC angle precoding circular system, using the method described in any one of claims 1-7, characterized in that it comprises: Secondly, the present invention provides an FFT calculation system based on the CORDIC angle precoding circular system, comprising: The residual angle allocation module is used to obtain the input angle to be calculated and to obtain the vector and residual angle by querying a predefined allocation table. An angle precoding module is used to obtain the unscaling rotation factor corresponding to the encoded angle by Taylor expansion based on the grouping and encoding of the residual angle, and to rotate the vector to obtain the rotated vector and the small angle. The multiplication-rotation module is used to obtain the trigonometric function value corresponding to the input angle by approximation processing combined with multiplication-addition operations based on the rotated vector and a small angle. The serial delay feedback module is used to perform complex multiplication and data exchange in each stage of the FFT butterfly operation unit based on the received sampled sequence data and the trigonometric function value as a rotation factor to obtain FFT spectrum data.
[0015] Thirdly, the present invention provides an electronic device, comprising: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions, which, when executed by the processor, implement the steps of the FFT calculation method based on the angle precoded circular system CORDIC.
[0016] Fourthly, the present invention provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the steps of the FFT calculation method based on the angle precoded circular system CORDIC.
[0017] Compared with existing technologies, the advantages of this invention are as follows: This invention achieves high-precision circular CORDIC algorithm calculations with fewer iterations through a residual angle allocation module, an angle precoding module, and a multiplicative rotation module, while reducing the hardware resources required by the algorithm. It also achieves a scaling factor-free effect and eliminates complex repetitive iteration logic. By using a serial delay feedback module to perform rotation calculations in each butterfly unit through the angle precoding circular system CORDIC module, it achieves step-by-step data processing and efficient exchange, improving calculation speed and saving hardware resources. Attached Figure Description
[0018] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the following description of the embodiments will be briefly introduced. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0019] Figure 1 This is a schematic diagram of the overall process of the FFT calculation method based on the CORDIC angle precoding circular system according to an embodiment of the present invention.
[0020] Figure 2 This is a block diagram of the CORDIC algorithm for FFT calculation based on the CORDIC angle precoding circular system, according to an embodiment of the present invention.
[0021] Figure 3 This diagram illustrates the grouping of the FFT calculation method based on the CORDIC (Correlative Circular System) angle precoding system according to an embodiment of the present invention.
[0022] Figure 4 This is a structural diagram of the multiplication and rotation module of the FFT calculation method based on the angle precoding circular system CORDIC according to an embodiment of the present invention.
[0023] Figure 5 This is a pipeline structure diagram of the angle precoding algorithm for the FFT calculation method based on the CORDIC circular system according to an embodiment of the present invention.
[0024] Figure 6 This is a structural diagram of the residual angle allocation module in the FFT calculation method based on the CORDIC angle precoding circular system according to an embodiment of the present invention.
[0025] Figure 7 This is a schematic diagram of the sp2 hardware implementation structure of the FFT calculation method based on the CORDIC angle precoding circular system according to an embodiment of the present invention.
[0026] Figure 8 This is a radix-2 butterfly computational unit data flow diagram of the FFT computation method based on the angle precoding circular system CORDIC according to an embodiment of the present invention.
[0027] Figure 9 This is a diagram of a single-stage FFT butterfly operation structure based on the CORDIC algorithm, which is an embodiment of the FFT calculation method based on the angle precoding circular system CORDIC according to an embodiment of the present invention.
[0028] Figure 10 This is a diagram of the 16-point serial delay feedback data structure of the FFT calculation method based on the CORDIC angle precoding circular system according to an embodiment of the present invention.
[0029] Figure 11 This is a single-stage control structure diagram of the serial delay feedback of the FFT calculation method based on the CORDIC angle precoding circular system according to an embodiment of the present invention.
[0030] Figure 12 This is a block diagram of the FFT implementation of the CORDIC algorithm and serial delay feedback structure based on the CORDIC algorithm for calculating FFT of the circumferential system based on angle precoding, according to an embodiment of the present invention. Detailed Implementation
[0031] To make the above-mentioned objects, features, and advantages of the present invention more apparent and understandable, specific embodiments of the present invention will be described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of them. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the protection scope of the present invention.
[0032] Example 1, referring to Figure 1 As an embodiment of the present invention, an FFT calculation method based on the CORDIC angle precoding circular system is provided, comprising: S100: Obtain the input angle to be calculated, and obtain the vector and residual angle by querying the predefined allocation table; S200: Based on the grouping and encoding of the residual angle, the unscaling rotation factor corresponding to the encoded angle is obtained through Taylor expansion, and the vector is rotated to obtain the rotated vector and the small angle. S300: Based on the rotated vector and the small angle, the trigonometric function value corresponding to the input angle is obtained through approximation and multiplication-addition operations; S400: Based on the received sampled sequence data and using the trigonometric function values as rotation factors, perform complex multiplication and data exchange in each butterfly operation unit of the FFT to obtain the FFT calculation result.
[0033] It should be noted that in implementing FFT computation, the core rotation factor calculation of the traditional CORDIC algorithm relies on a large number of sequentially executed micro-rotation iterations. In applications requiring high computational accuracy, the number of iterations increases significantly, leading to a substantial increase in computational latency and power consumption. Furthermore, the inherent scaling factor problem during iteration not only introduces additional compensation computational complexity but also affects the accuracy of the final result due to the accumulation of approximation errors. Simultaneously, existing methods struggle to effectively parallelize their serial iteration mechanism when facing high-throughput signal processing demands, becoming a bottleneck for improving overall system performance. Moreover, the high consumption of logic and wiring resources in traditional hardware implementations also restricts their application in resource-constrained embedded or low-power scenarios. Therefore, seeking an optimized CORDIC implementation method that balances high accuracy, low latency, and high performance is of great significance for promoting the application of FFT processors in fields such as real-time spectrum analysis and communication baseband processing.
[0034] Therefore, to address the aforementioned challenge of balancing high precision, low latency, and high efficiency, the following steps (S100-S400) are employed: a residual angle allocation module uses a predefined lookup table to obtain the residual angle from the input angle, reducing the number of iterations compared to the traditional five steps; an angle precoding module uses Taylor expansion to calculate the rotation factor corresponding to the encoded angle; a multiplication rotation module processes the data after the angle precoding module, converting it into multiplication operations to complete the iteration; and a serial delay feedback module achieves efficient pipeline control. The CORDIC module of the angle precoding circumferential system performs rotation calculations in each butterfly cell to obtain the final FFT calculation result.
[0035] Example 2, refer to Figures 1-12 As an embodiment of the present invention, based on the above embodiment, an FFT calculation method based on the angle precoding circular system CORDIC is provided.
[0036] In this embodiment of the application, step S100 involves obtaining the input angle to be calculated and obtaining the vector and residual angle by querying a predefined allocation table, including: Specifically, the input angle to be calculated is obtained. The input angle is 16 bits of data, consisting of 1 sign bit, 1 integer bit, and 14 decimal bits, where the angle range is... .
[0037] For example, a CORDIC optimization algorithm based on angle precoding is applied to FFT computation, where the encoding flowchart is as follows: Figure 2 As shown.
[0038] It should be noted that the residual angle allocation module is used to preprocess the 16-bit input angle to be calculated, so that the highest bit of the processed angle satisfies the iterative index. Because when hour, and They can be respectively equivalent to and , angle set Equivalent to At this point, the iteration of a single bit of the angle is completed, which facilitates subsequent precoding operations.
[0039] Furthermore, the residual angle allocation module performs the first five traditional CORDIC rotations using an allocation table. This is because the direction of each rotation depends on the residual angle after the previous rotation. Therefore, when the input angle θ is within a specific range, the direction of the several CORDIC rotations is fixed. Since these rotations are identical, the x and y values in the output are also fixed within this angle range. Changes in the input angle will cause a corresponding change in the z value in the output. This structure is implemented through the first five CORDIC rotations, where the first rotation is fixed as a counter-clockwise rotation, i.e., the rotation angle is within a certain range. Within the scope, if it is necessary To perform an angular rotation within the interior, one can do so by adjusting the angle... The output results within the range are implemented by trigonometric transformation.
[0040] Table 1. CORDIC calculation process for the first five times
[0041] Let the input angle be... Table 1 records the process of the input angle θ through five CORDIC iterations. In Table 1, "+" and "-" in the iteration index indicate the rotation direction, with "-" indicating counterclockwise rotation and "+" indicating clockwise rotation. Except for the first rotation, which is fixed as counterclockwise, the direction of the other four rotations is determined by the remaining angle after the previous rotation. The sign bit determines the number of possible combinations. Theoretically, there should be 16 combinations after four rotations arranged in the direction of rotation. Because... After five rotations, the rotation vector does not rotate in the direction of the target vector, but instead rotates in the opposite direction, and the first four rotations satisfy... It has already moved beyond the first quadrant and entered the second quadrant, so it rotates for the fifth time. It should be clockwise. In summary, there are no cases like "–, +, +, +, +" or "–, –, –, –, –".
[0042] Furthermore, the output results correspond to the 14 combinations. x 5 and y 5 Refer to Table 2. To achieve scaling factor-free compensation, the input... x 0 and y 0 The values are 1 and 0 respectively. Since the machine word length b=16, the output is... x 5 , y 5 and It will be represented in the form of a left shift of 14 bits. Table 1 Indicates the input angle θ The angle rotated after the residual angle allocation module, i.e., the input angle. θThe total rotation angle after the first five CORDIC rotations. satisfy The number in parentheses represents the total rotation angle multiplied by 2. 14 After .
[0043] Table 2 Results of the first 5 CORDIC iterations
[0044] Table 2 shows the results of the first 5 CORDIC iterations, among which... As can be seen from Table 2, x 5 and y 5 The results are the same, the difference is that x 5 From high to low, y 5 From low to high, the overhead of storage resources is reduced to a certain extent.
[0045] It should be noted that Table 1 shows the total rotation angle after the first 5 rotations of the angle to be rotated. Table 2 shows the relationship between the range of the angle to be rotated and the total angle after the first 5 rotations.
[0046] In this embodiment of the application, step S200, based on the grouping and encoding of the residual angles, obtains the unscaling rotation factor corresponding to the encoded angles through Taylor expansion and rotates the vector to obtain the rotated vector and the minute angle, includes: Specifically, input angle The residual angle is obtained after processing by the residual angle allocation module. Its range is ,and The corresponding binary two's complement is That is, if the high 6 bits are 0, only the low 10 bits need to be processed.
[0047] For example, such as Figure 3 As shown, the angle precoding algorithm encodes the lower 10 bits of the angle. Angle precoding is only applicable to... and Encoding is performed in groups of three bits, with the median bit segment of the angle, i.e., bits 6 to 11, encoded. The 0th to 5th digits are rotated using the multiplication rotation module.
[0048] Using the angle precoding algorithm, the process that originally required three iterations for each subgroup is reduced to one. The encoding order is from low to high, with bits 6 to 8 being the low-order subgroup and bits 9 to 11 being the high-order subgroup, representing the range 0 to 7. Each subgroup is encoded after adding the carry generated by the low-order subgroup. Because... Not involved in coding. Towards The carry is 0. Because The two highest bits are 0, and When adding carry-over bits, it can be guaranteed that at least the highest bit is 0, thus ensuring... No carry will occur.
[0049] Table 3. Principle of Angle Precoding Algorithm
[0050] Table 3 shows the principle of the angle precoding algorithm. Among them, Carry generated for the lower-order subgroup. Towards The carry-over is 0; For the carry-over of the current subgroup to the parameters of the higher subgroup; These are three adjacent angle values within the same subgroup; The position indicates the rotation angle; 00 indicates rotation. Position, 01 indicates rotation 10 indicates rotation Location; Indicates whether to skip the current rotation. If the sum of the carry generated by the lower subgroup is 0, do not skip; if it is 1, skip. Indicates the direction of rotation, 0 for counterclockwise and 1 for clockwise; Indicates the rotation method, which, when added to the carry generated by the lower-order subgroup, is... and When encoding is insufficient to make the current subgroup's valid bits 1, the sum is divided into two (corresponding to...) There are two results: single-bit iteration (SBI) and double-bit iteration (DBI). When When the value is 0, SBI is executed. When the bit value is 1, perform a two-bit iteration. Observe. and It can be seen that both can generate a carry to the higher-order subgroup, while the current subgroup becomes a rotation in the opposite direction, i.e. or Therefore, we choose... To execute.
[0051] when The value is 1, meaning that during the two-bit iteration, , , The value of will not affect it, and it will be uniformly encoded as 0 during encoding. When the value is 1, it indicates that the rotation is skipped, and the values of other control signals will not affect it; the value is also 0. An angle precoding algorithm can transform the three single-bit rotations required for a subgroup into one single-bit rotation or one double-bit iteration.
[0052] Table 4 shows when for and The encoding results at that time. (Table) This indicates that a clockwise rotation is performed at this position. Examples 1 and 2 satisfy the rotation angle before and after encoding. Remain unchanged, that is, as well as The two equations hold true, verifying the correctness of the encoding.
[0053] Table 4 Examples of Angle Precoding Algorithms
[0054] It should be noted that the encoding rule can be specifically as follows: 6 to 8 bits are the low-order subgroups, and 9 to 11 bits are the high-order subgroups, representing a range of 0 to 7. The carry generated by the current subgroup and its adjacent lower-order subgroups is added together. When the data represented by the current subgroup is less than or equal to 4, there is at most one counterclockwise rotation valid data in the subgroup, indicating that the valid data is rotated counterclockwise. Data 3 is a special case with two counterclockwise rotation valid data. When the data represented by the current subgroup is greater than 4, by carrying over the adjacent higher-order subgroup, the current subgroup has at most one clockwise rotation valid data, indicating that the valid data is rotated clockwise. Data 5 is a special case with two counterclockwise rotation valid data. Except for data 5 and data 3, there is at most one valid data after encoding, which can reduce the number of rotations from 3 to 1. For the special cases of data 5 and data 3, their respective valid data are treated as a whole and processed together during rotation, which can also reduce the number of rotations to 1. For the encoded angle, the corresponding rotation factor needs to be calculated to complete the corresponding rotation. The rotation factor corresponding to the encoded angle is calculated by Taylor formula, which can achieve rotation without scaling effect. The unfolding of the shadow of the rotation factor is mainly divided into single-bit rotation and double-bit iteration.
[0055] Furthermore, the encoded angle needs to undergo a single-bit rotation or a two-bit iteration. The rotation factor corresponding to the single-bit rotation can be further expanded using the Taylor formula described by equation (2).
[0056] The Taylor expansion of a single-bit rotation is mainly for expanding a single-bit angle: (1) In the formula, j is a natural number, and the rotation angle of one significant data point is denoted as . ,in i =4,5,……,8. The rotation angles for the special cases of data 5 and data 3 are denoted as... , where m is 1 or 2, corresponding to the special cases of data 3 and data 5 respectively. The denominator in the expansion has 3! and 5! terms, which are not convenient to expand into exponential terms of 2. Using the Taylor expansion of equation (2), the factorial can be equivalent to a polynomial with exponential terms of 2. When the machine word length In this case, the rotation factor consists of 1 sign bit, 1 integer bit, and 14 decimal bits. Therefore, when the exponent of 2 after the Taylor expansion is less than -13, the result can be discarded. The Taylor expansion results in this case are shown in Table 5. The Taylor expansion of the rotation factor used for single-bit rotation is as follows: There are 5 people in total. The highest bit is always 0).
[0057] (2) Table 5 Single-bit rotating Taylor expansion
[0058] Using the addition formula (3) of trigonometric functions, the two-bit expression corresponding to the two-bit iteration can be converted into a single-bit expression with single-bit rotation (see Table 6). The corresponding two-bit iteration is as follows Taylor expansion at time.
[0059] (3) Table 6. Two-bit Iterative Taylor Expansion
[0061] In this embodiment of the application, step S300, based on the rotated vector and the small angle, obtains the trigonometric function value corresponding to the input angle through approximation processing combined with multiplication and addition operations, including: Specifically, input angle After processing by the residual angle allocation module and the angle precoding module, it becomes... With a total of 6 bits of data, the maximum angle that can be represented is 0.0038 rad, which satisfies... , The iterative formula at this point is (4): (4) like Figure 4 As shown, the multiplication-rotation module is implemented by two 2:1 Mux selectors, two multipliers, and four adders. , Shifted 14 bits to the right and compared with the input angle θMultiply by the lower six bits, and finally multiply by the last six bits. , Add or subtract. The final result. , That is, trigonometric functions and .
[0062] Furthermore, the CORDIC module of the angle precoding circular system is divided into three parts: the residual angle allocation module, the angle precoding module, and the multiplicative rotation module. For example... Figure 5 As shown, the entire algorithm has 4 stages of pipeline, with a 16-bit input. , , The output after four iterations is and APC refers to the angle pre-angle.
[0063] In the first-stage flow, the input angle is determined using a lookup table. θ The range, and according to θ To allocate within the scope , as well as Then, these allocation results are encoded by judging the input three-dimensional angle values and using Table 3 to finally obtain the encoded results. Figure 6 The structure of the residual angle allocation module is shown. Since two subgroups are encoded, two angle pre-coding modules are needed, with the corresponding encoded angles being... and The encoding result is and Four required control signals Give to the corresponding and Angle precoding rotation module.
[0064] The second and third levels of the pipeline are angle pre-encoding rotation modules, such as... Figure 7 Presented The hardware structure in the image shows a two-bit iterative structure (red dashed line) and a single-bit rotation structure (the rest). This is achieved through encoding... This controls the output of the iteration. In the single-bit rotation section, the rotation structure is the same as the traditional CORDIC structure, because in middle After expanding the twiddle factor using the Taylor formula, the result is consistent with the scaled expression of the traditional CORDIC algorithm. However, in smaller... i The Taylor expansions differ within the subgroups, as shown in Table 5. The 1 is replaced by a polynomial expressed as a negative power of 2, which is also the key to achieving no scaling factor. For the single-bit rotation portion, the corresponding hardware structure is shown in Table 5. Figure 7 This can be concluded.
[0065] In the fourth stage of the pipeline, the multiplication module processes the x and y values after angle pre-coding and rotation. Using the multiplier, the values that would otherwise need to be divided into two subgroups can be transformed. The iteration is transformed into a single multiplication operation. This reduces the original six traditional CORDIC iterations or two angle pre-encoded rotations to a single multiplication rotation. The hardware implementation of the multiplication rotation structure is as follows: Figure 4 As shown.
[0066] In this embodiment of the application, step S400, based on the received sampled sequence data and applying the trigonometric function values as rotation factors, performs complex multiplication and data exchange in each butterfly operation unit of the FFT to obtain the FFT calculation result, including: Specifically, record the number of sampling points. M is a positive integer, and the sampling sequence is... The sequence is split in half lengthwise, resulting in two sequences. These sequences are then divided into two groups based on their parity. The even group is... The N / 2 point DFT, the odd number is The N / 2 point DFT, where , and The relationship between them is as follows Figure 7 As shown, N / 2 is still a positive integer. We continue to divide the N / 2-point DFT into odd and even arrays. Thus, each N / 2 can be further divided into two N / 4-point DFTs. Therefore, after M-1 decompositions, it can be decomposed into... A 2-point DFT, where a 2-point DFT is a basic butterfly operation unit. The above algorithm is applied to the sampled sequence. The structure of the DFT parity decomposition is called the frequency domain decimation FFT. This operation has a total of M stages of operation, and each stage has N / 2 butterfly operation structures.
[0067] For example, such as Figure 9 As shown, the butterfly arithmetic unit uses the CORDIC algorithm of the angle precoding circular system to complete the rotation factor. Complex number multiplication. For example... Figure 10 As shown, serial delay feedback achieves efficient pipeline control by utilizing the CORDIC algorithm of the angle precoding circular system to perform rotation calculations in each butterfly unit, thereby enabling step-by-step data processing and efficient exchange.
[0068] In the first level of the 16-point FFT, computation can begin when the ninth data point enters the structure while the first eight input data points are stored in memory. Similarly, in the second level, which consists of two 8-point FFTs, computation of a single 8-point FFT can begin when the fifth data point enters the structure while the first four input data points are stored in memory.
[0069] For example, the single-stage control principle in a serial delay feedback structure is as follows: Figure 12 As shown, this structure transmits and exchanges data between the butterfly-shaped computing units, which improves computing speed and saves hardware resources. Furthermore, this structure has good scalability and can be adjusted to meet different FFT computing needs.
[0070] FFT implementation based on the angle precoding CORDIC algorithm and serial delay feedback structure, such as... Figure 12 As shown, it consists of a control unit, an address control module, a storage unit, a butterfly arithmetic unit based on an angle precoding algorithm, and a shuffling network. Figure 12 It can be seen that the input signal is Data_in and the output signal is Data_out. One input data point is entered each clock cycle and stored in the first memory unit. When the input... After a certain number of data points, the first butterfly arithmetic unit begins its calculation, and the result is displayed in the first few bytes. After the first data is stored in the second storage unit, the second butterfly operation unit begins its calculation. This process continues until the Mth storage unit and the Mth butterfly operation unit. The control unit is primarily responsible for managing the address control module, the butterfly operation units, and the shuffling network. The address control module controls data reading and writing, and coordinates data interaction between different storage units and the butterfly operation units. The control unit can also control the butterfly operation units by managing write operations to the storage units; when the written data meets the control requirements of the serial delay feedback structure, the butterfly operation unit begins its calculation. The shuffling network transforms the output of the final FFT structure from reverse order to sequential order; the data processed by the shuffling network is the final FFT calculation result.
[0071] In summary, this invention obtains the equivalent vector and residual angle of the first five traditional CORDIC iterations in a single lookup operation by querying a predefined allocation table, simplifying multiple iterations into a single table lookup operation and completing the coarse adjustment of the rotation process. By grouping and encoding the residual angles, operations that originally required three iterations for each group are simplified to a single-bit rotation or double-bit iteration. Taylor expansion is then used to calculate the unscaled rotation factor in real time, obtaining minute angles for fine adjustment. Based on the approximation of minute angles, the complex rotation operation is simplified to a single multiply-add operation, completing the final rotation correction and directly outputting high-precision trigonometric function values. Simultaneously, these operations constitute a pipelined operation embedded in each stage of the FFT butterfly operation unit. Under the scheduling of a serial delay feedback structure, rotation factors are provided to the butterfly operation in real time, completing the FFT calculation of the entire sampling sequence. This invention provides a CORDIC algorithm with fewer iterations, higher computational accuracy, and lower hardware resource consumption, achieving an efficient FFT computing device design and significantly improving the efficiency and performance of FFT calculations.
[0072] Example 3 illustrates an FFT calculation method based on the CORDIC angle precoding circular system. It should be noted that the technical solution of this CORDIC angle precoding circular system FFT calculation system is based on the same concept as the aforementioned CORDIC angle precoding circular system FFT calculation method. Details not described in detail in this example can be found in the description of the aforementioned CORDIC angle precoding circular system FFT calculation method.
[0073] This embodiment also provides an FFT calculation system based on the CORDIC angle precoding circular system, including: The residual angle allocation module is used to obtain the input angle to be calculated and to obtain the vector and residual angle by querying a predefined allocation table. An angle precoding module is used to obtain the unscaling rotation factor corresponding to the encoded angle by Taylor expansion based on the grouping and encoding of the residual angle, and to rotate the vector to obtain the rotated vector and the small angle. The multiplication-rotation module is used to obtain the trigonometric function value corresponding to the input angle by approximation processing combined with multiplication-addition operations based on the rotated vector and a small angle. The serial delay feedback module is used to perform complex multiplication and data exchange in each stage of the FFT butterfly operation unit based on the received sampled sequence data and the trigonometric function value as a rotation factor to obtain FFT spectrum data.
[0074] This embodiment also provides an electronic device applicable to FFT calculation based on the angle precoded circular system CORDIC, comprising: a memory and a processor; the memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions to implement the FFT calculation method based on the angle precoded circular system CORDIC as proposed in the above embodiment.
[0075] This embodiment also provides a storage medium storing a computer program that, when executed by a processor, implements the FFT calculation method for the CORDIC-based angle precoding circular system as proposed in the above embodiments.
[0076] The storage medium proposed in this embodiment and the FFT calculation method based on the angle precoding circular system CORDIC proposed in the above embodiments belong to the same inventive concept. Technical details not described in detail in this embodiment can be found in the above embodiments, and this embodiment has the same beneficial effects as the above embodiments.
[0077] Based on the above description of the implementation methods, those skilled in the art can clearly understand that the present invention can be implemented using software and necessary general-purpose hardware, and of course, it can also be implemented using hardware. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as a computer floppy disk, read-only memory (ROM), random access memory (RAM), flash memory, hard disk, or optical disk, etc., including several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods of the various embodiments of the present invention.
[0078] It should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and not to limit it. Although the present invention has been described in detail with reference to preferred embodiments, those skilled in the art should understand that modifications or equivalent substitutions can be made to the technical solutions of the present invention without departing from the spirit and scope of the technical solutions of the present invention, and all such modifications or substitutions should be covered within the scope of the claims of the present invention.
Claims
1. An FFT calculation method based on the CORDIC (Corrected Angular Precoding) system for circular axes, characterized in that, include: Obtain the input angle to be calculated, and get the vector and residual angle by querying the predefined allocation table; Based on the grouping and encoding of the residual angles, the unscaling rotation factor corresponding to the encoded angles is obtained through Taylor expansion, and the vector is rotated to obtain the rotated vector and the small angle. Based on the rotated vector and the small angle, the trigonometric function value corresponding to the input angle is obtained by approximation and multiplication-addition operations. Based on the received sampled sequence data and using the trigonometric function values as rotation factors, complex multiplication and data exchange are performed in each butterfly operation unit of the FFT to obtain the FFT calculation result.
2. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 1, characterized in that, Obtain the input angle to be calculated, and retrieve the vector and residual angle by querying a predefined allocation table, including: Obtain the input angle to be calculated and determine the range to which the input angle belongs; Based on the range of the input angle, by querying the predefined angle combination and the mapping relationship between the output result in a single query, the vector and residual angle equivalent to the CORDIC rotation performed a preset number of times are obtained.
3. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 2, characterized in that, Based on the grouping and encoding of residual angles, the unscaling rotation factor corresponding to the encoded angle is obtained through Taylor expansion, and the vector is rotated to obtain the rotated vector and the small angle, including: Based on the median bit segment of the residual angle, perform block coding; Based on the encoding results of each subgroup, and combined with the principle of angle precoding algorithm, the unscaling rotation factor corresponding to the encoding results of each subgroup is calculated using Taylor expansion. By performing a one-time composite rotation on the vector coordinates without scaling rotation factor, the rotated vector and its minute angle are obtained.
4. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 3, characterized in that, Based on the rotated vector and the small angle, the trigonometric function values corresponding to the input angle are obtained through approximation combined with multiplication and addition operations, including: Based on the approximate formula for a small angle, the rotated vector is multiplied and added to the small angle, simplifying the rotation correction to a single multiplication rotation, and obtaining the trigonometric function values corresponding to the input angle, including sine and cosine values.
5. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 4, characterized in that, Based on the received sampled sequence data and applying the trigonometric function values as rotation factors, complex multiplication and data exchange are performed in each butterfly operation unit of the FFT to obtain the FFT calculation result, including: It receives sampled sequence data of powers and, through a serial delay feedback structure, initiates the first-level butterfly operation when the sampled sequence data is half-filled, and triggers subsequent operations level by level. In each stage of the butterfly operation, the input data and the trigonometric function values obtained in real time through the four-stage pipeline are used as rotation factors for complex multiplication, and the result is added or subtracted from the delayed data to complete the butterfly operation. After multi-level butterfly operations, the final results are rearranged through a shuffling network to obtain the Fast Fourier Transform (FFT) calculation results.
6. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 5, characterized in that, The trigonometric function values obtained through real-time calculation using a four-stage flowmeter are used as rotation factors, including: The first-level pipeline operation, based on the input angle to be calculated, performs the equivalent operation of CORDIC rotation by querying a predefined allocation table to obtain the vector and the residual angle; The second-level pipeline operation encodes the first subgroup based on the residual angle and calculates the corresponding unscaling rotation factor through Taylor expansion to complete the rotation operation of the first subgroup. The third-level pipeline operation encodes the second subgroup based on the vector and residual angle after the first subgroup rotation, and calculates the corresponding unscaling rotation factor through Taylor expansion to complete the rotation operation of the second subgroup. The fourth-level pipeline operation, based on the rotated vector and the small angle, completes the final rotation correction through approximation processing combined with multiply-accumulate operations, and obtains the trigonometric function value corresponding to the input angle; Through a four-stage pipelined operation, the process of obtaining the corresponding trigonometric function value from the input angle is completed in a streamlined manner within four clock cycles.
7. The FFT calculation method based on the CORDIC angle precoding circular system as described in claim 3, characterized in that, Based on the encoding results of each subgroup, and combined with the principle of angle precoding algorithm, the unscaling rotation factor corresponding to the encoding result of each subgroup is calculated using Taylor expansion, including: Based on the encoding results of each subgroup, combined with the principle of angle precoding algorithm, it is determined that the subgroup applies single-bit rotation. A preset Taylor expansion polynomial is used to approximate the cosine and sine components in the unscaled rotation factor as a combination of negative powers of a finite number of terms. When determining the subgroup to apply the two-bit iteration, the triangular identity is used to decompose it into two single-bit rotation operations, and then the corresponding unscaling rotation factor approximated by Taylor expansion is calculated for each of the two single-bit rotations.
8. An FFT calculation system based on the CORDIC angle precoding circular system, employing the method described in any one of claims 1-7, characterized in that, include: The residual angle allocation module is used to obtain the input angle to be calculated and to obtain the vector and residual angle by querying a predefined allocation table. An angle precoding module is used to obtain the unscaling rotation factor corresponding to the encoded angle by Taylor expansion based on the grouping and encoding of the residual angle, and to rotate the vector to obtain the rotated vector and the small angle. The multiplication-rotation module is used to obtain the trigonometric function value corresponding to the input angle by approximation processing combined with multiplication-addition operations based on the rotated vector and a small angle. The serial delay feedback module is used to perform complex multiplication and data exchange in each stage of the FFT butterfly operation unit based on the received sampled sequence data and the trigonometric function value as a rotation factor to obtain FFT spectrum data.
9. An electronic device, characterized in that, include: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions, which, when executed by the processor, implement the steps of the FFT calculation method based on the CORDIC angle precoded circular system as described in any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that, It includes the steps of storing computer-executable instructions that, when executed by a processor, implement the FFT calculation method based on the CORDIC angle precoded circular system as described in any one of claims 1 to 7.