長さNのDFTベクトルがあるとします。これは、その中間点の周りに複素共役対称性を示します。つまり、、など。 およびは、それぞれDCおよびナイキスト周波数であるため、実数です。残りの要素は複雑です。
ここで、ベクトルXを乗算するサイズ行列とします。
質問は:
どのような条件で、行列に対して、結果のベクトルの中間点の周りの複素共役対称性が保持されますか?
この質問の動機は、IFFTが実数である事前にコード化された(事前に等化された)シンボルをもたらすプリコーダー行列を考え出そうとすることです。
編集:
@MattLに感謝します。と@niaren。この質問の難しさは、必要な条件を見つけることです。マットの答えは確かに十分です。次の変更を加えるだけでも十分です。
最初の行と最初の列はゼロである必要はありません。代わりに、それらはゼロ以外の値である可能性があります。その値が中間点の周りに複雑な共役対称性を示す限り、そのシンボルのように、最初の値は実数で、番目の値は実数です。同じことは、番目の列、番目の行、および主対角線についても言えます。
次に、左上隅と右下隅のマトリックス間の同じ対応を右上隅と左下隅の間で行うことができます。つまり、t 2 、N / 2 + 2から t N / 2 、Nまでの行列。左から右に反転し、逆さまに反転して共役を取り、左下隅に配置します。MATLABでは、次のようになります。
T(N/2+2:N,2:N/2) = conj(fliplr(flipud(Tisi(2:(N/2),N/2+2:N))))
この構造は、DFT行列の構造に似ています。それは必要条件でしょうか?
編集(2):
次のコードは、任意の実数値行列Aに対してこのような有効な演算子を実装します。
N = 8;
A = rand(N,N); %must be real-valued
w = exp(-1j*2*pi/N); % twiddle factor
W = w.^(repmat(0:N-1,N,1).*repmat(0:N-1,N,1).'); % DFT matrix
T = W*A*W'
編集(3):
また、が十分な条件を示していることにも注目してください。これは、次のことから生じます。
ここで、WはDFT行列です。
以降。この方程式は次のようになります。
最後に、は実数値なので、Aがフルランクであれば、T − 1で十分です。