傅立叶变换矩阵的频谱响应
线性变换可以用矩阵表示,傅立叶变换是一种线性变换,因此也可以使用矩阵表示。具体可以参考:离散傅立叶变换和线性变换的关系:什么是线性空间?
1、傅立叶矩阵
X
[
k
]
=
∑
n
=
0
N
−
1
x
[
n
]
e
−
j
k
2
π
N
n
(1)
X[k] = \sum_{n=0}^{N-1} x[n]e^{-j k \frac{2\pi}{N} n} ag{1}
X[k]=n=0∑N−1x[n]e−jkN2πn(1)
x
[
n
]
=
1
N
∑
n
=
0
N
−
1
X
[
k
]
e
j
k
2
π
N
n
(2)
x[n] = \frac{1}{N}\sum_{n=0}^{N-1} X[k]e^{j k \frac{2\pi}{N} n} ag{2}
x[n]=N1n=0∑N−1X[k]ejkN2πn(2)
import numpy as np
def F(N):
F = []
for k in range(N):
row_k =[]
for n in range(N):
row_k.append(np.exp(-1j*2*np.pi/N*k*n))
F.append(row_k)
return np.array(F)
N = 100
x = np.zeros((N,1))
x[0] = 1
X_dft = F(N)@x
X_fft = np.fft.fft(x.T).T
np.linalg.norm(X_dft-X_fft)
In [18]: X_dft.T
Out[18]:
array([[1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j,
1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j]])
2、傅立叶变换的频谱响应
一个冲激通过傅立叶变换得到一个常数函数。这个和白噪声的频谱响应是冲激函数是一致的。
因此傅立叶变换的响应是
h
(
t
)
=
1
h(t)=1
h(t)=1。
系统函数
H
(
w
)
=
N
δ
(
w
)
H(w) = N\delta(w)
H(w)=Nδ(w)
3、平稳随机信号经过线性系统
因此一个平稳随机信号的离散傅立叶变换的均值为
a
N
aN
aN