![]() |
RTXI 1.3
|
00001 // 00002 // File = con_hamm.cpp 00003 // 00004 00005 #include <math.h> 00006 #include <iostream> 00007 #include "misdefs.h" 00008 #include "typedefs.h" 00009 #include "con_hamm.h" 00010 #include "sinc.h" 00011 00012 00013 ContHammingMagResp::ContHammingMagResp( istream& uin, 00014 ostream& uout ) 00015 : ContinWindowResponse( uin, uout ) 00016 { 00017 double x, amp0, tau, freq, freq_exp, freq_cyc; 00018 00019 tau = 1.0; 00020 freq_cyc = 2.0; 00021 amp0 = 0.54; 00022 00023 for(int n=0; n<Num_Resp_Pts; n++) 00024 { 00025 freq_exp = 1.0 + freq_cyc*(n-Num_Resp_Pts)/((double)Num_Resp_Pts); 00026 freq = pow( (double)10.0, freq_exp); 00027 x = 0.54 * tau * sinc(PI * tau * freq); 00028 x += (0.23 * tau * sinc(PI * tau * (freq-tau))); 00029 x += (0.23 * tau * sinc(PI * tau * (freq+tau))); 00030 if(Db_Scale_Enab) x = 20.0*log10(fabs(x/amp0)); 00031 (*Response_File) << freq << ", " << x << std::endl; 00032 } 00033 }