FFT原理及实现

用C写的FFT代码的原理,及实现过程

FFT原理及实现

基2 FFT总的思想是将输入信号对半分割, 再对半分割, 再再对半分割(以下省略10000个再再...J) 直至分割到2点。

两点DFT简化

假设输入为x[0],x[1]; 输出为X[0],X[1]. 伪代码如下 : // ------------------------------------------------------------------ #define N 2

#define PI 3.1415926

// ------------------------------------------------------------------ int i, j

for(i=0, X[i]=0.0; i<N; i++) for(j=0; j<N; j++)

X[i] += x[j] * ( cos(2*PI*i*j/N) - sin(2*PI*i*j/N) );

注意到(我想Audio编解码很多时候都是对cos,sin进行优化!)

FFT原理及实现

X[0] = x[0]*(1-0) + x[1]*(1-0) = x[0] + 1*x[1]; X[1] = x[0]*(1-0) + x[1]*(-1-0) = x[0] - 1*x[1];

这就是单个2点蝶形算法.

FFT实现流程图分析(N=8, 以8点信号为例)

FFT implementation of an 8-point DFT as two 4-point DFTs and four 2-point DFTs

你可能喜欢

  • FFT快速傅里叶变换
  • 快速傅里叶变换原理
  • FFT算法
  • 算法的C语言实现
  • 脉冲压缩
  • 入党转正思想汇报
  • 建党周年
  • MATLAB仿真

FFT原理及实现相关文档

最新文档

返回顶部