• 大小: 1.25MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-16
  • 语言: C/C++
  • 标签: FFTFIR  IIR  DSP  

资源简介

DSP 77个C语言例子程序 包括FFT,FIR IIR等的DSP实现

资源截图

代码片段和文件信息

//AdaptIDFIR.c Adaptive FIR for system ID of an FIR (uses C67 tools)

#include “bp55.cof“            //fixed FIR filter coefficients 
#include “noise_gen.h“          //support  noise generation file
#define beta 1E-13                    //rate of convergence 
#define WLENGTH 60                     //# of coefffor adaptive FIR
float w[WLENGTH+1];          //buffer coeff for adaptive FIR
int dly_adapt[WLENGTH+1];          //buffer samples of adaptive FIR
int dly_fix[N+1];                  //buffer samples of fixed FIR                      
short out_type = 1;           //output for adaptive/fixed FIR
int fb;                                //feedback variable
shift_reg sreg;                        //shift register

int prand(void)           //pseudo-random sequence {-11}
{
  int prnseq;  
  if(sreg.bt.b0)
prnseq = -8000;          //scaled negative noise level
  else
prnseq = 8000;          //scaled positive noise level
  fb =(sreg.bt.b0)^(sreg.bt.b1);       //XOR bits 01
  fb^=(sreg.bt.b11)^(sreg.bt.b13);     //with bits 1113 -> fb
  sreg.regval<<=1;
  sreg.bt.b0=fb;          //close feedback path
  return prnseq;          //return noise sequence 
}
 
interrupt void c_int11()               //ISR
{                         
 int i;
 int fir_out = 0;                      //init output of fixed FIR
 int adaptfir_out = 0;                 //init output of adapt FIR
 float E;                              //error=diff of fixed/adapt out
 
 dly_fix[0] = prand();            //input noise to fixed FIR
 dly_adapt[0]=dly_fix[0];              //as well as to adaptive FIR 
    
 for (i = N-1; i>= 0; i--)
  {
   fir_out +=(h[i]*dly_fix[i]);        //fixed FIR filter output 
   dly_fix[i+1] = dly_fix[i];          //update samples of fixed FIR   
  }
 for (i = 0; i < WLENGTH; i++)
   adaptfir_out +=(w[i]*dly_adapt[i]); //adaptive FIR filter output 
 
 E = fir_out - adaptfir_out;           //error signal           
 
 for (i = WLENGTH-1; i >= 0; i--)         
  {
   w[i] = w[i]+(beta*E*dly_adapt[i]);  //update weights of adaptive FIR  
   dly_adapt[i+1] = dly_adapt[i];      //update samples of adaptive FIR   
  } 
 
 if (out_type == 1)          //slider position for adapt FIR
   output_sample(adaptfir_out);      //output of adaptive FIR filter
 else if (out_type == 2)    //slider position for fixed FIR
   output_sample(fir_out);             //output of fixed FIR filter
 return;
}

void main()
{
 int T=0 i=0;
 for (i = 0; i < WLENGTH; i++)
  {
   w[i] = 0.0;           //init coeff for adaptive FIR
   dly_adapt[i] = 0;    //init buffer for adaptive FIR
  }  
 for (T = 0; T < N; T++)     
   dly_fix[T] = 0;    //init buffer for fixed FIR 
 
 sreg.regval=0xFFFF;                //initial seed value
 fb = 1;                //initial feevack value
 comm_intr();           //init DSK codec McBSP
 while (1);             //infinite loop
}



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        924  2001-10-29 19:40  DSP原理及其C编程开发技术\readme.txt

     文件       3396  2001-08-17 15:30  DSP原理及其C编程开发技术\two_tones\cc_build_Debug.log

     文件       1614  2001-07-21 04:34  DSP原理及其C编程开发技术\two_tones\two_tones.c

     文件      15614  2001-05-06 18:56  DSP原理及其C编程开发技术\two_tones\two_tones.out

     文件        892  2001-08-17 15:36  DSP原理及其C编程开发技术\two_tones\two_tones.pjt

     文件      19456  2001-08-27 06:31  DSP原理及其C编程开发技术\Twosumlasmfloat\twosumlasmfloat.doc

     文件      19456  2001-08-27 06:30  DSP原理及其C编程开发技术\Twosumlasmfix\twosumlasmfix.doc

     文件      19456  2001-08-27 06:35  DSP原理及其C编程开发技术\Twosumfloat\twosumfloat.doc

     文件      19456  2001-08-27 06:33  DSP原理及其C编程开发技术\Twosumfix\twosumfix.doc

     文件      19456  2001-08-27 06:28  DSP原理及其C编程开发技术\Twosum\twosum.doc

     文件       2531  2001-08-22 03:38  DSP原理及其C编程开发技术\SweepDE\cc_build_Debug.log

     文件       2015  2001-07-21 05:06  DSP原理及其C编程开发技术\SweepDE\sweepDE.c

     文件      22799  2001-08-22 03:38  DSP原理及其C编程开发技术\SweepDE\SweepDE.out

     文件        863  2001-08-22 03:41  DSP原理及其C编程开发技术\SweepDE\SweepDE.pjt

     文件       2415  2001-08-22 03:34  DSP原理及其C编程开发技术\sweep8000\cc_build_Debug.log

     文件      45702  2001-07-09 08:11  DSP原理及其C编程开发技术\sweep8000\sine8000_table.h

     文件        969  2001-07-09 06:00  DSP原理及其C编程开发技术\sweep8000\Sweep8000.c

     文件      30427  2001-08-22 03:35  DSP原理及其C编程开发技术\sweep8000\Sweep8000.out

     文件        872  2001-08-22 03:35  DSP原理及其C编程开发技术\sweep8000\Sweep8000.pjt

     文件        559  2001-08-15 05:18  DSP原理及其C编程开发技术\Support\C6xdsk.cmd

     文件       8050  2001-10-23 18:50  DSP原理及其C编程开发技术\Support\C6xdsk.h

     文件       4312  2001-08-15 05:23  DSP原理及其C编程开发技术\Support\c6xdskinit.c

     文件        274  2001-08-15 05:24  DSP原理及其C编程开发技术\Support\c6xdskinit.h

     文件       4105  2001-08-15 05:25  DSP原理及其C编程开发技术\Support\c6xinterrupts.h

     文件      15458  2001-10-23 18:52  DSP原理及其C编程开发技术\Support\sine8_intr.out

     文件      93692  1994-03-16 16:05  DSP原理及其C编程开发技术\Support\THEFORCE.WAV

     文件        180  2001-08-20 06:35  DSP原理及其C编程开发技术\Support\vectors.asm

     文件       1048  2001-08-15 05:27  DSP原理及其C编程开发技术\Support\vectors_11.asm

     文件        134  2001-08-23 06:08  DSP原理及其C编程开发技术\Sum\cc_build_Debug.log

     文件        330  2001-04-26 03:20  DSP原理及其C编程开发技术\Sum\Sum.c

............此处省略511个文件信息

评论

共有 条评论