|
Цифровой генератор синусоиды, Нужен алгоритм |
|
|
|
Jan 24 2006, 07:29
|

Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916

|
Требуется сформировать 2 синуса (естественно в цифре). Можно пойти табличным методом - но для 8 бит и 1к хватит, а для 18 бит и метра может мало оказатся. Есть другой метод http://www.gaw.ru/html.cgi/txt/doc/...v/max2000_5.htm . Но интересные эфекты: даже при инт64 вылазеют гармоники на уровне -70 дб + к этому и частота не точно заданная. Попробывал так: X(n)=k*X(n-1)-X(n-2), где k=2*cos(2*Pi*F/Fd); для 0 градусов X(-1)=0, X(-2)=-A*sin(2*Pi*F/Fd); для 90 градусов X(-1)=A, X(-2)=A*sin(pi/2+2*Pi*F/Fd) 90 гр. частота на сотые доли процентов выше и уползает вперёд по отношению к 0 гр. Сейчас хочу через приблежённое вычеслени по Тейлору попробывать. Но явно по вычислениям более накладно будет. Может ещё есть способ с минимум вычислений сгенерить синус? (Всё должно в итоге оказатся в FPGA Спартан3).
--------------------
_____________________________________ Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
|
|
|
|
|
 |
Ответов
|
Jan 24 2006, 09:18
|

Местный
  
Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916

|
http://www.gaw.ru/html.cgi/txt/doc/micros/...v/max2000_5.htmТребуется генерить синусоиды с частотами от 300 Гц до 2,5 МГц с шагом 1 Гц. Желательно с нелиненостями -90 дБ. Проект - селективный вольтметр, с полосами 30 и 100 Гц, желательно и со спектроанализатором. Основная идея - сигнал с ацп перемножаем с синусом и косинусом по отдельности, фильтруем и децимируем. перемножаем каждый из них на самого себя, складываем и из постоянной состовляющей извлекаем корень квадратный - значение уровня сигнала в выбранной полосе на выбранной частоте. Т.к. в спартане умножители 18 битные, то и синус желательно сформировать 18 битный. Частота опорного генератора 10 МГц.
--------------------
_____________________________________ Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
|
|
|
|
|
Jan 24 2006, 09:55
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(aal @ Jan 24 2006, 14:18)  http://www.gaw.ru/html.cgi/txt/doc/micros/...v/max2000_5.htmТребуется генерить синусоиды с частотами от 300 Гц до 2,5 МГц с шагом 1 Гц. Желательно с нелиненостями -90 дБ. Проект - селективный вольтметр, с полосами 30 и 100 Гц, желательно и со спектроанализатором. Основная идея - сигнал с ацп перемножаем с синусом и косинусом по отдельности, фильтруем и децимируем. перемножаем каждый из них на самого себя, складываем и из постоянной состовляющей извлекаем корень квадратный - значение уровня сигнала в выбранной полосе на выбранной частоте. Т.к. в спартане умножители 18 битные, то и синус желательно сформировать 18 битный. Частота опорного генератора 10 МГц. Что-то в постановке не то: -90дБ до 2.5МГц с шагом 1 Гц с тактовой 10МГц, это не описка? Попробуйте посмотреть такой метод: http://archive.chipcenter.com/dsp/DSP080201F1.htmlи смежные статьи на том же сервере.
--------------------
Пасу котов...
|
|
|
|
Сообщений в этой теме
aal Цифровой генератор синусоиды Jan 24 2006, 07:29 Andy Mozzhevilov [quote name='aal' date='Jan 24 2006, 1... Jan 24 2006, 07:42 Shamil_Yusupov Цитата(aal @ Jan 24 2006, 12:29) Можно по... Jan 24 2006, 08:48 vladv Цитата(aal @ Jan 24 2006, 13:18) http://w... Jun 22 2006, 19:08 iosifk Цитата(aal @ Jan 24 2006, 10:29) Требуетс... Jan 24 2006, 10:07 KPAH Есть такая штука как резонантный фильтр, подробнос... Jan 24 2006, 18:06 alexdsp Цитата(KPAH @ Jan 24 2006, 22:06) Есть та... Sep 6 2006, 14:07 Stanislav Цитата(aal @ Jan 24 2006, 10:29) Требуетс... Jan 24 2006, 20:34 SSerge Цитата(Stanislav @ Jan 25 2006, 02:34) Мо... Jan 24 2006, 22:49  Stanislav Цитата(SSerge @ Jan 25 2006, 01:49) Я в с... Jan 25 2006, 17:33   SSerge Цитата(Stanislav @ Jan 25 2006, 23:33) Вс... Jan 25 2006, 19:24    Stanislav Цитата(SSerge @ Jan 25 2006, 22:24) Даже ... Jan 25 2006, 21:09     SSerge ЦитатаНет-нет, табличным способом задаются только ... Jan 26 2006, 07:17 KPAH Чем ряды считать, лучше уж по фомуле sin(a+b) - бы... Jan 24 2006, 23:52 aal Спасибо Всем откликнувшимся!
Изучаю Вашу инфу... Jan 25 2006, 04:11 KPAH SSerge, так вам надо постоянно генерировать синусо... Jan 26 2006, 19:04 eteP Посмотрите эту статью.
Можно зайти на сайт GlobalD... Feb 7 2006, 10:06 Adlex Попробуйте применить DDS (прямой цифровой синтез) ... Feb 7 2006, 14:01 sansh Цитата(Adlex @ Feb 7 2006, 16:01) Попробу... Mar 3 2006, 18:18  K A A Цитата(sansh @ Mar 3 2006, 22:18) Цитата(... Jun 15 2006, 07:02   sansh А что, линейная интерполяция... не так уж и плохо.... Jun 15 2006, 08:16 _Bill Цитата(aal @ Jan 24 2006, 10:29) Требуетс... Apr 26 2006, 11:18 GetSmart Думаю, что ещё раз в 10 улучшить интерполяцию сину... Jun 15 2006, 09:06 sansh Дык производная ж - тот самый синус: sin'(x) =... Jun 15 2006, 10:35 GetSmart Есть две табличные точки А и Б. Б-А = интеграл от ... Jun 15 2006, 11:46 GetSmart Подскажите кто-нибудь сколько я насчитал децибелл.... Jun 22 2006, 20:01 vladv Цитата(GetSmart @ Jun 23 2006, 00:01) Под... Jun 22 2006, 20:36 GetSmart Аномалия какая-то!!!
Таблица 128*13 би... Jun 22 2006, 20:33 GetSmart Вот прога на паскале. Если кто хочет меня проверит... Jun 22 2006, 20:45 vladv Цитата(GetSmart @ Jun 23 2006, 00:45) Вот... Jun 22 2006, 21:27 GetSmart Я вообще не врубаюсь. Кто-нибудь, ткните меня носо... Jun 22 2006, 21:08 petrov Еще можно sin cos от фазового аккумулятора CORDICо... Aug 24 2006, 18:29 UMP Уважаемые коллеги! Для сведения. В статье Ник... Sep 2 2006, 14:14 sansh Цитата(UMP @ Sep 2 2006, 16:14) dx/dt=w [... Sep 4 2006, 06:30  UMP Пояснение
В автономном уравнении dx/dt=w [A·(1-x^... Sep 8 2006, 18:28
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|