FatRobot 0 18 мая, 2016 Опубликовано 18 мая, 2016 · Жалоба т.е. для случая x=pi/2-delta и аргументом в 16 разрядов результат sin(x) будет сформирован через 16383 такта. или через 8191 с учетом формул приведения? Солидно. думаю пункт 2 будет: - в always делаем компаратор с заданным числом, то через N тактов получите результат (возможно очень приблизительный) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 30 мая, 2016 Опубликовано 30 мая, 2016 (изменено) · Жалоба А чем ТС не устраивает предложенный в первом посте табличный/четырехтабличный метод? 1) Таблица 2) Таблица 3) 4 таблицы (sin( a+b )=sin( a )*cos( b )+cos( a )*sin( b )) Изменено 30 мая, 2016 пользователем Barktail Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 7 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Тогда уж, с учетом, что для малых b: (b -> 0) => cos( b ) -> 1, а sin( b ) -> b, и имеем sin( a+b )=sin( a ) + b * cos( a ) И требуются только таблицы "грубого" синуса и косинуса Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Тогда уж, с учетом, что для малых b: (b -> 0) => cos( b ) -> 1, а sin( b ) -> b, и имеем sin( a+b )=sin( a ) + b * cos( a ) И требуются только таблицы "грубого" синуса и косинуса Разумеется, хотя это вопрос требуемой точности. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба В 3м случае достаточно операции приведения аргумента к первому квадранту, 4х операций сравнения приведенного аргумента с константами и простого шифратора. Никаких 4-х таблиц, кордиков, рекуррентных генераторов и прочего безумия не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 31 мая, 2016 Опубликовано 31 мая, 2016 · Жалоба Да, я читал эту математику. Потом в нете наткнулся на приведенный мной пример. Я его разбирал, менял частоту и прочее (опять же подглядывая в ссылку на математику). Занимательно все это. ))) Мне тоже этот метод для непрерывной генерации синуса приглянулся. Понято, что для произвольного вычисления синуса он не подходит, здесь проще CORDIC, табличные методы или разложения в ряды. Попробовал им генерировать синус в ПЛИС, все нормально. Подкупает простотой и малыми размерами, как раз для небольших поделок подойдет. Также и на С/С++ работает. Для последнего написал программку, что в приложении. Но еще хотел бы исследовать более детально по точности и стабильности генерации. sin_cos.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bugdesigner 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба В задаче очень важный параметр отсутствует - время. Если синус нужен произвольный, да ещё и за 1 такт, то решение одно - таблица. Опять таки, многое зависит от применяемой плис и количества ресурсов, которыми можно располагать для реализации такого блока. Синус этот для чего использоваться будет? Или это просто задачка для симулятора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 1 июня, 2016 Опубликовано 1 июня, 2016 · Жалоба Расскажите, пожалуйста, в рамках условий задачи, когда и в чем будет разница. В задаче очень важный параметр отсутствует - время. Если синус нужен произвольный, да ещё и за 1 такт, то решение одно - таблица. Опять таки, многое зависит от применяемой плис и количества ресурсов, которыми можно располагать для реализации такого блока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться