OFDM学习、编程实现

先来看一下OFDM的原理图:
OFDM学习、编程实现_第1张图片
上图的过程可以用IFFT实现,IFFT充当的是一个实现子载波正交的作用,具体可以推导其DFT公式。
Matlab中有一个实现5G OFDM的函数,可以帮助我们理解OFDM的原理。
官方的使用方法有以下三种:

[waveform,info] = nrOFDMModulate(carrier,grid)
[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot)
[waveform,info] = nrOFDMModulate(___,Name,Value)
  1. [waveform,info] = nrOFDMModulate(carrier,grid)
    我们先看第一种方式,他有两个参数,carrier(载波)和grid(网格),Matlab中对这种用法的描述如下:
    [waveform,info] = nrOFDMModulate(carrier,grid) generates waveform, a time-domain waveform, by performing orthogonal frequency-division multiplexing (OFDM) modulation of carrier resource array grid for carrier configuration parameters carrier. The function also returns info, a structure containing OFDM information.
    翻译过来就是说,这个函数用来产生一个ofdm调制的时域信号,输入的参数有载波资源网格和载波配置参数,这个函数同时也能返回一个包含有ofdm信息的结构体。
    相信很多人看完后和我还是一样很懵,但是,我们可以知道两个重要信息:1.资源网格;2.载波。这两个是很重要的参数,花开两朵,各表一枝。我们逐个击破。Matlab中给出了一个例子,我把它拿来看看,跑一跑,加深以下理解。
    咱们逐行运行一下它的程序:
carrier = nrCarrierConfig('SubcarrierSpacing',30,'NSizeGrid',24);%设置载波配置参数,指定载波资源阵列中30 kHz的子载波间隔和24个资源块(RB)。

一个RB包含了12个子载波。运行完之后在matlab中生成了一个结构体:
OFDM学习、编程实现_第2张图片
可以看到,每个Slot有14个符号,每个子帧有两个Slot,每帧有10个子帧。
再往下运行:

你可能感兴趣的:(信号处理,学习,matlab,开发语言)