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

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

Отправлено ВН 02 октября 2003 г. 21:27
В ответ на: Широкополосная фильтрация... отправлено Dark_Ghost 01 октября 2003 г. 14:46

Не понял, что под линейностью имеется ввиду. Или что-то не так делаете или интерпретация результата не та. А линейность, как соблюдение принципа суперпозиции, полностью вряд ли когда выполняется в ЦФ. С точностью до шумов квантования, точнее переквантования.
А с битностью - если и на входе и на выходе по 16 должно быть, так промежуточные лучше 32 разрядными делать. И еще по битности -если на выходе нужно 16 и недопустима операция насыщения, а это нелинейность в чистом виде, то модуль к-та передачи фильтра на верхних частотах должен быть не 1, а ниже, скорее всего 0.5 или около того, если первого порядка. Т .е. от 16-ти разрядного входного синуса на выходе останется 15. Иначе, если к-т передачи =1, на других сигналах может переполнение случиться.
А реализация ниже. Для фильтра:
y[n]=g*(x[n]-x[n-1])+p*y[n-1]. Промежуток -32 разряда.
g и p - для Ваших 30 Гц и 48 КГц.
C. По шагам расписано.
long p=32640L;
long g=32704L;
long y1=0;
int x1=0;
int filter(int x)
{
long y,tmp;
int out;
tmp=y1&0xffffL;
y=tmp*p+0x4000L;
y>>=15;
tmp=y1&0xffff0000L;
tmp>>=16;
y+=tmp*p*2L;
y+=(long)x*g*2L;
y-=(long)x1*g*2L;
x1=x;
y1=y;
y+=0x8000L;
out=(int)(y>>16);
return out;
}

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru