📄 signal_gen.c
字号:
/*
signal_gen.c - Generate sine waves as test data in Q15
prototype: void signal_gen(int *, int)
arg0: - data buffer pointer for output
arg1: - number of samples
*/
#include <math.h>
#define T 0.000125 /* 8000 Hz sampling frequency */
#define f1 800 /* 800 Hz frequency */
#define f2 1800 /* 1800 Hz frequency */
#define f3 3300 /* 3300 Hz frequency */
#define PI 3.1415926
#define two_pi_f1_T (2*PI*f1*T) /* 2*pi*f1/Fs */
#define two_pi_f2_T (2*PI*f2*T) /* 2*pi*f2/Fs */
#define two_pi_f3_T (2*PI*f3*T) /* 2*pi*f3/Fs */
#define a1 0.333 /* Magnitude for wave 1 */
#define a2 0.333 /* Magnitude for wave 2 */
#define a3 0.333 /* Magnitude for wave 3 */
static unsigned int n=0;
void signal_gen(int *x, int N)
{
float temp;
int i;
for (i=0; i<N; i++)
{
temp = a1*cos((double)two_pi_f1_T*n);
temp += a2*cos((double)two_pi_f2_T*n);
temp += a3*cos((double)two_pi_f3_T*n);
n++;
x[i] = (int)((0x7fff*temp)+0.5);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -