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

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

Отправлено DuHast 16 января 2005 г. 16:29

Код следующий:

#include
#include
#define N 128
float Tact1[N],Tact2[N];
float TI_c[]={-0.00313176,0,0.00313176,-0.993736,1.68338};
float TI_d[2];
iir_state TI_state;

main()
{
int i;
FILE *fin,*fout;
fout=fopen("out.pcm","wb");
fin=fopen("in.pcm","rb");
TI_d[0]=0;
TI_d[1]=0;
iir_init(TI_state,TI_c,TI_d,1);
do
{
fread(Tact1,1,N,fin);
iir(Tact1,Tact2,N,&TI_state); //Фильтрация!!!
fwrite(Tact2,1,N,fout);
}while(!feof(fin));
fclose(fin);
fclose(fout);
}
В выходном сигнале Tact2 через каждые N(128) отсчётов рвётся фаза. Проблема явно в линии задержки float TI_d[2]. Знающие люди, научите пожалуйста, а то в хелпе ничего не нашел.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru