Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генератор синуса на virtex-4
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
pulsar-17
Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.
Подскажите как можно подобное сделать?
Dj_Atmex
Что значит табличные методы не проходят по точности? Объясните.

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

Может я и не прав но по мому табличные методы будут поточнее апроксимаций. Кроме того вы не указали частоту дискретизации.
Vitёk
Использование табличного метода + линейная или квадратичная интерполяция способны дать точность синуса до 32 бит при вполне приемлемых размерах таблиц. Здесь в т.ч. обсуждалась проблема формирования синуса.
Asb
Еще можно посмотреть статью "Аппаратная генерация кодов синуса и косинуса" (Схемотехника №4 за 2006 г.).
Впрочем основная идея достаточно тривиальна : sin(x+d) = cos(d)*sin(x) + sin(d)*cos(x).
Метод является фактически вариацией табличного. Точность устройства приведенного в статье довольно средняя. Однако сама идея позволяет реализовать, при некоторых ухищрениях практически любую разумную точность .
pulsar-17
Всем большое спасибо за помощь!!! Вопрос решился.
rv3dll(lex)
Генератор делается таблично методо прямого синтеза
Принципы посмотрите в инете

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

Есть некая таблица -чем больше - тем лучше
ограничение - максимальная частота Pll
дальше из этой таблицы выбираются отсчётв через 1 , 2, 3 10000 100000000 и так далее
как только шаг всеё этой батвы приближается к 1 герцу то надо задуматься в выбросе не каждого второго отсчёта а каждого 3-го
потом 4-го и так далее.
Выброс отсчётов надо распределить но периоду равномерно.
затем по нескольким ближайшим периодам равномерно
Вот примерно и фсё)))))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.