CP(Cyclic Prefix)循环前缀介绍


前言

本文大部分内容转自:NR循环前缀(Cyclic Prefix)介绍
推荐一篇讲得很清楚的文章:OFDM中循环前缀CP的作用


循环前缀(CP)是指一个符号的前缀,在以OFDM无线系统中具有重复的结尾。接收器通常配置为丢弃循环前缀样本CP可用于对抗多径传播的影响。

在LTE系统的时候,我们就使用CP来消除符号间的干扰,使用OFDM技术为什么会有符号间的干扰呢?

Multipath Signal Transmission–多径信号传输

基站和UE之间的无线信道在时域引入时延扩展(delay spread)。这种时延扩展是由发射信号从多条路径到达接收机而产生的,这些路径具有不同的距离、环境、地形和杂波导致不同的延迟。

多径引起的接收信号脉冲的时延扩展是指最大路径上的最大传输时延与短路径中最小传输时延之间的差值。时延随环境、地形和杂波的变化而变化,并且与小区半径没有绝对的映射关系。这种多路径延迟扩展会导致以下情况:

  • 符号间干扰(Inter-Symbol Interference,ISI)严重影响数字信号的传输质量。由于多径的存在,不加保护间隔的话,上一个符号的尾部会落入本符号的采样区间,引起ISI,加入保护间隔后就不会了

  • 信道间干扰(Inter-ChannelInterference,ICI)只有多载波系统才有这种东西,指破坏了子载波间的正交性,从而影响接收端的解调。什么是正交性?简单来说就是它能让我们分离出各子载波上的信号(像IQ调制那样)。比如现在有64个子载波,接收端收到的是64个子载波相加的信号,要分出来就要进行积分(FFT),积分后其他63个子载波都被积掉了(正交,内积为0),剩下的就是分离出来的子载波信号,那么经过64次积分,就得到了64个子载波上所携带的信号。

  • 在这里插入图片描述在这里插入图片描述

该图遗漏一项重要信息,容易造成了误导,真正的信号不会像这个图里面一样两个OFDM符号相位连续,每个OFDM符号都是独立的,所以如果不加保护间隔的话,上一个符号尾部与本符号头部重叠的部分如果相位又恰好相反,则会造成深衰落,均衡就不起作用了,而更严重的是,一帧信号里有很多符号,每个符号与符号之间的相位差又不一致,这样相当于它们经过的信道都不一样,就不能使用同样的信道估计结果去做均衡。

而加了保护间隔就不一样了,在时延部分相当于平坦衰落信道,时延部分的后边是多径衰落信道,由于每个符号都只受到本符号时延带来的频域选择性衰落,这样一帧信号中每一个符号就相当于经过的相同的信道。
所以对抗ISI我们需要保护间隔,但不一定需要CP?(不确定)

CP是如何对抗ICI和ISI的?

  • 保护周期(Guard Period):为了避免符号间干扰,可以在OFDM符号之间以循环前缀的形式插入保护周期。该保护周期是前一个符号的时延扩展分量在下一个符号开始之前到达提供了一个时间窗口。保护期可以是不连续传输的周期,也可以是任何其他传输的周期。保护周期的长度(Tg)通常大于无线信道上的最大时延。

  • 循环前缀(Cyclic Prefix):可以在保护间隔中插入CP以减少ICI。将每个OFDM符号之后的采样点复制到OFDM符号的前面。这确保包括在OFDM符号的时延副本中的波形周期的数目是FFT周期中的整数,这保证了子载波的正交性。复制有效载荷的末端并作为循环前缀进行传输,可确保传输信号和信道响应之间存在“循环”卷积。

先看ICI是怎么引起的
本来如果没有时延扩展的话,可以完美积掉其他子载波,但是现在上一个符号落入本符号的采样区间,在做积分的时候就不一样了,其他子载波积不掉,即使加上保护间隔(0)也不行,因为积分的时候时延部分是0,信号也不完整了。

为什么CP可以了?因为这是FFT的性质决定的,FFT的循环卷积特性让信号可以看成是一个圆周,不管从哪里开始加FFT窗,都可以取到完整的一个信号,不同的只是相位的差别,但这并不影响积分,只要有一个完整的信号,就可以内积为0。所以加上CP后,收端收到的时延扩展部分是信号的尾部,FFT窗口内还是一个完整的信号。

可以说CP完美解决了ICI的问题,但仅仅是因为ISI(时延扩展)引起的ICI,还有载波频偏等引起的ICI是CP解决不了的,一般只能通过补偿减轻ICI的影响,实在补偿不了的就只有通过纠错编码硬抗了。

总结一下:CP能解决时延扩展带来的ISI和ICI,但是时延扩展带来的频选衰落该均衡还是要均衡,并且CP不能解决由频偏带来的ICI问题。

CP长度如何确定?

  • **多径时延:**倍数与CP长度成正比。多径时延越大,需要更长的循环前缀
  • **OFDM符号长度:**在相同的OFDM符号长度下,较长的CP可能是一个较大的系统开销,因此为了控制开销,应适当选择CP的长度。

每种CP支持的多径距离

在这里插入图片描述

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
循环前缀最大似然算法(Cyclic Prefix Maximum Likelihood Algorithm)是一种用于OFDM系统中信道估计的方法。下面是一个基于MATLAB的实现示例: 首先,定义原始信号和循环前缀长度: ```matlab % 定义原始信号 x = [1 2 3 4 5 6 7 8]; % 定义循环前缀长度 cp_len = 2; ``` 接下来,构造OFDM信号: ```matlab % 将原始信号分为若干个子载波 n_subcarriers = 4; x = reshape(x, [], n_subcarriers); % 添加循环前缀 cp = x(:, end-cp_len+1:end); x_cp = [cp x]; % 转换为行向量 x_cp = x_cp(:)'; ``` 然后,构造信道模型并进行频率域均衡。这里假设信道为时不变的,且为简单的AWGN信道: ```matlab % 构造信道模型 chan = [0.9 0.1 0 0 0.1 0.9 0 0 0 0 0.9 0.1 0 0 0.1 0.9]; chan = reshape(chan, [], n_subcarriers); % 构造频率域均衡器 h_eq = 1 ./ fft(chan, [], 2); ``` 最后,进行信道估计并还原原始信号: ```matlab % 进行循环前缀最大似然算法估计 n_frames = length(x_cp) / (n_subcarriers+cp_len); h_ml = zeros(n_frames, n_subcarriers); for i = 1:n_frames % 提取OFDM符号 frame = x_cp((i-1)*(n_subcarriers+cp_len)+1:i*(n_subcarriers+cp_len)); % 去掉循环前缀 frame = frame(cp_len+1:end); % 进行FFT变换 frame_f = fft(frame); % 进行频率域均衡 frame_f_eq = frame_f .* h_eq; % 进行信道估计 h_ml(i, :) = frame_f_eq(1, :); end % 还原原始信号 x_hat = h_ml .* x; x_hat = sum(x_hat, 1); x_hat = x_hat(:)'; ``` 完整代码如下: ```matlab % 定义原始信号 x = [1 2 3 4 5 6 7 8]; % 定义循环前缀长度 cp_len = 2; % 将原始信号分为若干个子载波 n_subcarriers = 4; x = reshape(x, [], n_subcarriers); % 添加循环前缀 cp = x(:, end-cp_len+1:end); x_cp = [cp x]; % 转换为行向量 x_cp = x_cp(:)'; % 构造信道模型 chan = [0.9 0.1 0 0 0.1 0.9 0 0 0 0 0.9 0.1 0 0 0.1 0.9]; chan = reshape(chan, [], n_subcarriers); % 构造频率域均衡器 h_eq = 1 ./ fft(chan, [], 2); % 进行循环前缀最大似然算法估计 n_frames = length(x_cp) / (n_subcarriers+cp_len); h_ml = zeros(n_frames, n_subcarriers); for i = 1:n_frames % 提取OFDM符号 frame = x_cp((i-1)*(n_subcarriers+cp_len)+1:i*(n_subcarriers+cp_len)); % 去掉循环前缀 frame = frame(cp_len+1:end); % 进行FFT变换 frame_f = fft(frame); % 进行频率域均衡 frame_f_eq = frame_f .* h_eq; % 进行信道估计 h_ml(i, :) = frame_f_eq(1, :); end % 还原原始信号 x_hat = h_ml .* x; x_hat = sum(x_hat, 1); x_hat = x_hat(:)'; ``` 注意,这里的实现仅为示例代码,可能需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值