Toeplitz 矩陣是一種比較特殊的矩陣:其中任何一條對角線的元素取相同的值,即
An=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢a0a1a2⋮ana−1a0a1⋮an−1a−2a−1a0⋱⋯⋯⋯⋱⋱a1a−na−n+1⋮a−1a0⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
這裏不再展開證明。
Toeplitz 矩陣可以被Fourier矩陣對角化,即有
An=FHnΛFn
F 的元素爲
[Fn]ij=1n√ej2πik/n,0<=i,j<=n−1
Λ 是n階對角矩陣。
生成一個循環矩陣
T = toeplitz([2 1 0 0 1]);
An=⎡⎣⎢⎢⎢⎢⎢⎢2100112100012100012110012⎤⎦⎥⎥⎥⎥⎥⎥
生成Fourier矩陣
F = dftmtx(5)
F=⎡⎣⎢⎢⎢⎢⎢⎢1.00001.00001.00001.00001.00001.00000.3090−0.9511i−0.8090−0.5878i−0.8090+0.5878i0.3090+0.9511i1.0000−0.8090−0.5878i0.3090+0.9511i0.3090−0.9511i−0.8090+0.5878i1.0000−0.8090+0.5878i0.3090−0.9511i0.3090+0.9511i−0.8090−0.5878i1.00000.3090+0.9511i−0.8090+0.5878i−0.8090−0.5878i0.3090−0.9511i⎤⎦⎥⎥⎥⎥⎥⎥
對角化
Λ=F∗T∗conj(F)/5;
Λ=⎡⎣⎢⎢⎢⎢⎢⎢4.000000000−0.0000i2.6180+0.0000i−0.0000+0.0000i−0.0000−0.0000i0.0000−0.0000i00.00000.38200.0000−0.00000−0.00000.00000.38200.00000+0.0000i0.0000+0.0000i−0.0000+0.0000i−0.0000−0.0000i2.6180−0.0000i⎤⎦⎥⎥⎥⎥⎥⎥
對角線上的元素便是
Toeplitz
矩陣的特徵值。
其實也可以用矩陣
An 的第一列變換得到
fft([2 1 0 0 1])
ans=[4.00002.61800.38200.38202.6180]
又或者這樣得到
F*[2 1 0 0 1]
ans=⎡⎣⎢⎢⎢⎢⎢⎢4.00002.61800.38200.38202.6180⎤⎦⎥⎥⎥⎥⎥⎥
另一個角度去理解頻率域
空間域,兩個序列的x,y 卷積,等於其中一個序列排成的Toeplitz 矩陣乘以另一個序列,即Toep(x)⋅y 。
空間域卷積的結果,等於兩個序列各自的傅里葉變換X,Y 之積,即
Toep(x)⋅y=F−1⋅Diag(F⋅x)⋅F⋅y
Toep(x)=F−1⋅Diag(X)⋅F
F⋅Toep(x)⋅F−1=Diag(X)
這裏用
Diag(X) 表示以向量
X 的元素爲對角元的對角矩陣,
Toep(x) 表示用向量x的元素排成的Toeplitz矩陣。即Fourier矩陣將Toeplitz矩陣對角化了。
參考
知乎,圖像處理中,空間域的卷積相當於頻率域的乘積,從矩陣分析角度如何理解?