⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adaptdnc.c

📁 "DIGITAL SIGNAL PROCESSING WITH C AND THE TMS32 0C30"一书的附带程序
💻 C
字号:
/*ADAPTDNC.C-50-COEFFICIENT ADAPTIVE FILTER IN C       */
#define beta 2.5E-10       /*rate of convergence       */   
#define N 50               /*# of coefficients         */
#define NS 128             /*# of output sample points */

main()
{
  int I,T;
  float Y, E, D;
  float W[N+1];
  float Delay[N+1];
  volatile int *IO_INPUT = (volatile int*) 0x804000;
  volatile int *IO_INPUT1= (volatile int*) 0x804001;
  volatile int *IO_OUTPUT= (volatile int*) 0x804002; 
  for (T=0; T < N; T++)
  {
    W[T] = 0.0;
    Delay[T] = 0.0;
  } 
  for (T=0; T < NS; T++)   /*NS is # of output samples */
  {  
    Delay[0] = *IO_INPUT1; /*noise signal n            */
    D = *IO_INPUT;         /*desired signal+noise d+n  */
    Y = 0;                           
    for (I = 0; I < N; I++)
      Y += (W[I] * Delay[I]);          /*filter output */             
    E = D - Y;                         /*error signal  */               
    for (I = N; I > 0; I--)         
    {
      W[I] = W[I] + (beta*E*Delay[I]); /*update coeffs */ 
      if (I != 0)                     
      Delay[I] = Delay[I-1];           /*update samples*/   
    } 
    *IO_OUTPUT = E;
  }   
}









⌨️ 快捷键说明

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