Перейти к содержанию
    

Помогите разобраться с цифровыми фильтрами

Нужно разобраться с FIR IIR фильтрами. Помогите литературой/советами.

Задача сейчас: переписать функцию, реализующую direct form 2 transposed в direct form I с максимальной оптимизацией.

Слышал, что в direct form I можно больше использовать MAC и выиграть в производительности.

 

На данный момент iir функция выглядит так:

#define MAC16_16(c,a,b)     ((c)+(a)*(b))
void iir_mem16(const spx_word16_t *x, const spx_coef_t *den, spx_word16_t *y, int N, int ord, spx_mem_t *mem, char *stack)
{
  int i,j;
   spx_word16_t yi,nyi;

   for (i=0;i<N;i++)
   {
      yi = x[i]+mem[0];
      nyi = -yi;
      for (j=0;j<ord-1;j++)
      {
         mem[j] = MAC16_16(mem[j+1],den[j],nyi);
      }
      mem[ord-1] = den[ord-1]*nyi;
      y[i] = yi;
   }
}

 

Нужна любая информация. Как теория, так и практические советы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С теорией разобрался.

Начал с переписывания FIR фильтра

for (i=0;i<N;i++)
   {
      xi=x[i];
      y[i] = x[i]+mem[0];
      for (j=0;j<ord-1;j++)
      {
         mem[j] = mem[j+1]+num[j]*xi;
      }
      mem[ord-1] = num[ord-1]*xi;
   }

Видимо это какой-то мудрёный FIR, потому что

for (i=1;i<N;i++)
   {
      y[i]=0;
      for (j=0;j<ord;j++)
      { 
          if(i-j>=0)
            y[i]+=num[j]*x[i-j];
      }     
   }

не работает. Может быть я чего-то не понял. Но вроди как это и есть FIR. Т.е. я смотрел на формулу и писал...

Может быть кто-то подскажет в чём дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каким компилятором вы пользуетесь? Если например VDSP или CCS то ведь там уже есть реализация фильтров. Не надо ничего самому придумывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...