OpenCores

CORDIC arctangent for IQ signals

Project maintainers

Details

Name: cordic_atan_iq
Created: Mar 17, 2018
Updated: Jul 27, 2018
SVN Updated: Apr 6, 2018
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 1 reported / 0 solved
Star7you like it: star it!

Other project properties

Category:Arithmetic core
Language:Verilog
Development status:Alpha
Additional info:
WishBone compliant: No
WishBone version: n/a
License: LGPL

Description

Streaming atan function based on CORDIC algorithm.

[angle, modulus] = cordic([I, Q])

angle = atan(Q/I)

modulus = sqrt(I^2+Q^2)

angle in range [-2^31, 2^31-1] ~ [-180 deg, 180 deg)

SystemVerilog module takes {I, Q} vector, rotates it to vector {k * sqrt(I^2+Q^2), 0} and returns angle and vector modulus.

Angular precision is 0.003 sec., depend on vector size. Module uses 32 bits arithmetic.

The download includes SystemVerilog module, SystemVerilog testbench, MatLab generator script for the atan base table and MatLab CORDIC model.