分享
  1. 首页
  2. 文章

FFT Golang 实现

mjgb · · 4338 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

最近项目要用到快速傅立叶变换,自己写了个算法,测试了下,性能和精度还可以接受

len,time= 1048576 378.186167ms

diff=-0.00000000000225974794 I0.00000000000936106748成功: 进程退出代码 0.

百万级别,变换花了378ms

逆变换误差和0.000000000009

 l :=mvm.PowerOf2(20)
 arr :=make([]complex128,l) 
 for i,_ :=range arr{
   arr[i]=complex(rand.Float64(),rand.Float64())
 }
 now :=time.Now()
 fft:= mvm.CoreFFT(arr,false)
 Println("len,time=",l,time.Now().Sub(now))
// Println("arr=",arr)
// Println("fft=",fft)
 reverse:=mvm.CoreFFT(fft,true)
 //Println("reverse=",reverse)
var sumDiff complex128
 for i,v :=range reverse{
   sumDiff =sumDiff+v-arr[i]
 }
 Printf("diff=%.20f I%.20f",real(sumDiff),imag(sumDiff))



有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:mjgb

查看原文:FFT Golang 实现

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
4338 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏