主要内容

均衡、卷积与循环前缀添加

此示例介绍频域均衡,并说明如何将循环卷积转换为线性卷积。当考虑线性信道模型时,接收信号是发射信号与信道冲激响应的卷积。在频域中,接收信号 Y(f) 是发射信号 U(f) 与信道冲激响应 H(f) 的线性卷积:

Y(f)=H(f)U(f)

OFDM 接收机使用频域均衡来恢复原始发射信号,使得:

U(f)=Y(f)H(f)

FFT 处理产生 uh 的循环卷积。为了使 uh 的循环卷积等效于线性卷积,在进行离散傅里叶变换 (DFT) 之前,必须将 uh 用零填充至长度至少为 (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")

Figure contains 2 axes objects. Axes object 1 with title Input signal contains an object of type stem. Axes object 2 with title Channel impulse response contains an object of type stem.

比较 u1h 的循环卷积和线性卷积。分别使用 convcconv 函数执行线性卷积和循环卷积。非理想信道的弥散效应导致线性卷积和循环卷积在某些点会产生不同结果。循环前缀 (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")

Figure contains an axes object. The axes object with title Convolution Results, N= 8 contains 2 objects of type stem. These objects represent Linear, Circular.

添加循环前缀 (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")

Figure contains an axes object. The axes object with title Convolution Results with Cyclic Prefix contains 2 objects of type stem. These objects represent Linear, Circular.

比较线性卷积和循环卷积序列。

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.

另请参阅

函数

主题

外部网站