Перейти к содержанию
    

Генератор синуса на virtex-4

Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.

Подскажите как можно подобное сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит табличные методы не проходят по точности? Объясните.

 

Берем, предвычисляем таблицу синуса заданой частоты (в сети есть исходники как его подсчитывать на HDL) => суем в SRAM и все - оттуда ее крутим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного про теорию цифрового синтеза можно почитать в статье DDS: прямой цифровой синтез частоты © Ридико Леонид Иванович.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.

Подскажите как можно подобное сделать?

Может я и не прав но по мому табличные методы будут поточнее апроксимаций. Кроме того вы не указали частоту дискретизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использование табличного метода + линейная или квадратичная интерполяция способны дать точность синуса до 32 бит при вполне приемлемых размерах таблиц. Здесь в т.ч. обсуждалась проблема формирования синуса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще можно посмотреть статью "Аппаратная генерация кодов синуса и косинуса" (Схемотехника №4 за 2006 г.).

Впрочем основная идея достаточно тривиальна : sin(x+d) = cos(d)*sin(x) + sin(d)*cos(x).

Метод является фактически вариацией табличного. Точность устройства приведенного в статье довольно средняя. Однако сама идея позволяет реализовать, при некоторых ухищрениях практически любую разумную точность .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Генератор делается таблично методо прямого синтеза

Принципы посмотрите в инете

 

В кратце выглядит так

 

Есть некая таблица -чем больше - тем лучше

ограничение - максимальная частота Pll

дальше из этой таблицы выбираются отсчётв через 1 , 2, 3 10000 100000000 и так далее

как только шаг всеё этой батвы приближается к 1 герцу то надо задуматься в выбросе не каждого второго отсчёта а каждого 3-го

потом 4-го и так далее.

Выброс отсчётов надо распределить но периоду равномерно.

затем по нескольким ближайшим периодам равномерно

Вот примерно и фсё)))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...