comm.OFDMDemodulator
使用OFDM解调方法
描述
的comm.OFDMDemodulator
系统对象™解调时域信号通过使用正交频分复用(OFDM)的方法。有关更多信息,请参见OFDM解调。输出是输入的基带表示comm.OFDMModulator
伴星。
一个OFDM解调信号:
创建
comm.OFDMDemodulator
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
语法
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
FFTLength
- - - - - -FFT点数
64年
(默认)|正整数
数量的快速傅里叶变换(FFT)点,指定为一个积极的,整数标量。FFT的长度必须大于或等于8,相当于副载波的数量。
NumGuardBandCarriers
- - - - - -数量的副载波分配给左、右后卫
[6;5]
(默认)|2×1整数向量
数量的副载波分配给左、右后卫乐队,指定为一个2×1整数向量。左派和右派的数量保护带副载波,NleftG;NrightG),必须在[0,⌊NFFT/ 2⌋−1),NFFT副载波的总数在指定的OFDM信号FFTLength
。有关更多信息,请参见副载波分配、保护频带和保护间隔。
RemoveDCCarrier
- - - - - -选择删除直流副载波
假
或0
(默认)|真正的
或1
选择删除零直流副载波,指定为一个数字或逻辑0
(假
)或1
(真正的
)。零直流副载波的中心频带,索引值:
(NFFT/ 2)+ 1时NFFT是偶数。
(NFFT+ 1)/ 2NFFT是奇数。
NFFT副载波的总数在指定的OFDM信号FFTLength
。
PilotOutputPort
- - - - - -选择试点副载波输出
假
或0
(默认)|真正的
或1
选择输出飞行员副载波,指定为一个数字或逻辑0
(假
)或1
(真正的
)。当你将此属性设置为:
假
飞行员信息可能存在但仍嵌入到输出数据。真正的
——对象分离飞行员副载波,通过指定PilotCarrierIndices
从输出数据,并输出控制信号解调技术飞行员
输出变量。
PilotCarrierIndices
- - - - - -指数的飞行员副载波的位置
[12;26日;40;54)
(默认)|列向量|矩阵|三维数组
指数的飞行员副载波位置,指定为一个列向量,矩阵,或与integer-element 3 d数组值的范围
在哪里NFFT指定的副载波的总数吗FFTLength
,NleftG和NrightG指定的左和右后卫乐队吗NumGuardBandCarriers
。
你可以分配N飞行员导频指数相同或不同N信谊每个符号的副载波,NT发射天线。
当飞行员指标是相同的每一个符号和传输天线,属性维度N飞行员1。
当飞行员指数不同符号,属性维度N飞行员——- - - - - -N信谊。
如果跨多个发射天线,接收信号分配一个符号属性维度N飞行员-by-1-by -NT。
如果指数不同符号和发射天线的数量,属性维度N飞行员——- - - - - -N信谊——- - - - - -NT。
提示
最小化跨多个发射天线之间的干扰传输,每个符号的试验指标必须相互不同的天线。
依赖关系
适用于当您设置这个属性PilotOutputPort
来1
。
CyclicPrefixLength
- - - - - -循环前缀的长度
16
(默认)|正整数|行向量
每个OFDM符号的循环前缀的长度,指定为一个积极的,整数标量或行向量包含NumSymbols
元素。当你循环前缀长度指定为:
标量的循环前缀长度是相同的所有符号通过天线。
行向量——循环前缀的长度可能不同符号但不不同天线。
OversamplingFactor
- - - - - -过采样因子
1
(默认)|积极的标量
过采样因素,指定为一个积极的标量。过采样因子必须满足这些约束条件:
(
OversamplingFactor
×FFTLength
)必须是一个整数值。(
OversamplingFactor
×CyclicPrefixLength
)必须是一个整数值。
提示
如果你将过采样因子设置为一个无理数,指定部分的价值。例如,FFT长度12
和过采样因子4/3
他们的产品是整数16
。然而,舍入4/3
来1.333
当设置过采样因素导致noninteger产品15.9960
,从而导致一个代码错误。
数据类型:双
NumSymbols
- - - - - -数量的OFDM符号
1
(默认)|正整数
OFDM符号的时频网格数量,指定为一个积极的,整数标量。
NumReceiveAntennnas
- - - - - -接收天线数
1(默认)|正整数
的接收天线接收OFDM调制信号,指定为一个积极的,整数标量小于或等于64年
。
使用
描述
(
分离了Y
,飞行员
)= ofdmDemod (X
)飞行员
在指定的副载波信号PilotCarrierIndices
属性值。要启用这种语法,设置PilotOutputPort
属性为true。
输入参数
X
- - - - - -OFDM-modulated基带信号
矩阵
OFDM-modulated基带信号,指定为一个(NCPTotal+NFFT×N信谊)———NR矩阵。
NCPTotal代表了循环前缀长度超过所有的符号。
NCP代表了循环前缀长度决定的
CyclicPrefixLength
。当
CyclicPrefixLength
是一个标量,NCPTotal=NCP×N信谊。当
CyclicPrefixLength
是一个行向量,NCPTotal=∑NCP。
NFFT代表副载波的数量,取决于
FFTLength
。N信谊代表符号的数量,取决于
NumSymbols
。NR代表接收天线的数量,取决于
NumReceiveAntennnas
。
您可以确定使用的维度信息
对象的功能。
输出参数
Y
——输出基带信号
矩阵| 3 d数组
输出基带信号,作为一个矩阵或返回N数据——- - - - - -N信谊——- - - - - -NR数组中。输出时减少一个矩阵NR是1
。
N数据是副载波数量的数据。有关更多信息,请参见
信息
对象的功能。N信谊符号的数量,是指定的吗
NumSymbols
。NR接收天线的数量,是指定的吗
NumReceiveAntennnas
。
有关更多信息,请参见副载波分配、保护频带和保护间隔。
数据类型:双
复数的支持:金宝app是的
飞行员
——控制信号
三维数组
控制信号,作为一个返回N飞行员——- - - - - -N信谊——- - - - - -NR数组中。
N飞行员是飞行员副载波的数量在每个符号,是指定的吗
大小
(PilotCarrierIndices
,1
)。N信谊符号的数量,是指定的吗
NumSymbols
。NR接收天线的数量,是指定的吗
NumReceiveAntennnas
。
依赖关系
返回此输出,设置PilotOutputPort
财产真正的
。
数据类型:双
复数的支持:金宝app是的
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
例子
创建和修改OFDM解调器
创建一个OFDM解调器系统对象™使用默认属性。修改一些属性。检查对象配置使用信息
对象的功能。
ofdmDemod = comm.OFDMDemodulator
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:假CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 1 NumReceiveAntennas: 1
信息(ofdmDemod)
ans =结构体字段:InputSize: 80年[1]DataOutputSize: [53 1]
修改副载波的数量、符号和接收天线。也使飞行员的输出。
ofdmDemod。FFTLength=128; ofdmDemod.PilotOutputPort = 1; ofdmDemod.NumSymbols = 2; ofdmDemod.NumReceiveAntennas = 2;
验证数量的副载波和符号的数量改变。再考察维度通过使用输入和输出信号信息
对象的功能。注意的飞行员输出维度的信息结构。因为接收天线的数量大于1,数据和飞行员输出尺寸是3 d数组而不是矩阵。
ofdmDemod
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 128 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:真正的PilotCarrierIndices: x1双[4]CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 2 NumReceiveAntennas: 2
信息(ofdmDemod)
ans =结构体字段:InputSize (288 2): DataOutputSize: [113 2 2] PilotOutputSize: [4 2 2]
从OFDM调制器创建OFDM解调器
创建解调器通过使用配置的调制器确保一对匹配的调制器和解调器。
创建一个指定四发射天线OFDM调制器。
ofdmMod = comm.OFDMModulator (NumTransmitAntennas = 4);
使用OFDM调制器创建OFDM解调器。
ofdmDemod = comm.OFDMDemodulator (ofdmMod);
显示OFDM调制器和解调器的性质,验证适用的属性匹配。发射天线的数量是独立的接收天线。
ofdmMod
ofdmMod = comm.OFDMModulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]InsertDCNull:假PilotInputPort:假CyclicPrefixLength: 16个窗口:假OversamplingFactor: 1 NumSymbols: 1 NumTransmitAntennas: 4
ofdmDemod
ofdmDemod = comm.OFDMDemodulator属性:FFTLength: 64 NumGuardBandCarriers: [2 x1双]RemoveDCCarrier:假PilotOutputPort:假CyclicPrefixLength: 16 OversamplingFactor: 1 NumSymbols: 1 NumReceiveAntennas: 1
可视化时频资源分配
的showResourceMapping
目标函数显示了时频资源映射为每个传输天线。
创建一个OFDM解调器。
解调= comm.OFDMDemodulator;
通过使用显示OFDM子载波映射showResourceMapping
对象的功能。
showResourceMapping(解调)
删除直流副载波。
解调。RemoveDCCarrier = true;
显示资源映射后删除直流副载波。
showResourceMapping(解调)
解调OFDM数据
创建一个OFDM调制器直流零插入,七保护带副载波,和两个符号为每个符号有不同的试验指标。
ofdmMod = comm.OFDMModulator (…NumGuardBandCarriers = [4;3),…PilotInputPort = true,…PilotCarrierIndices =猫(2 [12;26日;40;54]、[11;27个;39;55]),…NumSymbols = 2,…InsertDCNull = true);
确定输入数据,飞行员,和输出数据的维度。
modDim = info (ofdmMod)
modDim =结构体字段:DataInputSize: 52 [2] PilotInputSize: 2 [4] OutputSize: 160 [1]
OFDM调制器产生随机数据符号。确定数量的数据符号使用结构变量,modDim
。
dataIn =复杂(…randn (modDim.DataInputSize) randn (modDim.DataInputSize));
创建一个控制信号,有正确的维度。
pilotIn =复杂(…兰特(modDim.PilotInputSize),兰德(modDim.PilotInputSize));
应用OFDM调制数据和试验信号。
modSig = ofdmMod (dataIn pilotIn);
使用OFDM调制器对象创建相应的OFDM解调器。
ofdmDemod = comm.OFDMDemodulator (ofdmMod);
解调的OFDM信号和输出数据和试验信号。
[dataOut, pilotOut] = ofdmDemod (modSig);
验证输入数据和飞行员符号匹配输出数据和飞行员符号。
isSame = (max (abs ([dataIn (:)——dataOut (:);…pilotIn (:)——pilotOut(:)))) < 1平台以及)
isSame =逻辑1
Oversample和过滤OFDM信号通过输出通道
过滤的OFDM调制信号数据和飞行员输入和输出时生成的四倍采样率通过对于单通道的输出。解调channel-filtered信号和原始数据比较。
创建一个OFDM解调器对象有三个不同符号和飞行员副载波指数和循环前缀长度为每个符号。
ofdmDemod = comm.OFDMDemodulator (…NumGuardBandCarriers = (9。8),…RemoveDCCarrier = true,…PilotOutputPort = true,…PilotCarrierIndices =[[12、26、40; 54],[14; 28, 38岁,52],[12、26、40;54]],…CyclicPrefixLength = [16 32],…OversamplingFactor = 4,…NumSymbols = 3);
创建一个OFDM调制器系统对象从OFDM解调器对象,ofdmDemod
。
ofdmMod = comm.OFDMModulator (ofdmDemod);
显示配置的副载波资源映射数据,飞行员,保护带和零信号使用showResourceMapping
对象的功能。获得通过使用输入和输出维度信息信息
对象的功能。
showResourceMapping (ofdmDemod);
modDim = info (ofdmMod);
创建随机数据和飞行员输入和应用QAM调制。
M = 16;xd =兰迪([0 m - 1], modDim.DataInputSize);dataIn = qammod (xd, M, UnitAveragePower = true);xp =兰迪([0 m - 1], modDim.PilotInputSize);pilotIn = qammod (xp, M, UnitAveragePower = true);
应用OFDM调制和飞行员QAM信号的数据。通过一个AWGN信道滤波器的信号。恢复数据和飞行员符号,应用OFDM解调,然后QAM-demodulation。
modOut = ofdmMod (dataIn pilotIn);chanOut = awgn (modOut 20“测量”);[dataOut, pilotOut] = ofdmDemod (chanOut);码= qamdemod (dataOut, M, UnitAveragePower = true);yp = qamdemod (pilotOut, M, UnitAveragePower = true);
验证数据和飞行员通过这个过程不变。
码dataSame = isequal (xd)
dataSame =逻辑1
pilotSame = isequal (xp, yp)
pilotSame =逻辑1
算法
OFDM解调
正交频分复用(OFDM)方法一个OFDM解调输入信号通过FFT运算的结果N并行数据流。
图中显示了一个OFDM解调器组成的银行N分配给每个OFDM副载波相关器和一个相关器。parallel-to-serial转换遵循相关器的银行。
副载波分配、保护频带和保护间隔
个人OFDM子载波分配数据,飞行员,或者零副载波。
如下所示,副载波被指定为数据,直流,飞行员,或者保护带副载波。
副载波数据传输用户数据。
飞行员副载波信道估计。
零副载波传送任何数据。副载波没有数据提供一个直流零和作为OFDM资源之间的缓冲块。
零直流副载波频带的中心有一个索引值的(
nfft
/ 2 + 1)nfft
甚至,或(nfft
+ 1)/ 2)nfft
是奇数。卫兵乐队提供缓冲区相邻信号在相邻组合来减少干扰引起的谱泄漏。
零副载波模型使您能够保护频带和直流副载波位置为特定的标准,如各种802.11格式,LTE, WiMAX,或者自定义配置。你可以分配一个向量的位置分配null的零副载波指数。
类似于保护频带,保护间隔保护OFDM的传输信号的完整性,减少码间干扰。
保护间隔分配类似于保护频带的分配。模型可以保护间隔提供时间分离OFDM符号。卫兵保护间隔符号间的正交信号后经过time-dispersive频道。利用循环前缀创建保护间隔。循环前缀插入拷贝一个OFDM符号的最后部分的第一部分OFDM符号。
OFDM受益于使用循环前缀插入只要分散的时间跨度不超过的时间循环前缀。
插入循环前缀的结果减少了部分用户数据吞吐量,因为循环前缀占用带宽,可以用于数据传输。
引用
[1]Dahlman, . . E。,S. Parkvall, and J. Skold.4 g LTE / LTE-Advanced移动宽带.London:爱思唯尔有限公司,2011年版。
[2]安德鲁j·G。,A. Ghosh, and R. Muhamed,WiMAX基础,上台北:普伦蒂斯霍尔,2007。
[3]IEEE标准-2017 - 802.16。”部分16:宽带无线接入系统的空中接口。”March 2018.
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到系统在MATLAB代码生成对象(MATLAB编码器)。
版本历史
介绍了R2014aR2023a:增加了对采金宝app样过密的支持
comm.OFDMDemodulator
现在支持金宝app过采样。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。