cordicacos

CORDIC-based approximation of inverse cosine

Description

example

theta = cordicacos(x) returns the inverse cosine of x based on a CORDIC approximation.

example

theta = cordicacos(x, niters) returns the inverse cosine of x performing niters iterations of the CORDIC algorithm.

Examples

collapse all

Compute the inverse cosine of a fixed-point fi object using a CORDIC implementation.

a = fi(-1:.1:1,1,16);
b = cordicacos(a);
plot(a,b);
title('Inverse CORDIC Cosine');

Compare the output of the cordicacos function and the acos function.

c = acos(double(a));
error = double(b)-c;
plot(a,error);
title('Error');

Find the inverse cosine of a fi object using a CORDIC implementation and specify the number of iterations the CORDIC kernel should perform. Plot the CORDIC approximation of the inverse cosine with varying numbers of iterations.

a = fi(-1:.1:1, 1, 16);
for i = 5:5:20
    b = cordicacos(a,i);
    plot(a,b);
    hold on;
end
legend('5 iterations', '10 iterations', '15 iterations', '20 iterations')

Input Arguments

collapse all

Numeric input, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Complex Number Support: Yes

The number of iterations that the CORDIC algorithm performs, specified as a positive, integer-valued scalar. If you do not specify niters, the algorithm uses a default value. For fixed-point inputs, the default value of niters is one less than the word length of the input array, theta. For double-precision inputs, the default value of niters is 52. For single-precision inputs, the default value is 23.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Output Arguments

collapse all

Inverse cosine angle values in rad.

See Also

Functions

Introduced in R2018b