CN115543258A - Storage method based on CORDIC algorithm - Google Patents

Storage method based on CORDIC algorithm Download PDF

Info

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
Application number
CN202211514331.8A
Other languages
Chinese (zh)
Other versions
CN115543258B (en
Inventor
陈永刚
林平康
曹海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Qixin Technology Co ltd
Original Assignee
Wuxi Qixin Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Qixin Technology Co ltd filed Critical Wuxi Qixin Technology Co ltd
Priority to CN202211514331.8A priority Critical patent/CN115543258B/en
Publication of CN115543258A publication Critical patent/CN115543258A/en
Application granted granted Critical
Publication of CN115543258B publication Critical patent/CN115543258B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5446Methods 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/29Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/548Trigonometric functions; Co-ordinate transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing 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

Storage method based on CORDIC algorithm
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 as
Figure 406704DEST_PATH_IMAGE001
Starting 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:
l1 wave band:
Figure 527107DEST_PATH_IMAGE002
l2 wave band:
Figure 775686DEST_PATH_IMAGE003
in the formula
Figure 108578DEST_PATH_IMAGE004
The carrier frequency of the L1 band is represented,
Figure 391792DEST_PATH_IMAGE005
the carrier frequency of the L2 band is represented,
Figure 181631DEST_PATH_IMAGE006
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 frequency
Figure 917506DEST_PATH_IMAGE007
Under 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:
Figure 585248DEST_PATH_IMAGE008
Figure 722968DEST_PATH_IMAGE009
wherein, N is the number of satellites,
Figure 919594DEST_PATH_IMAGE010
to receive signal power, t is the GPS signal reception time,
Figure 877186DEST_PATH_IMAGE011
in order to be the initial phase position,
Figure 83039DEST_PATH_IMAGE012
is the carrier frequency of the L1 carrier wave,
Figure 311151DEST_PATH_IMAGE013
in order to navigate the data in the form of navigation data,
Figure 944258DEST_PATH_IMAGE014
is a code for the C/A code,
Figure 654725DEST_PATH_IMAGE015
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
Figure 133111DEST_PATH_IMAGE016
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;
s402: defining a point in a coordinate system
Figure 979844DEST_PATH_IMAGE017
Figure 783852DEST_PATH_IMAGE018
Vector of motion
Figure 480151DEST_PATH_IMAGE019
By rotating
Figure 27807DEST_PATH_IMAGE020
Degree derived vector
Figure 729046DEST_PATH_IMAGE021
S403: will rotate the angle
Figure 969535DEST_PATH_IMAGE020
Is thinned into a plurality of fixed angles
Figure 123436DEST_PATH_IMAGE022
And specify
Figure 209203DEST_PATH_IMAGE022
Satisfy the requirements of
Figure 520275DEST_PATH_IMAGE023
S404: locating a point
Figure 666085DEST_PATH_IMAGE024
Will be provided with
Figure 41703DEST_PATH_IMAGE025
Rotation of the point about the origin
Figure 931162DEST_PATH_IMAGE020
Point obtained after corner
Figure 606994DEST_PATH_IMAGE026
Thereby obtaining
Figure 189285DEST_PATH_IMAGE025
And
Figure 816313DEST_PATH_IMAGE027
the relationship of (a);
s405: defining a direction value
Figure 509462DEST_PATH_IMAGE028
For defining the angle of rotation
Figure 774222DEST_PATH_IMAGE029
And
Figure 527414DEST_PATH_IMAGE030
not exceeding
Figure 143203DEST_PATH_IMAGE031
Figure 374464DEST_PATH_IMAGE032
Angle value per revolution
Figure 260774DEST_PATH_IMAGE033
Defining the angle residual value
Figure 919289DEST_PATH_IMAGE034
Wherein
Figure 287953DEST_PATH_IMAGE035
Is composed of
Figure 322905DEST_PATH_IMAGE031
Following with
Figure 93415DEST_PATH_IMAGE036
Increased angle residual value of
Figure 657251DEST_PATH_IMAGE037
Approaching to 0, and ending the operation;
s406: first rotation
Figure 513212DEST_PATH_IMAGE038
Figure 850390DEST_PATH_IMAGE039
The rotation direction is as follows:
Figure 209827DEST_PATH_IMAGE040
s407: second rotation
Figure 944565DEST_PATH_IMAGE041
Figure 756663DEST_PATH_IMAGE042
The rotation direction is as follows:
Figure 664577DEST_PATH_IMAGE043
(ii) a Wherein
Figure 144099DEST_PATH_IMAGE044
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:
rotation angle
Figure 580897DEST_PATH_IMAGE031
Wherein
Figure 647335DEST_PATH_IMAGE045
The rotational equation is:
Figure 827781DEST_PATH_IMAGE046
further, wherein the rotation angle is limited, the rotation angle follows the rule:
Figure 896231DEST_PATH_IMAGE045
multiplication by the tangent phase becomes a shift operationThe angle of rotation of the first iteration is
Figure 769509DEST_PATH_IMAGE041
The rotation angle of the second iteration is
Figure 821779DEST_PATH_IMAGE047
The rotation angle of the nth iteration is
Figure 540336DEST_PATH_IMAGE048
In which
Figure 728872DEST_PATH_IMAGE049
Figure 507472DEST_PATH_IMAGE050
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:
l1 wave band:
Figure 545573DEST_PATH_IMAGE002
l2 wave band:
Figure 67821DEST_PATH_IMAGE003
in the formula
Figure 376443DEST_PATH_IMAGE004
The carrier frequency of the L1 band is represented,
Figure 325944DEST_PATH_IMAGE005
the carrier frequency of the L2 band is represented,
Figure 87227DEST_PATH_IMAGE051
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 frequency
Figure 413166DEST_PATH_IMAGE007
In 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:
Figure 576294DEST_PATH_IMAGE052
Figure 696697DEST_PATH_IMAGE053
wherein, N is the number of satellites,
Figure 712320DEST_PATH_IMAGE010
to receive signal power, t is the GPS signal reception time,
Figure 576370DEST_PATH_IMAGE011
in order to be the initial phase position,
Figure 594005DEST_PATH_IMAGE054
is the carrier frequency of the L1 carrier wave,
Figure 150888DEST_PATH_IMAGE013
in order to navigate the data in the form of navigation data,
Figure 886763DEST_PATH_IMAGE014
is a code for the C/A code,
Figure 554505DEST_PATH_IMAGE055
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
Figure 426646DEST_PATH_IMAGE056
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;
s402: defining a point in a coordinate system
Figure 154431DEST_PATH_IMAGE057
Figure 876137DEST_PATH_IMAGE058
Vector of motion
Figure 81990DEST_PATH_IMAGE059
By rotating
Figure 74217DEST_PATH_IMAGE060
Degree derived vector
Figure 972903DEST_PATH_IMAGE061
S403: will rotate the angle
Figure 417790DEST_PATH_IMAGE031
Is thinned into a plurality of fixed angles
Figure 427335DEST_PATH_IMAGE029
And specify
Figure 539647DEST_PATH_IMAGE029
Satisfy the requirement of
Figure 343655DEST_PATH_IMAGE045
S404: locating a point
Figure 54602DEST_PATH_IMAGE062
Will be provided with
Figure 602258DEST_PATH_IMAGE063
Rotation of the point about the origin
Figure 569077DEST_PATH_IMAGE031
Point obtained after corner
Figure 543986DEST_PATH_IMAGE064
Thereby obtaining
Figure 229045DEST_PATH_IMAGE063
And
Figure 580392DEST_PATH_IMAGE065
the relationship of (1);
s405: defining a direction value
Figure 401718DEST_PATH_IMAGE028
For defining the angle of rotation
Figure 813108DEST_PATH_IMAGE029
And
Figure 218419DEST_PATH_IMAGE030
not exceeding
Figure 107877DEST_PATH_IMAGE031
Figure 49289DEST_PATH_IMAGE032
Angle value per revolution
Figure 366001DEST_PATH_IMAGE066
Defining the angle residual value
Figure 760073DEST_PATH_IMAGE034
Wherein
Figure 718801DEST_PATH_IMAGE035
Is composed of
Figure 514719DEST_PATH_IMAGE031
Following with
Figure 267912DEST_PATH_IMAGE036
Increased angle residual value of
Figure 650745DEST_PATH_IMAGE037
Approaching to 0, and ending the operation;
s406: first rotation
Figure 882006DEST_PATH_IMAGE038
Figure 532430DEST_PATH_IMAGE039
The rotation direction is as follows:
Figure 722103DEST_PATH_IMAGE040
s407: second rotation
Figure 90767DEST_PATH_IMAGE041
Figure 125720DEST_PATH_IMAGE042
The rotation direction is as follows:
Figure 630650DEST_PATH_IMAGE043
(ii) a Wherein
Figure 427443DEST_PATH_IMAGE045
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:
rotation angle
Figure 283403DEST_PATH_IMAGE031
Wherein
Figure 856467DEST_PATH_IMAGE045
The rotational equation is:
Figure 481483DEST_PATH_IMAGE046
wherein the rotation angle is limited, the rotation angle follows the rule:
Figure 12959DEST_PATH_IMAGE045
multiplication by the tangent phase becomes a shift operation, the rotation angle of the first iteration being
Figure 90636DEST_PATH_IMAGE041
The rotation angle of the second iteration is
Figure 732970DEST_PATH_IMAGE047
The rotation angle of the nth iteration is
Figure 212493DEST_PATH_IMAGE048
Wherein
Figure 649291DEST_PATH_IMAGE049
Figure 715729DEST_PATH_IMAGE067
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 than
Figure 896175DEST_PATH_IMAGE068
If 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
Figure 495783DEST_PATH_IMAGE069
Figure 103482DEST_PATH_IMAGE070
(ii) a If the highest bit is 1, then
Figure 155752DEST_PATH_IMAGE071
Figure 874309DEST_PATH_IMAGE072
Figure 328424DEST_PATH_IMAGE073
The input of this iteration is shown,
Figure 372604DEST_PATH_IMAGE074
representing the iteration result, n is equal to the iteration number minus 1.
Input data is greater than or equal to
Figure 912169DEST_PATH_IMAGE068
: 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
Figure 932953DEST_PATH_IMAGE068
: 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 data
Figure 241574DEST_PATH_IMAGE068
The 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:
l1 wave band:
Figure DEST_PATH_IMAGE001
l2 wave band:
Figure DEST_PATH_IMAGE002
in the formula
Figure DEST_PATH_IMAGE003
The carrier frequency of the L1 band is represented,
Figure DEST_PATH_IMAGE004
the carrier frequency of the L2 band is represented,
Figure DEST_PATH_IMAGE005
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 frequency
Figure DEST_PATH_IMAGE006
Under 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:
Figure DEST_PATH_IMAGE007
Figure DEST_PATH_IMAGE008
wherein, N is the number of satellites,
Figure DEST_PATH_IMAGE009
to receive signal power, t is the GPS signal reception time,
Figure DEST_PATH_IMAGE010
in order to be the initial phase position,
Figure DEST_PATH_IMAGE011
is the carrier frequency of the L1 carrier wave,
Figure DEST_PATH_IMAGE012
in order to navigate the data in the form of navigation data,
Figure DEST_PATH_IMAGE013
is a code for the C/A code,
Figure DEST_PATH_IMAGE014
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
Figure DEST_PATH_IMAGE015
Figure DEST_PATH_IMAGE016
Vector of motion
Figure DEST_PATH_IMAGE017
By rotating
Figure DEST_PATH_IMAGE018
Degree is obtained as a vector
Figure DEST_PATH_IMAGE019
S403: will rotate the angle
Figure DEST_PATH_IMAGE020
Is thinned into a plurality of fixed angles
Figure DEST_PATH_IMAGE021
And specify
Figure 933339DEST_PATH_IMAGE021
Satisfy the requirement of
Figure DEST_PATH_IMAGE022
(ii) a S404: locating a point
Figure DEST_PATH_IMAGE023
Will be provided with
Figure DEST_PATH_IMAGE024
Rotation of the point about the origin
Figure 599682DEST_PATH_IMAGE020
Point obtained after corner
Figure DEST_PATH_IMAGE025
Thereby obtaining
Figure 128883DEST_PATH_IMAGE024
And
Figure DEST_PATH_IMAGE026
the relationship of (1);
s405: defining a direction value
Figure DEST_PATH_IMAGE027
For defining the angle of rotation
Figure DEST_PATH_IMAGE028
And
Figure DEST_PATH_IMAGE029
not exceeding
Figure DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE031
Angle value per revolution
Figure DEST_PATH_IMAGE032
Defining the angle residual value
Figure DEST_PATH_IMAGE033
Wherein
Figure DEST_PATH_IMAGE034
Is composed of
Figure 278629DEST_PATH_IMAGE030
Following with
Figure DEST_PATH_IMAGE035
Increased angle residual value of
Figure DEST_PATH_IMAGE036
Approaching to 0, and ending the operation;
s406: first rotation
Figure DEST_PATH_IMAGE037
Figure DEST_PATH_IMAGE038
The rotation direction is as follows:
Figure DEST_PATH_IMAGE039
s407: second rotation
Figure DEST_PATH_IMAGE040
Figure DEST_PATH_IMAGE041
The rotation direction is as follows:
Figure DEST_PATH_IMAGE042
(ii) a Wherein
Figure 913879DEST_PATH_IMAGE022
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:
rotation angle
Figure 428037DEST_PATH_IMAGE018
Wherein
Figure DEST_PATH_IMAGE043
The rotational equation is:
Figure DEST_PATH_IMAGE044
wherein the rotation angle is limited, the rotation angle follows the rule:
Figure DEST_PATH_IMAGE045
multiplication by the tangent phase becomes a shift operation, the rotation angle of the first iteration being
Figure DEST_PATH_IMAGE046
The rotation angle of the second iteration is
Figure DEST_PATH_IMAGE047
The rotation angle of the nth iteration is
Figure DEST_PATH_IMAGE048
Wherein
Figure DEST_PATH_IMAGE049
Figure DEST_PATH_IMAGE050
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.
CN202211514331.8A 2022-11-30 2022-11-30 Storage method based on CORDIC algorithm Active CN115543258B (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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