| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Trigonometric functions http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3994 |
Страница 1 от 2 |
| Автор: | Vilo [ Сря Апр 04, 2007 8:57 pm ] |
| Заглавие: | Trigonometric functions |
Triabva da subera smetka na arc sin v okolo 1kB ROM i 256B RAM. Preciznost: min. 4 cifri sled zapetaiata v intervala +/- PI/2. Moje i da e skalirano v int. MCU: 8051 Skorostta ne e ot znachenie. Vsiakakvi idei i nasoki sa dobre doshli. Blagodaria predvaritelno. Google ne beshe osobeno slovoohotliv otnosno CORDIC |
|
| Автор: | evc [ Сря Апр 04, 2007 9:50 pm ] |
| Заглавие: | |
Каква дискретност ти трябва? За таблично представяне(стойностите на предварително изчислени арксинуси с някаква стъпка в таблица, а аргумента ти се явява офсет от началото на таблицата) мислил ли си? В 1к можеш да натъпчеш 512 стойности, т.е. дискретност от 0.35градуса или около 21минути. |
|
| Автор: | Vilo [ Сря Апр 04, 2007 10:03 pm ] |
| Заглавие: | discretnostta... |
Triabva da e po dobra ot 0.05 gradusa. Tablicata e chastichno reshenie, neshto kato pomosht kum "niakakva" matematika. |
|
| Автор: | sv_shady [ Сря Апр 04, 2007 10:31 pm ] |
| Заглавие: | |
Охооо не си го и помисляй |
|
| Автор: | BrainStorm [ Сря Апр 04, 2007 10:45 pm ] |
| Заглавие: | |
Е неми се вярва да е чак пък толкова сложно |
|
| Автор: | sv_shady [ Сря Апр 04, 2007 10:47 pm ] |
| Заглавие: | |
Мислиш ли че ги смята ??? И, ако смята едва ли е "обикновен" калкулатор |
|
| Автор: | BrainStorm [ Сря Апр 04, 2007 10:50 pm ] |
| Заглавие: | |
Еми смятаги немисе вярва да ги научква http://links.jstor.org/sici?sici=0025-5 ... size=LARGE |
|
| Автор: | sv_shady [ Сря Апр 04, 2007 11:14 pm ] |
| Заглавие: | |
Абе то, че не ги научква не ги |
|
| Автор: | BrainStorm [ Сря Апр 04, 2007 11:17 pm ] |
| Заглавие: | |
Ем сигурно |
|
| Автор: | kasparov [ Сря Апр 04, 2007 11:55 pm ] |
| Заглавие: | |
Vilo, виж глава 7 на тази кника ( само 3 Мб) http://rapidshare.de/files/7833926/Digi ... Z.rar.html |
|
| Автор: | HCL [ Чет Апр 05, 2007 12:00 am ] |
| Заглавие: | |
По-добрите могат до 10-ия знак след запетаята Става и без таблици разбира се. Нали затова сьществува т.н. Numerical analysis, MATLAB в таблици ли тьрси. Тази таблица е трябвало да бьде изчислена пьрвоначално. Ключовата ти дума в гооглето е infinite series. Сигурен ли си, че се изискват 0.05 градуса, градуса, в цялото ДМ? Това означава в двата края на диапазона резолюция от около 1Е-7. Hа кой му е притрябвало подобно нещо? Освен ако не конструираш калкулатор разбира се Но както и да е, да кажем, че такова е заданието.
Още на прьв поглед се вижда, че в диапазона +/- pi/6 имаш почти линейна функция. Това което ти препорьчвам като решение е да разделиш ДМ на части и за всяка част да направиш по една апроксимация. Колкото повече области толкова по-добро бьрзодействие и толкова повече необходима програмна памет. Според ресурсите си и поставеното изискване за точност тьрсиш подходящото решение. Ето пример за развит ред на Маклаурин, иначе казано Тайлор редица с точка на развитие 0. http://upload.wikimedia.org/math/2/a/8/ ... 818504.png При тези изисквания за точност и µC с който разполагаш ... може да отнеме малко време Затова развиваш няколко такива реда в критичните области и дерзаеш. И тьй като не е малко работа, не е лоша идеята на BrainStorm да се огледаш как е решен проблема от умните глави. |
|
| Автор: | HCL [ Чет Апр 05, 2007 12:44 am ] | |||||||||
| Заглавие: | ||||||||||
avc с offset няма да стане толкова лесно, защото функцията не е линейна. Ако искаш константно отклонение от 0.35 градуса ще се наложи да разположиш точките през динамични интеревали. Иначе казано в двата края на диапазона точките ти ще са разположени най-нагьсто, а около нулата най-нарядко. А това си изисква един search алгоритьм, binary search с малка модификация за междинните стойности мисля, че би бил най-подходящ. С offset сьщо може да стане, спестяваш си тьрсенето в масива, в такьв случай LUT-а ще сьдьржа решенията за стойности лежащи през константен интервал 3.9Е-1 една от друга, което означава, че около нулата отклонението ще е около 0.22 градуса, а в двата края на диапазона около 5 градуса, малко кофти иначе вярно, по-бьрзо е. |
||||||||||
| Автор: | HCL [ Чет Апр 05, 2007 1:22 am ] | |||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||
И понеже ми стана интересно, хвьрлих едно око как в действителност е реализирано в MATLAB.
и като потьрсиш какви са ги творили от Sun стигаш до
Тук вече всякакви надежди за copy/paste са мьртви
И нещо което бяхме пропуснали, не е необходимо изчисляване или LUT за цялото ДМ, а само за едната половината |
||||||||||||||||||||||||||||
| Автор: | ДедоБоре [ Чет Апр 05, 2007 8:41 am ] |
| Заглавие: | |
трябваше да му оставиш някаква надежда на човека |
|
| Автор: | evc [ Чет Апр 05, 2007 8:47 am ] | ||||||||||||||||||
| Заглавие: | |||||||||||||||||||
XCL, никъде в моя пост не е спомената думичката "лесно"! И няма нужда от сърч алгоритми, ако знаеш какво правиш! И особено е добре да говориш от първо лице, написал съм 512 стойности като съм имал предвид 512 ЧЕТИРИ байтови стойности, което в действителност са 256 за да може да ги събере в 1к, но когато аргумента е с обратен знак се ползва горната част на таблицата! |
|||||||||||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|