CORDIC
CORDIC je algoritmus používaný pro jednoduchý výpočet goniometrických a také dalších matematických funkcí v jednoduchých číslicových systémech. Zkratka CORDIC znamená COordinate ROtation DIgital Computer.[1]
Historie
Tento algoritmus navrhl a popsal Jack Volder v roce 1959 původně pro goniometrické funkce.[2]. Později byl algoritmus používán i pro jiné matematické funkce a postupy.[3] Například převody polárních souřadnic, nebo výpočet inverzních goniometrických funkcí. Dalším rozvojem na stejném principu byl vyvinut způsob výpočtu i pro hyperbolické a logaritmické funkce.
Použití
Výhodou algoritmu CORDIC je to použití takových operací, které jsou v digitální technice implementovány relativně jednoduše. Jde o operace bitový posun, sčítání, odečítání a porovnání. To umožnilo použití CORDIC v kalkulačkách, jednočipových procesorech Intel a Motorola (řady 8051, respektive 68HC11), osmibitových domácích počítačích a podobně. Dále byl CORDIC použit v některých matematických koprocesorech, protože to umožnilo jejich levnější výrobu.[4]
Princip
Princip práce algoritmu CORDIC je postaven na vyjádření rotace vektoru o určitý úhel. Matematickou úpravou vzorce pro rotaci vyloučíme složité multiplikativní operace. Pracujeme potom jen s vybranými hodnotami úhlu, kde jeho tangenta nabývá jen vybraných hodnot. Pak tangentu nahradíme násobením, respektive v procesoru bitovým posunem. Výběrem jen určitých hodnot tangent, respektive úhlů jsme omezili rotaci vektoru jen na některé úhly. Pro dosažení přesné, nebo alespoň přibližné požadované hodnoty pak použijeme iterace, tedy více rotací na jednu či druhou stranu.[4]
Odkazy
Reference
- What is all this CORDIC stuff anyhow?. www.andraka.com [online]. [cit. 23-11-2012]. Dostupné v archivu pořízeném dne 30-09-2007.
- Volder, Jack: The CORDIC Trigonometric Computing Technique, IRE Transactions on Electronic Computing, Vol EC-8, strany 330–334, 1959
- Despain, A.M.:Fourier Transform Computations Using CORDIC Iterations, IEEE Transactions on Computers, Volume 23, strany 993–1001, 1974
- Výpočet goniometrických funkcí algoritmem CORDIC
Literatura
- Andraka, Ray: A survey of CORDIC algorithms for FPGA based computers,ACM, 1998
- Mazenc C., Merrheim, X., Muller, J.M.: Computing Functions Arccos and Arcsin Using CORDIC, IEEE Transactions on Computers, Volume 42, strany 118–122, 1993
Související články
Externí odkazy
- blogspot.com:CORDIC
- BASIC Stamp, Matematická implementace CORDIC
- math.niu.edu: CORDIC(anglicky)
- Diskuse o CORDIC (anglicky)