[an error occurred while processing this directive]
|
Код следующий:
#include main()
E-mail:
info@telesys.ru
#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;
{
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]. Знающие люди, научите пожалуйста, а то в хелпе ничего не нашел.
Ответы