再一次通过fft计算列向量频谱时,遇到了频谱非0部分关于中心翻转了的现象,经过排查后才发现是共轭转置导致的。
常用的转置符号'
,其实是共轭转置。由于我时域共轭了,导致频域中心对称翻转共轭,频谱呈现出中心对称翻转的现象。
在matlab中,转置矩阵的语法包括
matlab
B = A.'
B = transpose(A)
共轭转置的语法包括
matlab
B = A'
B = ctranspose(A)
演示
初始化数据
matlab
A = [1 3 4-1i 2+2i; 0+1i 1-1i 5 6-1i]
A =
1.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 2.0000 + 2.0000i
0.0000 + 1.0000i 1.0000 - 1.0000i 5.0000 + 0.0000i 6.0000 - 1.0000i
转置1: .'
matlab
A.'
ans =
1.0000 + 0.0000i 0.0000 + 1.0000i
3.0000 + 0.0000i 1.0000 - 1.0000i
4.0000 - 1.0000i 5.0000 + 0.0000i
2.0000 + 2.0000i 6.0000 - 1.0000i
转置2: transpose()
matlab
transpose(A)
ans =
1.0000 + 0.0000i 0.0000 + 1.0000i
3.0000 + 0.0000i 1.0000 - 1.0000i
4.0000 - 1.0000i 5.0000 + 0.0000i
2.0000 + 2.0000i 6.0000 - 1.0000i
共轭转置1: '
matlab
A'
ans =
1.0000 + 0.0000i 0.0000 - 1.0000i
3.0000 + 0.0000i 1.0000 + 1.0000i
4.0000 + 1.0000i 5.0000 + 0.0000i
2.0000 - 2.0000i 6.0000 + 1.0000i
共轭转置2: ctranspose()
matlab
ctranspose(A)
ans =
1.0000 + 0.0000i 0.0000 - 1.0000i
3.0000 + 0.0000i 1.0000 + 1.0000i
4.0000 + 1.0000i 5.0000 + 0.0000i
2.0000 - 2.0000i 6.0000 + 1.0000i