LTE 上行链路中的半子载波间隔

信息处理 调制 Python OFDM
2022-02-19 23:06:14

第一次在这里发帖,试图让它尽可能好。不知道如何使 Python 代码看起来不错 - 有什么技巧吗?:) Anywho - 主要问题:

我目前正在从 SC-FDM(A) 调制器开始模拟 LTE 的上行链路。现在,“第一版”是用 Python 实现的 OFDM 调制器,基本上:

import numpy as np  

import numpy.fft as npf

numSymbols = 12*10 # 10 resource blocks, each containing 12 subcarriers.   FFTsize = 1024

tmp1 = np.array(np.random.randint(0,2,numSymbols))*2-1   tmp2 = np.array(np.random.randint(0,2,numSymbols))*2-1

inputSymbols = (np.array(tmp1) + 1j*np.array(tmp2))/np.sqrt(2) # QPSK modulation

TxSamples = npf.ifft(inputSymbols,FFTsize) # Zero-padded IFFT.

TxSamples 是一些随机二进制输入的 OFDM 调制信号。由于补零,子载波映射在 IFFT 中是隐含的。

我的问题是 LTE 上行链路使用与 DC 相关的半个子载波偏移。我的实现是建立在 IFFT 中的每个条目的间隔为 15kHz(根据 LTE 所需的子载波间隔)的假设之上的,这也是我在此处此处找到的其他两个实现的情况。

那么,这个半副载波偏移(7.5kHz)如何与仿真结合呢?

如果您需要更多信息,请告诉我 - 真的不知道关于我的问题的信息是多还是少。

提前致谢。

** 更新: **

因此,我尝试通过在样本之间简单地添加一个零来进行频率过采样。这导致我在时域中有一个副本。切掉这个复制品让我回到了起点。

我为了解决这个问题所做的基本上是数学驱动的。从 DFT 的公式可以得出,您可以简单地将输入符号乘以复指数。这将改变频率。Python代码基本上是(覆盖上面示例中的最后一行):

ism = []  
for m in range(len(inputSymbols)):  
    ism += [inputSymbols[m]*np.exp(1j*np.pi*m/FFTsize)]  
TxSamples = npf.ifft(ism,FFTsize)  

这产生了正确的时域表示,没有明确的过采样。验证 scipy 可以用作:

import scipy.signal as sps  
import pylab as pl  

ts1 = sps.resample(TxSamples,len(TxSamples)*2)  
pl.figure(1)  
pl.plot(10*np.log10(abs(npf.fft(ts1))))  

这应该表明信号现在已经过采样了两次,并且频率仓的位置正确,而时域表示没有被破坏。

我想这样可以确保两个域是“相同的”。因为通过简单地在频域中进行过采样,不可能正确地表示时域信号。我不知道 - 这个“被黑”的解决方案似乎有效。但是,总是欢迎善意的更正。

2个回答

为了实现 7.5 kHz 的频移,您必须在系统中的某个点应用过采样。有两种主要方法可以实现这一点:频域或时域。

频域

您可以通过使用 2048 IFFT 并将每隔一个子载波设置为零来简单地在频域中应用额外的零填充。然后,您将所有子载波移动一个频率仓以实现频移。这将保持 15 kHz 的频率间隔,但与 1024 IFFT 相比,每个子载波的带宽将除以 2。

时域

您对 IFFT 输出的时域信号应用两次过采样。这可以通过在每个样本之后填充零样本,然后是低通滤波器或其他一些插值方法来完成。然后可以通过将结果信号乘以来实现频移,其中是归一化为新采样频率(原始采样频率的两倍)的 7.5 kHz,是离散时间。exp(jΩ1n)Ω1n

选择哪种方法取决于您的模拟与硬件实现的接近程度。如果您建模的系统有一些中频振荡器来进行频移,则时域方法可以对此进行建模。但是,如果您的数模转换器足够快,并且您可以以所需的速度实现 2048-IFFT,那么这可能是可行的方法,因此您应该相应地对其进行建模。

使用时域调制在 FFT 之前移动频率:将时域信号与周期为 FFT 帧持续时间 2 倍的复数正弦波相乘。

这将使信号在频域中循环移位 FFT 间隔的 1/2。频谱远端的载波可能会损坏,但在 LTE 中,这些是填充载波。

与过采样和使用更大的 FFT 相比,这可能需要更少的计算。