DFT(离散傅里叶变换)
2011-04-01 16:46
176 查看
/******************************************************************************* ** 程序名称:离散傅里叶变换(DFT ) ** 程序描述:本程序对指定的离散序列进行离散傅里叶变换 ** 程序作者:宋元瑞 ** 最后修改:2011年4月1日 *******************************************************************************/ #include <stdio.h> #include <math.h> #define N 32 //序列长度 #define PI 3.1415926535 typedef double ElementType; //原始数据序列的数据类型,可以在这里设置 typedef struct //复数结构体,用于实现傅里叶运算 { ElementType real,imag; }complex; complex dataResult ; //傅里叶运算的频域结果序列的值(复数) ElementType dataSource ; //输入的原始数据序列 ElementType dataFinualResult ; //最终频域序列结果(dataResult 的模,实数) void FFT_Calculate_OneNode(int k)//计算频域上一个点的DFT值 { int n = 0; complex ResultThisNode; complex part ; ResultThisNode.real = 0; ResultThisNode.imag = 0; for(n=0; n<N; n++) { part .real = cos(2*PI/N*k*n)*dataSource ;//运用欧拉公式把复数拆分成实部和虚部 part .imag = sin(2*PI/N*k*n)*dataSource ; ResultThisNode.real += part .real; ResultThisNode.imag += part .imag; } dataResult[k].real = ResultThisNode.real; dataResult[k].imag = ResultThisNode.imag; } void FFT_Calculate()//对输入序列全部计算DFT { int i = 0; for(i=0; i<N; i++) { FFT_Calculate_OneNode(i); dataFinualResult[i] = sqrt(dataResult[i].real * dataResult[i].real + dataResult[i].imag * dataResult[i].imag); } } int main(int argc, char *argv[]) { int i = 0; for(i=0; i<N; i++)//制造输入序列 { dataSource[i] = sin(2*PI*i/N); printf("%lf ",dataSource[i]); } FFT_Calculate();//进行DFT计算 printf("/n/n"); for(i=0; i<N; i++) {printf("%lf ",dataFinualResult[i]);} return 0; }
相关文章推荐
- 离散傅里叶变换DFT
- 灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)
- 离散傅里叶变换 The Discrete Fourier Transform (DFT)
- Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)
- opencv例程解读——dft(离散傅里叶变换)
- Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)
- 离散傅里叶变换DFT的推导和lisp实现
- 第六章 - 图像变换 - 卷积和离散傅里叶变换DFT(cvDFT)
- 离散傅里叶变换DFT基本原理图解
- DFT(离散傅里叶变换)和DCT(离散余弦变换)有何区别和联系
- 离散傅里叶变换(DFT)
- (四)连续傅里叶变换与离散傅里叶变换:离散傅里叶变换(DFT) DTFT->DFT
- DFT 离散傅里叶变换 与 补零运算
- 离散傅里叶变换(DFT)数学例子
- DFT 离散傅里叶变换(简单的代码实现)
- OpenCV中文网站例程——离散傅里叶变换DFT
- 2.1 离散傅里叶变换 (DFT)
- 离散傅里叶变换(DFT)的性质及证明
- opencv之离散傅里叶变换(DFT)
- Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)