In a radio receiver system, the signal received by the receiver often experiences frequency offset due to the influence of factors such as the motion of the transmitter, the motion of the receiver, and the dynamic change of the standard frequency over time, so frequency offset correction is required. In a spread spectrum communication system, the frequency offset correction circuit can eliminate the influence of the intermediate frequency offset on the capture of the receiver spread spectrum code and the data demodulation performance, thereby improving the performance of the receiver.
In the frequency offset correction circuit, it is usually necessary to generate cosine and sine signals according to a given phase. The most important implementation technology is the CORDIC (Coordinate Rotation Digital Computer) algorithm. This article will analyze the principle of the CORDIC algorithm and its FPGA implementation method in detail.
1 Basic Principles of CORDIC Algorithm
In a rectangular coordinate system, suppose there is a vector (x, y), and a vector (x1, y1) is obtained by rotating it counterclockwise by φ degrees. The algebraic relationship between the two vectors is:
In formula (1), if the rotation angle φ satisfies the condition: tanφ=±2-i, the multiplication operation in formula (1) can be converted into a shift operation, which is easy to implement in FPGA. Figure 1 shows a schematic diagram of vector rotation in rectangular coordinates. If the angle to be rotated is θ, it can be completed by rotating a series of predetermined angles αi n times.
(2) In the formula, di represents the direction of each rotation, αi. Since each rotation is a predetermined angle value, cosαi is a constant, and the processing of each iteration in n rotations can be expressed as:
In general, when the number of rotations is large enough, Ki is generally a constant. Since this constant can be multiplied in the final calculation result during implementation, Ki in formula (3) can be removed. In this way, the iterative equation only contains shift and addition operations, which greatly simplifies the complexity of FPGA implementation. Since another equation is required to determine the sign of di, the variable zi is introduced to represent the accumulated value of each rotation of the predetermined angle:
In this way, the iterative equation of the CORDIC algorithm can be expressed as:
The final result is:
In the frequency offset correction circuit, it is usually necessary to generate a cosine signal cosθ and a sine signal sinθ according to a given phase θ. In order to generate standard sine and cosine signals without amplification, the y component (i.e., yo) of the input vector can be set to 0 and the x component (i.e., xo) to 1/An. In this way, equation (6) can be simplified to:
It can be seen that after the above processing, the input phase zo can be converted into standard sine and cosine signals. [page]
2 FPGA Implementation of CORDIC Algorithm
The most commonly used methods for implementing the CORDIC algorithm using FPGA are iterative algorithms and pipeline-based algorithms. The CORDIC iterative algorithm has only one level of iteration unit. Driven by the system clock, the output of the iteration unit can be used as the input of this level, and the calculation is completed through the same level of iteration. The hardware overhead of the iterative algorithm is very small, but it takes multiple clock cycles to complete a CORDIC operation, and its operation speed is relatively slow.
In the CORDIC pipeline structure algorithm, each level of CORDIC iterative operation uses a separate operation unit. When the pipeline is filled, a set of results will be calculated immediately in each clock cycle, so the calculation speed is very fast.
Although the calculation speed of pipeline structure algorithm is very fast, its accuracy is limited by the number of pipeline stages. To improve the accuracy, the number of pipeline stages must be increased, which increases the hardware overhead. Therefore, the selection of pipeline stages must take into account the requirements of speed and accuracy.
3 Implementation scheme and simulation results
3.1 Implementation plan
The pipeline flow chart of the CORDIC algorithm is shown in Figure 2. This method uses a 7-stage pipeline, so the calculation speed can be greatly improved.
3.2 Simulation Results
The simulation results of the sine-cosine signal generator based on the CORDIC algorithm are shown in FIG3 . As can be seen from FIG3 , the algorithm can realize standard sine waves and cosine waves and can be directly used as a frequency offset correction unit.
4 Conclusion
This paper analyzes the working principle of the CORDIC algorithm and provides a solution for implementing digital frequency correction based on the CORDIC algorithm and FPGA. The simulation results show that this method can realize standard sine and cosine wave signals and can be directly used as a frequency deviation correction unit to correct digital frequency signals.
Previous article:Programmable Logic in LCD Touch Screen Control
Next article:Application of Ultra-Low Power CPLD in Consumer Electronics Products
Recommended ReadingLatest update time:2024-11-16 17:57
- Popular Resources
- Popular amplifiers
- Analysis and Implementation of MAC Protocol for Wireless Sensor Networks (by Yang Zhijun, Xie Xianjie, and Ding Hongwei)
- MATLAB and FPGA implementation of wireless communication
- Intelligent computing systems (Chen Yunji, Li Ling, Li Wei, Guo Qi, Du Zidong)
- Summary of non-synthesizable statements in FPGA
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- Sn-doped CuO nanostructure-based ethanol gas sensor for real-time drunk driving detection in vehicles
- Design considerations for automotive battery wiring harness
- Do you know all the various motors commonly used in automotive electronics?
- What are the functions of the Internet of Vehicles? What are the uses and benefits of the Internet of Vehicles?
- Power Inverter - A critical safety system for electric vehicles
- Analysis of the information security mechanism of AUTOSAR, the automotive embedded software framework
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- 【Warehouse temperature and humidity automatic control simulation system】2. ON Semiconductor IDE Eat (tian) melon (keng)
- What happened to Tencent?
- The communications industry was once glorious...
- nrf52832 debugging record IO pin configuration
- Add floating point operation library when CCS performs floating point operation
- Free evaluation: simulate and run AI model, and take away the Allwinner R329 AI development board worth 299 yuan
- The second part is about YOC used by RVB2601
- Adding a Raspberry Pi to a NumWorks Calculator
- Are 2G and 3G going to be phased out? Why is 3G being phased out faster than 2G?
- A strange problem occurred in a piece of code I wrote.