【文件属性】:
文件名称:C语言写的fir滤波器
文件大小:46KB
文件格式:DOC
更新时间:2018-06-30 04:14:27
FIR
C语言写的fir滤#include
#include
#include
#include
#define pi ((double)3.1415926)
struct DESIGN_SPECIFICATION
{
double Cotoff;
double Stopband;
double Stopband_attenuation;
};
typedef struct
{
double Real_part;
double Imag_Part;
} COMPLEX;
int Ceil(double input)
{
if(input != (int)input) return ((int)input) +1;
else return ((int)input);
}
int Complex_Multiple(COMPLEX a,COMPLEX b
,double *Res_Real,double *Res_Imag)
{
*(Res_Real) = (a.Real_part)*(b.Real_part) - (a.Imag_Part)*(b.Imag_Part);
*(Res_Imag)= (a.Imag_Part)*(b.Real_part) + (a.Real_part)*(b.Imag_Part);
return (int)1;
}
int Buttord(double Cotoff,
double Stopband,
double Stopband_attenuation)
{
int N;
printf("Wc = %lf [rad/sec] \n" ,Cotoff);
printf("Ws = %lf [rad/sec] \n" ,Stopband);
printf("As = %lf [dB] \n" ,Stopband_attenuation);
printf("--------------------------------------------------------\n" );
N = Ceil(0.5*( log10 ( pow (10, Stopband_attenuation/10) - 1) /
log10 (Stopband/Cotoff) ));
return (int)N;
} 波器 可以通过编译