📄 mkgwn.c
字号:
#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 = 0.2;
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]=200.0*sin(0.0625*PI*(float)(i)) + sigma*gaussian();
for(i = 0 ; ; i++) {
x = sinvals[i&(SIZE-1)];
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -