主要内容gydF4y2Ba

comm.IQImbalanceCompensatorgydF4y2Ba

补偿I/Q不平衡gydF4y2Ba

描述gydF4y2Ba

的gydF4y2BaIQImbalanceCompensatorgydF4y2Ba系统对象™补偿被调制信号的同相分量和正交分量之间的不平衡。gydF4y2Ba

为了弥补I/Q不平衡:gydF4y2Ba

  1. 定义和设置gydF4y2BaIQImbalanceCompensatorgydF4y2Ba对象。看到gydF4y2Ba建设gydF4y2Ba.gydF4y2Ba

  2. 调用gydF4y2Ba一步gydF4y2Ba的特性来补偿I/Q不平衡gydF4y2Bacomm.IQImbalanceCompensatorgydF4y2Ba.的行为gydF4y2Ba一步gydF4y2Ba特定于工具箱中的每个对象。gydF4y2Ba

I/Q不平衡补偿器固有的自适应算法兼容M-PSK、M-QAM和OFDM调制方案,其中gydF4y2BaM > 2gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

补偿器的输出可以缩放和旋转,即相对于参考星座乘以一个复数。在实践中,这不是一个问题,因为接收器在通过使用信道估计解调之前纠正了这个问题。gydF4y2Ba

请注意gydF4y2Ba

从R2016b开始,不要使用gydF4y2Ba一步gydF4y2Ba方法来执行System对象™定义的操作,您可以调用带有参数的对象,就像它是一个函数一样。例如,gydF4y2Bay =步骤(obj, x)gydF4y2Ba和gydF4y2Bay = obj (x)gydF4y2Ba执行相同操作。gydF4y2Ba

建设gydF4y2Ba

H = comm.IQImbalanceCompensatorgydF4y2Ba创建补偿器系统对象,gydF4y2BaHgydF4y2Ba,用于补偿输入信号的同相分量和正交分量之间的不平衡。gydF4y2Ba

H = comm.IQImbalanceCompensator (gydF4y2Ba的名字gydF4y2Ba,gydF4y2Ba价值gydF4y2Ba)gydF4y2Ba创建I/Q不平衡补偿器对象,gydF4y2BaHgydF4y2Ba,每个指定属性gydF4y2Ba的名字gydF4y2Ba设置为指定的gydF4y2Ba价值gydF4y2Ba.您可以按任意顺序指定附加的名称-值对参数,如(gydF4y2BaName1gydF4y2Ba,gydF4y2BaValue1gydF4y2Ba、……gydF4y2Ba以gydF4y2Ba,gydF4y2Ba家gydF4y2Ba).gydF4y2Ba

属性gydF4y2Ba

CoefficientSourcegydF4y2Ba

补偿器系数来源gydF4y2Ba

指定或gydF4y2Ba从输入信号估计gydF4y2Ba或gydF4y2Ba输入端口gydF4y2Ba.如果gydF4y2BaCoefficientSourcegydF4y2Ba属性设置为gydF4y2Ba从输入信号估计gydF4y2Ba,该补偿器采用自适应算法从输入信号中估计补偿器系数。如果gydF4y2BaCoefficientSourcegydF4y2Ba属性设置为gydF4y2Ba输入端口gydF4y2Ba,则禁用所有其他属性,且补偿器系数必须提供给gydF4y2Ba一步gydF4y2Ba函数作为输入参数。默认值为gydF4y2Ba从输入信号估计gydF4y2Ba.此属性是不可调优的。gydF4y2Ba

InitialCoefficentgydF4y2Ba

用来补偿I/Q不平衡的初始系数gydF4y2Ba

初始系数是一个复标量,可以是单精度或双精度。默认值为gydF4y2Ba0 + 0我gydF4y2Ba.此属性是不可调优的。gydF4y2Ba

StepSizeSourcegydF4y2Ba

系数适应的步长来源gydF4y2Ba

指定或gydF4y2Ba财产gydF4y2Ba或gydF4y2Ba输入端口gydF4y2Ba.如果gydF4y2BaStepSizeSourcegydF4y2Ba被设置为gydF4y2Ba财产gydF4y2Ba的步骤大小gydF4y2BaStepSizegydF4y2Ba财产。否则,将提供步长gydF4y2Ba一步gydF4y2Ba函数作为输入参数。默认值为gydF4y2Ba财产gydF4y2Ba.此属性是不可调优的。gydF4y2Ba

StepSizegydF4y2Ba

适应步长gydF4y2Ba

指定算法在估计I/Q不平衡时使用的步长。此属性仅在以下情况下可访问gydF4y2BaStepSizeSourcegydF4y2Ba被设置为gydF4y2Ba财产gydF4y2Ba.默认值为gydF4y2Ba1 e-5gydF4y2Ba.此属性是可调的。gydF4y2Ba

AdaptInputPortgydF4y2Ba

创建输入端口以控制补偿器系数适应gydF4y2Ba

当此逻辑属性为gydF4y2Ba真正的gydF4y2Ba时,创建一个输入端口,使能或禁止系数适配。如果gydF4y2BaAdaptInputPortgydF4y2Ba是gydF4y2Ba假gydF4y2Ba,每个输出样本后系数更新。默认值为gydF4y2Ba假gydF4y2Ba.此属性是不可调优的。gydF4y2Ba

CoefficientOutputPortgydF4y2Ba

创建端口输出补偿器系数gydF4y2Ba

当此逻辑属性为gydF4y2Ba真正的gydF4y2Ba, I/Q不平衡补偿器系数是通过输出参数的gydF4y2Ba一步gydF4y2Ba函数。默认值为gydF4y2Ba假gydF4y2Ba.此属性是不可调优的。gydF4y2Ba

方法gydF4y2Ba

一步gydF4y2Ba 补偿I / Q不平衡gydF4y2Ba
所有系统对象通用gydF4y2Ba
释放gydF4y2Ba

允许系统对象属性值改变gydF4y2Ba

重置gydF4y2Ba

重置System对象的内部状态gydF4y2Ba

当使用gydF4y2Ba重置gydF4y2Ba,此方法从前面处理过的帧中的最后一个符号重置窗口后缀。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

通过使用comm.IQImbalanceCompensator System对象,减轻幅度和相位不平衡对QPSK调制信号的影响。gydF4y2Ba

创建一个星座图对象。指定名称-值对,以确保星座图只显示最后100个数据符号。gydF4y2Ba

constDiagram = comm.ConstellationDiagram (gydF4y2Ba...gydF4y2Ba“SymbolsToDisplaySource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“SymbolsToDisplay”gydF4y2Ba, 100);gydF4y2Ba

创建一个I/Q不平衡补偿器。gydF4y2Ba

iqImbComp = comm.IQImbalanceCompensator;gydF4y2Ba

生成随机数据符号并应用QPSK调制。gydF4y2Ba

Data = randi([0 3],1e7,1);txSig = pskmod(数据、4π/ 4);gydF4y2Ba

对传输信号应用振幅和相位不平衡。gydF4y2Ba

ampImb = 5;gydF4y2Ba% dBgydF4y2BaphImb = 15;gydF4y2Ba%度gydF4y2BagainI = 10 ^ (0.5 * ampImb / 20);gainQ = 10 ^ (-0.5 * ampImb / 20);imbI =实际(txSig) * gainI * exp (-0.5 * phImb *π/ 180);imbQ = imag(txSig)*gainQ*exp(1i*(pi/2 + 0.5*phImb*pi/180));rxSig = imbI + imbQ;gydF4y2Ba

绘制接收信号星座图。观察接收到的信号经历了振幅和相移。gydF4y2Ba

constDiagram (rxSig)gydF4y2Ba

应用I/Q补偿算法,查看星座。补偿后的信号星座几乎与参考星座对齐。gydF4y2Ba

compSig = iqImbComp (rxSig);constDiagram (compSig)gydF4y2Ba

补偿8-PSK信号上的幅值和相位不平衡gydF4y2Bacomm.IQImbalanceCompensatorgydF4y2Ba带有外部系数的系统对象™。gydF4y2Ba

创建8-PSK调制器和星座图使用名称-值对确保星座图只显示最后100个数据符号,并提供参考星座。gydF4y2Ba

hMod = comm.PSKModulator (8);refC =星座(hMod);hScope = comm.ConstellationDiagram (gydF4y2Ba...gydF4y2Ba“SymbolsToDisplaySource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“SymbolsToDisplay”gydF4y2Ba, 100,gydF4y2Ba...gydF4y2Ba“ReferenceConstellation”gydF4y2Ba, refC);gydF4y2Ba

创建一个I/Q不平衡补偿器对象,该对象带有算法系数的输入端口。gydF4y2Ba

hIQComp = comm.IQImbalanceCompensator (gydF4y2Ba“CoefficientSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba);gydF4y2Ba

生成随机数据符号并应用8-PSK调制。gydF4y2Ba

Data = randi([0 7],1000,1);txSig =步骤(hMod、数据);gydF4y2Ba

对传输信号应用振幅和相位不平衡。gydF4y2Ba

ampImb = 5;gydF4y2Ba% dBgydF4y2BaphImb = 15;gydF4y2Ba%度gydF4y2BagainI = 10 ^ (0.5 * ampImb / 20);gainQ = 10 ^ (-0.5 * ampImb / 20);imbI =实际(txSig) * gainI * exp (-0.5 * phImb *π/ 180);imbQ = imag(txSig)*gainQ*exp(1i*(pi/2 + 0.5*phImb*pi/180));rxSig = imbI + imbQ;gydF4y2Ba

绘制接收信号星座图。观察接收到的信号经历了振幅和相移。gydF4y2Ba

步骤(hScope rxSig);gydF4y2Ba

使用gydF4y2Baiqimbal2coefgydF4y2Ba函数确定补偿系数给定的振幅和相位不平衡。gydF4y2Ba

compCoef = iqimbal2coef (ampImb phImb);gydF4y2Ba

将补偿系数应用于接收信号gydF4y2Ba一步gydF4y2Ba的函数gydF4y2Bacomm.IQImbalanceCompensatorgydF4y2Ba对象,并查看合成星座。你可以看到,补偿信号星座现在几乎与参考星座对齐。gydF4y2Ba

compSig =步骤(hIQComp rxSig compCoef);步骤(hScope compSig)gydF4y2Ba

在从输入端口设置算法步长时,从64-QAM信号中移除I/Q不平衡,并使外部可获得估计系数。gydF4y2Ba

创建一个星座图对象。使用名称-值对确保星座图只显示最后256个数据符号,设置轴限制,并指定参考星座。gydF4y2Ba

M = 64;refC = qammod (0: M - 1 M);constDiagram = comm.ConstellationDiagram (gydF4y2Ba...gydF4y2Ba“SymbolsToDisplaySource”gydF4y2Ba,gydF4y2Ba“属性”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“SymbolsToDisplay”gydF4y2Ba, 256,gydF4y2Ba...gydF4y2Ba“XLimits”gydF4y2Ba-10年[10],gydF4y2Ba“YLimits”gydF4y2Ba-10年[10],gydF4y2Ba...gydF4y2Ba“ReferenceConstellation”gydF4y2Ba, refC);gydF4y2Ba

创建一个I/Q不平衡补偿器System对象,其中步长被指定为输入参数,估计的系数通过输出端口可用。gydF4y2Ba

iqImbComp = comm.IQImbalanceCompensator (gydF4y2Ba“StepSizeSource”gydF4y2Ba,gydF4y2Ba输入端口的gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“CoefficientOutputPort”gydF4y2Ba,真正的);gydF4y2Ba

生成随机数据符号并应用64-QAM调制。gydF4y2Ba

nSym = 25000;data = randi([0 M-1],nSym,1);txSig = qammod(数据,M);gydF4y2Ba

对传输信号应用振幅和相位不平衡。gydF4y2Ba

ampImb = 2;gydF4y2Ba% dBgydF4y2BaphImb = 10;gydF4y2Ba%度gydF4y2BagainI = 10 ^ (0.5 * ampImb / 20);gainQ = 10 ^ (-0.5 * ampImb / 20);imbI =实际(txSig) * gainI * exp (-0.5 * phImb *π/ 180);imbQ = imag(txSig)*gainQ*exp(1i*(pi/2 + 0.5*phImb*pi/180));rxSig = imbI + imbQ;gydF4y2Ba

绘制接收信号星座图。gydF4y2Ba

constDiagram (rxSig);gydF4y2Ba

指定I/Q不平衡补偿器的步长参数。gydF4y2Ba

stepSize = 1 e-5;gydF4y2Ba

通过输入参数设置步长时,补偿I/Q不平衡。你可以看到,补偿信号星座现在几乎与参考星座对齐。gydF4y2Ba

[compSig, estCoef] = iqImbComp (rxSig stepSize);constDiagram (compSig)gydF4y2Ba

画出估计系数的实值和虚值。你可以看到它们达到稳态解。gydF4y2Ba

情节((1:nSym) / 1000(实际(estCoef),图像放大(estCoef)])网格包含(gydF4y2Ba“符号(千)”gydF4y2Ba) ylabel (gydF4y2Ba的系数值gydF4y2Ba)传说(gydF4y2Ba“真实”的gydF4y2Ba,gydF4y2Ba图像放大的gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

使用外部参数控制I/Q不平衡补偿器的自适应算法。gydF4y2Ba

对随机数据符号应用QPSK调制。gydF4y2Ba

Data = randi([0 3],600,1);txSig = pskmod(数据、4π/ 4,gydF4y2Ba“灰色”gydF4y2Ba);gydF4y2Ba

创建一个I/Q不平衡补偿器,其中自适应算法通过输入端口控制,步长通过gydF4y2BaStepSizegydF4y2Ba属性,并且通过输出端口提供估计的系数。gydF4y2Ba

iqImbComp = comm.IQImbalanceCompensator (gydF4y2Ba“AdaptInputPort”gydF4y2Ba,真的,gydF4y2Ba...gydF4y2Ba“StepSize”gydF4y2Ba, 0.001,gydF4y2Ba“CoefficientOutputPort”gydF4y2Ba,真正的);gydF4y2Ba

对传输信号应用振幅和相位不平衡。gydF4y2Ba

ampImb = 5;gydF4y2Ba% dBgydF4y2BaphImb = 15;gydF4y2Ba%度gydF4y2BagainI = 10 ^ (0.5 * ampImb / 20);gainQ = 10 ^ (-0.5 * ampImb / 20);imbI =实际(txSig) * gainI * exp (-0.5 * phImb *π/ 180);imbQ = imag(txSig)*gainQ*exp(1i*(pi/2 + 0.5*phImb*pi/180));rxSig = imbI + imbQ;gydF4y2Ba

将补偿操作分解为三个部分,其中补偿器对前200个符号启用,对后200个符号禁用,对后200个符号启用。将系数数据保存为三个向量。gydF4y2Ba

[~, estCoef1] = iqImbComp (rxSig(1:200),真的);[~, estCoef2] = iqImbComp (rxSig(201:400),假);[~, estCoef3] = iqImbComp (rxSig(401:600),真的);gydF4y2Ba

串联复杂算法系数,并绘制其实部和虚部。gydF4y2Ba

estCoef = [estCoef1;estCoef2;estCoef3];plot((1:600)',[real(estCoef) imagag (estCoef)])) grid xlabel(gydF4y2Ba“符号”gydF4y2Ba) ylabel (gydF4y2Ba的系数值gydF4y2Ba)传说(gydF4y2Ba“真实”的gydF4y2Ba,gydF4y2Ba“虚”gydF4y2Ba,gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)gydF4y2Ba

Figure包含一个轴对象。坐标轴对象包含两个类型为line的对象。这些物体代表真实和想象。gydF4y2Ba

观察,系数不适应期间,补偿器是禁用的。gydF4y2Ba

算法gydF4y2Ba

影响直接转换接收机的主要缺陷之一是接收信号的同相分量和正交分量之间的不平衡。与其改进前端模拟硬件,不如先容忍一定程度的I/Q不平衡,然后再实施补偿方法。I/Q不平衡补偿器采用基于圆的盲补偿算法。gydF4y2Ba

给出了一个广义I/Q不平衡模型,其中gydF4y2BaggydF4y2Ba振幅不平衡和gydF4y2BaϕgydF4y2Ba相位不平衡(理想情况下,gydF4y2BaggydF4y2Ba= 1gydF4y2Ba和gydF4y2BaϕgydF4y2Ba= 0gydF4y2Ba).在图中,gydF4y2BaH (f)gydF4y2Ba是分支的标称频率响应,例如,低通滤波器。gydF4y2BaHgydF4y2Ba我gydF4y2Ba(f)gydF4y2Ba和gydF4y2BaHgydF4y2Ba问gydF4y2Ba(f)gydF4y2Ba表示同相和正交振幅和相位响应中与标称响应不同的部分。与完美的匹配,gydF4y2BaHgydF4y2Ba我gydF4y2Ba(f)gydF4y2Ba=gydF4y2BaHgydF4y2Ba问gydF4y2Ba(f)gydF4y2Ba= 1gydF4y2Ba.gydF4y2Ba

让gydF4y2Baz (t)gydF4y2Ba为接收信号的理想基带等效信号,gydF4y2Bar (t)gydF4y2Ba式中,其傅里叶变换记为gydF4y2BaZ (f)gydF4y2Ba.根据广义I/Q不平衡模型,不平衡信号的傅里叶变换,gydF4y2Bax (t)gydF4y2Ba=gydF4y2BaxgydF4y2Ba我gydF4y2Ba(t)gydF4y2Ba+gydF4y2BaxgydF4y2Ba问gydF4y2Ba(t)gydF4y2Ba,是gydF4y2Ba

XgydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba GgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ZgydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba +gydF4y2Ba GgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ZgydF4y2Ba *gydF4y2Ba (gydF4y2Ba −gydF4y2Ba fgydF4y2Ba )gydF4y2Ba

在哪里gydF4y2BaGgydF4y2Ba1gydF4y2Ba(f)gydF4y2Ba和gydF4y2BaGgydF4y2Ba2gydF4y2Ba(f)gydF4y2Ba为I/Q不平衡的直接分量和共轭分量。这些组件定义为gydF4y2Ba

GgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba [gydF4y2Ba HgydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba +gydF4y2Ba HgydF4y2Ba 问gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ggydF4y2Ba 经验值gydF4y2Ba (gydF4y2Ba −gydF4y2Ba jgydF4y2Ba ϕgydF4y2Ba )gydF4y2Ba ]gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba GgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba =gydF4y2Ba [gydF4y2Ba HgydF4y2Ba 我gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba +gydF4y2Ba HgydF4y2Ba 问gydF4y2Ba (gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ggydF4y2Ba 经验值gydF4y2Ba (gydF4y2Ba jgydF4y2Ba ϕgydF4y2Ba )gydF4y2Ba ]gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba

应用傅里叶反变换gydF4y2BaX (f)gydF4y2Ba,则信号模型为gydF4y2Bax (t)gydF4y2Ba=gydF4y2BaggydF4y2Ba1gydF4y2Ba(t)gydF4y2Ba*gydF4y2Baz (t)gydF4y2Ba+gydF4y2BaggydF4y2Ba2gydF4y2Ba(t)gydF4y2Ba*gydF4y2BazgydF4y2Ba*gydF4y2Ba(t)gydF4y2Ba.gydF4y2Ba

这表明补偿器结构如所示,其中离散时间符号是用来表示变量。补偿后的信号表示为gydF4y2Bay (n) =gydF4y2Bax (n)gydF4y2Ba+gydF4y2Ba的天气gydF4y2Ba*gydF4y2Ba(n)gydF4y2Ba.gydF4y2Ba

一个简单的算法形式gydF4y2Ba

{gydF4y2Ba ygydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba =gydF4y2Ba xgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba +gydF4y2Ba wgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba xgydF4y2Ba *gydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba wgydF4y2Ba (gydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba =gydF4y2Ba wgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba −gydF4y2Ba 米gydF4y2Ba ygydF4y2Ba 2gydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba

用于确定权重,因为它确保输出是“适当的”,也就是说,gydF4y2Ba EgydF4y2Ba [gydF4y2Ba ygydF4y2Ba 2gydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba ]gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba [1]gydF4y2Ba.的初始值gydF4y2BawgydF4y2Ba是由gydF4y2BaInitialCoefficientgydF4y2Ba属性,其默认值为gydF4y2Ba0 + 0我gydF4y2Ba.gydF4y2Ba米gydF4y2Ba中的步骤大小是否与gydF4y2BaStepSizegydF4y2Ba财产。gydF4y2Ba

选定的参考书目gydF4y2Ba

[1] Anttila, L., M. Valkama和M. Renfors。“正交无线电接收机中频率选择I/Q不平衡的盲补偿:基于圆的方法”,gydF4y2BaProc。IEEE ICASSPgydF4y2Ba, 2007年pp.iii - 245 - 248。gydF4y2Ba

[2] Kiayani, A., L. Anttila, Y. Zou,和M. Valkama,“缓解OFDM系统中多重射频损伤的先进接收机设计:算法和射频测量”,gydF4y2Ba电气与计算机工程学报gydF4y2Ba卷,2012年。gydF4y2Ba

扩展功能gydF4y2Ba

介绍了R2014bgydF4y2Ba