Полная версия этой страницы:
Генератор синуса на virtex-4
pulsar-17
Mar 4 2007, 11:52
Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.
Подскажите как можно подобное сделать?
Dj_Atmex
Mar 4 2007, 15:50
Что значит табличные методы не проходят по точности? Объясните.
Берем, предвычисляем таблицу синуса заданой частоты (в сети есть исходники как его подсчитывать на HDL) => суем в SRAM и все - оттуда ее крутим.
rezident
Mar 4 2007, 16:02
Немного про теорию цифрового синтеза можно почитать в статье
DDS: прямой цифровой синтез частоты © Ридико Леонид Иванович.
Цитата(pulsar-17 @ Mar 4 2007, 11:52)

Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.
Подскажите как можно подобное сделать?
Может я и не прав но по мому табличные методы будут поточнее апроксимаций. Кроме того вы не указали частоту дискретизации.
Использование табличного метода + линейная или квадратичная интерполяция способны дать точность синуса до 32 бит при вполне приемлемых размерах таблиц.
Здесь в т.ч. обсуждалась проблема формирования синуса.
Еще можно посмотреть статью "Аппаратная генерация кодов синуса и косинуса" (Схемотехника №4 за 2006 г.).
Впрочем основная идея достаточно тривиальна : sin(x+d) = cos(d)*sin(x) + sin(d)*cos(x).
Метод является фактически вариацией табличного. Точность устройства приведенного в статье довольно средняя. Однако сама идея позволяет реализовать, при некоторых ухищрениях практически любую разумную точность .
pulsar-17
Mar 9 2007, 20:13
Всем большое спасибо за помощь!!! Вопрос решился.
rv3dll(lex)
Mar 20 2007, 23:29
Генератор делается таблично методо прямого синтеза
Принципы посмотрите в инете
В кратце выглядит так
Есть некая таблица -чем больше - тем лучше
ограничение - максимальная частота Pll
дальше из этой таблицы выбираются отсчётв через 1 , 2, 3 10000 100000000 и так далее
как только шаг всеё этой батвы приближается к 1 герцу то надо задуматься в выбросе не каждого второго отсчёта а каждого 3-го
потом 4-го и так далее.
Выброс отсчётов надо распределить но периоду равномерно.
затем по нескольким ближайшим периодам равномерно
Вот примерно и фсё)))))
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.