CN115543258A - Storage method based on CORDIC algorithm - Google Patents
Storage method based on CORDIC algorithm Download PDFInfo
- Publication number
- CN115543258A CN115543258A CN202211514331.8A CN202211514331A CN115543258A CN 115543258 A CN115543258 A CN 115543258A CN 202211514331 A CN202211514331 A CN 202211514331A CN 115543258 A CN115543258 A CN 115543258A
- Authority
- CN
- China
- Prior art keywords
- cordic algorithm
- storage method
- data
- cordic
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013461 design Methods 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 4
- 238000012804 iterative process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5446—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/29—Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/30—Acquisition or tracking or demodulation of signals transmitted by the system code related
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/548—Trigonometric functions; Co-ordinate transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
The invention discloses a storage method based on a CORDIC algorithm, which belongs to the technical field of the CORDIC algorithm and comprises the following steps: s1: capturing I, Q two paths of sent data by the satellite navigation signal through a capturing module; s2: solving the square root by using a CORDIC algorithm; s3: iterative solution of CORDIC algorithm; s4: designing four-level flow to correspond to four iterations by adopting a pipe-line design mode; s5: the RAM is used to store the operation results. The invention uses CORDIC algorithm to quickly calculate square root, saves two squarers with 16bits input, and only needs one RAM with 16bits bit width to store the operation result because the result is square root, thereby improving the operation efficiency; and a pipe-line design mode is adopted, four-stage flow is designed to correspond to four iterations, and the purposes of saving resources and improving the calculation speed are achieved.
Description
Technical Field
The invention relates to the technical field of CORDIC (coordinate rotation digital computer) algorithms, in particular to a storage method based on the CORDIC algorithms.
Background
The calculation of trigonometric functions is a complex topic, and before computers, the value of trigonometric functions at arbitrary angles is usually calculated by looking up a trigonometric function table. Such tables are already available at the very beginning when the concept of trigonometric functions is generated, usually by deriving them from known values, such asStarting and repeating the application of the half angle sum and difference formula.
With the computer, the trigonometric function table exits the historical arena. How a computer calculates a trigonometric function value is most easily conceivable to approximate the trigonometric function by using a series expansion, such as a taylor series, and the function value can be approximated with arbitrary accuracy as long as the number of terms is sufficiently large. Besides the taylor series approximation, there are many other approximation methods, such as chebyshev approximation, best-fit approximation, and Pad approximation.
All these approximation methods essentially approximate the trigonometric function to be calculated by a polynomial function, which necessarily involves a large number of floating-point operations. On simple devices lacking a hardware multiplier, such as a single chip microcomputer without a floating point arithmetic unit, it takes a lot of time to calculate the trigonometric function by using the methods. To solve this problem, j.volder proposed a fast algorithm in 1959, called CORDIC (COordinate Rotation DIgital Computer) algorithm, which can calculate common trigonometric function values, such as Sin, cos, sinh, cosh, etc., by using only shift and add-subtract operations. Walther in 1974 improved on the basis of the algorithm, so that various transcendental functions can be calculated, and the application of the CORDIC algorithm is expanded greatly. Because the CORDIC algorithm only uses shifting and addition and is easy to realize by pure hardware, the figure of the CORDIC algorithm can be usually seen on an FPGA operation platform. However, most software programmers do not listen to, and are less likely to actively use, such algorithms. In fact, when embedded software development, especially on an embedded platform without floating point operation instructions, such as a fixed-point DSP, is carried out, the CORDIC algorithm can be used, so that it is still useful to master the basic CORDIC algorithm.
In the satellite navigation capturing process, a scene that two paths of integral values of I, Q are squared and summed continuously for a period of time is common, but in the implementation of a hardware circuit, a squarer is used to consume multiplier resources, and when the square is calculated, the circuit has great delay, and the bit width of the calculation result is multiplied.
In the traditional method, two squarers with 16bits input are used for squaring data fed in I, Q, I, Q is 16-bit signed data, two squaring results are added by using one adder and finally stored in a RAM with the width of 32bits, and the storage space is wasted.
Therefore, a new operation mode is expected to be found to calculate the square sum of I, Q two paths of incoming data, so that on the premise of meeting the precision requirement, resources are saved as much as possible, and the calculation speed is increased.
A storage method based on CORDIC algorithm is required to solve the above problems.
Disclosure of Invention
The present invention has been made to solve the above-mentioned problems occurring in the prior art.
In order to solve the technical problems, the invention provides the following technical scheme: the CORDIC algorithm-based storage method comprises the following steps of:
s1: capturing the satellite navigation signal through a capturing module;
s2: solving the square root by using a CORDIC algorithm;
s3: iterative solution of CORDIC algorithm;
s4: designing four-level flow to correspond to four iterations by adopting a pipe-line design mode;
s5: using the RAM to store the operation result;
by the technical scheme, the satellite navigation signals can be captured, the integral values sent by the I, Q in two paths are calculated, the CORDIC algorithm is used for solving the square root, the square root is solved more accurately by utilizing four iterations corresponding to the four-stage flow of the pipe-line, the error is controlled within 5%, two squarers for bit input are saved, and the result is the square root, so that only one RAM with the bit width of 16bits is needed for storing the operation result, the chip area is saved, and the operation efficiency is improved.
Further, in the storing method based on CORDIC algorithm, in step S1, the satellite navigation signal capturing method includes the following steps:
s101: the signal transmitted by a GPS satellite is generally composed of 3 components: the system comprises a carrier wave, a pseudo code and a navigation message, wherein the pseudo code and the navigation message adopt a BPSK technology to modulate the carrier wave;
s102: the two carrier frequencies in the two L-bands used by GPS are as follows:
in the formulaThe carrier frequency of the L1 band is represented,the carrier frequency of the L2 band is represented,;
s103: the receiver antenna receives the ith satellite signal, the intermediate frequency signal is obtained through frequency reduction, the capture module searches the maximum correlation peak on the Doppler frequency and C/A code phase two-dimensional plane of the input signal, finds the corresponding carrier frequency and C/A code phase, provides initial values for the locally generated carrier frequency and C/A code phase and the input signal, and the searching process is to search different code phases l and carrier frequencyUnder the condition, the correlation peak values of the correlation integral values of the two paths I, Q are compared with a specified threshold value, when the correlation peak values are larger than the threshold value, the maximum values are found, and the used code phase and carrier frequency values are the code phase and carrier frequency values of the input signal, and the mathematical expression is as follows:
wherein, N is the number of satellites,to receive signal power, t is the GPS signal reception time,in order to be the initial phase position,is the carrier frequency of the L1 carrier wave,in order to navigate the data in the form of navigation data,is a code for the C/A code,is the ionospheric delay difference;
the acquisition module searches two-dimensional search for the maximum correlation peak at different frequencies and different C/A code phases. Firstly, fixing a local carrier generator on an expected intermediate frequency point, then enabling a C/A code generator to start running a correlator for 1ms from the code phase of 1, storing and emptying I, Q two paths of integral values, and solving I, Q two paths of integral values as correlation peak values. The C/a code generator is then instructed to operate the lms time from code phase 2 to obtain a correlation peak until a 1ms time correlation peak is obtained with a phase operating from 1023. The local carrier generator frequency is increased by one frequency step, e.g. 500Hz, and the above process is repeated until all possible frequency ranges and all code phases have been searched. And searching the value of the maximum correlation peak and the corresponding frequency and code phase value on the two-dimensional plane obtained by searching. If the maximum correlation value is 16 times greater than the average correlation value of the correlation plane, the received signal is considered to contain the satellite signal, the signal correlation peak is detected, and the corresponding frequency and code phase are recorded for the follow-up procedure to track and decode. The worst case capture time may be determined by the number of correlation peak points of the two-dimensional plane. The Doppler frequency offset of static positioning is-5 kHz- +5kHz, 21 frequency points need to be searched when 500Hz is taken as a frequency interval, each frequency point needs to be searched by 1023 code phases, and the worst acquisition time is about 21s.
Furthermore, in the CORDIC algorithm based storage method, in step S2, the CORDIC algorithm is used for solving the square root of the data which is I, Q and is sent in two ways。
Further, in the storing method based on CORDIC algorithm, in step S3, the CORDIC algorithm is iteratively solved according to the following specific principle:
s401: establishing a plane rectangular coordinate system;
S403: will rotate the angleIs thinned into a plurality of fixed anglesAnd specifySatisfy the requirements of;
S404: locating a pointWill be provided withRotation of the point about the originPoint obtained after cornerThereby obtainingAndthe relationship of (a);
s405: defining a direction valueFor defining the angle of rotationAndnot exceeding,Angle value per revolutionDefining the angle residual valueWhereinIs composed ofFollowing withIncreased angle residual value ofApproaching to 0, and ending the operation;
Further, in the storing method based on the CORDIC algorithm, in step S4, the pipe-line design method is adopted to design a fourth-order flow to correspond to four iterations, after each previous-order flow has iterated data, a next-order flow is pulled up to enable, and the next-order flow continues to receive the data processed by the previous-order flow and continues to iterate.
Further, in the storing method based on CORDIC algorithm, in step S5, the RAM is a data storing module, specifically, a RAM with a bit width of 16bits for storing the square root obtained by CORDIC algorithm.
Further, based on the storage method of the CORDIC algorithm, the CORDIC algorithm is iteratively solved, and the result precision after four iterations is obtained through calculation and meets the requirement, and the core of the CORDIC algorithm is as follows:
further, wherein the rotation angle is limited, the rotation angle follows the rule:multiplication by the tangent phase becomes a shift operationThe angle of rotation of the first iteration isThe rotation angle of the second iteration isThe rotation angle of the nth iteration isIn which,。
Further, based on the storage method of the CORDIC algorithm, the CORDIC algorithm is used for calculating that the square root is quickly solved by the CORDIC for the I, Q two paths of sent data, the output result is the square root, and the result is stored in a RAM with a bit width of 16 bits.
Compared with the prior art, the invention has the following beneficial effects:
the CORDIC algorithm can be used for rapidly solving the square root, so that two squarers with 16-bit input can be omitted, and because the result is the square root, only one RAM with 16-bit width is needed for storing the operation result, the chip area is saved, and the operation efficiency is improved; designing four-stage flow to correspond to four iterations by adopting a pipe-line design mode, after each previous-stage flow iterates data, pulling up the next-stage flow to enable the next-stage flow, and continuously receiving the data processed by the previous-stage flow for continuous iteration by the next-stage flow; and the error is small in a scene with a large integral value by using an iterative algorithm.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention and not to limit the invention. In the drawings:
FIG. 1 is a schematic diagram illustrating the steps of a CORDIC algorithm-based storage method according to the present invention;
FIG. 2 is a schematic structural diagram of a CORDIC algorithm-based storage method according to the present invention;
FIG. 3 is a schematic structural diagram of a CORDIC algorithm-based storage method according to the present invention;
FIG. 4 is a hardware schematic diagram of a CORDIC algorithm based storage method according to the present invention;
FIG. 5 is a schematic diagram of an iterative process of the CORDIC algorithm-based storage method of the present invention;
FIG. 6 is a schematic diagram comparing a CORDIC algorithm based storage method according to the present invention;
FIG. 7 is a comparison diagram of the CORDIC algorithm-based storage method of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Referring to fig. 1 to 7, the present invention provides a technical solution: the storage method based on the CORDIC algorithm comprises the following steps: the method comprises the following steps:
s1: capturing the satellite navigation signal through a capturing module;
s2: solving the square root by using a CORDIC algorithm;
s3: iteratively solving a CORDIC algorithm;
s4: designing four-stage flowing water to correspond to four iterations by adopting a pipe-line design mode;
s5: storing the operation result by using a RAM;
through the technical scheme, the satellite navigation signals can be captured, the I, Q two-path incoming integrated values are calculated, the CORDIC algorithm is used for solving the square root, the square root is more accurately solved by utilizing four iterations corresponding to the four-stage pipeline of the pipe-line, the error is controlled within 5%, two squarers for bit input are saved, and the result is the square root, so that only one RAM with the bit width of 16bits is needed for storing the operation result, the chip area is saved, and the operation efficiency is improved.
Further, in the storing method based on CORDIC algorithm, in step S1, the satellite navigation signal capturing method includes the following steps:
s101: the signal transmitted by a GPS satellite is generally composed of 3 components: the system comprises a carrier wave, a pseudo code and a navigation message, wherein the pseudo code and the navigation message adopt a BPSK technology to modulate the carrier wave;
s102: the two carrier frequencies in the two L-bands used by GPS are as follows:
in the formulaThe carrier frequency of the L1 band is represented,the carrier frequency of the L2 band is represented,;
s103: the receiver antenna receives the ith satellite signal, the intermediate frequency signal is obtained through frequency reduction, the capture module searches the maximum correlation peak on the Doppler frequency and C/A code phase two-dimensional plane of the input signal, finds the corresponding carrier frequency and C/A code phase, provides initial values for the locally generated carrier frequency and C/A code phase and the input signal, and the searching process is to search different code phases l and carrier frequencyIn the case of I, Q, the correlation peak values of the correlation integral values of the two paths are compared with a predetermined threshold value, and when the correlation peak values are greater than the threshold value, the maximum correlation peak value is foundThe code phase and carrier frequency values used at this time are the code phase and carrier frequency values of the input signal, and the mathematical expression thereof is as follows:
wherein, N is the number of satellites,to receive signal power, t is the GPS signal reception time,in order to be the initial phase position,is the carrier frequency of the L1 carrier wave,in order to navigate the data in the form of navigation data,is a code for the C/A code,is the ionospheric delay difference;
the acquisition module searches two-dimensional search for the maximum correlation peak at different frequencies and different C/A code phases. Firstly, fixing a local carrier generator on an expected intermediate frequency point, then starting the C/A code generator to operate a correlator for 1ms from the code phase of 1, storing and clearing I, Q two paths of integral values, and solving I, Q two paths of integral values as correlation peak values. The C/a code generator is then instructed to operate the lms time from code phase 2 to obtain a correlation peak until a 1ms time correlation peak is obtained with a phase operating from 1023. The local carrier generator frequency is increased by one frequency step, e.g. 500Hz, and the above process is repeated until all possible frequency ranges and all code phases have been searched. And searching the value of the maximum correlation peak and the corresponding frequency and code phase value on the two-dimensional plane obtained by searching. If the maximum correlation value is 16 times greater than the average correlation value of the correlation plane, the received signal is considered to contain the satellite signal, the signal correlation peak is detected, and the corresponding frequency and code phase are recorded for the follow-up procedure to track and decode. The worst case capture time may be determined by the number of correlation peak points of the two-dimensional plane. The Doppler frequency offset of static positioning is-5 kHz- +5kHz, 21 frequency points need to be searched when 500Hz is taken as a frequency interval, each frequency point needs to be searched by 1023 code phases, and the worst acquisition time is about 21s.
Further, in the CORDIC algorithm based storage method, in step S2, the CORDIC algorithm is used to obtain the square root, and the CORDIC algorithm is used to obtain the square root of the data transmitted in I, Q。
Further, in the storage method based on the CORDIC algorithm, in step S3, the CORDIC algorithm is iteratively solved, and the specific principle is as follows:
s401: establishing a plane rectangular coordinate system;
S403: will rotate the angleIs thinned into a plurality of fixed anglesAnd specifySatisfy the requirement of;
S404: locating a pointWill be provided withRotation of the point about the originPoint obtained after cornerThereby obtainingAndthe relationship of (1);
s405: defining a direction valueFor defining the angle of rotationAndnot exceeding,Angle value per revolutionDefining the angle residual valueWhereinIs composed ofFollowing withIncreased angle residual value ofApproaching to 0, and ending the operation;
Further, in the storage method based on the CORDIC algorithm, in step S4, a pipe-line design mode is adopted, four stages of running water are designed to correspond to four iterations, after each previous stage of running water has iterated data, the next stage of running water is pulled up to enable, and the next stage of running water continues to receive the data processed by the previous stage of running water and continues to iterate.
Further, in the storing method based on the CORDIC algorithm, in step S5, the RAM is a data storing module, specifically, a RAM with a bit width of 16bits for storing the square root obtained by the CORDIC algorithm.
Further, a CORDIC algorithm-based storage method and iterative solution of the CORDIC algorithm are adopted, and the result precision after the iteration of four times is obtained through calculation and meets the requirement, wherein the CORDIC algorithm has the following core:
wherein the rotation angle is limited, the rotation angle follows the rule:multiplication by the tangent phase becomes a shift operation, the rotation angle of the first iteration beingThe rotation angle of the second iteration isThe rotation angle of the nth iteration isWherein,。
Further, based on the storage method of the CORDIC algorithm, the CORDIC algorithm is used for calculating that the data sent by the I, Q in two ways are subjected to fast square root calculation by the CORDIC, the output result is the square root, and the result is stored in a RAM with a bit width of 16 bits.
The first embodiment is as follows:
as shown in fig. 4-5, four sets of 22-bits registers are defined for temporarily storing the processing result of each stage of pipeline, and a set of 22-bits registers is used for temporarily storing the data after the input 16-bits data expansion.
Because I, Q is signed number, firstly, judgment is carried out, if the highest bit is 0, 0 of 2bits is directly extended in high order, if the highest bit is 1, the input data is firstly inverted and then 1 is added, and then 2bits are supplemented in high order; then judging whether the data is less thanIf the value is less than the threshold value, 4bits are complemented at the low position, and if the value is not less than the threshold value, 4bits are complemented at the high position.
And (3) an iterative process: judging 22bits data input by the Q path, if the highest bit is 0, judging that the most significant bit is the most significant bit、(ii) a If the highest bit is 1, then、,The input of this iteration is shown,representing the iteration result, n is equal to the iteration number minus 1.
Input data is greater than or equal to: finally, after iteration is carried out for four times, 16bits of data from the 1 st bit to the 17 th bit of the 22bits of the I path are taken as the final result of square sum root opening to be output; input number less than: for the fourth iteration result, performing right four-bit shifting operation, judging the highest bit of the shifted 4-bit data, and if the highest bit is 1, taking 16-bit data of the 1 st bit to the 17 th bit of the 22bits of the I path and adding 1 as the final result to output the result after the right four-bit shifting; if the highest bit is 0, the result after right-shifting four bits takes 16bits of data from 1bit to 17bit of the 22bits of the I path as the final result to be directly output.
Example two:
as shown in fig. 6-7, the result of directly calculating the square sum and root of I, Q two paths of data by using floating point is compared with the result of four iterations of FPGA by using CORDIC algorithm, and the error of the two results is compared, wherein 100 sets are simulated, and 10 sets are selected for display. The errors are within +/-5%, and the calculation precision requirement in the satellite navigation capturing stage is met.
The low bit is extended by 6bits, and the high bit sign bit is extended by 2bits, so that the hardware consumes larger resources, and the precision can meet the requirement by calculation when the input data is expanded by 16 times, so that the input data is input and is less than the precision of the input dataThe data of (2) is low-order extended by 4bits.
Because the input data is enlarged by 16 times, the four-time iteration result is finally reduced by 16 times, the hardware is reduced by 16 times, the data is integrally shifted to the right by 16bits, the highest bit of the moved 4bits data is judged for ensuring higher accuracy, and if the highest bit is 1, the four-time iteration result reduced by 16 times needs to be added by 1; if 0, then the final four iteration result, reduced by a factor of 16, does not need to be increased by 1, where the corresponding floating point number is rounded off.
Finally, it should be noted that: although the present invention has been described in detail with reference to the foregoing embodiments, it will be apparent to those skilled in the art that changes may be made in the embodiments and/or equivalents thereof without departing from the spirit and scope of the invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.
Claims (8)
1. The storage method based on the CORDIC algorithm is characterized in that: the method comprises the following steps:
s1: capturing the satellite navigation signal through a capturing module;
s2: solving the square root by using a CORDIC algorithm;
s3: iterative solution of CORDIC algorithm;
s4: designing four-stage flowing water to correspond to four iterations by adopting a pipe-line design mode;
s5: the RAM is used to store the operation results.
2. The CORDIC algorithm based storage method according to claim 1, characterized in that: in step S1, the satellite navigation signal capturing method includes the steps of:
s101: the signal transmitted by a GPS satellite consists of 3 components: the system comprises a carrier wave, a pseudo code and a navigation message, wherein the pseudo code and the navigation message adopt a BPSK technology to modulate the carrier wave;
s102: the two carrier frequencies in the two L-bands used by GPS are as follows:
in the formulaThe carrier frequency of the L1 band is represented,the carrier frequency of the L2 band is represented,;
s103: the receiver antenna receives the ith satellite signal, the intermediate frequency signal is obtained through frequency reduction, the capture module searches the maximum correlation peak on the Doppler frequency and C/A code phase two-dimensional plane of the input signal, finds the corresponding carrier frequency and C/A code phase, provides initial values for the locally generated carrier frequency and C/A code phase and the input signal, and the searching process is to search different code phases l and carrier frequencyUnder the condition, the correlation peak values of the correlation integral values of the two paths I, Q are compared with a specified threshold value, when the correlation peak values are larger than the threshold value, the maximum values are found, and the used code phase and carrier frequency values are the code phase and carrier frequency values of the input signal, and the mathematical expression is as follows:
wherein, N is the number of satellites,to receive signal power, t is the GPS signal reception time,in order to be the initial phase position,is the carrier frequency of the L1 carrier wave,in order to navigate the data in the form of navigation data,is a code for the C/A code,is the ionospheric delay difference.
3. The CORDIC algorithm based storage method according to claim 2, characterized in that: in step S2, the square root of the data sent in I, Q is determined by CORDIC algorithm.
4. The CORDIC algorithm based storage method according to claim 3, characterized in that: in step S3, the CORDIC algorithm is iteratively solved, and the specific principle is as follows:
s401: establishing a plane rectangular coordinate system;
s402: defining a point in a coordinate system,Vector of motionBy rotatingDegree is obtained as a vector;
S403: will rotate the angleIs thinned into a plurality of fixed anglesAnd specifySatisfy the requirement of(ii) a S404: locating a pointWill be provided withRotation of the point about the originPoint obtained after cornerThereby obtainingAndthe relationship of (1);
s405: defining a direction valueFor defining the angle of rotationAndnot exceeding,Angle value per revolutionDefining the angle residual valueWhereinIs composed ofFollowing withIncreased angle residual value ofApproaching to 0, and ending the operation;
5. The CORDIC algorithm based storage method of claim 4, wherein: in step S4, the pipe-line design method is adopted to design four-stage flow to correspond to four iterations, after each previous-stage flow has iterated data, the next-stage flow is raised to enable the next-stage flow, and the next-stage flow continues to receive the data processed by the previous-stage flow and continues to iterate.
6. The CORDIC algorithm based storage method according to claim 1, characterized in that: in step S5, the RAM is a data storage module for storing the square root obtained by the CORDIC algorithm.
7. The CORDIC algorithm based storage method according to claim 1, characterized in that: the CORDIC algorithm is iteratively solved, the result precision after four iterations is obtained through calculation and meets the requirement, and the core of the CORDIC algorithm is as follows:
8. The CORDIC algorithm based storage method according to claim 6, characterized in that: the CORDIC algorithm is used for calculating I, Q two paths of sent data, square roots are quickly obtained through CORDIC, the output result is the square root, and the result is stored in a RAM with 16bits of bit width.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514331.8A CN115543258B (en) | 2022-11-30 | 2022-11-30 | Storage method based on CORDIC algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211514331.8A CN115543258B (en) | 2022-11-30 | 2022-11-30 | Storage method based on CORDIC algorithm |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543258A true CN115543258A (en) | 2022-12-30 |
CN115543258B CN115543258B (en) | 2023-06-16 |
Family
ID=84721674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211514331.8A Active CN115543258B (en) | 2022-11-30 | 2022-11-30 | Storage method based on CORDIC algorithm |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543258B (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1032125A1 (en) * | 1999-02-26 | 2000-08-30 | Koninklijke Philips Electronics N.V. | Receiver, programmable circuit and method for computing digital filters |
CN102621563A (en) * | 2012-03-20 | 2012-08-01 | 东南大学 | GPS (global positioning system) software receiver signal tracking method based on FPGA (field programmable gate array) and system of GPS software receiver signal tracking method |
CN102981797A (en) * | 2012-11-02 | 2013-03-20 | 中国航天科技集团公司第九研究院第七七一研究所 | Trigonometric function arithmetic device based on combination of feedback of coordinated rotation digital computer (CORDIC) algorithm and pipeline organization |
CN108196822A (en) * | 2017-12-24 | 2018-06-22 | 北京卫星信息工程研究所 | A kind of method and system of double-precision floating point extracting operation |
CN113138749A (en) * | 2021-04-09 | 2021-07-20 | 中科亿海微电子科技(苏州)有限公司 | Trigonometric function calculation device and method based on CORDIC algorithm |
CN113778378A (en) * | 2021-09-27 | 2021-12-10 | 南京宁麒智能计算芯片研究院有限公司 | Device and method for solving complex number N-degree square root |
-
2022
- 2022-11-30 CN CN202211514331.8A patent/CN115543258B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1032125A1 (en) * | 1999-02-26 | 2000-08-30 | Koninklijke Philips Electronics N.V. | Receiver, programmable circuit and method for computing digital filters |
CN102621563A (en) * | 2012-03-20 | 2012-08-01 | 东南大学 | GPS (global positioning system) software receiver signal tracking method based on FPGA (field programmable gate array) and system of GPS software receiver signal tracking method |
CN102981797A (en) * | 2012-11-02 | 2013-03-20 | 中国航天科技集团公司第九研究院第七七一研究所 | Trigonometric function arithmetic device based on combination of feedback of coordinated rotation digital computer (CORDIC) algorithm and pipeline organization |
CN108196822A (en) * | 2017-12-24 | 2018-06-22 | 北京卫星信息工程研究所 | A kind of method and system of double-precision floating point extracting operation |
CN113138749A (en) * | 2021-04-09 | 2021-07-20 | 中科亿海微电子科技(苏州)有限公司 | Trigonometric function calculation device and method based on CORDIC algorithm |
CN113778378A (en) * | 2021-09-27 | 2021-12-10 | 南京宁麒智能计算芯片研究院有限公司 | Device and method for solving complex number N-degree square root |
Non-Patent Citations (6)
Title |
---|
李畅: "超高频射频识别定位系统中载波相位测量技术的研究", 《中国优秀硕士学位论文全文数据库》 * |
李畅: "超高频射频识别定位系统中载波相位测量技术的研究", 《中国优秀硕士学位论文全文数据库》, 28 February 2020 (2020-02-28), pages 44 - 60 * |
杨宇等: "一种改进的流水线CORDIC算法结构", 《微处理机》 * |
杨宇等: "一种改进的流水线CORDIC算法结构", 《微处理机》, no. 04, 30 August 2006 (2006-08-30) * |
邵晓刚: "GPS-北斗卫星导航模拟源的FPGA算法设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
邵晓刚: "GPS-北斗卫星导航模拟源的FPGA算法设计与实现", 《中国优秀硕士学位论文全文数据库》, 30 April 2018 (2018-04-30), pages 6 - 51 * |
Also Published As
Publication number | Publication date |
---|---|
CN115543258B (en) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677737B (en) | The method and device that low delay CORDIC trigonometric function based on carry-save summator realizes | |
CN1737603A (en) | Method of determining the position of a radio-frequency signal receiver without knowledge of the initial approximate position, and receiver for implementing the same | |
CN108027442B (en) | Satellite navigation receiver with fixed point sigma-delta filter | |
Hwang et al. | A 400-MHz processor for the conversion of rectangular to polar coordinates in 0.25-μm CMOS | |
CN115543258A (en) | Storage method based on CORDIC algorithm | |
CN111679123B (en) | Symbol edge and frequency estimation method and system suitable for multi-mode modulation system | |
Mandal et al. | VLSI architecture design and implementation for application specific CORDIC processor | |
Kumarin et al. | SoC opportunities for boosting SDR GNSS performance | |
Kumar et al. | Coordinate rotation digital computer algorithm: Design and architectures | |
JP2002290154A (en) | Numerically controlled oscillator in particular for radio-frequency signal receiver | |
TWI376633B (en) | Method of cordic computing vector angle and electronic apparatus using the same | |
Sokolovskiy et al. | Hardware diagram computing devices navigation equipment consumers SRNS | |
CN107657078A (en) | Ultrasonic phase array floating-point focus emission implementation method based on FPGA | |
Ellapan | A PARALLEL AND PIPELINED ARCHITECTURE FOR CORDIC ALGORITHM | |
Mandal et al. | Reconfigurable Design of Pipelined CORDIC Processor for Digital Sine-Cosine | |
US20240103182A1 (en) | Navigation system with embedded software defined radio | |
CN106772481B (en) | A kind of software parallel Related Computational Methods based on inner product of vectors | |
Akopian et al. | Fast-matched filters in time domain for global positioning system receivers | |
CN102331584B (en) | Fast Fourier transform (FFT) processor module of acquisition equipment used for global navigation satellite system (GNSS) | |
CN113220267B (en) | Booth coding bit expansion-based multiplier and implementation method | |
Hao et al. | A VLSI implementation of double precision floating-point logarithmic function | |
Jain et al. | A new approach for high performance and efficient design of CORDIC processor | |
Ray et al. | High Throughput VLSI Architecture for Blackman Windowing in Real Time Spectral Analysis. | |
Xu et al. | A fixed point of DFT/FFT for FPGA platform | |
Korde et al. | Design of FPGA Based Radix 4 FFT Processor using CORDIC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |