注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一粒浮尘

飘渺虚无

 
 
 

日志

 
 

An example of using FFTW3 in c  

2010-07-25 21:24:13|  分类: work |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  1. /*
  2.  * fft.c: compute FFT and IFFT from an array
  3.  */
  4. #include <stdio.h>
  5. #include <fftw3.h>
  6.  
  7. #define SIZE 4
  8.  
  9. int main( int argc, char** argv )
  10. {
  11.     double          input[SIZE] = { 1.0, 1.0, 1.0, 1.0 };
  12.     fftw_complex    *data, *fft_result, *ifft_result;
  13.     fftw_plan       plan_forward, plan_backward;
  14.     int             i;
  15.    
  16.     data        = ( fftw_complex* ) fftw_malloc( sizeof( fftw_complex ) * SIZE );
  17.     fft_result  = ( fftw_complex* ) fftw_malloc( sizeof( fftw_complex ) * SIZE );
  18.     ifft_result = ( fftw_complex* ) fftw_malloc( sizeof( fftw_complex ) * SIZE );
  19.    
  20.     plan_forward  = fftw_plan_dft_1d( SIZE, data, fft_result, FFTW_FORWARD, FFTW_ESTIMATE );
  21.     plan_backward = fftw_plan_dft_1d( SIZE, fft_result, ifft_result, FFTW_BACKWARD, FFTW_ESTIMATE );
  22.    
  23.     /* populate input data */
  24.     for( i = 0 ; i < SIZE ; i++ ) {
  25.         data[i][0] = input[i];
  26.         data[i][1] = 0.0;
  27.     }
  28.  
  29.     /* print initial data */
  30.     for( i = 0 ; i < SIZE ; i++ ) {
  31.         fprintf( stdout, "data[%d] = { %2.2f, %2.2f }\n",
  32.                     i, data[i][0], data[i][1] );
  33.     }
  34.    
  35.     fftw_execute( plan_forward );
  36.    
  37.     /* print fft result */
  38.     for( i = 0 ; i < SIZE ; i++ ) {
  39.         fprintf( stdout, "fft_result[%d] = { %2.2f, %2.2f }\n",
  40.                     i, fft_result[i][0], fft_result[i][1] );
  41.     }
  42.  
  43.     fftw_execute( plan_backward );
  44.  
  45.     /* print ifft result */
  46.     for( i = 0 ; i < SIZE ; i++ ) {
  47.         fprintf( stdout, "ifft_result[%d] = { %2.2f, %2.2f }\n",
  48.                     i, ifft_result[i][0] / SIZE, ifft_result[i][1] / SIZE );
  49.     }
  50.  
  51.     /* free memory */
  52.     fftw_destroy_plan( plan_forward );
  53.     fftw_destroy_plan( plan_backward );
  54.  
  55.     fftw_free( data );
  56.     fftw_free( fft_result );
  57.     fftw_free( ifft_result );
  58.    
  59.     return 0;
  60. }

from:http://nashruddin.com/fft-with-fftw-example.html
  评论这张
 
阅读(477)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017