реклама на сайте
подробности

 
 
> Генератор синуса на virtex-4
pulsar-17
сообщение Mar 4 2007, 11:52
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 32
Регистрация: 7-12-04
Из: Московская область
Пользователь №: 1 376



Необходимо генерировать синус с частотой до 28МГц с шагом 1Гц и возможностью изменения фазы в произвольный момент времени. Табличные методы не подходят по точности.
Подскажите как можно подобное сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Dj_Atmex
сообщение Mar 4 2007, 15:50
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 7-08-05
Пользователь №: 7 421



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

Берем, предвычисляем таблицу синуса заданой частоты (в сети есть исходники как его подсчитывать на HDL) => суем в SRAM и все - оттуда ее крутим.
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 4 2007, 16:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Немного про теорию цифрового синтеза можно почитать в статье DDS: прямой цифровой синтез частоты © Ридико Леонид Иванович.
Go to the top of the page
 
+Quote Post
klop
сообщение Mar 4 2007, 16:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



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

Может я и не прав но по мому табличные методы будут поточнее апроксимаций. Кроме того вы не указали частоту дискретизации.
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Mar 4 2007, 19:02
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018



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


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
Asb
сообщение Mar 5 2007, 14:46
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 294
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 109



Еще можно посмотреть статью "Аппаратная генерация кодов синуса и косинуса" (Схемотехника №4 за 2006 г.).
Впрочем основная идея достаточно тривиальна : sin(x+d) = cos(d)*sin(x) + sin(d)*cos(x).
Метод является фактически вариацией табличного. Точность устройства приведенного в статье довольно средняя. Однако сама идея позволяет реализовать, при некоторых ухищрениях практически любую разумную точность .
Go to the top of the page
 
+Quote Post
pulsar-17
сообщение Mar 9 2007, 20:13
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 32
Регистрация: 7-12-04
Из: Московская область
Пользователь №: 1 376



Всем большое спасибо за помощь!!! Вопрос решился.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Mar 20 2007, 23:29
Сообщение #8


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



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

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

Есть некая таблица -чем больше - тем лучше
ограничение - максимальная частота Pll
дальше из этой таблицы выбираются отсчётв через 1 , 2, 3 10000 100000000 и так далее
как только шаг всеё этой батвы приближается к 1 герцу то надо задуматься в выбросе не каждого второго отсчёта а каждого 3-го
потом 4-го и так далее.
Выброс отсчётов надо распределить но периоду равномерно.
затем по нескольким ближайшим периодам равномерно
Вот примерно и фсё)))))
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016