C# VS2019 调用FFTW FFT计算

这篇博客介绍了如何在C#项目中利用VS2019调用FFTW库进行快速傅里叶变换(FFT)计算。重点是通过动态链接libfftw3-3.dll库文件,而不是静态链接.lib文件,同时提醒在分配内存时使用GCHandle.Alloc确保内存管理。
摘要由CSDN通过智能技术生成

 申请空间时,请使用GCHandle.Alloc,这里只是调用DLL,并没有将其静态连接的 .lib 文件

将libfftw3-3.dll 文件放到项目中

 //申请空间
 //IntPtr In_intPtr= FFT.malloc(N_FFT*8);
 //IntPtr  Out_intPtr= FFT.malloc(N_FFT * 8*2);

 GCHandle In_intPtr = GCHandle.Alloc(DataIn_y1, GCHandleType.Pinned);
 GCHandle Out_intPtr = GCHandle.Alloc(fftw_Complex, GCHandleType.Pinned);
 //正变换
 IntPtr plan = FFT.plan_r2c_ld(N_FFT, In_intPtr.AddrOfPinnedObject(), Out_intPtr.AddrOfPinnedObject(), 0);

  //执行变换
  FFT.execute(plan);//可能重复执行,
  FFT.execute(plan);
  //释放输入输出数组
  FFT.destroy_plan(plan);

   //释放空间
   In_intPtr.Free();
   Out_intPtr.Free();

TTF

    public class FFT
    {
        #region FFTW 库调用申明
        /// <summary>
        /// Allocates FFTW-optimized
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值