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

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

Отправлено Отделение 13 31 июля 2003 г. 10:57
В ответ на: Ответ: Объясните чайнику, как проводить эту интерполяцию. отправлено Exp 31 июля 2003 г. 09:35

Интерполяция:
http://www.telesys.ru/wwwboards/dsp/49/messages/18192.shtml
Объяснение:
http://www.telesys.ru/wwwboards/dsp/49/messages/18196.shtml
Например: тактовая частота 8192Гц. Таблица 256 отсчетов. Для phase хватит 16 бит, шаг получится 8192 / 2^16 = 0,125 Гц.
Немного изменив программу SM, получим:

phase += freq * 8;

int s1 = sin_table((phase>>8) & 0xFF);
int s2 = sin_table(((phase>>8)+1)&0xFF);
unsigned int coeff = phase & 0xFF;
int sample = s1 + (((s2-s1)*coeff) >> 8);

где freq - частота в Гц.
В результате получим на верхней частоте 3400Гц 8192/3400=2.4 отсчета синуса на период. Если возможно увеличить тактовую частоту до 65536Гц, то первая строка будет phase += freq; Тогда на верхней частоте имеем 19.3 отсчета, что гораздо лучше.

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru