A coordinate rotation digital computer method and communication device

By predicting the rotation angle and transforming it into a three-level merging iterative structure, the problems of high computational latency and hardware consumption in the traditional CORDIC algorithm are solved, achieving efficient computation and resource saving.

CN115904312BActive Publication Date: 2026-04-28SOUTHWEAT UNIV OF SCI & TECH
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SOUTHWEAT UNIV OF SCI & TECH
Filing Date
2022-09-30
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

Traditional CORDIC algorithms require multiple iterations to achieve high accuracy, resulting in long computation time and high hardware consumption.

Method used

By predicting all rotation angles, the algorithm is transformed into a three-level merging iterative structure, reducing the number of iterations, lowering computational latency, and saving hardware resources.

Benefits of technology

It achieves a reduction in computational latency and hardware resource consumption at a higher precision, with computational latency reduced by 70% and ROM resource consumption reduced by 40%.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115904312B_ABST
    Figure CN115904312B_ABST
Patent Text Reader

Abstract

The application discloses a CORDIC method and a communication device. The method comprises: calculating and storing a first parameter value λ, determining a target rotation direction d according to an input first angle θ and the first parameter value λ θ , and performing iterative calculation through a CORDIC algorithm according to the target rotation direction d θ . The first parameter value λ is determined by a sum θ cp of rotation angles of multiple iterations and the input angle θ. In other words, all rotation directions can be predicted before iteration according to the calculated d θ . Through the CORDIC method, rotation iteration can be converted into at least three-level iteration or equal multi-level iteration. The rotation direction of each iteration does not need to wait for the completion of the last iteration, the number of iterations can be reduced, and the calculation time delay can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of Coordinate Rotation Digital Computer (CORDIC) algorithms, and more particularly to a CORDIC method and communication device. Background Technology

[0002] The CORDIC algorithm is commonly used for mathematical operations, essentially approaching a target through continuous rotation. Specifically, the original vector gradually approaches the target through multiple rotations; when the number of rotations is sufficient and the vector stops rotating, its length represents the target result. Traditional CORDIC algorithms rely on the number of iterations to ensure accuracy, with the rotation direction for each iteration needing to wait for the previous iteration to complete. Current CORDIC algorithms require many iterations to achieve high accuracy. However, multiple iterations result in long output delays and significant hardware overhead. Summary of the Invention

[0003] This application provides a CORDIC method and communication device that can predict all rotation angles, thereby determining the rotation angles for multiple iterations at once, achieving high accuracy while reducing computational latency.

[0004] Firstly, a CORDIC method is provided, wherein the executing entity of the method is a communication device with computing and storage capabilities, such as a computer, and the method includes:

[0005] Select a target parameter value λ from at least one stored parameter value λ, and determine the target rotation direction d based on the input first angle θ and the target parameter value λ. θ And according to the target rotation direction d θ The calculation is performed iteratively using the CORDIC algorithm. Each parameter value λ is the sum of the rotation angles θ corresponding to multiple iterations. cp The value λ is determined by the input angle θ, or each parameter value λ can be considered as the sum of the rotation angles θ from multiple iterations. cp .

[0006] In this embodiment, different parameter values ​​λ correspond to different sums of rotation angles θ. cp In other words, based on the input angle θ and θ cp By comparison, the corresponding parameter value λ can be selected. When calculating the angle, a parameter value λ can be selected from the multiple stored parameter values ​​λ. The CORDIC method provided in this application can transform the rotation iteration from a single-stage iteration to at least three-stage iterations or multiple-stage iterations. It eliminates the need for the rotation direction to wait for the previous iteration to complete in each iteration, reducing the number of iterations and thus lowering computational latency.

[0007] In a possible implementation, selecting the target parameter value λ from at least one stored parameter value λ includes: comparing the first angle θ with the θ corresponding to each of the at least one parameter value λ. cp Choose the angle θ that has the smallest difference from the first angle θ. cp As the target θ cp And the first angle θ is less than or equal to the target θ cp , target θ cp The corresponding λ is taken as the target parameter value λ.

[0008] In this embodiment, multiple parameter values ​​λ can be stored, with different λ values ​​corresponding to different iteration counts or different rotation angles θ. The target rotation direction d is calculated... θ When, you can choose the θ that is closest to θ. cp The corresponding λ is used for calculation to minimize calculation errors.

[0009] In a possible implementation, for a parameter value λ, the sum of the rotation angles corresponding to that parameter value λ is θ. cp satisfy:

[0010] Where, d i ∈{0, 1}, m is the iteration number, m is greater than or equal to 1, tan -1 (2 -i ) represents the initial rotation angle.

[0011] In possible implementations, the target rotation direction d θ The first angle θ and the target parameter value λ satisfy:

[0012] d θ =0.5θ+0.5-0.5ε+λ.

[0013] In a possible implementation, prior to storing at least one parameter value λ, the method further includes:

[0014] For a given parameter value λ, based on the initial value λ of that parameter λ s and accuracy compensation value λ c Calculate the parameter value λ, where the parameter value λ is the same as the initial value λ. s and accuracy compensation value λ c Satisfying: λ=λ s +λ c Initial value λ s According to θ cp Determined by the first angle θ, the accuracy compensation value λ c satisfy: Where s is the number of the most significant bits of the binary representation corresponding to the first angle θ.

[0015] In this scheme, the accuracy compensation value λ is used. c and initial value λ s This determines the value of the first parameter λ. Therefore, only the precision compensation value λ needs to be stored. c This reduces the amount of storage required and saves memory space.

[0016] In a second aspect, a communication device is provided, comprising a processing module and a storage module; wherein the processing module is configured to select a target parameter value λ from at least one stored parameter value λ, and determine a target rotation direction d based on an input first angle θ and the target parameter value λ. θ According to the target rotation direction d θ Iterative calculations are performed using the CORDIC algorithm. Each parameter value λ corresponds to the sum of rotation angles θ from multiple iterations. cp The storage module is specifically used to store at least one parameter value λ.

[0017] In a possible implementation, the processing module is specifically used to: compare the first angle θ with the θ corresponding to at least one parameter value λ. cp Choose the angle θ that has the smallest difference from the first angle θ. cp As the target θ cp And the first angle θ is less than or equal to the target θ cp , target θ cp The corresponding λ is taken as the target parameter value λ.

[0018] In a possible implementation, for a parameter value λ, the sum of the rotation angles corresponding to that parameter value λ is θ. cp satisfy:

[0019] Where, d i ∈{0, 1}, m is the iteration number, m is greater than or equal to 1, tan -1 (2 -i ) represents the initial rotation angle.

[0020] In possible implementations, the target rotation direction d θ The first angle θ and the target parameter value λ satisfy:

[0021] d θ =0.5θ+0.5-0.5ε+λ.

[0022] In possible implementations, the processing module is also used for:

[0023] For a given parameter value λ, based on the initial value λ of that parameter λ s and accuracy compensation value λ c Calculate the parameter value λ, where the parameter value λ is the same as the initial value λ. sand accuracy compensation value λ c Satisfying: λ=λ s +λ c Initial value λ s According to θ cp Determined by the first angle θ, the accuracy compensation value λ c satisfy: Where s is the number of the most significant bits of the binary representation corresponding to the first angle θ.

[0024] Thirdly, a communication device is provided, which has the function of implementing the behavior described in the method embodiments of the first aspect. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described function. The communication device includes a communication interface and a processor, and optionally, a memory. The memory stores computer programs or instructions, and the processor is coupled to the memory and the communication interface. When the processor executes the computer program or instructions, the communication device performs the method described in the method embodiments.

[0025] Fourthly, this application provides a direct digital frequency synthesizer (DDFS) that includes the communication apparatus described in the second aspect or any possible implementation thereof.

[0026] Fifthly, this application provides a computer-readable storage medium storing a computer program that, when executed, implements the method described in the first aspect. Attached Figure Description

[0027] Figure 1 The rotation model of the CORDIC algorithm provided in the embodiments of this application;

[0028] Figure 2 A flowchart illustrating the CORDIC algorithm provided in an embodiment of this application;

[0029] Figure 3 This is a block diagram of the CORDIC algorithm for predicting rotation direction provided in an embodiment of this application;

[0030] Figure 4 A DDFS block diagram of the CORDIC direction prediction algorithm provided in the embodiments of this application;

[0031] Figure 5 This is a simulation diagram of the signal waveform. Detailed Implementation

[0032] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings.

[0033] The CORDIC algorithm is commonly used to perform mathematical operations. Its essence is to approach a target through repeated rotations. Specifically, the original vector gradually approaches the target through multiple rotations. When the number of rotations is sufficient, the vector stops rotating, and its length represents the target result. For example, please see... Figure 1 This is a schematic diagram of the rotation model of the CORDIC algorithm. Figure 1 This illustrates that with an input angle θ in one iteration, (x0, y0) becomes (x1, y1) after one iteration. The traditional CORDIC algorithm relies on the number of iterations to ensure accuracy; the rotation direction for each iteration can only be determined after the previous iteration is complete. The traditional CORDIC algorithm requires many iterations to achieve high accuracy. However, multiple iterations result in long output delays and significant hardware consumption.

[0034] Currently, other proposed algorithms include high-radical CORDIC, Scaling-Free CORDIC, and angle-based second-order recoding CORDIC. While high-radical CORDIC can reduce latency, it requires additional hardware resources. Scaling-Free CORDIC also consumes more hardware resources. Angle-based second-order recoding CORDIC has the advantages of fixed rotation direction and simple structure, but it consumes significant storage resources.

[0035] In view of this, the solution of the embodiments of this application is provided. The embodiments of this application propose a CORDIC algorithm based on rotation direction prediction. This algorithm predicts all micro-rotation directions in a non-iterative manner, and then transforms the traditional unipolar iterative structure into a three-level merging iteration structure and a multi-level merging iteration structure, thereby reducing latency and greatly reducing hardware resource consumption.

[0036] The technical solutions provided by the embodiments of this application will be described in detail below with reference to the accompanying drawings.

[0037] Please see Figure 2 This is a flowchart illustrating the CORDIC method provided in this application embodiment. This method can be executed by a communication device with processing capabilities, or by a device capable of supporting communication device functions, such as a chip. Specifically, the flowchart of the CORDIC method provided in this application embodiment is described as follows:

[0038] S201. Calculate the first parameter value λ and store the calculated first parameter value λ.

[0039] The parameter value λ is the sum of the rotation angles θ from multiple iterations. cpIt is determined together with the input angle θ. Different λ correspond to different rotation directions or θ. cp The difference lies in the calculation of the first parameter value λ. In this embodiment, λ corresponding to multiple different iteration numbers can be pre-calculated and stored. All rotation directions can be predicted using these parameter values ​​λ, thus providing a basis for subsequent iterations. For ease of description, the following section uses the calculation of the first parameter value λ as an example to illustrate how to calculate each parameter value λ.

[0040] First, we will introduce the process of deriving the value of the first parameter λ.

[0041] Taking the input angle θ∈[0, π / 4] as an example, θ can be expressed as Where, σ i ∈{-1, 1}, i≥1. Introduce d i Let σ i =2d i -1,d i ∈{0, 1}, at this time Furthermore, simplify have:

[0042]

[0043] make According to Taylor's formula, when i ≥ [(N-log23) / 3], 2 -i ≈tan -1 (2 -i ), where [*] denotes rounding up the *, and λ satisfies:

[0044]

[0045] Where ε is a constant approximately 0.0421115429, the target parameter value rotation direction and the target rotation direction d can be obtained. θ satisfy:

[0046] d θ =0·5θ+0.5-0.5ε+λ=0.5θ+λ+0.478944228537446 (3)

[0047] According to formula (3), the target rotation direction d can be calculated based on the input rotation angle (referred to as the first angle θ in this paper) and the first parameter value λ. θ Target rotation direction d θ The binary bit value represents the direction of rotation.

[0048]

[0049] λ can be calculated according to formula (4). Taking 16-bit precision as an example, the value of λ can be calculated through different combinations of d1, d2, d3, d4, and d5. In order to determine the rules for the value of λ for different input angles, the sum of the rotation angles corresponding to λ is used as the angle reference, and θ is used as the reference. cp This indicates that, in order to determine the rules for the value of λ for different input angles, the accumulated value of the rotation angle corresponding to λ is used as the angle reference, denoted by θ. cp Represents the reference angle value θ. cp (m) satisfies:

[0050]

[0051] Based on the range of the input angle magnitude, redundant values ​​are discarded, and the final direction prediction constants are shown in Table 1.

[0052] Table 1

[0053] The numerical value λ, that is, at least one parameter value λ. For example, at least one parameter value λ and its corresponding θ. cp Stored in ROM. It should be understood that when high computational accuracy is required, the rotation direction prediction constant, i.e., λ and θ, is used. cp It occupies more storage space and consumes more ROM.

[0054] Therefore, embodiments of this application provide a method for saving ROM storage space. For example, this can be achieved by adjusting the initial value λ. s (This can also be considered as a direction prediction constant) Compensation is performed to obtain the first parameter value λ. For example, the first parameter value λ and the initial value λ s and accuracy compensation value λ c Satisfying: λ=λ s +λ c The following section introduces the accuracy compensation value λ. c The derivation process.

[0055] Let m = [(N-log23) / 3)], then λ m With λ m+1 They are respectively

[0056]

[0057]

[0058] Let μ i =2 -i -tan -1 (2 -i As shown in Table 2, μ iThe values ​​of the first 10 iterations. Derived from Taylor's formula, when m ≥ [(N + log2(3 / 20) - 3) / 5], formula (6) can be simplified to...

[0059] λ m+1 =λ m +d m+1 ×2 -3 ×μ m (8)

[0060] Equation (7) gives λ m+1 With λ m The relationship is similar to λ. m+i The value can also be obtained through λ. m This is calculated. Therefore, λ can be obtained by fixing λ. s And the accuracy compensation of λ c constitute.

[0061] λ=λ s +λ c (9)

[0062] Where s = [(N + log2(3 / 20) - 3) / 5], and the precision compensation λ c It can be satisfied:

[0063]

[0064] μ in equation (9) i This is a constant value. By applying a precision compensation method to the direction prediction constant, the ROM consumption can be reduced from 2[(N-log23) / 3]×N bits (the storage space occupied by the direction prediction constant) to 2[(N+log2(3 / 20)-3) / 5]×N bits. This improves precision while reducing ROM consumption. For example, requiring 16-bit precision, without precision compensation, 448 bits of storage space are needed; with precision compensation, only 160 bits are required. Requiring 32-bit precision, without precision compensation, 56320 bits of storage space are needed; with precision compensation, only 1888 bits are required. The higher the precision requirement, the more storage space is saved using the precision compensation method provided in this application.

[0065] S202. Select the target parameter value λ from at least one stored parameter value λ.

[0066] When predicting the rotation direction, the first input angle θ is compared with the θ in the direction prediction constant. cp For comparison, select the one closest to and less than or equal to θ. cp The corresponding λ is taken as the target parameter value λ.

[0067] S203. Determine the target rotation direction d based on the input first angle θ and the target parameter value λ. θ .

[0068] S204, According to target d θ Iterative calculations are performed using the CORDIC algorithm.

[0069] The binary value α representing the direction of micro-rotation is calculated based on the target parameter value λ. θ This enables the prediction of micro-rotation directions without iteration.

[0070] In this embodiment, by predicting all rotation directions in advance, the traditional single-level iteration can be transformed into a three-level merging iteration. The iterative merging process is as follows:

[0071]

[0072] Where i ≤ [(N-3) / 3]

[0073]

[0074] Where, [(N-3) / 3]<i≤[(N-1) / 2]

[0075]

[0076] Where i > [(N-1) / 2].

[0077] Assuming the initial rotation angle is tan⁻¹(2⁻¹i), and i > 0, the range of the calculated input angle θ is limited to [0, π / 4]. Specific angle variations are shown in Table 3. It should be noted that this embodiment uses the limitation of the calculated input angle θ to [0, π / 4] as an example. In possible implementations, the symmetry and trigonometric transformations of trigonometric functions are used to expand the input angle range.

[0078] Table 3

[0079] <![CDATA[Input angle range θ e > Angle θ after change <![CDATA[cosθ e ]]> <![CDATA[sinθ e ]]> [0,π / 4] <![CDATA[θ e ]]> cosθ sinθ [π / 4,π / 2] <![CDATA[π / 2-θ e ]]> sinθ cosθ [π / 2,3π / 4] <![CDATA[θ e -π / 2]]> -sinθ cosθ [3π / 4,π] <![CDATA[π-θ e ]]> -cosθ sinθ [π,5π / 4] <![CDATA[θ e -p]]> -cosθ -sinθ [5π / 4,3π / 2] <![CDATA[3π / 2-θ e ]]> -sinθ -cosθ [3π / 2,7π / 4] <![CDATA[θ e -3π / 2]]> sinθ -cosθ [7π / 4,2π] <![CDATA[2π-θ e ]]> cosθ -sinθ

[0080] Accordingly, a hardware design structure based on the CORDIC algorithm provided in the embodiments of this application can be as follows: Figure 3As shown, this hardware design includes a rotation direction prediction module, which can divide the prediction of the rotation direction into a first prediction part and a second prediction part. The rotation direction prediction module can pre-calculate all micro-rotation directions. Simultaneously, since all micro-rotation directions are known, rotation iteration can transform the unipolar iterative structure into a three-level and multi-level iterative structure. Based on this design, the prediction of the rotation direction can include a coarse prediction, followed by rotation iteration calculations based on the prediction results. If high accuracy is required, a fine prediction can be performed after the coarse prediction, followed by rotation iteration calculations based on the prediction results.

[0081] For example, the direction prediction constant θ can be used. cp , λ s With μ i The ROM is pre-stored, and this ROM has a size of at least 2[(N-(log2(3 / 20)-3) / 5] (bits). This is to quickly select the λ corresponding to the input angle from the ROM. s The most significant bits (MSBs) of θ are used as the lookup address in the ROM. Then, the θ found in the ROM is... cp The output is given to the subtractor (SUB), which will subtract θ. cp The input angle θ is subtracted from the input angle θ, and the sign bit of the subtraction value is used as the control terminal of the data selector (MUX). The MUX then selects the corresponding λ. s The input angle θ is shifted by a shifter (Shift) and output to the adder (Add). The adder (Add) will then shift λ. s Adding θ to 0.5-0.5ε yields the predicted value of the coarse rotation direction.

[0082] Predicted value a based on coarse rotation direction s+1 ~a m With μ s The shifting and subtraction operations are performed to calculate the λ compensation value λc, which is then output to the adder. The adder recalculates λ, θ, and 0.5-0.5ε to obtain the accurate direction prediction value d. θ .

[0083] The input values ​​for the rotation iteration module are x = 1 = K, y1 = 0. The rotation directions are a1 to d. 3s-1 Use coarse direction value d ap Rotation direction a 3s ~d n Predicted value d by precise direction θ Given. Compared to the rotation direction being entirely determined by d. θ This reduces the consumption of one clock cycle.

[0084] The CORDIC algorithm provided in the embodiments of this application can be applied to DDFS hardware design. For example, please refer to... Figure 4 This is a schematic diagram of a DDFS device. The DDFS device mainly includes a phase accumulator, an angle interval folding module, a direction prediction module, a three-level iterative pipeline module, a multi-level merging iteration module, and a triangulation module.

[0085] Figure 4 The working principle of the DDFS device shown is as follows: through the frequency control word F at the front end... cw The frequency of the sine and cosine functions is controlled by the phase control word P at the front end. cw The phase of the sine and cosine functions is controlled. A phase accumulator is used to accumulate angle values, causing the input angle to change periodically. The phase accumulator outputs the accumulated angle to the angle interval folding module. The angle interval folding module converts the angle received from the phase accumulator into the interval [0, π / 4], encodes the 3-bit angle range, and outputs it to the trigonometric transformation module. The rotation direction prediction module pre-calculates all micro-rotation directions based on the angle received from the angle interval folding module, and then passes the direction values ​​to the three-stage iterative pipeline module and the multi-stage merging iteration module. After three-stage pipeline iteration and multi-stage merging iteration, a frequency-controllable sine and cosine function is output. Figure 4 The DDFS generator shown can obtain, for example Figure 5 The sine and cosine signals shown are shown.

[0086] This application proposes a CORDIC algorithm based on rotation direction prediction. This algorithm predicts all micro-rotation directions in a non-iterative manner, and then transforms the traditional unipolar iterative structure into a three-level merging iteration structure and a multi-level merging iteration structure, thereby reducing latency and significantly reducing hardware resource consumption.

[0087] For example, experimental testing shows that the CORDIC algorithm based on rotation direction prediction provided in this application reduces computational load by 70% compared to the traditional CORDIC algorithm. Specifically, ROM resource consumption is reduced by 40%.

[0088] The apparatus used to implement the above method in the embodiments of this application is described below with reference to the accompanying drawings. Therefore, the content above can be used in subsequent embodiments, and repeated content will not be described again.

[0089] This application also provides a communication device for implementing the functions of the above-described method embodiments. This communication device includes at least a processing module and a storage module.

[0090] The processing module stores at least one parameter value λ and determines the target rotation direction d based on the input first angle θ and the target parameter value λ. θ According to the target rotation direction d θIterative calculations are performed using the CORDIC algorithm. Each parameter value λ corresponds to the rotation angle θ after multiple iterations. cp The storage module is specifically used to store the value of the first parameter λ.

[0091] In a possible implementation, the processing module is specifically used to: compare the first angle θ with the θ corresponding to at least one parameter value λ. cp Choose the angle θ that has the smallest difference from the first angle θ. cp As the target θ cp And the first angle θ is less than or equal to the target θ cp , target θ cp The corresponding λ is taken as the target parameter value λ.

[0092] In a possible implementation, for a parameter value λ, the sum of the rotation angles corresponding to that parameter value λ is θ. cp satisfy:

[0093] Where, d i ∈{0, 1}, m is the iteration number, m is greater than or equal to 1, tan -1 (2 -i ) represents the initial rotation angle.

[0094] In possible implementations, the target rotation direction d θ The first angle θ and the target parameter value λ satisfy:

[0095] d θ =0.5θ+0.5-0.5ε+λ.

[0096] In possible implementations, the processing module is also used for:

[0097] For a given parameter value λ, based on the initial value λ of that parameter λ s and accuracy compensation value λ c Calculate the parameter value λ, where the parameter value λ is the same as the initial value λ. s and accuracy compensation value λ c Satisfying: λ=λ s +λ c Initial value λ s According to θ cp Determined by the first angle θ, the accuracy compensation value λ c satisfy: Where s is the number of the most significant bits of the binary representation corresponding to the first angle θ.

[0098] In possible implementations, the first angle θ is at least one period of a sine or cosine function.

[0099] These modules can perform the corresponding functions in the method examples above, as detailed in the method examples, which will not be repeated here.

[0100] This application also provides a DDFS generator, which can perform the corresponding functions in the above method examples. For details, please refer to the detailed description in the method examples, which will not be repeated here.

[0101] This application also provides a computer-readable storage medium including instructions that, when run on a computer, cause the computer to execute the method in the above method example. For details, please refer to the detailed description in the method example, which will not be repeated here.

[0102] In the embodiments of this application, the term "multiple" refers to two or more. The term "and / or" describes the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. In addition, the character " / ", unless otherwise specified, generally indicates that the related objects before and after it are in an "or" relationship.

[0103] "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, a and b, a and c, b and c, or a, b, and c, where a, b, and c can be single or multiple.

[0104] Furthermore, unless otherwise stated, the ordinal numbers such as "first" and "second" mentioned in the embodiments of this application are used to distinguish multiple objects and are not used to limit the size, content, order, timing, priority, or importance of multiple objects.

[0105] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

[0106] The various illustrative logic units and circuits described in the embodiments of this application can be implemented or operate the described functions using a general-purpose processor, digital signal processor, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof. The general-purpose processor can be a microprocessor; alternatively, it can also be any conventional processor, controller, microcontroller, or state machine. The processor can also be implemented using a combination of computing devices, such as a digital signal processor and a microprocessor, multiple microprocessors, one or more microprocessors combined with a digital signal processor core, or any other similar configuration.

[0107] The steps of the methods or algorithms described in the embodiments of this application can be directly embedded in hardware, software units executed by a processor, or a combination of both. The software units can be stored in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disks, removable disks, CD-ROMs, or any other form of storage medium in the art. Exemplarily, the storage medium can be connected to the processor so that the processor can read information from and write information to the storage medium. Optionally, the storage medium can also be integrated into the processor. The processor and storage medium can be housed in an ASIC.

[0108] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0109] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0110] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0111] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0112] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0113] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A method for calculating CORDIC using coordinate rotation, characterized in that, The method is applied to a Direct Digital Frequency Synthesizer (DDFS), and the method includes: Based on the input first angle θ, a target parameter value λ is selected from at least one stored parameter value λ, where each parameter value λ corresponds to the sum of rotation angles after multiple iterations. θ cp ; The target rotation direction is determined based on the input first angle θ and the target parameter value λ. ; According to the target rotation direction Iterative calculations are performed using the CORDIC algorithm; Compare the first angle θ with the at least one parameter value λ respectively. θ cp ; Choose the one with the smallest difference from the first angle θ. θ cp As a goal θ cp And the first angle θ is less than or equal to the target θ cp , to the target θ cp The corresponding λ is taken as the target parameter value λ; For a given parameter value λ, the sum of the rotation angles corresponding to that parameter value λ θ cp satisfy: ,in, m is the iteration number, where m is greater than or equal to 1, and tan -1 (2 -i () represents the initial rotation angle; Before storing at least one parameter value λ, the method further includes: For a parameter value λ, based on the initial value of the parameter λ and accuracy compensation value Calculate the parameter value λ, where the parameter value λ is related to the initial value. and accuracy compensation value satisfy: The initial value according to θ cp The accuracy compensation value is determined in relation to the first angle θ. satisfy: Where s is the number of the most significant bits in the binary representation corresponding to the first angle θ. It is a constant value.

2. The method as described in claim 1, characterized in that, The target rotation direction The first angle θ and the target parameter value λ satisfy: , It is a constant.

3. A Direct Digital Frequency Synthesizer (DDFS), characterized in that, include: Storage module, angle interval folding module, rotation direction prediction module, and three-level iteration module; The storage module is used to store at least one parameter value λ, wherein each parameter value λ corresponds to the sum of rotation angles after multiple iterations. θ cp ; The angle interval folding module is used to select a target parameter value λ from the at least one parameter value λ stored in the storage module according to the input first angle θ, and output it to the rotation direction prediction module. The rotation direction prediction module is used to determine the target rotation direction based on the input first angle θ and the target parameter value λ. And output it to the third-level iteration module; The three-level iterative module is used to determine the target rotation direction. Iterative calculations are performed using the CORDIC algorithm; Specifically, the angle interval folding module is used to: compare the first angle θ with the at least one parameter value λ respectively. θ cp Select the one with the smallest difference from the first angle θ. θ cp As a goal θ cp And the first angle θ is less than or equal to the target θ cp , to the target θ cp The corresponding λ is taken as the target parameter value λ; For a given parameter value λ, the sum of the rotation angles corresponding to that parameter value λ θ cp satisfy: ,in, m is the iteration number, m is greater than or equal to 1, tan -1 (2 -i () represents the initial rotation angle; The rotation direction prediction module is also used for: For a parameter value λ, based on the initial value of the parameter λ and accuracy compensation value Calculate the parameter value λ, where the parameter value λ is related to the initial value. and accuracy compensation value satisfy: The initial value according to θ cp The accuracy compensation value is determined in relation to the first angle θ. satisfy: Where s is the number of the most significant bits in the binary representation corresponding to the first angle θ. It is a constant value.

Citation Information

Patent Citations

  • Method and Apparatus for Iteratively Calculating a Value

    US20140164461A1

  • Method and apparatus for direct digital frequency synthesizer

    US5737253A