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

📄 adaptc.c

📁 "DIGITAL SIGNAL PROCESSING WITH C AND THE TMS32 0C30"一书的附带程序
💻 C
字号:
/*ADAPTC.C-ADAPTATION USING LMS IN C WITHOUT THE TI SIMULATOR*/
#include <stdio.h>
#include <math.h>
#define beta 0.05                      //step factor for coeff update
#define N  20                          //order of filter (N+1)
#define NS  40                         //number of samples
#define FS  8000                       //sampling frequency
#define Pi  3.1415926                     
#define DESIRED 2*cos(2*Pi*T*1000/FS)  //desired signal
#define NOISE sin(2*Pi*T*1000/FS)      //noise signal

main()
{
  long I, T;
  double D, Y, E; 
  double W[N+1] = {0.0};
  double X[N+1] = {0.0};
  FILE *desired, *Y_out, *error, *noise; 
  desired = fopen ("DESIRED", "w++"); //open file for desired samples
  Y_out = fopen ("Y_OUT", "w++");     //open file for Y output samples
  error = fopen ("ERROR", "w++");     //open file for error samples
  noise = fopen ("NOISE", "w++");     //open file for noise samples
  for (T = 0; T < NS; T++)           //start adaptive alogrithm
  {    
    X[0] = NOISE;                     //new noise sample
    D = DESIRED;                      //desired signal
    Y = 0;                            //set output of filter to zero
    for (I = 0; I <= N; I++)
      Y += (W[I] * X[I]);             //calculate filter output
    E = D - Y;                        //calculate error signal
    for (I = N; I >= 0; I--)          //convolve the coeff with noise samples
    {
      W[I] = W[I] + (2*beta*E*X[I]);  //update filter coefficients
      if (I != 0)                     
        X[I] = X[I-1];                //move data sample 
    }   
    fprintf (desired, "\n%10g    %10f", (float) T/FS, D); 
    fprintf (Y_out, "\n%10g    %10f", (float) T/FS, Y);
    fprintf (error, "\n%10g    %10f", (float) T/FS, E);
    fprintf (noise, "\n%10g    %10f", (float) T/FS, X[0]);
  }   
  fclose (desired);
  fclose (Y_out);
  fclose (error);
  fclose (noise);
}


⌨️ 快捷键说明

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