Страница 1 из 1

Цифровая обработка сигналов

Добавлено: 19 июл 2016, 23:36
Firelander
Курю я тут потихонечку ЦОС, в частности пытаюсь сделать CIC decimator. В теории я подкован плохо, стараюсь понять на практике. Готового кода на си не нашёл, накидал максимально в лоб со схемы. Но результаты на выходе получаются странные. Обычный двуполярный синус от -1 до 1 почему-то оказывается полностью сдвинут в положительную область, а амплитуда получается точно обратно пропорциональна частоте. Хотя АЧХ на низких частотах должна быть более-менее горизонтальной, а у меня как будто растет в бесконечность. Вот код, может есть какой-то очевидный косяк, который я в упор не замечаю. Или я что-то не понимаю в теории. Z^-1 это же просто предыдущее значение, там же нет никаких делений?

Код: Выделить всё

void cicDecimation(double *in, double *out, int n)
{
   const int R=8;
   const int N=2;
   int i;
   double acc1=0,acc2=0;
   double cc1=0,cc2=0;
   double iz1=0,iz2=0;
   double cz1=0,cz2=0;
   for(i=0;i<n;i++)
   {
      acc1=in[i]+iz1;
      iz1=acc1;
      acc2=acc1+iz2;
      iz2=acc2;


      if(i%R==0)
      {
         cc1=acc2-cz1;
         cz1=acc2;
         cc2=cc1-cz2;
         cz2=cc2;
         out[i/R]=cc2;   
      }

   }

}

Re: Цифровая обработка сигналов

Добавлено: 20 июл 2016, 11:57
Firelander
Утром на свежую голову всё-таки нашёл ошибку в коде. Да, пора бросать засиживаться до глубокого вечера. Ладно, наверное у меня ещё будут возникать вопросы по этой теме

Re: Цифровая обработка сигналов

Добавлено: 19 апр 2025, 04:12
yaachii

Re: Цифровая обработка сигналов

Добавлено: 02 май 2025, 05:37
yaachii
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоtuchkasинфоинфо