44 #include "EST_cmd_line.h" 45 #include "EST_cmd_line_options.h" 46 #include "sigpr/EST_filter_design.h" 81 int main (
int argc,
char *argv[])
84 EST_String in_file(
"-"), out_file(
"-"), op_file(
""), test;
91 EST_String(
"[input file0] -o [output file]\n") +
92 "Summary: filter waveform files\n" 93 "use \"-\" to make input and output files stdin/out\n" 95 "-forder <int> Order of FIR filter. This must be ODD.\n" 96 " Sensible values range \n" 97 " from 19 (quick but with a shallow rolloff) to 199 \n" 98 " (slow but with a steep rolloff). The default is 199.\n\n" 99 "-double Design a filter suitable for double (zero-phase)\n" 101 "-o <ofile> output filter file\n",
106 if (fresponse.
load(files.
first()) != format_ok)
109 forder = al.
present(
"-forder") ? al.
ival(
"-forder") : 199;
112 for (
int i = 0; i < fresponse.
length(); i++)
113 fresponse[i] = sqrt(fresponse[i]);
118 int l = fresponse.
length() * 2;
121 for(
int i = 0;i<fresponse.
length();i++)
123 full_fresponse[i] = fresponse(i);
124 full_fresponse[l-1-i] = fresponse(i);
127 filter = design_FIR_filter(full_fresponse, forder);
128 filter.
save(out_file,
"est_ascii");
EST_read_status load(const EST_String &filename)
load vector from file filename.
int ival(const EST_String &rkey, int m=1) const
EST_write_status save(const EST_String &filename, const EST_String &type)
save vector to file filename.
INLINE int length() const
number of items in vector.
const T & first() const
return const reference to first item in list
const int present(const K &rkey) const
Returns true if key is present.
const V & val(const K &rkey, bool m=0) const
return value according to key (const)