filter_frequencies.c 2.18 KB
Newer Older
Tilman Steinweg's avatar
Tilman Steinweg committed
1
/*-----------------------------------------------------------------------------------------
2
 * Copyright (C) 2016  For the list of authors, see file AUTHORS.
Tilman Steinweg's avatar
Tilman Steinweg committed
3
 *
Florian Wittkamp's avatar
Florian Wittkamp committed
4
 * This file is part of IFOS.
Tilman Steinweg's avatar
Tilman Steinweg committed
5
 * 
Florian Wittkamp's avatar
Florian Wittkamp committed
6
 * IFOS is free software: you can redistribute it and/or modify
Tilman Steinweg's avatar
Tilman Steinweg committed
7 8 9
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2.0 of the License only.
 * 
Florian Wittkamp's avatar
Florian Wittkamp committed
10
 * IFOS is distributed in the hope that it will be useful,
Tilman Steinweg's avatar
Tilman Steinweg committed
11 12 13 14 15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
Florian Wittkamp's avatar
Florian Wittkamp committed
16
 * along with IFOS. See file COPYING and/or <http://www.gnu.org/licenses/gpl-2.0.html>.
Tilman Steinweg's avatar
Tilman Steinweg committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
-----------------------------------------------------------------------------------------*/

/* 
   Reading filter frequencies for the time domain filter from FREQ_FILE.
   
*/

#include "fd.h"

float *filter_frequencies(int *nfrq){

extern char FREQ_FILE[STRING_SIZE];
extern FILE *FP;

FILE *freqf;
char cline[256];
int IT=1;
34
float *F_LOW_PASS;
Tilman Steinweg's avatar
Tilman Steinweg committed
35 36 37 38 39 40 41


/*----------------------------------- open FREQ_FILE ------------------------------*/
fprintf(FP,"\n\n ------------------- FREQUENCY FILTERING --------------------------\n");

freqf=fopen(FREQ_FILE,"r");

42
if (freqf==NULL) declare_error(" Freqency file could not be opened !");
Tilman Steinweg's avatar
Tilman Steinweg committed
43 44 45 46 47 48 49 50
*nfrq=0;

fprintf(FP,"\n Reading frequencies from %s \n",FREQ_FILE);

/*----------------------Read Number of requencies defined in FREQ_FILE-------------*/
fscanf(freqf,"%i",nfrq);

/*----------------------------alocate frequency array------------------------------*/
51 52
F_LOW_PASS=vector(1,*nfrq);
//F_LOW_PASS = malloc((*nfrq+1) * sizeof(float));
Tilman Steinweg's avatar
Tilman Steinweg committed
53 54 55 56 57 58 59

rewind (freqf);
fprintf(FP," Number of freqencies specified: %d \n",*nfrq);

/*----------------------Read frequencies from FREQ_FILE----------------------------*/
for (IT=1;IT<=(*nfrq);IT++){
      fgets(cline,255,freqf);
60
      fscanf(freqf,"%f",&F_LOW_PASS[IT]);
Tilman Steinweg's avatar
Tilman Steinweg committed
61
      //Read only numbers from FREQ_FILE 
62
      if(F_LOW_PASS[IT]==0){
Tilman Steinweg's avatar
Tilman Steinweg committed
63
      IT=IT-1;}else{
64
      fprintf(FP,"\n %d. %.2f Hz",IT,F_LOW_PASS[IT]);
Tilman Steinweg's avatar
Tilman Steinweg committed
65 66 67 68 69
      }
}

fclose(freqf);

70
return(F_LOW_PASS);
Tilman Steinweg's avatar
Tilman Steinweg committed
71 72
}