FFT Golang 实现
2015-12-02 20:58
507 查看
最近项目要用到快速傅立叶变换,自己写了个算法,测试了下,性能和精度还可以接受len,time= 1048576 378.186167msdiff=-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))
相关文章推荐
- google material design (2-1)
- Qualcomm Snapdragon Debugger for Visual Studio 快速入门指南
- Qualcomm Snapdragon Debugger for Visual Studio
- Snapdragon Profiler性能监测和分析工具
- Google Translate CLI 筆記
- google material design ( 1 )
- go常见error解决办法
- rrdtool 修改水印logo
- ECS ssh无法登陆,提示fatal: No supported key exchange algorithms [preauth]
- Up to 10% off for buy rs gold On RSorder December Special Gift
- Guava学习笔记:Google Guava 类库简介
- mongo学习
- Golang logger日志库
- catagory添加属性
- google地图找不到GoogleMaps/GoogleMaps.h的问题
- Music recommendation algorithm
- ckplayer6.3如何替换logo
- Hexagon SDK之Audio CAPI详解
- mongod的主要参数有
- Algorithm --> 两个栈实现队列和两个队列实现栈