OFDM-循环前缀

1、周期延拓(若有相关基础,可直接从4开始)

对于连续信号而言:
x_T(t)=\sum_{k=- \infty}^{\infty}x(t-kT)=\sum_{k=- \infty}^{\infty}x(t+kT)
类似地,对于离散信号:
x_N(n)=\sum_{k=- \infty}^{\infty}x[n-kN]=\sum_{k=- \infty}^{\infty}x[N+kN]

2、循环卷积(圆周卷积)

周期为N的循环卷积(x \otimes h)[n]为:
\begin{align} (x_N*h)[n]&=\sum_{m=- \infty}^{\infty}h[m]\cdot x_N{[n-m]}\\ &=\sum_{m=- \infty}^{\infty}\{h[m]\cdot \sum_{k=- \infty}^{\infty}x{[n-m-kN]}\} \end{align}

3、循环卷积和线性卷积的关系

循环卷积是线性卷积周期延拓后取主值序列。

4、OFDM的循环前缀

“采用循环前缀后,信道输出的后N个样值(去除CP后)是发送序列和信道冲激响应的循环卷积。”

忽略信道噪声,系统模型可以表示为:
Y=H*X \tag{4-1}
假设h的长度为2,x的长度为3,公式(4-1)可以写成矩阵形式:
\left [ \begin{matrix} y_0 \\ y_1\\ y_2 \end{matrix} \right ] = \left [ \begin{matrix} h_0 & 0 & 0 \\ h_1 & h_0 & 0 \\ 0 & h_1 & h_0 \\ \end{matrix} \right ] \left [ \begin{matrix} x_0 \\ x_1\\ x_2 \end{matrix} \right ] = \left [ \begin{matrix} h_0x_0 \\ h_1x_0+h_0x_1\\ h_1x_1+h_0x_2 \end{matrix} \right ] \tag{4-2}
根据定义,CP的长度至少为L-1(L为h的长度),这里设CP长度为1。则加完CP后的输入向量为:X^{'}=[x_2 ~ x_0 ~ x_1~x_2]^T

经过信道后(线性卷积)输出的向量:Y^{'}=H*X^{'}
\left [ \begin{matrix} y_0 \\ y_1\\ y_2\\y_3 \end{matrix} \right ] = \left [ \begin{matrix} h_0 & 0 & 0 & 0 \\ h_1 & h_0 & 0 & 0\\ 0 & h_1 & h_0 & 0\\ 0 & 0 & h_1 & h_0\\ \end{matrix} \right ] \left [ \begin{matrix} x_2\\x_0 \\ x_1\\ x_2 \end{matrix} \right ] = \left [ \begin{matrix} h_0x_2 \\ h_1x_2+h_0x_0\\ h_1x_0+h_0x_1\\ h_1x_1+h_0x_2\\ \end{matrix} \right ] \tag{4-3}
而根据定义,HX的循环卷积:Y^{''}=H \otimes X
\left [ \begin{matrix} y_0 \\ y_1\\ y_2\\ \end{matrix} \right ] = \left [ \begin{matrix} h_0 & 0 & h_1 \\ h_1 & h_0 & 0\\ 0 & h_1 & h_0\\ \end{matrix} \right ] \left [ \begin{matrix} x_0 \\ x_1\\ x_2 \end{matrix} \right ] = \left [ \begin{matrix} h_1x_2+h_0x_0\\ h_1x_0+h_0x_1\\ h_1x_1+h_0x_2\\ \end{matrix} \right ] \tag{4-4}
(4-3)为线性卷积输出的向量,在实际中,我们会去掉接收到的信号的CP部分,在我们的例子中也就是去掉y_0,于是就变成了(4-4),这也是开头那句话的含义。

5、Matlab仿真
x = [1 3 5 7 9 11 13 15];           % transmitted sequence
x_cp = [x(end-2:end) x];            % length of CP is 3
h = [2 4 6];                        % channel taps

% linear convolution
y1 = filter(h,1,x_cp);
% circular convolution
y2 = cconv(x,h,8);

仿真结果:

y_1 22 70 148 140 100 28 52 76 100 124 148
y_2 148 140 100 28 52 76 100 124 148
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容