dos.cpp

来自「数字带通滤波器的设计过程。共3个源程序。其中」· C++ 代码 · 共 42 行

CPP
42
字号
/*以下程序是数字带通滤波器的设计过程。
其中,n是滤波器的阶数,fln是滤波器的低频,fhn是滤波器的高频,
w是窗函数,这里采用的是汉宁窗。*/
#include "math.h"
void firwin(n,fln,fhn,h)
 int n;
 double fln,fhn,h[];
 {int i,n2,mid;
  double s,pi,wc1,wc2,delay;
  double win();
  pi=4.0*atan(1.0);
  if((n%2)==0)
   {
    n2=n/2-1;
    mid=1;
   }
  else
   {
    n2=n/2;
    mid=0;
   }
  delay=n/2.0;
  wc1=2.0*pi*fln;
  wc2=2.0*pi*fhn;
  for(i=0;i<=n2;i++)
   {s=i-delay;
    h[i]=(sin(wc2*s)-sin(wc1*s))/(pi*s);
    h[i]=h[i]*win(n+1,i);
    h[n-i]=h[i];
   }
  if(mid==1)
  h[n/2]=(wc2-wc1)/pi;
 }
 double win(int n,int i)
 {
  double w,pi;
  pi=4.0*atan(1.0);
  w=0.5*(1.0-cos(2*i*pi/(n-1)));
  return(w);
 }
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?