[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено alostap 15 мая 2006 г. 13:45
В ответ на: Спасибо за совет, но возник новый вопрос -> отправлено Sfr 14 мая 2006 г. 19:08

Берется таблица синуса sin_tab[] фиксированнного размера, скажем 128. Самое простое один период синуса хранить в таблице. Алгоритм генерации синуса получается такой (24000 = частота дискретизации).
short GenSin(float Fsin)
{
static unsigned short phase_acc = 0;
unsigned short dphase = (unsigned short)(Fsin/24000 * 0x10000L);
phase_acc+=dphase;
returt sin_tab[phase_acc(right_shift)9];
}
Как справедливо отметил КАА все DDSы так работают. Понятно что синус будет не идеальным, когда точное значение dphase окажется не целым числом, те будут тн фазовые шумы. Чем больше размер таблицы тем меньше шумы.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru