COMP9101 算法设计 week3

本文深入探讨了快速傅立叶变换(FFT)的概念,包括复数、单位根及其性质。详细介绍了FFT的时间复杂度和如何通过分治法实现。同时,阐述了FFT在计算卷积和移动平均平滑中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FFT快速傅立叶

假设我们有2个多项式:
PA(x) = Anx^n…+A0. PB(x)=Bnx ^n+…+B0

  1. 将他们变成value表示法:
    因为它们两个的乘积是2n阶的,我们需要2n+1个不同的x:
    PA(x)<-> {(x0,PA(x0)),…(x2n, PA(x2n))}
    PB(x)<->{(x0,PB(x0)),…,(x2n, PB(x2n))}

2.将它们点对点相乘
{(x0, PA(x0)*PB(x0)), (x1,PA(x1)PB(x1))…(x2n, PA(x2n)PB(x2n))}

3.我们将PC(x)代入:
PC(x)=C(2n)x^2n+C(2n-1)x ^2n-1…+C1x+C0

在K算法时,x的取值是-n到n,但当n很大的时候会爆炸。
方式一是变成复数。

复数

z=a+ib, 也可以表示为模 |z|=√(a ^ 2+b ^ 2) 和辐角arg(z)—>取值为(-π,π], 并且满足:
z=|z|eiarg(z) =|z|(cosarg(z)+isinarg(z))
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单位根

单位根的阶n是复数且满足z^n=1.
如果z^ n = |z|^n (cos(n arg(z)) + i sin(n arg(z))) = 1,
则|z|=1 并且 n个 arg(z)是2π的倍数。
所以, narg(z)=2πk, 即arg(z)=2πk/n. k的范围是0~n-1.
我们让 ωn = e ^(i2π/n)—>k=1, ω被称是n阶单位原根。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值