OFDM中Hermitian共轭对称构造:保证IFFT输出为实数的原理与实现
在OFDM系统中,发射端需要将频域数据通过IFFT变换为时域信号,经DAC转换为模拟波形后通过射频前端发送。物理世界中的电磁信号必须是实数信号(电压/电流无复数概念)。然而,IFFT的输入通常是复数QAM符号,若直接进行IFFT,输出将包含不可忽略的虚部,这在物理上无法实现。
Hermitian共轭对称构造正是解决这一矛盾的关键技术——通过在频域精心构造共轭对称结构,确保IFFT输出的时域信号严格为实数。
一、 为什么Hermitian对称能产生实数?
离散傅里叶逆变换(IDFT/IFFT)的公式如下:
$$ x(n) = \frac{1}{N} \sum_{k=0}^{N-1} X(k) e^{j \frac{2\pi}{N} kn} $$
其中, X(k)是频域子载波上的复数数据, x(n)是输出的时域信号。对于任意一个频域点k ,存在一个对称点N-k (在圆周意义下)。
当X(k)和X(N-k)满足以下关系时:X(N-k)=X*(k)(其中*表示取复共轭)
将这两个点代入求和公式中,它们俩对时域信号为:
$$ \frac{1}{N} \left[ X(k) e^{j \frac{2\pi}{N} kn} + X^*(k) e^{j \frac{2\pi}{N} (N-k)n} \right] $$
利用欧拉公式化简,由于$ e^{j\frac{2\pi}{N}Nn} = e^{j2\pi n} = 1 $,第二项可以写为$ X^*(k) e^{-j\frac{2\pi}{N}kn} $。
这与第一项恰好是共轭对称的。两个共轭复数相加,其虚部必然相互抵消,结果一定是一个纯实数:
$$ 2 \cdot \mathrm{Re} \, X(k) e^{j\frac{2\pi}{N}kn} $$
结论: 只要我们构造的频域序列X(k)满足共轭对称性,且直流分量(k=0)和奈奎斯特分量(k=n/2,如果N为偶数)为纯实数,那么整个IFFT的输出x(n)必然是纯实数序列。
二、 MATLAB代码:对称性强制变换
在实际工程中,输入一个任意长序列,通过数学变换将其“投影”为共轭对称序列。 hermitian_conj_process ,无论输入什么频域数据,都能将其重塑为标准对称结构。
function conj_data = hermitian_conj_process(data_din)
[n_rows, n_cols] = size(data_din);
conj_data = zeros(n_rows, n_cols);
for i = 1:n_rows
current_row = data_din(i, :); % 取出当前OFDM符号的频域序列
conj_row = conj(current_row); % 取复共轭
% 核心魔法:构建对称翻转序列
conj_flipped = [conj_row(1), conj_row(end:-1:2)];
% 投影操作:求平均
conj_data(i, :) = 0.5 * (current_row + conj_flipped);
end
end
conj_row(1),conj_row(end:-1:2)
在MATLAB中索引从1开始。假设 :
conj_row的索引是 [1, 2, 3, 4, 5, 6, 7, 8]
conj_row(end:-1:2)提取的是 [8, 7, 6, 5, 4, 3, 2]
拼接上 conj_row(1) 后,conj_flipped 变成了 [1, 8, 7, 6, 5, 4, 3, 2]
第1个元素没变(保证DC为实数),第2个元素变成了原第8个元素的共轭(满足 $X_{N-1} = X_1^),第个变成了原第个的共轭,满足X(N-k) = X^(k)$ 的圆周对称法则!
随后的 0.5 * (A + B) 操作,在数学上相当于将原始向量向“共轭对称子空间”做正交投影。它提取了原始向量中的对称分量,丢弃了导致时域产生虚部的“反对称分量”。
总结
Hermitian共轭对称构造是连接数字复信号与物理实信号的桥梁。其核心在于利用DFT的共轭对称性质,通过在频域建立X(k)=X*(N-k)的约束关系,确保IFFT输出严格为实数。
在OFDM系统中,这一技术使得发射机可采用简单的直接调制方案,避免了复杂的IQ调制器,但代价是频谱效率减半。
221