📄 dft.c
字号:
//DFT.c DFT of N-point from lookup table. Output from watch window
#include <stdio.h>
#include <math.h>
void dft(short *x, short k, int *out); //function prototype
#define N 8 //number of data values
float pi = 3.1416;
short x[N] = {1000,707,0,-707,-1000,-707,0,707}; //1-cycle cosine
//short x[N]={0,602,974,974,602,0,-602,-974,-974,-602,
// 0,602,974,974,602,0,-602,-974,-974,-602}; //2-cycles sine
int out[2] = {0,0}; //init Re and Im results
void dft(short *x, short k, int *out) //DFT function
{
int sumRe = 0; //init real component
int sumIm = 0; //init imaginary component
int i = 0;
float cs = 0; //init cosine component
float sn = 0; //init sine component
for (i = 0; i < N; i++) //for N-point DFT
{
cs = cos(2*pi*(k)*i/N); //real component
sn = sin(2*pi*(k)*i/N); //imaginary component
sumRe = sumRe + x[i]*cs; //sum of real components
sumIm = sumIm - x[i]*sn; //sum of imaginary components
}
out[0] = sumRe; //sum of real components
out[1] = sumIm; //sum of imaginary components
}
void main()
{
int j;
for (j = 0; j < N; j++)
{
dft(x,j,out); //call DFT function
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -