cordictanh

Гиперболический тангенс на основе CORDIC

Описание

пример

T = cordictanh(theta) возвращает гиперболический тангенс theta.

пример

T = cordictanh(theta, niters) возвращает гиперболический тангенс theta путем выполнения niters итерации алгоритма CORDIC.

Примеры

свернуть все

Найдите гиперболический тангенс fi theta объекта использование реализации CORDIC с количеством итераций по умолчанию.

theta = fi(-2*pi:.1:2*pi-.1);
T_cordic = cordictanh(theta);

Постройте график гиперболического тангенса theta использование tanh функция и ее CORDIC приближение.

T = tanh(double(theta));
plot(theta, T_cordic);
hold on;
plot(theta, T);
legend('CORDIC approximation of tanh', 'tanh');
xlabel('theta');
ylabel('tanh(theta)');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent CORDIC approximation of tanh, tanh.

Вычислите различие между результатами cordictanh функции и tanh функция.

figure;
err = abs(T - double(T_cordic));
plot(theta, err);
xlabel('theta');
ylabel('error');

Figure contains an axes. The axes contains an object of type line.

Найдите гиперболический тангенс fi theta объекта использование реализации CORDIC и определение количества итераций, которые должно выполнять ядро CORDIC. Постройте график приближения CORDIC гиперболического тангенса theta с различными числами итераций.

theta = fi(-2*pi:.1:2*pi-.1);
for niters = 5:10:25
T_cordic = cordictanh(theta, niters);
plot(theta, T_cordic);
hold on;
end
xlabel('theta');
ylabel('tanh(theta)');
legend('5 iterations', '15 iterations', '25 iterations','Location','southeast');

Figure contains an axes. The axes contains 3 objects of type line. These objects represent 5 iterations, 15 iterations, 25 iterations.

Входные параметры

свернуть все

Значения угла в радианах заданы в виде скаляра, вектора, матрицы или N-мерного массива.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Количество итераций, которые выполняет алгоритм CORDIC, заданное как положительный, целочисленный скаляр. Если вы не задаете nitersалгоритм использует значение по умолчанию. Для входов с фиксированной точкой значение по умолчанию niters на единицу меньше, чем размер слова массива входа, theta. Для входов двойной точности значение по умолчанию niters - 52. Для входов с одной точностью значение по умолчанию является 23.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Выходные аргументы

свернуть все

T - основанное на CORDIC приближение гиперболического тангенса theta. Когда вход в функцию с плавающей точкой, тип выходных данных тот же, что и тип входных данных. Когда вход является фиксированной точкой, выход имеет тот же размер слова, что и вход, и длину дроби, равную WordLength2.

См. также

| | |

Введенный в R2017b