fft qt 代码_FFT代码详解

本文主要讲解如何在QT环境中实现快速傅里叶变换(FFT)的代码,包括复数类定义、单位根计算、FFT算法及主函数的详细步骤。通过阅读,读者可以了解FFT的代码实现过程。
摘要由CSDN通过智能技术生成

关于FFT原理部分的介绍,在网上已经有很多了,所以在此只讲代码实现部分的内容。

推荐看完它的原理解释再来看这里的代码解释

废话不多说,上代码(多项式乘法)

#include

#include

#include

#define N 4000001

using namespace std;

struct cp//手写复数类可以卡常

{

double real,imag;

};

cp operator +(cp a,cp b)

{

return (cp){a.real+b.real,a.imag+b.imag};

}

cp operator -(cp a,cp b)

{

return (cp){a.real-b.real,a.imag-b.imag};

}

复数乘法:设$R_{a}$表示$a$的实部系数,$I_{a}$表示$a$的虚部系数

则$a*b$

$=(R_{a}+I_{a})*(R_{b}+I_{b})$

$=R_{a}*R_{b}+R_{a}*I_{b}+R_{b}*I_{a}+I_{a}*I_{b}$

因为$i^2=-1$

所以结果的实部为$R_{a}*R_{b}-I_{a}*I_{b}$

虚部为$R_{a}*I_{b}+R_{b}*I_{a}$

cp operator *(cp a,cp b)

{

return (cp){a.real*b.rea

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值