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

📄 bp45eric.c

📁 "DIGITAL SIGNAL PROCESSING WITH C AND THE TMS32 0C30"一书的附带程序
💻 C
字号:
/*BP45ERIC.C-FIR BANDPASS WITH 45 COEFFICIENTS. SAMPLES SHIFTED*/
#include "bp45coef.h"           /*include coefficient file     */
#define N 45                    /*length of impulse response   */
float DLY[N*2-1];               /*init for 2*N-1 samples       */
void filt(float *,float *,int *,int *,int); /*filter routine   */ 

main()
{
  volatile int *in_addr =(volatile int *)0x804000; /*input addr */
  volatile int *out_addr=(volatile int *)0x804001; /*output addr*/       
  filt((float *)H,(float *)DLY,(int *)in_addr,(int *)out_addr,N);
}                                                               

void filt(float *h,float *dly,int *in_port,int *out_port,int NS)       
{
  float acc=0.0;             /*init accumulator         */
  int   i,j,k=NS-1;          /*index variables          */ 
  for (i = 0; i<N*2-1; i++) DLY[i] = 0.0; /*init samples*/
  for (i=0;i<NS;i++)
  {
     dly[i+k] =*in_port;     /*get new sample           */
     for (j=0;j<NS;j++)                        
       acc += h[j]*dly[i+j]; /*perform convolution      */       
     *out_port=acc;          /*output new value         */
     acc=0.0;                /*reset accumulator        */
  }                      
  for (i=0;i<k;i++)          /*shift values from        */
    dly[i]=dly[i+NS];        /*lower half to upper half */
}






























⌨️ 快捷键说明

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