mkgwn.c

来自「dsp AD公司ADSP21的代码,里面有FFT FIR IIR EQULIZE」· C语言 代码 · 共 48 行

C
48
字号
#include <stdlib.h>
#include <math.h>
#include "rtdspc.h"
#include "filter.h"

/***********************************************************************

MKGWN.C - Gaussian Noise Filter Example for C30

This program filters a sine wave with added Gaussian noise.  It
implements a 35 point FIR filter (stored in variable fir_lpf35)
on an generated signal.  The filter is a LPF with 40 dB out of
band rejection.  The 3 dB point is at a relative frequency of
approximately .25*fs.

************************************************************************/

#define SIZE 4096

float sigma = 1000.0;
int bypass = 0;
float hist[34];
float sinvals[SIZE];

void main()
{
  register int          i;
  register float x,y;

/* generate data to filter and scale for D/A converter */
  for(i = 0 ; i < SIZE ; i++)
      sinvals[i]=10000.0*sin(0.0625*PI*(float)(i));

  for(i = 0 ; ; i++) {
      x = sinvals[i&(SIZE-1)]+ sigma*gaussian();
      y = fir_filter(x,fir_lpf35,35,hist);
      if(!bypass)
        sendout(y);
      else
        sendout(hist[16]);  /* compensate for delay of filter */
/* change bypass every 32K samples */
      if(i == 0x8000) {
        bypass ^= 1;
        i = 0;
      }
  }
}

⌨️ 快捷键说明

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