主要内容

ofdmmod

利用正交频分复用(OFDM)调制频域信号

描述

例子

ofdmSig= ofdmmod (inSymnfftcplen对频域输入数据子载波进行OFDM调制,inSym,使用指定的FFT大小nfft和指定的循环前缀长度cplen.信息,请参阅OFDM调制

例子

ofdmSig= ofdmmod (inSymnfftcplennullidx在执行OFDM调制之前,在频域输入数据信号中插入空子载波。空子载波插入到从1到的索引位置nfft,按nullidx.对于此语法,为输入中的行数inSym必须nfft- - - - - -长度(nullidx.使用空载波来解释保护带和直流子载波。信息,请参阅子载波分配,保护频带和保护间隔

例子

ofdmSig= ofdmmod (inSymnfftcplennullidxpilotidx飞行员在执行OFDM调制之前,在频域输入数据符号中插入空载波和导频子载波。所指定的索引位置插入空子载波nullidx.飞行员副载波,飞行员方法指定的索引位置插入pilotidx.对于此语法,为输入中的行数inSym必须nfft- - - - - -长度(nullidx- - - - - -长度(pilotidx.该函数假设每个OFDM符号和发射天线的导频子载波位置相同。

例子

ofdmSig= ofdmmod (inSymnfftcplen___OvesamplingFactor =值)指定可选的过采样因子名称-值参数,作为以前语法中的输入参数。上采样输出信号的过采样因子必须指定为正标量。此外,产品(2022世界杯八强谁会赢?OversamplingFactor×nfft)和(OversamplingFactor×cplen)的结果都必须是整数。的默认值。OversamplingFactor1

例如,ofdmmod (inSym nfft、cplen OversamplingFactor = 2)对输出信号进行2倍的上采样。

例子

全部折叠

ofdm -在两个发射天线上调制一个完全封装的输入。

初始化输入参数,生成随机数据,并进行OFDM调制。

M = 16;调制顺序为16QAMnfft = 128;%数据运营商数量cplen = 16;%循环前缀长度nSym = 5;%每个正则的符号数元= 2;%发射天线数dataIn = randi([0 M-1],nfft,nSym,nt);qamSig = qammod (dataIn, M,“UnitAveragePower”,真正的);日元= ofdmmod (qamSig nfft cplen);

应用OFDM调制分配空子载波。

初始化输入参数,生成随机数据。

M = 16;调制顺序为16QAMnfft = 64;% FFT长度cplen = 16;%循环前缀长度nSym = 10;%每个正则的符号数nullIdx = [1:6 33 64-4:64]';numDataCarrs = nfft-length (nullIdx);inSym = randi([0 M-1],numDataCarrs,nSym);

QAM调制数据。执行OFDM调制。

qamSig = qammod (inSym, M,“UnitAveragePower”,真正的);outSig = ofdmmod (qamSig nfft、cplen nullIdx);

对输入的频域数据信号进行OFDM调制,改变应用于每个符号的循环前缀长度。

初始化输入参数,生成随机数据。

M = 16;调制顺序为16QAMnfft = 64;Cplen = [4 8 10 7 2 2 4 11 16 3];nSym = 10;nullIdx = [1:6 33 64-4:64]';numDataCarrs = nfft-length (nullIdx);inSym = randi([0 M-1],numDataCarrs,nSym);

QAM调制数据符号并对QAM信号进行OFDM调制。

qamSig = qammod (inSym, M, UnitAveragePower = true);outSig = ofdmmod (qamSig nfft、cplen nullIdx);

对在两个发射天线上进行空间复用的QPSK信号应用OFDM调制。

初始化输入参数,为每个天线生成随机数据。

M = 4;% QPSK的调制顺序nfft = 64;cplen = 16;nSym = 5;元= 2;nullIdx = [1:6 33 64-4:64]';pilotIdx = [12 26 40 54]';numDataCarrs = nfft-length (nullIdx)长度(pilotIdx);飞行员= repmat (pskmod ((0: M - 1)。米),1,nSym, 2);ant1 = randi([0 M-1],numDataCarrs,nSym);ant2 = randi([0 M-1],numDataCarrs,nSym);

QPSK分别为每个天线调制数据。执行OFDM调制。

qpskSig (:: 1) = pskmod (ant1, M);qpskSig (:: 2) = pskmod (ant2, M);日元= ofdmmod (qpskSig nfft、cplen nullIdx, pilotIdx,飞行员);

ofdm调制数据输入,指定null和导频封装。

初始化输入参数,定义空和导频子载波的位置。生成随机数据,对数据应用16-QAM,对导频应用QSPK,并进行OFDM调制。

M = 16;%调制顺序nfft = 64;% FFT长度cplen = 16;%循环前缀长度nSym = 10;%每个正则的符号数nullIdx = [1:6 33 64-4:64]';pilotIdx = [12 26 40 54]';numDataCarrs = nfft-length (nullIdx)长度(pilotIdx);dataSym = randi([0 M-1],numDataCarrs,nSym);qamSig = qammod (dataSym, M, UnitAveragePower = true);飞行员= repmat (pskmod((0:3)。4),1,nSym);y2 = ofdmmod (qamSig nfft、cplen nullIdx, pilotIdx,飞行员);

应用OFDM调制符号。在OFDM网格中插入空值并对输出信号进行过采样。

初始化调制顺序、过采样因子、FFT大小、循环前缀长度和空索引的变量。

M = 64;%调制顺序osf = 3;%过采样因子nfft = 256;% FFT长度cplen = 16;%循环前缀长度Nullidx = [1:6 nfft/2+1 nfft-5:nfft]';numDataCarrs = nfft-length (nullidx);

生成数据符号,应用QAM和ofdm调制数据。

x = randi([0 M-1],numDataCarrs,1);qamSig = qammod (x, M, UnitAveragePower = true);cplen, y = ofdmmod (qamSig nfft nullidx, OversamplingFactor = osf);

输入参数

全部折叠

输入数据子载体,指定为ND——- - - - - -N信谊——- - - - - -NT数组的符号。数据子载波的数量,ND,必须等于nfft- - - - - -长度(nullidx- - - - - -长度(pilotidxN信谊为每个发射天线的OFDM符号数,NT发射天线数。

OFDM调制器的输入数据符号通常由基带数字调制器创建,例如qammod

数据类型:|
复数的支持:是的

FFT长度,指定为大于或等于8的整数。nfft相当于调制过程中使用的子载波的数量。

数据类型:

循环前缀长度,指定为标量或长度的行向量N信谊

  • 当你指定cplen作为一个标量,循环前缀长度对于通过所有天线的所有符号都是相同的。

  • 当你指定cplen作为长度的行向量N信谊,循环前缀长度可以在符号之间变化,但在所有天线中保持相同的长度。

有关更多信息,请参见子载波分配,保护频带和保护间隔

数据类型:

空子载波位置的索引,指定为元素值从1到的列向量nfft

数据类型:

导频子载波位置的索引,指定为元素值从1到的列向量nfft

数据类型:

引航副载波,指定为N飞行员——- - - - - -N信谊——- - - - - -NT数组的符号。N飞行员一定等于的长度pilotidxN信谊为每个发射天线的OFDM符号数。NT发射天线数。该函数假设每个OFDM符号和发射天线的导频子载波位置相同。使用comm.OFDMModulator通过OFDM符号或天线改变导频子载波位置。

数据类型:|

输出参数

全部折叠

调制的OFDM符号,作为复杂符号的二维数组返回。

  • 如果cplen是一个标量,数组大小为((nfft+cplenN信谊)———NT

  • 如果cplen是行向量,数组大小为((nfft×N信谊) +总和cplen))———NT

    N信谊每个发射天线的符号数量和NT发射天线数。

数据类型:|
复数的支持:是的

更多关于

全部折叠

OFDM调制

OFDM属于多载波调制方案的一类。由于多个数据流可以通过多个载波同时传输,因此OFDM不像单载波调制那样受噪声的影响大。

OFDM操作通过将传输频带分解,将高速率数据流分成低速率数据流N连续的单独调制子载波。多个平行和正交的子载波携带与宽带通道几乎相同的带宽的样本。通过使用窄正交子载波,OFDM信号在频率选择性衰落信道上获得了鲁棒性,并消除了相邻子载波干扰。码间干扰(ISI)被减少,因为较低的数据速率子流的符号持续时间大于信道延迟扩展。

此图像显示OFDM波形中正交子载波的频域表示。

发射机采用快速傅里叶逆变换(IFFT)N一次用符号。通常,IFFT的输出是N正交正弦曲线:

x t k 0 N 1 X k e j 2 π k Δ f t 0 t T

, {Xk}为数据符号,和T为OFDM符号时间。数据符号Xk通常是复杂的,可以来自任何数字调制字母表(例如,QPSK, 16-QAM, 64-QAM,…)

请注意

MATLAB®离散傅里叶变换的实现将IFFT的输出归一化1/N.有关更多信息,请参见向量的离散傅里叶变换传输线参考页面。

子载波间距为Δf= 1 /T,确保子载波在每个符号周期上正交,如下图所示:

1 T 0 T e j 2 π Δ f t e j 2 π n Δ f t d t 1 T 0 T e j 2 π n Δ f t d t 0 n

OFDM调制器由串行到并行转换和一组N复杂调制器,分别对应于每个OFDM子载波。

子载波分配,保护频带和保护间隔

每个OFDM子载波被分配为数据子载波、导频子载波或空子载波。

如图所示,子载波被指定为数据子载波、直流子载波、导频子载波或保护带子载波。

  • 数据子载波传输用户数据。

  • 导频子载波用于信道估计。

  • 空子载波不传输数据。没有数据的子载波被用来提供一个DC null,并作为OFDM资源块之间的缓冲区。

    • 零直流子载波是频带的中心,其索引值为(nfft/2 + 1)如果nfft是偶数,或(nfft+ 1) / 2) ifnfft是奇数。

    • 保护带在相邻频带的相邻信号之间提供缓冲,以减少频谱泄漏造成的干扰。

空子载波使您能够为特定标准建模保护带和DC子载波位置,例如各种802.11格式、LTE、WiMAX或自定义分配。可以通过分配空子载波索引的向量来分配空值的位置。

与保护频带类似,OFDM中也使用了保护间隔,通过减少码间干扰来保护传输信号的完整性。

保护间隔的分配类似于保护频带的分配。您可以建模保护间隔来提供OFDM符号之间的时间分离。保护间隔有助于在信号通过时间色散通道后保持符号间的正交性。通过使用循环前缀来创建保护间隔。循环前缀插入将OFDM符号的最后一部分复制为OFDM符号的第一部分。

只要时间分散的跨度不超过循环前缀的持续时间,就可以保持循环前缀插入的好处。

由于循环前缀占用了可用于数据传输的带宽,因此插入循环前缀会导致用户数据吞吐量的小幅降低。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

介绍了R2018a

Baidu
map