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

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

Отправлено VVT 30 сентября 2002 г. 11:15


Был БИХ фильтр сигнала, уложенного в массив:
int i,k;
float s1,s2;
for (i=0; i< Length; i++)
{
s1=0;
s2=0;
for (k=0; k<=4; k++)
{
if((i-k)<0) continue;
s1=s1+a[k]*(InputData[i-k]);
s2=s2+b[k]*(OutputData[i-k]);
}
OutputData[i]=s1-s2;
};
a[], b[] - естественно, коэффициенты.
Все замечательно.
Теперь его же пытаюсь использовать для последовательности входных сигналов, используя парочку массивов для хранении входной и выходной истории:
int i;
float s1=0,s2=0;
float OutputData;

for(i=1; i<=4; i++) INARRAY[i-1]=INARRAY[i];
INARRAY[4]=InputData;

for (i=0; i<=4; i++)
{
s1=s1+a[i]*(INARRAY[4-i]);
s2=s2+b[i]*(OUTARRAY[4-i]);
}
OutputData=s1-s2;

for(i=1; i<=4; i++) OUTARRAY[i-1]=OUTARRAY[i];
OUTARRAY[4]=OutputData;

Не работает. Где-то устроил себе грабли и целый день по ним топчусь.
Может, кто свежим взглядом их увидит?


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru