上传者: 38586200
|
上传时间: 2022-03-02 15:33:03
|
文件大小: 122KB
|
文件类型: -
DFT的matlab源代码fft_simd
一个简单的演示演示了如何使用SIMD(单指令多数据)来优化和加速FFT算法。
任务1.使用C
++实现标准DFT算法。
看
任务2.使用Cooley-Tukey
FFT算法重写DFT。
看
任务3.使用SIMD加速FFT算法。
请参阅此页中的问题。
任务4.在这些算法之间进行比较耗时的对比。如下表所示:
算法
时间消耗
标准dft
606毫秒
快速傅立叶变换
74毫秒(异位算法),7毫秒(原位)
使用SIMD进行FFT
1.011毫秒
SIMD简介
推荐人。
选择了SIMD指令
我们在此项目中使用SSE2。
SSE2(流式SIMD扩展2)是Intel
SIMD之一,由于其MMX严格标准从64位扩展到128位,它支持两个双精度浮点运算。
SIMD指令练习
为了熟悉SSE2指令,我们使用SSE2作为练习来计算复数乘法。
复数乘法可以描述如下:
$$如果A
=
a
+
b
j,B
=
c
+
d
j,则A
*
B
=(ac-bd)+(bc
+
ad)*
j
$$
我们使用一个图来总结和描述使用SSE2的复杂乘法:
您可以在项目的complex_mu