均衡、卷积与循环前缀添加
此示例介绍频域均衡,并说明如何将循环卷积转换为线性卷积。当考虑线性信道模型时,接收信号是发射信号与信道冲激响应的卷积。在频域中,接收信号 是发射信号 与信道冲激响应 的线性卷积:
OFDM 接收机使用频域均衡来恢复原始发射信号,使得:
FFT 处理产生 u 与 h 的循环卷积。为了使 u 和 h 的循环卷积等效于线性卷积,在进行离散傅里叶变换 (DFT) 之前,必须将 u 和 h 用零填充至长度至少为 (length(u) + length(h) - 1)
。对 DFT 的积求逆后,只保留前 N + L - 1 个元素。有关演示此过程的示例,请参阅线性和循环卷积主题。
定义短输入信号 u1
和信道冲激响应 h
。输入信号必须长于信道冲激响应。显示信号的针状图。
u1 = 1:8; h = [0.4 1 0.4]; figure subplot(2,1,1) stem(u1); axis([0 10 0 10]) title("Input signal") subplot(2,1,2) stem(h,'^'); axis([0 10 0 2]) title("Channel impulse response")
比较 u1
与 h
的循环卷积和线性卷积。分别使用 conv
和 cconv
函数执行线性卷积和循环卷积。非理想信道的弥散效应导致线性卷积和循环卷积在某些点会产生不同结果。循环前缀 (CP) 使得 OFDM 可以有效用于具有未知传播延迟的非理想信道中。
N = length(u1); yl1 = conv(u1,h); yc1 = cconv(u1,h,N); figure; stem(yl1,"x") hold on; stem(yc1,"o") title(["Convolution Results, N=",int2str(N)]) legend ("Linear","Circular","Location","northwest")
添加循环前缀 (CP)
对于 OFDM 处理,循环卷积所需的填充是通过添加 CP 而不是零填充信号来提供的。通过添加重复符号的末尾采样的 CP,可以:
将频率选择性多径信道的线性卷积建模为循环卷积
使用 FFT 计算卷积
执行简单的频域处理,以实现信道估计、均衡和同步
将重复采样用于前向纠错方案
L = length(h); % Length of channel N = length(u1); % Length of input signal ucp = u1(N-L+1:N); % Use last samples of input signal as the CP u2 = [ucp u1]; % Prepend the CP to the input signal yl2 = conv(u2,h); % Convolution of input+CP and channel yl2 = yl2(L+1:end); % Remove CP to compare signals figure; stem(yl2,"x") hold on; stem(yc1,"o") title("Convolution Results with Cyclic Prefix") legend ("Linear","Circular","Location","northwest")
比较线性卷积和循环卷积序列。
if max(yc1 - yl2(1:N)) < 1e-8 disp("Linear and circular convolution sequences match.") else disp("Received symbols do not match transmitted symbols.") end
Linear and circular convolution sequences match.