1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
void main()
{
Donneewav *D=(Donneewav*)malloc(sizeof(Donneewav));
char* name=(char*)malloc(7*sizeof(char));
double** tri,*y,** data_trame,*E;
int i,j,TRAME,DEC,NB_TR,tempo,tempo2,SCAL_DELTA,SCAL_ACC;
D->file_type=(char*) malloc(4*sizeof(char));
D->file_id=(char*) malloc(4*sizeof(char));
D->chunk_id=(char*) malloc(4*sizeof(char));
D->chunk2_id=(char*) malloc(4*sizeof(char));
D->data=(double*)malloc(25000*sizeof(double));
tri = (double**)malloc(NUMCHANS* sizeof(double*));
for(i=0;i<NUMCHANS;i++)
tri[i] =(double*) calloc (Lfft/2, sizeof(double));
y =(double*)malloc (Lfft* sizeof(double));
sprintf(name,"busarri");
wavread(name,D);
TRAME=D->sampling_freq*25/1000;
DEC=D->sampling_freq*10/1000;
NB_TR=(int)(((D->chunk3_size)-(TRAME-DEC))/DEC);
SCAL_DELTA=0;
for (i=1;i<DELTA+1;i++)
SCAL_DELTA=i^2+SCAL_DELTA;
SCAL_ACC=0;
for (i=1;i<ACC+1;i++)
SCAL_ACC=i^2+SCAL_ACC; /
filt_mel(tri,D);
data_trame = (double**)malloc(NB_TR* sizeof(double*));
for(i=0;i<NB_TR;i++)
data_trame[i] =(double*) calloc (Lfft, sizeof(double));
trame(D,data_trame,TRAME,DEC,NB_TR);
E=(double*)malloc(NB_TR*sizeof(double));
tempo2=0;
for(i=0;i<NB_TR;i++)
{
E[i]=0;
for(j=0;j<TRAME;j++)
{
E[i]=E[i]+pow(data_trame[i][j],2);
tempo=data_trame[i][j];
data_trame[i][j]=data_trame[i][j]-0.97*tempo2;
tempo2=tempo;
data_trame[i][j]=data_trame[i][j]*(0.54-0.46*cos(2*Pi*j/(TRAME-1)));
}
E[i]=log(E[i]);
fft(data_trame[i],y);
}
free(E);
E=NULL;
for(i=0;i<NB_TR;i++)
{
free(data_trame[i]);
data_trame[i]=NULL;
}
free(data_trame);
data_trame=NULL;
free(y);
for(i=0;i<NUMCHANS;i++)
{
free(tri[i]);
tri[i]=NULL;
}
free(tri);
tri=NULL;
free(D->data);
D->data=NULL;
free(name);
name=NULL;
free(D->file_type);
D->file_type=NULL;
free(D->file_id);
D->file_id=NULL;
free(D->chunk_id);
D->chunk_id=NULL;
free(D->chunk2_id);
D->chunk2_id=NULL;
free(D);
D=NULL;
} |
Partager