快速傅里叶变换需要用到单位根的性质,在此先介绍下复数单位根及其性质
1. 复数单位根及其性质
w
n
=
1
w^{n} = 1
wn=1
符合条件的w值就是 复数单位根。将单位根在图中表示,横轴表示实部,纵轴表示虚部,python代码如下
# 绘制复数单位根图像
import numpy as np
import matplotlib.pyplot as plot
plot.axes(projection='polar')
plot.title('root of unit')
n = 8 #单位根的个数
rads = np.arange(0, 2*np.pi, 2*np.pi/n)
for rad in rads:
plot.polar(rad, 1, 'o')
plot.show()
图片为:
复数单位跟的性质
w
n
k
=
c
o
s
(
2
π
k
n
)
−
i
∗
s
i
n
(
2
π
k
n
)
,
k
=
0
,
1
,
2
,
.
.
.
,
n
−
1
w_{n}^{k} = cos\left ( \frac{2\pi k}{n}\right ) - i * sin\left ( \frac{2\pi k}{n} \right ), k=0,1,2,...,n-1
wnk=cos(n2πk)−i∗sin(n2πk),k=0,1,2,...,n−1
w
n
k
w_{n}^{k}
wnk 中,n表示单位根的个数,k表示第k个单位根。i对应虚数单位
1)当n>0满足
w
d
n
d
k
=
w
n
k
w_{dn}^{dk} = w_{n}^{k}
wdndk=wnk 因为
w
d
n
d
k
=
c
o
s
(
2
π
d
k
d
n
)
−
i
∗
s
i
n
(
2
π
d
k
d
n
)
=
c
o
s
(
2
π
k
n
)
−
i
∗
s
i
n
(
2
π
k
n
)
=
w
n
k
,
k
≥
0
,
n
>
0
,
d
>
0
w_{dn}^{dk} = cos(\frac{2\pi dk}{dn}) - i*sin(\frac{2\pi dk}{dn}) = cos(\frac{2\pi k}{n}) - i*sin(\frac{2\pi k}{n}) = w_{n}^{k}, k\geq 0, n > 0, d>0
wdndk=cos(dn2πdk)−i∗sin(dn2πdk)=cos(n2πk)−i∗sin(n2πk)=wnk,k≥0,n>0,d>0
2) 如果n是大于0的偶数,那么就有
w
n
n
2
=
−
1
w_{n}^{\frac{n}{2}} = -1
wn2n=−1因为
w
n
n
2
=
c
o
s
(
2
π
n
2
n
)
−
i
∗
s
i
n
(
2
π
n
2
n
)
=
c
o
s
(
π
)
−
i
∗
s
i
n
(
π
)
=
−
1
−
0
=
−
1
w_{n}^{\frac{n}{2}} = cos\left ( \frac{2\pi \frac{n}{2}}{n}\right ) - i*sin \left ( \frac{2\pi \frac{n}{2}}{n}\right ) = cos\left ( \pi \right ) - i * sin\left ( \pi \right ) = -1 - 0 = -1
wn2n=cos(n2π2n)−i∗sin(n2π2n)=cos(π)−i∗sin(π)=−1−0=−1
3)
(
w
n
k
)
2
=
w
n
2
k
\left ( {w_{n}^{k}} \right )^{^{2}} = {w_{n}^{2k}}
(wnk)2=wn2k当n是偶数时,满足
(
w
n
k
+
n
2
)
2
=
w
n
2
k
+
n
=
w
n
2
k
=
(
w
n
k
)
2
{\left ( w_{n}^{k+\frac{n}{2}}\right )^{2}} = w_{n}^{2k+n} = w_{n}^{2k} = \left ( w_{n}^{k} \right )^{2}
(wnk+2n)2=wn2k+n=wn2k=(wnk)2 推导:
a :
(
w
n
k
)
2
=
[
c
o
s
(
2
π
k
n
)
−
i
∗
s
i
n
(
2
π
k
n
)
]
2
=
c
o
s
2
(
2
π
k
n
)
−
s
i
n
2
(
2
π
k
n
)
−
2
∗
i
∗
s
i
n
(
2
π
k
n
)
∗
c
o
s
(
2
π
k
n
)
=
c
o
s
(
4
π
k
n
)
−
i
∗
s
i
n
(
4
π
k
n
)
=
w
n
2
k
\\\left ( w_{n}^{k} \right )^{2} = \left [ cos\left ( \frac{2\pi k}{n} \right ) - i * sin\left ( \frac{2\pi k}{n} \right ) \right ]^{2} \\= cos^{2}\left ( \frac{2\pi k}{n} \right ) - sin^{2}\left ( \frac{2\pi k}{n} \right ) - 2 * i * sin\left ( \frac{2\pi k}{n}\right ) * cos\left ( \frac{2\pi k}{n}\right ) \\= cos\left ( \frac{4\pi k}{n} \right ) - i * sin\left ( \frac{4\pi k}{n} \right ) = w_{n}^{2k}
(wnk)2=[cos(n2πk)−i∗sin(n2πk)]2=cos2(n2πk)−sin2(n2πk)−2∗i∗sin(n2πk)∗cos(n2πk)=cos(n4πk)−i∗sin(n4πk)=wn2k
b:
(
w
n
k
+
n
2
)
2
=
w
n
2
k
+
n
=
c
o
s
(
2
π
(
2
k
+
n
)
n
)
−
i
∗
s
i
n
(
2
π
(
2
k
+
n
)
n
)
=
c
o
s
(
4
π
k
n
)
−
i
∗
s
i
n
(
4
π
k
n
)
=
w
n
2
k
=
(
w
n
k
)
2
\left ( w_{n}^{k+\frac{n}{2}} \right )^{2} = w_{n}^{2k+n}\\ = cos\left ( \frac{2\pi (2k+n)}{n} \right ) - i * sin\left ( \frac{2\pi (2k+n)}{n} \right )\\ = cos\left ( \frac{4\pi k}{n} \right ) - i * sin\left ( \frac{4\pi k}{n} \right ) = w_{n}^{2k} = \left ( w_{n}^{k} \right )^{2}
(wnk+2n)2=wn2k+n=cos(n2π(2k+n))−i∗sin(n2π(2k+n))=cos(n4πk)−i∗sin(n4πk)=wn2k=(wnk)2
4)
∑
j
=
0
n
−
1
(
w
n
k
)
j
=
0
\sum_{j=0}^{n-1}\left ( w_{n}^{k}\right )^{j} = 0
j=0∑n−1(wnk)j=0根据等比数列求和公式
∑
j
=
0
n
−
1
p
j
=
p
n
−
1
p
−
1
\sum_{j=0}^{n-1}p^{j} = \frac{p^{n} - 1}{p - 1}
j=0∑n−1pj=p−1pn−1
性质4)公式可展开为
∑
j
=
0
n
−
1
(
w
n
k
)
j
=
(
w
n
k
)
n
−
1
w
n
k
−
1
=
w
n
k
n
−
1
w
n
k
−
1
=
1
−
1
w
n
k
−
1
=
0
\sum_{j=0}^{n-1}\left ( w_{n}^{k} \right )^{j} = \frac{\left ( w_{n}^{k} \right )^{n} - 1}{w_{n}^{k} - 1} = \frac{w_{n}^{kn} - 1}{w_{n}^{k} - 1} = \frac{1 -1 }{w_{n}^{k} - 1} = 0
j=0∑n−1(wnk)j=wnk−1(wnk)n−1=wnk−1wnkn−1=wnk−11−1=0
5)
w
n
k
+
j
=
w
n
k
∗
w
n
j
w_{n}^{k+j} = w_{n}^{k} * w_{n}^{j}
wnk+j=wnk∗wnj推导:
w
n
k
∗
w
n
j
=
[
c
o
s
(
2
π
k
n
)
−
i
∗
s
i
n
(
2
π
k
n
)
]
∗
[
c
o
s
(
2
π
j
n
)
−
i
∗
s
i
n
(
2
π
j
n
)
]
=
c
o
s
(
2
π
k
n
)
∗
c
o
s
(
2
π
j
n
)
−
s
i
n
(
2
π
k
n
)
∗
s
i
n
(
2
π
j
n
)
−
i
∗
[
s
i
n
(
2
π
k
n
)
∗
c
o
s
(
2
π
j
n
)
+
c
o
s
(
2
π
k
n
)
∗
s
i
n
(
2
π
j
n
)
]
w_{n}^{k} * w_{n}^{j} = \left [ cos\left ( \frac{2\pi k}{n} \right ) - i * sin\left ( \frac{2\pi k}{n}\right )\right ] * \left [ cos\left ( \frac{2\pi j}{n} \right ) - i * sin\left ( \frac{2\pi j}{n}\right )\right ] \\ = cos\left ( \frac{2\pi k}{n} \right ) * cos\left ( \frac{2\pi j}{n}\right ) - sin\left ( \frac{2\pi k}{n}\right ) * sin\left ( \frac{2\pi j}{n} \right ) \\- i * \left [ sin\left ( \frac{2\pi k}{n} \right ) * cos\left ( \frac{2\pi j}{n} \right ) + cos\left ( \frac{2\pi k}{n} \right ) * sin\left ( \frac{2\pi j}{n} \right )\right ]
wnk∗wnj=[cos(n2πk)−i∗sin(n2πk)]∗[cos(n2πj)−i∗sin(n2πj)]=cos(n2πk)∗cos(n2πj)−sin(n2πk)∗sin(n2πj)−i∗[sin(n2πk)∗cos(n2πj)+cos(n2πk)∗sin(n2πj)] 根据三角公式积化和差,有
c
o
s
(
2
π
k
n
)
∗
c
o
s
(
2
π
j
n
)
=
1
2
[
c
o
s
(
2
π
k
+
2
π
j
n
)
+
c
o
s
(
2
π
k
−
2
π
j
n
)
]
cos\left ( \frac{2\pi k}{n} \right ) * cos\left ( \frac{2\pi j}{n}\right ) = \frac{1}{2}\left [ cos\left ( \frac{2\pi k + 2\pi j}{n}\right ) + cos\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ]
cos(n2πk)∗cos(n2πj)=21[cos(n2πk+2πj)+cos(n2πk−2πj)]
s
i
n
(
2
π
k
n
)
∗
s
i
n
(
2
π
j
n
)
=
−
1
2
[
c
o
s
(
2
π
k
+
2
π
j
n
)
−
c
o
s
(
2
π
k
−
2
π
j
n
)
]
sin\left ( \frac{2\pi k}{n}\right ) * sin\left ( \frac{2\pi j}{n} \right ) = -\frac{1}{2}\left [ cos\left ( \frac{2\pi k + 2\pi j}{n}\right ) - cos\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ]
sin(n2πk)∗sin(n2πj)=−21[cos(n2πk+2πj)−cos(n2πk−2πj)]
s
i
n
(
2
π
k
n
)
∗
c
o
s
(
2
π
j
n
)
=
1
2
[
s
i
n
(
2
π
k
+
2
π
j
n
)
+
s
i
n
(
2
π
k
−
2
π
j
n
)
]
sin\left ( \frac{2\pi k}{n} \right ) * cos\left ( \frac{2\pi j}{n} \right ) = \frac{1}{2}\left [ sin\left ( \frac{2\pi k + 2\pi j}{n}\right ) + sin\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ]
sin(n2πk)∗cos(n2πj)=21[sin(n2πk+2πj)+sin(n2πk−2πj)]
c
o
s
(
2
π
k
n
)
∗
s
i
n
(
2
π
j
n
)
=
1
2
[
s
i
n
(
2
π
k
+
2
π
j
n
)
−
s
i
n
(
2
π
k
−
2
π
j
n
)
]
cos\left ( \frac{2\pi k}{n} \right ) * sin\left ( \frac{2\pi j}{n} \right ) = \frac{1}{2}\left [ sin\left ( \frac{2\pi k + 2\pi j}{n}\right ) - sin\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ]
cos(n2πk)∗sin(n2πj)=21[sin(n2πk+2πj)−sin(n2πk−2πj)]
推导公式可化简为:
= 1 2 [ c o s ( 2 π k + 2 π j n ) + c o s ( 2 π k − 2 π j n ) ] + 1 2 [ c o s ( 2 π k + 2 π j n ) − c o s ( 2 π k − 2 π j n ) ] − i ∗ [ 1 2 [ s i n ( 2 π k + 2 π j n ) + s i n ( 2 π k − 2 π j n ) ] + 1 2 [ s i n ( 2 π k + 2 π j n ) − s i n ( 2 π k − 2 π j n ) ] ] = c o s ( 2 π k + 2 π j n ) − i ∗ s i n ( 2 π k + 2 π j n ) = w n k + j =\frac{1}{2}\left [ cos\left ( \frac{2\pi k + 2\pi j}{n}\right ) + cos\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ] + \frac{1}{2}\left [ cos\left ( \frac{2\pi k + 2\pi j}{n}\right ) - cos\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ] \\- i * \left [ \frac{1}{2}\left [ sin\left ( \frac{2\pi k + 2\pi j}{n}\right ) + sin\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ] + \frac{1}{2}\left [ sin\left ( \frac{2\pi k + 2\pi j}{n}\right ) - sin\left ( \frac{2\pi k - 2\pi j}{n}\right ) \right ] \right ] \\ = cos\left ( \frac{2\pi k + 2\pi j}{n}\right ) - i * sin\left ( \frac{2\pi k + 2\pi j}{n}\right ) = w_{n}^{k+j} =21[cos(n2πk+2πj)+cos(n2πk−2πj)]+21[cos(n2πk+2πj)−cos(n2πk−2πj)]−i∗[21[sin(n2πk+2πj)+sin(n2πk−2πj)]+21[sin(n2πk+2πj)−sin(n2πk−2πj)]]=cos(n2πk+2πj)−i∗sin(n2πk+2πj)=wnk+j
本节主要介绍复数单位根及其性质,接下来介绍傅里叶变换及用python实现傅里叶变换
第一次用csdn的公式编辑器,有的公式编辑出来不美观,不知道怎么解决。特别是公式换行怎么让等号对齐。