在GPU下做fft和Ifft----pycuda
来源:互联网 发布:c语言函数手册 chm 编辑:程序博客网 时间:2024/06/05 02:00
1.调用keikna库
keikna库中有fft,所以为了减小任务量我就调用keikan的fft的库来完成。
http://blog.sina.com.cn/s/blog_4513dde60102vstu.html
这个帖子里详细的介绍了keikna的一些东西。
2.介绍FFT和IFFT的实现
对于二维的傅里叶变换的实现,冈萨雷斯《数字图像处理》有详细的介绍。
通过对这两个图片的学习,可以开始写代码了。
3.代码实现
下面我就把代码贴上:
输出的结果为:
import numpyfrom reikna.fft import FFTimport reikna.cluda as cludaapi = cluda.cuda_api()thr = api.Thread.create()x = numpy.array(( [[1,1,1,0], [0,1,1,1], [0,0,1,1], [0,0,1,1] ]), dtype=numpy.complex128)R = x.shape[0]L = x.shape[-1]#print (x.real)x=x.flatten()NX = numpy.full((16,),0).astype(numpy.complex128)for i in range(0,16): NX[i]=x[i]NX = NX.reshape(4,4)x = thr.to_device(NX)X = thr.array((R,L), dtype=numpy.complex128)fft = FFT(x)fftc = fft.compile(thr)fftc(X, x, 0)xfft = X.get()print (xfft)aa = xfft.conjugate() #print (aa)xx = thr.to_device(aa)fft = FFT(xx)fftc = fft.compile(thr)fftc(X, xx, 0)xifft = X.get()xifft = xifft/(R*L)thr.release()print (xifft.real)
阅读全文
0 0
- 在GPU下做fft和Ifft----pycuda
- Matlab下FFT和IFFT的实现
- itk下FFTW的FFT和IFFT
- FFT快速卷积GPU加速----pycuda
- 关于OFDM中的FFT和IFFT
- 基于FFTW的FFT和IFFT
- 用c实现的fft和ifft
- FFT和IFFT的C代码实现
- 关于FFTW3和NE10在树莓派2上执行FFT和IFFT的耗时比较
- windows 10 安装CUDA 7.5和PyCUDA(在GPU上运行theano)
- FFT、IFFT和DCT、IDCT和WALSH、IWALSH
- FFT蝶形算法,IFFT
- DFT IDFT FFT IFFT
- OFDM 中的 IFFT/FFT 注意事项
- 在Windows上安装PyCUDA和Theano
- 在Windows上安装PyCUDA和Theano
- GPU共享内存小结---pycuda
- 基于C++任意点数的FFT/IFFT(时域和频域)实现
- scala与java之间的集合类型转换
- 1708:校门外的树
- NOIP2016天天爱跑步(洛谷1600)
- Shell test 命令
- spring_使用CGlib 创建代理
- 在GPU下做fft和Ifft----pycuda
- luogu2420 让我们异或吧
- 如何使用cmd运行java程序
- Spring MVC-使用Spring Tool Suite IDE搭建Spring MVC开发环境
- jmeter响应断言无法处理中文的问题
- Android开发用过的十大框架
- 朴素贝叶斯
- Docker基础01(待续)
- LeetCode Question Difficulty Distribution 问题难度和频率分布