CN101252561B - 补偿数据信号的第一分量和第二分量间失衡的方法及系统 - Google Patents
补偿数据信号的第一分量和第二分量间失衡的方法及系统 Download PDFInfo
- Publication number
- CN101252561B CN101252561B CN2007101939089A CN200710193908A CN101252561B CN 101252561 B CN101252561 B CN 101252561B CN 2007101939089 A CN2007101939089 A CN 2007101939089A CN 200710193908 A CN200710193908 A CN 200710193908A CN 101252561 B CN101252561 B CN 101252561B
- Authority
- CN
- China
- Prior art keywords
- overbar
- cfo
- frequency
- signal
- equality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及用于补偿I/Q失衡的装置、方法和系统,可包括补偿数据信号的第一分量和该数据信号的第二分量之间的失衡。通过具有频率误差的载波信号可调制该数据信号。可使用至少一参数表征所述第一分量。该方法可包括接收数据和载波信号;选择参数值,以便降低负频率形式的频率能量;和基于所述值,修改至少一所述分量。
Description
技术领域
本发明涉及信息网络,更具体地说,涉及通过通信线路例如同轴电缆,发送信息例如多媒体信息,以形成通信网络。
背景技术
许多建筑物,包括家庭,都有基于同轴电缆的网络。
同轴电缆多媒体联盟(“MoCATM”)在其网站(www.mocalliance.org)上提供了通过同轴电缆联播数字视频和娱乐信息的规范(即,其在MoCA内所使用,并在此全文引用)的一例子。该规范分发给公开注册的用户。
基于MoCA和其它规范的技术、以及相关的技术(“现有的技术”)常常使用同轴电缆上可使用的并且未使用的带宽。例如,在美国,已超过70%的家庭安装了同轴电缆。一些家庭在一个或多个娱乐消耗区域已有现成的同轴电缆,例如家庭活动室、视听室、和主卧室。现有的技术使得屋主可使用已安装的同轴电缆,作为网络系统,并发送具有高服务质量(QoS)的娱乐和信息程序。
现有的技术可提供高速度(270mbps)、高QoS、以及最高级别的封包级加密和屏蔽的有线连接两者所固有的安全性。同轴电缆是设计用于发送高带宽视频。目前,同轴电缆通常用于安全传送数百万美元的按次计费及优质视频内容。基于现有技术的网络可用作多个无线接入点的骨干网,从而扩展无线服务在建筑物内的覆盖范围。
现有的技术通过现有的同轴电缆提供了到达目前安装在家庭中的视频设备所在地的吞吐量,而不影响线缆中的其它服务信号。现有的技术为数字娱乐提供链路,并与别的有线或无线网络保持一致,从而将娱乐流量扩展到整个建筑物。
现有技术与接入技术协同工作,如非对称数字用户线路(“ADSL”)、甚高速率数字用户线(“VDSL”)和光纤到户(“FTTH”),进而提供一般通过双绞线或光纤进入该建筑物的信号,对于ADSL而言,其操作频带从几十万赫兹到8.5M赫兹,而对于VDSL是到12M赫兹。当服务通过任何数字用户线(“xDSL”)或FTTH到达该建筑物时,这些服务可通过现有技术和同轴电缆转发到视频设备。有线电视运营商可通过线缆为该建筑物提供诸如视频、音频和因特网接入等有线功能,并利用在该建筑物中运行的同轴电缆到达该建筑物中的各个有线服务使用设备。一般地,现有技术的功能与有线功能并行,不过是在不同频率上。
建筑物中的同轴电缆设施一般包括同轴电缆、分配器和出口。分配器一般有一个输入和两个或多个输出,用于前向(输入到输出)或后向(输出到输入)传送信号,并将来自不同分配器的输出相隔离,从而防止信号从一个同轴电缆出口流向另一个。进行隔离是非常有用的,因为它可以a)减少来自其它设备的干扰和b)最大化从入口点(“POE”)到出口的功率传输以获得最佳TV接收。
现有技术的部件(elements)被专门用于通过隔离器进行后向传播(“插入”)以及从输出到输出的后向传播(“隔离”)。通过特定“隔离跳”和多个“插入跳”可从建筑物中的一个出口到达另一个。一般隔离跳的衰减为5到40dB,而每个插入跳大约将衰减3dB。MoCATM技术具有55dB盈余的动态范围,同时支持200Mbps的吞吐量。因此,MoCATM技术可通过大量隔离器高效运行。
管理网络策略,诸如MoCATM技术,专门设计用于支持没有数据包丢失的流视频,进而提供出口间的优质视频。
当网络连接设备从网络接收到数据信号时,该信号在下变频为设备基带频率时,常常分解为同相(“I”)和正交(“Q”)分量;当该I和Q分量再组合,以进行数据解密时,它们常常是振幅、相位或两者失衡的。再平衡I和Q分量将涉及计算基于载波频率的频域签名以及I和Q分量的补偿因子。在载波频率不确定的情况下,通过使用数字计算方法,很难分析接收到的信号的频域签名。因此,期望提供在载波频率不确定的情况下使用数字计算方法的补偿信号的系统和方法。
发明内容
一种用于通信网络中在节点补偿I/Q失衡的系统和/或方法,在至少一张附图中进行了描述,并在权利要求中进行了完整的说明。
根据本发明的一个方面,提供一种用于补偿数据信号的第一分量和第二分量之间失衡的方法,所述数据信号具有正值的频率,并通过具有频率误差的载波信号对其进行调制,包括以下步骤:
接收数据和载波信号;
选择时域参数值,以使与负值频率相应的频域能量最小化;和
基于所述值,在时域中修改至少一个所述分量。
优选的,所述的方法进一步包括:
估计与所述载波信号相应的载波信号频率;
估计残余载波频率误差;和
基于所述残余载波频率误差,修改所述载波频率的估计。
优选的,所述修改包括:
为所述分量确定与信号振幅乘法器相应的第一值;和
为所述分量确定与相位偏移相应的第二值。
优选的,所述选择包括:
为第一信号音、第二信号音、以及所述载波信号中的每一个记录第一频域参数和第二频域参数。
优选的,对于所述第一信号音、所述第二信号音、以及所述载波信号,其中至少有一个其所述第一和第二频域参数分别对应于离散值频谱中的第一和第二窗口;
所述第一窗口顺次地邻近所述第二窗口。
优选的,所述的方法进一步包括:发送取决于所述第一和第二频域参数的输出信号。
优选的,所述接收包括:接收正交频分复用(OFDM)符号;和
在所述选择中,所述值对应于所述OFDM符号;和
对于所述OFDM符号,执行所述修改。
优选的,所述接收包括:接收多个正交频分复用(OFDM)符号;
对每一个所述OFDM符号,执行所述选择;和
对每一个所述OFDM符号,执行所述修改。
优选的,所述第一和第二分量,其中一个是同相分量;另一个是正交分量;所述失衡是同相/正交失衡。
根据本发明的一个方面,提供一种可记录与接收到的信号的频率分量相应的复数参数的系统,所述信号携带有至少一个正交频分复用(OFDM)符号,所述参数符合:
具有频率误差的载波频率;
第一信号音;和
第二信号音。
优选的,所述系统还用于估计与所述载波频率、所述第一信号音、以及所述第二信号音中的每一个相应的频率窗口。
优选的,当具有与所述载波频率、所述第一信号音、以及所述第二信号音中的每一个相应的第一和第二复数参数时,所述系统进一步用于:
估计与所述载波频率、所述第一信号音、以及所述第二信号音中的每一个相应的第二频率窗口;
为所述载波频率、第一信号音、以及第二信号音记录所述第一和第二复数参数。
优选的,所述系统进一步用于根据所述载波频率、所述第一信号音、以及所述第二信号音中的每一个的估计值,为所述载波频率、所述第一信号音、以及所述第二信号音,记录所述复数参数;所有的所述估计值相应于单一OFDM符号。
优选的,当所述接收到的信号携带多个OFDM符号时,所述系统进一步可对于每一个所述OFDM符号,估计所述载波频率、所述第一信号音、和所述第二信号音中的每一个的值。
根据本发明的一个方面,提供一种用于补偿第一信号和第二信号之间失衡的系统,该系统包括:
第一模块,用于根据所述第一和第二信号记录第一频域参数、第二频域参数;所述第一频域参数和第二频域参数相应于所述第一信号音、第二信号音、以及载波频率中的每一个;和
第二模块,用于根据所述第一和第二频域参数,计算至少一个时域补偿参数。
优选的,所述系统进一步包括:
第三模块,用于根据所述时域补偿参数,输出经补偿的信号。
优选的,所述至少一个时域补偿参数包括三个时域补偿参数。
优选的,所述载波频率是接收器载波频率;
所述第一和第二信号接收自发送器,所述发送器可使用发送器载波频率发送所述信号;和
由于载波频率偏移,所述接收器和发送器载波频率不同。
优选的,当所述第一和第二频域参数相应于所述第一和第二信号音的其中之一时,
所述第一频域参数对应于离散值频谱中的第一窗口;
所述第二频域参数对应于离散值频谱中的第二窗口;
所述第一窗口邻近所述第二窗口。
优选的,所述第一模块根据所述第一点在频谱中的位置选择所述第二窗口。
优选的,所述第二窗口在频谱中的位置是基于所述偏移的。
优选的,所述第二窗口在频谱中的位置是基于所述偏移,以弧度表示,到Pi弧度。
优选的,当具有残余载波频率偏移,所述第二模块可:
计算残余频率偏移的估计;
基于所述估计,计算所述时域补偿参数。
优选的,当所述第一模块为按时间顺序接收到的多个符号中的每一个记录所述第一和第二频域估计参数时,所述第二模块为第一频率参数计算第一平均值;并为所述第二频域参数计算第二平均值;所述平均值分别基于与所述符号 相应的所述第一和第二频域参数。
优选的,所述第一模块是硬件模块;所述第二模块是软件模块。
优选的,所述第三模块是硬件模块。
优选的,所述第一模块是硬件模块;所述第二模块是硬件模块。
附图说明
通过以下的描述和附图,可以更深入地理解本发明的各种优点、各个方面、创新特征、及其实施例的细节,附图中:
图1是依据本发明原则的所使用的例证性的单或多芯片设备的结构框图;
图2是依据本发明原则的接收器的一部分的例证性的结构框图;
图3是依据本发明原则的接收器的一部分的另一例证性的结构框图;
图4是依据本发明原则的电路的例证性的结构框图;
图5是依据本发明原则的电路的另一例证性的结构框图;
图6是依据本发明原则的例证性的流程图;
图7是依据本发明原则的所处理的例证性的数据包的简图;
图8是依据本发明原则的与信号处理相关的例证性的一部分离散值频谱的示意图;
图9是依据本发明原则的另一电路的例证性结构框图;
图10是依据本发明原则的存储结构的示意图;
具体实施方式
图11是总结作为所使用的窗口的数量的函数的损耗的示意图;
图12是将第一项作为g和θ的函数进行描述的示意图;
图14是在k=249时,对第二项描述的示意图;
图15是累加相位起始位置示意图;
图16是3[dB]振幅失衡、10°相位失衡、200ppm频率偏移、理想信道和没有AWGN的仿真结果示意图;
图17是图16参数下第一次迭代之后的仿真结果示意图;
图18是图16参数下两次迭代之后的仿真结果示意图;
图19是图16参数下三次迭代之后的仿真结果示意图;
图20是图16参数下四次迭代之后的仿真结果示意图;
图21是I/Q平衡的限幅SNR的示意图;
图22是3[dB]振幅失衡、10°相位失衡、200ppm频率偏移、MoCA10408信道和15[dB]AWGN的仿真结果示意图;
图23是图22参数下第一次迭代之后的频率示意图;
图24是图22参数下第一次迭代之后的限幅器输入示意图;
图25是图22参数下第二次迭代之后的频率示意图;
图26是图22参数下第二次迭代之后的限幅器输入示意图;
图27是图22参数下第三次迭代之后的频率示意图;
图28是图22参数下第三次迭代之后的限幅器输入示意图;
图29是限幅器输入示意图;
图30是在TX和RX I/Q失衡下,限幅器输入示意图;
图31是在TX和RX I/Q失衡下,第三次迭代后的频率示意图;
图32是在TX和RX I/Q失衡下,第三次迭代后的限幅器输入示意图;
图33是在TX I/Q失衡下,限幅器输入示意图。
依据本发明原则,提供用于补偿I/Q失衡的装置和方法。该方法包括补偿数据信号的第一分量和该数据信号的第二分量之间的失衡。通过具有频率误差的载波信号调制该数据信号。可通过至少一个参数表征该第一分量。该方法可包括接收数据和载波信号;选择参数值以便降低频域能量;该频域能量相应于负的频率;基于所选择的值,修改至少一分量。
该装置包括一电路,其可记录与接收到的信号的频率分量相应的信号值。该信号携带至少一个正交频分复用(“OFDM”)符号。该信号的值可对应于具有频率误差的载波频率、第一信号音(tone)和第二信号音。
该装置包括一系统,其用于补偿数据信号的第一分量和该数据信号的第二分量。可通过具有频率误差的载波信号调制该数据信号。可通过至少一参数表 征该第一分量。该系统包括用于量化信号值的硬件模块,和用于从该硬件模块接收该信号值的软件模块,其中该信号值相应于数据和载波信号的其中之一。
可通过前述的MoCA规范中所列的MoCA协议探测2(probe2)传输,发送第一和第二信号音。
下面将结合附图1~8及附录A~E对本发明作进一步说明。
图1示出了依据本发明的单或多芯片模块102,其可以是一个或多个集成电路,且位于依据本发明的例证性的数据处理系统100中。数据处理系统100可包括一个或多个如下的部件:I/O电路104、外围设备102、处理器108和存储器110。这些部件可通过系统总线或别的互连112连接在一起,并设置在终端用户系统中的电路板上。模块102的组件可执行涉及I/Q失衡补偿的任务。
在一些实施例中,可在MoCA探测2猝发接收(burst reception)过程中,执行I/Q失衡补偿。探测2是一2-信号音信号,其用于接收器中的I/Q失衡计算或别的RF校准。PHY层执行窗口(bin)选择和记录,所得的结果将上载到CPU,用于I/Q补偿参数的计算。
图2示出例证性的接收器200的一部分的结构框图。接收器200可包括射频(“RF”)处理模块202、时域处理模块204和频域处理模块206。在增益210,接收RF信号208,并进行增益调节。在212,将信号208下变频为基带(“BB”)频率。在212,将人为频率误差(intentional frequency error)213添加到信号208。模数转换器214将信号208转换为以模数采样率采样的数字信号,并将其发送到失衡补偿模块218。I/Q失衡补偿模块218可执行与I/Q补偿相关的步骤。I/Q失衡补偿模块218输出信号209,其对应于等式1(如下)。
信号209发送到可变速率内插器224,该可变速率内插器224以一合适的采样率,对信号209进行再采样。
可变速率内插器224可接收数控振荡器(“NCO”)定时发生器236输出的定时信号237。定时信号237是基于前同步码处理器240输出的载波频率偏移估计(“CFOE”)241。CFOE 241可基于前同步码处理器240估计。内插器224输出信号225,然后其可通过高通滤波器(“HPF”)228,去除直流(“DC”)信号分量。
载波恢复环229可执行对人为频率误差213的频率补偿。载波恢复环可接收NCO频率发生器234的输入,其中NCO频率发生器234由接收器控制器232进行控制。NCO频率发生器234可接收前同步码处理器240输出的载波频率偏移估计241。在CP移除器246,可将循环前缀从信号225去除。
在频域处理模块206中,使用快速傅立叶变换模块298将信号225转换成频域信息(“FFT输出”),其可存储在存储器299中,并发送到探测2软件处理程序250,其可输出修正参数252,以返回给I/Q失衡补偿模块218。
图3示出例证性的接收器300的一部分的结构框图。接收器300可包括射频(“RF”)处理模块302、时域处理模块304和频域处理模块306。在增益310,接收RF信号308,并调节其增益。在312,信号308下变频为基带频率。在312,将人为频率误差313添加到信号308。模数转换器314将信号308为转换数字信号,并将其发送到100MHz FIFO(“先进先出”)缓冲器316。缓冲器316发送信号308到I/Q失衡补偿模块318。I/Q失衡补偿模块318可执行与在此的I/Q补偿相关的步骤。I/Q失衡补偿模块318输出信号309,其对应于等式1(如下)。
信号309可发送到基带模式分层器320。接收器300可包括自动增益控制器322,其可基于信号309给增益310提供反馈。通过分层器320,信号309可发送到Farrow内插器324,其以较低的采样率,对100MHz信号309进行再采样。
Farrow内插器324可接收数控振荡器(“NCO”)定时发生器336输出的定时信号337。定时信号337是基于前同步码控制处理器340输出的载波频率偏移估计341的。载波频率偏移估计341是基于经过前同步码处理器340所发送的TD相位旋转器(下面讨论)的输出。在一些实施例中,内插器324以100MHz输出信号325。经过定时恢复环(未示出),信号325可与发送器时钟(未示出)同步。经过半带滤波器抽取器(“HB DEC2→1”)236,使用因子2,将信号325向下采样为50MHz。然后通过高通滤波器(“HPF”)328,去除信号325的直流(“DC”)信号分量。
时域(“TD”)相位旋转器330可执行对人为频率误差313的频率补偿。 TD相位旋转器可接收NCO频率发生器334的输入,该NCO频率发生器334可由接收器控制器332控制。NCO频率发生器334可接收前同步码处理器340输出的载波频率偏移估计341。信号325然后发送到延迟缓冲器342。在子电路346,可去除循环前缀。在一些实施例中,子电路346可执行接收器开窗操作,以降低窄带干扰噪音的损害,该窄带干扰噪音否则可渗透到相邻的信号音。
在频域处理模块306中,可使用快速傅立叶变换模块398将信号325转换成频域信息,其可发送到探测2计算器350,该探测2计算器350可输出探测2结果352,并发送到I/Q补偿模块318。
一些实施例包括旁路模式,在其中将信号输入路由到I/Q失衡补偿模块318周边的输出。
在一些实施例中,通过数字信号分析和处理可实现I/Q补偿。在这些实施例中,在探测2期间,ζ,ρ和Scale_Q为估计的I/Q补偿参数。
等式1示出补偿信号的补偿实部和虚部,该补偿信号是I/Q补偿模块的输出(见图2)。
等式1
图4示出例证性的电路400,其包括在执行等式1所列的补偿的设备中。
图5示出例证性的电路500,其包括在执行等式1所列的补偿的设备中。附录A列出了等式1所列的补偿的理论基础。附录B示出与在此所描述的装置和方法相联系的示范性的失衡和补偿度量。
[0127] 图6示出用于补偿I/Q失衡的例证性的过程600。过程600涉及硬件(“HW”)和软件(“SW”)操作。初始的硬件操作602的输出是数据组Z(k,m),其是快速傅立叶变换(“FFT”)在对应于探测2的OFDM符号m的窗口k的输出。
[0128] 初始的硬件操作602可包括数控振荡器(“NCO”)相位复位604。确定 FFT窗口的第一样本的相位,该FFT窗口是时域单元(“TDU”)频域补偿的结果。为此,在计算出精确的频率补偿后的任意时间,将接收器TDU中的相位旋转器的NCO相位复位为零。计算NCO复位和FFT窗口的第一样本之间的样本数量(相位累加数量),且定义为Δn,并发送到SW程序。最好是零相位累加(即Δn=0),因为其可降低SW程序的复杂度。对于设置Δn=0,一旦356点FFT窗口的第一样本传输通过TD相位旋转器330(见图3)(因此第一样本将乘以一整数),应复位NCO相位累加器335(位于NCO频率发生器334中一见图3)。
图7示出数据包700、NCO复位、Δn和FFT窗口的开始。
在一些实施例中,窗口选择606(见图6)的执行作为浮点计算,其中i1和i2是频率窗口系数,如等式2进行计算
等式2
其中,CFO/(2π)是发射器和接收器之间的经估计的载波频率偏移,N是FFT窗口的数量(例如256)。
在一些实施例中,窗口选择606(见图6)的执行可作为定点计算。在这些实施例中,CFO是17比特带符号整数,其中‘1’=214。通过与固定阈值比较,计算i1和i2。等式3给出了在定点表示中,FFT栅格(grid)的值:
等式3
其中,Freq_bits可设置为14或任意合适的数字。通过找到最接近2CFO的两个FFT窗口,选择系数i1和i2。
图8示出对应于等式3的决策区域(由于对称仅给出绝对值)。
图9示出用于决策区域边界选择的例证性的硬件(“HW”)的实施。表1 示出例证性的边界值。
表1
等式4定义为标记(sign)操作。
等式4
在一些实施例中,窗口记录(步骤408,见图4)涉及在窗口k1、-k1+i1、-k1+i2、k2、-k2+i1、-k2+i2的16比特FFT输出,然后为每一个LOFDM符号记录该输出。可以理解的是FFT的输出可为任意合适的数量的比特。MoCAFFT中的地址对应于表2所列的窗口。
表2
ADDR:k1 Z[k1,m] k1∈[146,186]
ADDR:k2 Z[k2,m] k2∈[217,249]
[0150] ADDR:256-k1+i1 Z[-k1+i1,m], -k1+i1=256-k1+i1∈[67,113]
ADDR:256-k1+i2 Z[-k1+i2,m], -k1+i2=256-k1+i2∈[66,112]
[0152] ADDR:256-k2+i1 Z[-k2+i1,m], -k2+i1=256-k2+i1∈[4,36]
ADDR:256-k2+i2 Z[-k2+i2,m] -k2+i2=256-k2+i2∈[3,37]
[0154] 图10示出在探测2猝发末端处的例证性的存储图。
在步骤608记录CFO估计(如图6所示)。该估计可为17-比特估计。
等式5
其中,
在一些实施例,可依据等式6,计算残余频率误差补偿和时间平均,其取决于 ,并且附录A列出其导数。
等式6
等式7用于估计I/Q失衡相位估计的值,其使用等式8计算。
等式7
等式8
然后依据等式9计算I/Q失衡补偿参数ξ、ρ和Scale_Q(见例如等式1)。
等式9
[0177] 等式9避免接收器处的饱和,因为ξ总是小于或等于一整数,因此削弱较强的I/Q信号,而不是放大较弱的I/Q信号。在一些实施例中,上述的计算可在几个探测2传输上以迭代方式执行。等式10示出新的相位估计如何用于更新前一估计。
等式10
在等式10中,(ge-jθ)i是在第i探测2传输中所计算的相位估计。一些实施例可包括更新程序,其可使用具有μi∈[0,1]环增益的第一级环。环增益可提供收敛速度和环带宽(“BW”)控制的噪音滤波之间的折衷。在收敛的过程中,环BW动态地改变中可使用变速(gear-shifting)方法。对于快速收敛,在第一2/3迭代过程中,可使用高环BW。对于连续的探测2传输,可使用小环BW。等式11所列的值可用于μii定义为探测2猝发系数。
等式11
[0184] 等式12所列的I/Q补偿参数可在第i探测2接收的过程中使用。
等式12
对于I/Q失衡,3到4个迭代(相当于3到4个探测2传输)常常是足够补偿的。
附录C所列的伪码用于补偿的定点实施。
附录D所列的参数用于I/Q失衡补偿的系统中的硬件-软件接口。
当网络节点处理一个或多个网络协调器(“NC”)输出的探测1猝发时,根据每一信号音和载波频率偏移(相对于一相关的网络协调器),网络节点可获得信噪比(“SNR”)估计。该节点可使用SNR估计告知NC,哪两个窗口中一个用于将探测2发送到该节点。该节点可使用CFO估计计算OFDM符号的数量,及探测2传输过程中循环前缀(“CP”)的长度,并发送到NC。
附录E所列的伪码,用于计算频率偏移引入、CP以及OFDM符号数量的选择。在一些实施例中,附录E所列的探测2、CP以及L算法可在发送MoCATM探测2报告之前和接收器RF发生器引入任意需要的、必要的或人为的载波偏移之后执行。
为了清楚的缘故,前面的描述,包括参数或参数值的特定例子,有时是针对一特定的协议,例如那些标识名称为MoCATM和/或以太网协议。然而,不限于此,本发明可普遍到别的协议和/或数据包协议。所使用的术语是针对一特定的协议,例如其标识为MoCATM或以太网,以描述一特定特点或实施例,但不是特别地用于限制该特点或实施例的范围于该协议;取代通常所使用的术语,并包括每一个在别的协议下所定义的平行和类似的术语。
可以理解的,本发明的软件组件包括程序和数据,如果期望的话,可以ROM(只读存储器)形式,包括CD-ROM、EPROM和EEPROM,进行实施,或可存储在任意合适的计算机可读媒介,例如但不限于各种不同的光盘、各种不同的磁带和RAM。在此描述为软件的组件可选择地、全部或部分地实施在 硬件中,如果期望的话,可使用传统技术。
因此,已对用于补偿I/Q失衡的系统和方法进行了描述。本发明是通过一些实施例进行描述的,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。本发明不仅仅限于如下的权利要求。
附录A
探测2理论
I/Q失衡可模拟为倍增的增益因子,用于I/Q分量的其中之一,也可模拟为相对的相位差。在探测2接收的过程中,MoCA规定:在RF下变频过程中,接收器必须引入频率误差,我们定义该偏移为 。经转换的信号为:
一些代数式可将上述表达为:
在接收器,执行I/Q补偿,I/Q补偿后的信号为:
假设以频率窗口k,发送单一频率,经几个代数过程后的补偿信号为:
信号经过频率补偿,然后经过FFT操作转换到频域。经过几个代数过程后在窗口k和-k的频域信号为:
在没有I/Q失衡的系统中,在负窗口的能量为零。由于I/Q失衡,在负窗口的能量为:
因此,我们的目标是使用ρ,ξ,最小化窗口-k的能量。使用拉格朗日乘数法进行最小化,给出如下等式
解出上面的量
容易得出,这样的选择实际上使得窗口-k的能量等于0,因此完全消除了I/Q失衡的影响。现在,我们的目的是从探测2传输估计出I/Q失衡参数。
I/Q参数估计
因为I/Q失衡破坏了输入的信号,所以其导致了受到破坏的载波频率估计,及受到破坏的信道估计。在I/Q失衡下的信道估计为:
在窗口k和-k,FFT的输出不具有I/Q失衡补偿,但是在频率补偿后,假设ε的频率估计误差为:
载波频率偏移大于50Khz的影响
在载波频率误差出现的情况下,由I/Q失衡所导致的镜像分量(imagecomponent)正好在所发送的信号音的镜像数字频率(-k/N)出现。在载波频率误差(在探测II过程中是强制的)下,I/Q镜像在( )数字频率出现,其中 是标准化的载波频率误差, 在1.5e9Hz=300kkHz下,载波频率误差的范围可在±200ppm之间,而OFDM信号音间隔为50e6/256=195.3kHz。因此,在频域中,镜像分量可落在[-k-3,k+3]的时间间隔之间。对于窗口-k+i,FFT输出为:
以[dB]表示的镜像能量的损耗是用于收集能量的窗口的数量的函数,其为:
最坏的损耗情况是当镜像落在窗口(r=1/(2N))之间。使用最接近镜像的窗口将导致3.9223[dB]的最坏损耗;使用两个窗口导致0.9120[dB]的损耗。图11总结了作为所使用的窗口的数量的函数的损耗。
我们使用2个窗口,似乎是负责度和执行之间合理的折衷。
探测2的FFT处理(单OFDM符号)
为了简单起见,考虑单一OFDM符号,稍后将给出扩展到多OFDM符号。我们已经示出在点k和-k的FFT输出为:
容易看出,每一表达式中包括期望信号项和来自镜像频率的ICI项。现在,我们将示出ICI 项远小于信号项,并可忽略。
[0240] 在窗口k所 引发的ICI,是由于I/Q失衡所导致的镜像信号以 数字频率所产生,其中 且该数字频率不位于FFT删格上。该频率离FFT删格越远 ICI就越大。因为k限制在时间间隔{[146,186],[217,249]},因此,所生成的镜像与期望的信号差别很大,并且以频率 生成的ICI噪音就非常小。为了了解这个,要考虑在窗口k的信号和ICI项之间的比率。我们定义该比率为期望和ICI项之间的SNR,为:
可使用Matlab仿真数字化地执行以上的最小化操作。如图12所示,其将第一项作为g和θ的函数进行描述
容易看出(也可分析出),最小值在自变量时间间隔的边沿,即g=0.5,2和Teta=±10°,因此
当Df=±245Khz时取得最大值,因此
所以,由ICI项所导致的SNR最坏的情况为40.3816[dB]
因此,ICI项最坏为40[dB],小于信号项,所以可以忽略。对负窗口可以进行类似的分析。在忽略ICI项后,在窗口k和-k+i,FFT的输出为:
[0253] Z[k]=hAK1+Wk
Z[-k+i]=h*BiK2+W-k+i
[0255]
因为我们不能估计信道响应h,我们不能解决ge-jθ的线性LS问题,所以我们先从两个负窗口-k+i1和-k+i2,解决hK2 *估计的LS问题
因为探测2是由两个信号音组成,其中一个在k1,另一个在k2,因此根据这两个信号音,平均该结果,得
容易看出
因此其估计为
接着可以计算出I/Q估计
探测2的FFT处理(多OFDM符号)
当我们注意多OFDM符号时,我们需要考虑由残余频率误差ε所导致的相位误差。容易示出第m个OFDM符号相对于第一个的相位为
注意到上式没有考虑采样频率误差,假设其影响很小,所以在整个分析过程中忽略。
如图15所示,从载波频率补偿开始到第一FFT窗口开始,所累加的相位应该考虑到。因为我们的算法是计算Zk和conj(Z-k)之间的比率,所以任意的常数相位项不仅不能删除,而且要将其加倍。
因此,对于第mOFDM符号,在窗口+k、-k+i,FFT输出设为
残余载波频率估计
为了使用从所有L OFDM符号中得出的信息,我们需要补偿残余频率偏移ε,接着为每一个窗口,计算补偿信号的平均数,以降低AWGN方差。因为ε可以足够大,以便在L OFDM符号期间,可发生多次相位缠绕(phasewrapping)。我们提出的如下估计器,其不受相位缠绕的影响(只要在两个连续的样本之间发生一次缠绕,就运用该估计器)
残余频率估计
可通过计算得到残余频率误差估计
其中
残余频率误差和时间平均设为
残余频率补偿和时间平均
使用如上相同的估计器设备,接着可估计矢量ge-jθ,即
简化系数Bi和A
对于实际执行,我们需要简化Bi和A的表达式;通过引入一些近似值,可以实现简化。让我们看
残余频率误差通常小于10khz(7ppm),对这样的一个误差
因此我们可以作如下的近似
对于Bi
因为伴随残余频率误差的频率偏移小于(200+7)ppm,并且在-3≤i≤3,分母中的sin()的自变量是较小的。
对于这样小的角度,简单的线性近似只有很小的误差
因此接着
应此简化的系数为
A=N
附录B
示范性度量
具有200ppm载波和采样频率偏移的理想信道,无AWGN。
图16总结了3[dB]振幅失衡、10°相位失衡、200ppm频率偏移、理想信道和没有AWGN的仿真结果。在调用RX I/Q补偿程序之前,接收器SNR大约为10.1[dB],从图16可以看出。
图16:在取消之前,限幅器(slicer)输入理想信道、无AWGN
在处理第一探测2后,SNR大约为33[dB]。在如下的图17中,可在第一次迭代之前和之后,比较镜像信号(image signal)的大小。
图17:在第一次迭代之后,频率输入理想信道无AWGN
在处理第二探测II之后,SNR大约为39.6[dB]。在如图18中,可在第二次迭代之前和之后,比较镜像信号的大小。在第二次迭代后,该镜像信号不再可见。
图18:在两次迭代之后,频率图理想信道、没有AWGN
在处理第三探测II后,SNR大约为40.6[dB]。
图19:在三次迭代之后,限幅器输入理想信道、没有AWGN
如图20,描述了限幅器SNR,在处理了第四探测II之后,传输SNR显示大约为40.9[dB]
图20:在四次迭代之后,限幅器输入理想信道、没有AWGN
如图21,描述了I/Q平衡的限幅SNR,该SNR大约为41.3[dB]。因此,将该SNR与四次探测II传输后得到的SNR相比,我们推断出,相对于41.3[dB]的本底噪音(noise floor),残余I/Q失衡的表现降低到大约为0.4[dB]。
图21:限幅器输入理想信道、没有AWGN,没有I/Q失衡
下表总结了,在四次迭代中每一次结束之后,I/Q失衡参数估计
迭代次数 | 增益 | Theta[°] | 限幅器SNR[dB] |
True Value | 0.70795 | 10 | 41.3 |
#0 | 1 | 0 | 10.1 |
#1 | 0.71345 | 11.4402 | 33 |
#2 | 0.71103 | 10.3227 | 39.6 |
#3 | 0.70989 | 10.1742 | 40.6 |
#4 | 0.70944 | 10.1358 | 40.9 |
信道MoCA10408、SNR AWGN15[dB]
图22总结了3[dB]振幅失衡、10°相位失衡、200ppm频率偏移、MoCA10408信道和15[dB]AWGN的仿真结果。在调用RX I/Q补偿程序之前,接收器SNR大约为5.1[dB],从下图22可以看出。
图22:在取消之前,限幅器输入MoCA10408信道、15[dB]AWGN SNR
在处理第一探测II之后,SNR大约为9.5[dB]。在图23中,可在第一次迭代之前和之后,比较镜像信号的大小。
图23:在第一次迭代之后,频率图MoCA10408信道、15[dB]AWGN SNR
图24:在第一次迭代之后,限幅器输入、MoCA10408信道、15[dB]AWGNSNR
在处理第二探测II之后,SNR大约为11[dB]。
图25:在第二次迭代之后,频率图、MoCA10408信道、15[dB]AWGN SNR
图26:在第二次迭代之后,限幅器输入、MoCA10408信道、15[dB]AWGNSNR
在第三探测II处理之后,SNR大约为10.6[dB]
图27:在第三次迭代之后,频率图、MoCA10408信道、15[dB]AWGN SNR
图28:在第三次迭代之后,限幅器输入、MoCA10408信道、15[dB]AWGNSNR
当在接收器,I/Q平衡时,SNR大约为11.3[dB],因此,残余I/Q失衡远小于解调器的本底噪音,并且即使在哈希(harsh)信道条件下,估计和补偿算法都是很有用的。
图29:限幅器输入、MoCA10408信道、15[dB]AWGN SNR、没有I/Q失衡
TX和RX I/Q失衡的消除
MoCA所规定的认为频率偏移产生TX和RX I/Q失衡参数的消除,为了显示我们的算法可以在X失衡出现的情况下,估计RX参数,我们仿真结果作如下说明
·TX振幅失衡1[dB]
·TX相位失衡2°
·RX振幅失衡3[dB]
·RX相位失衡10°
·频率偏移20ppm
·信道=理想、没有AWGN
图30:在TX和RX I/Q失衡下,限幅器输入、理想信道、没有AWGN
在三个探测2传输后,SNR大约为21.2[dB]
图31:在TX和RX I/Q失衡下,第三次迭代后,频率图、理想信道、没有AWGN
图32:在TX和RX I/Q失衡下,第三次迭代后,限幅器输入、理想信道、没有AWGN
在3次迭代后,经估计的RX I/Q失衡参数是
参数 | 实值 | 估计 |
G | 0.7071 | 0.70785 |
Θ | 10.0 | 10.2014 |
因此,对参数作了正确的估计,与说明中的SNR相比,其中仅TX失衡出现,大约为21.2[dB]。
图33:在仅仅TX I/Q失衡下,限幅器输入、理想信道、没有AWGN
因此,在TX I/Q失衡出现的情况下,所提出的算法是有用的。
附录C
定点伪码
如下的伪码给出了上述算法的定点实施。注意复变数由字母“c”表示。
Function 1:Probe2Processing
因此,对参数作了正确的估计,与说明中的SNR相比,其中仅TX失衡出现,大约为21.2[dB]。
function[rho,theta,Scale_Q]=Probe2Processing(CFO,cIQparameters_log,i1,i2,N_delta)
if(CFO==0)
CFO=-1;
end
%Residual Frequency Estimation
[cphasor_p,cphasor_m]=Residual_Frequency_Estimation(cIQparameters_log,CFO);
%Residual Frequency Correction
cZ=Residual_frequency_Correction(cIQparameters_log,cphasor_p,cphasor_m);
%Coefficient Computation
[cfB1,cfB2,Scale_ratio]=Coeff_Computation(CFO,i1,i2);
%Phasor Estimation
[cg_exp_mTeta_M_16,Scale_g,scale_inv]=Phasor_Estimation(cZ,cfB1,cfB2,CFO,N_delta,Scale_ratio);
% IQ Coefr Computation
[theta,rho,Scale_Q]=Compensation_Params_Estimation(cg_exp_mTeta_M_16,scale_inv,Scale_g);
表C-1:探测2处理变量定义表
Function 2:Residual_Frequency_Estimation
function[cphasor_p,cphasor_m]=Residual_Frequency_Estimation(cIQParameters_log,CFO)
%TBD Select 1 or 2 according to SNR
cfphasor_64=0;
for i=0:Nsym-2
cfphasor_64=Cmplx_Add_64_32(cfphasor_64,Cmplx_Mult_16_16(cIQparameters_log(i,1),...
conj(cIQparameters_log(i+1,1));
end
%Level control to 16 bit signed
Nphasor_bits=Nfft_out-1;
csphasor=Scale_Complex_64(cfphasor_64,Nphasor_bits);
%Get phasor angle and magnitude
[angle_EfrPhasor]=cordic_SW(csphasor,1);
%Generate′Exp_Vec_p′
fScale=26981; %const 16 bit-round(gcordic)*2^(Nfft_out-1))
csphasor_div=Cmplx_real_div_32_16(csphasor<<(Nfft_out-2)),rPhasor);%32bit complex/16bit real
division
%csphasor_div<+-2^15
cphasor_p_32=(Cmplx_real_mulr_16_16(fScale,csphasor_div))>>(Nfft_out-2);%Scale back to 16bit,
known
cphasor_p=Cmplx_Saturate(cphasor_p_32,Nphasor_bits);
%Compute angle for IQ image rotation(Coridic Preparations)
angle_m=2*CFO*(Nfft+LCP)-angle_Ef; %lrad=2^(Fr_bits-1)
%Generate′Exp_Vec_m′
[cphasor_m tmp]=cordic_SW(angle_m,0);%gives-phasor(angle)
Function 3:Scale_Complex_64
function[csphasor]=Scale_Complex_64(cfphasor_64,Nphasor_bits)
Ceil_Log2_Abs_Real_Cfphasor_64=ceil_log2(abs(real(cfphasor_64)));
Ceil_Log2_Abs_Imag_Cfphasor_64=ceil_log2(abs(imag(cfphasor_64)));
Scale=Nphasor_bits-max(Ceil_Log2_Abs_Real_Cfphasor_64,Ceil_Log2_Abs_Imag_Cfphasor_64);
if(Scale>=0)
csphasor_32=(cfphasor_64<<Scale);
else
csphasor_32=(cfphasor_64>>(-Scale));
end
csphasor=Cmplx_Saturate(csphasor_32,Nphasor_bits);
Function 4:ceil_log2
function[i]=ceil_log2(X)
i=0;
while(X!=0)
X=X>>1;
i=i+1;
end
Function:5:Sign
function[Y]=Sign(X)
y=1;
if(X<0)
y=-1;
end
Function 6:Cmplx_Saturate
function[X_16]=Cmplx_Saturate(X_32,Nbits)
Sign_Real_X_32=sign(real(X_32));
Sign_Imag_X_32=sign(imag(X_32));
Abs_Real_X_32=abs(real(X_32));
Abs_Imag_X_32=abs(imag(X_32));
if(Abs_Real_X_32>=(1<<Nbits))
if(Sign_Real_X_32==1)
X_32.r=(1<<Nbits)-1;
else
X_32.r=-((1<<Nbits)-1);
end
end
if(Abs_Imag_X_32>=(1<<Nbits))
if(Sign_Image_X_32==1)
X_32.i=(1<<Nbits)-1;
else
X_32.i=-((1<<Nbits)-1);
end
end
X_16=X_32; %casting to 16bit
表C-2:Residual_Frequency_Estimation,Scale_Complex_64变量定义表
表C-3:SW CORDIC变量定义
Function 7:Cordic_Pre_Process
function[data_in,X]=Cordic_Pre_Process(data_in,mode)
%********************************************************************************
%Pre Cordic Processing Bring angle to[-pi/2,pi/2]and find Quadrate
%********************************************************************************
if(mode==0)
Npi=0;
Sgn=0;
while(data_in<-QUARTER)
data_in=data_in+(QUARTER<<1);
Npi=1-Npi;
end
while(data_in>QUARTER)
data_in=data_in-(QUARTER<<1);
Npi=1-Npi;
end
X(0)=19898; %
(1/GainCordic)*2^(Ntan-1)
X(1)=0;
if(Npi)
X=-X;
end
else
X=0;
Sgn_real=sign(real(data_in));
Sgn_imag=sign(imag(data_in));
if(Sgn_real==-1)
[0488] data_in=-data_in;
[0489] if(Sgn_imag==1)
X=QUARTER<<1;
else
[0492] X=-(QUARTER<<1);
[0493] end
end
end
表C-4:Cordic_SW,Cordic_Pre_Process变量定义
Function 8:Residual_frequency_Compensation
function[cZ_16]=Residual_frequency_Correction(cIQparameters_log,cphasor_p,cphasor_m)
cdphasor_p=cphasor_p;
cdphasor_m=cphasor_m;
cZ_ACC_64=zeros(1,6);%64bit Acc array(16bit phasor * 16bit FFT output+log2(40)bit for acc>32!!!!)
for i=l:Nsym-1
cZ_ACC_64(1)=Cmplx_Add_64_32(cZ_ACC_64(1),Cmplx_Mult_16_16(cIQparameters_log(i+1,1)
,cphasor_p);
cZ_ACC_64(2)=Cmplx_Add_64_32(cZ_ACC_64(2),Cmplx_Mult_16_16(cIQparameters_log(i+1,2)
,cphasor_p);
cZ_ACC_64(3)=Cmplx_Add_64_32(cZ_ACC_64(3),Cmplx_Mult_16_16(cIQparameters_log(i+1,3)
,cphasor_m);
cZ_ACC_64(4)=Cmplx_Add_64_32(cZ_ACC_64(4),Cmplx_Mult_16_16(cIQparameters_log(i+1,4)
,cphasor_m);
cZ_ACC_64(5)=Cmplx_Add_64_32(cZ_ACC_64(5),Cmplx_Mult_16_16(cIQparameters_log(i+1,5)
,cphasor_m);
cZ_ACC_64(6)=Cmplx_Add_64_32(cZ_ACC_64(6),Cmplx_Mult_16_16(cIQparameters_log(i+1,6)
,cphasor_m);
cphasor_p=Cmplx_Saturate((Cmplx_Mult_16_16(cphasor_p,cdphasor_p))>>(Ntan-1),Ntan-1);
cphasor_m=Cmplx_Saturate((Cmplx_Mult_16_16(cphasor_m.cdphasor_m))>>(Ntan-1),Ntan-1);
end
%Scale Back to fit 32bit
for i=1:6
cZ_ACC_32(i)=cZ_ACC_64(i)>>(Nfft_out);
end
%Level control vector so that max fits in 16bit
Max_Z=0;
for i=1:6
if(abs(real(cZ_ACC_32(i)))>Max_Z)
Max_Z=abs(real(Z_ACC_32(i)));
end
if(abs(imag(cZ_ACC_32(i)))>Max_Z)
Max_Z=abs(imag(Z_ACC_32(i)));
end
end
%Scale Back to 16 bits
Scale_Z=(Nfft_out-1)-ceil_log2(Max_Z);
for i=1:6
cZ_16(i)=Cmplx_Saturate(cZ_ACC_32(i)>>(Scale_Z),Nfft_out-1);
end
表C-5:Residual_frequency_Compensation变量
Function:9:Coeff Computation
function[cfB1,cfB2,Scale_ratio]=Coeff_Computation(CFO,i1,i2)
Log2Nfft=8; %log2(Nfft)=log2(256)=8;
PI_over_FFT=804; %round(pi/Nfft*2^(Fr_bits-1))
Nfft=256;
N1=2;
[cphasor11 tmp]=cordic_SW((CFO<<(1+Log2Nfft)),0);
cphasor11=Switch_real_imag(cphasor11);
cfs11=Cmplx_Add_16_16(phasor11,-sqrt(-1)*(1<<(Ntan-1)));
fs21=CFO+PI_over_FFT*i1;
fs22=CFO+PI_over_FFT*i2;
if(fs21==0)
cfB1_32=1<<(Nfft_out+Log2Nfft);
else
cfB1_32=Cmplx_real_div_32_16((cfs11<<(Nfft_out-N1)),fs21);
end
if(fs22==0)
cfB2_32=1<<(Nfft_out+Log2Nfft);
else
cfB2_32=Cmplx_real_div_32_16((cfs11<<(Nfft_out-N1)),fs22);
end
%Scale to fB1,fB2 to 15bit signed
Max=0;
Max_abs_real_cfB1=abs(real(cfB1_32));
Max_abs_imag_cfB1=abs(imag(cfB1_32));
Max_abs_real_cfB2=abs(real(cfB2_32));
Max_abs_imag_cfB2=abs(imag(cfB2_32));
if(Max_abs_real_cfB1>Max)
Max=Max_abs_real_cfB1;
end
if(abs Max_abs_imag_cfB1>Max)
Max=Max_abs_imag_cfB1;
end
if(Max_abs_real_cfB2>Max)
Max=Max_abs_real_cfB2
end
if(Max_abs_imag_cfB2>Max)
Max Max_abs_imag_cfB2;
end
Scale_ratio=15-(ceil_log2(Max)+1);
If(Scale>=0)
cfB1=Cmplx_Saturate((cfB1_32<<Scale_ratio),Nfft_out-2);
cfB2=Cmplx_Saturate((cfB2_32<<Scale_ratio),Nfft_out-2);
else
cfB1=Cmplx_Saturate((cfB1_32>>-Scale_ratio),Nfff_out-2);
cfB2=Cmplx_Saturate((cfiB2_32>>-Scale_ratio),Nfft_out-2);
end
表C-6:系数计算变量定义
Function 10:Phasor Estimation variable definition
function[cg_exp_mTeta_M_16,Scale_g,scale_inv]=
Phasor_Estimation(cZ,cfB1,cfB2,CFO,N_delta,Scale_ratio)
N2=2;
%****************************************************************************
% Fix Point Computation of
%
[0596] % Z1*(|fB1|^2+|fB2|^2) Z1*(|fB1|^2+|fB2|^2)*(B1′*Z3+B2*Z4′)′
%-----------------------=------------------------------------------
% B1′*Z3+B2*Z4′ |B1′*Z3|^2+|B2*Z4′|^2
%*****************************************************************************
sumfB1SfB2S=(Real_Add_30_30_T(MAG_2_16(cfB1),MAG_2_16(cfB2)))>>15
[0601] cNUMERATOR_32(0)=Cmplx_Real_Mul_16_16(cZ(0),sumfB1SfB2S);
cNUMERATOR_32(1)=Cmplx_Real_Mul_16_16(cZ(1),sumfB1SfB2S);
cDENOM_32(0)=Cmplx_Add_32_32(Cmplx_Mul_16_16(conj(cZ(2)),(cfB1)),
Cmplx_Mul_16_16(conj(cZ(3)),(cfB2)));
cDENOM_32(1)=Cmplx_Add_32_32(Cmplx_Mul_16_16(conj(cZ(4)),(cfB1)),
Cmplx_Mul_16_16(conj(cZ(5)),(cfB2)));
cMul_NUM_cDENOM_64(0)=Cmplx_Mul_32_32(cNUMERATOR_32(0),conj(cDENOM_32(0)));
cMul_NUM_cDENOM_64(1)=Cmplx_Mul_32_32(cNUMERATOR_32(1),conj(cDENOM_32(1)));
DENOM_2_64(0)=MAG_2_32(cDENOM_32(0));
DENOM_2_64(1)=MAG_2_32(cDENOM_32(1));
%Level Control for division scale denominator down to 32bit
if(DENOM_2_64(0)>DENOM_2_64(1))
Scale=ceil_log2(DENOM_2_64(0)));
else
Scale=ceil_log2(DENOM_2_64(1)));
end
Scale=31-Scale;
If(Scale>=0)
DENOM_2_32(0)=Cmplx_Saturate(DENOM_2_64(0)<<(Scale),31);
DENOM_2_32(1)=Cmplx_Saturate(DENOM_2_64(1)<<(Scale),31);
else
DENOM_2_32(0)=Cmplx_Saturate(DENOM_2_64(0)>>(-Scale),31);
DENOM_2_32(1)=Cmplx_Saturate(DENOM_2_64(1)>>(-Scale),31);
end
%complex/real division 64bit/32bit gives 32bit result
cfCM(0)=Cmplx_real_div_64_32(cMul_NUM_cDENOM_64(0)>>N2,DENOM_2_32(0));
cfCM(1)=Cmplx_real_div_64_32(cMul_NUM_cDENOM_64(1)>>N2,DENOM_2_32(1));
cfCM_avg=Cmplx_Add_32_32(cfCM(0),cfCM(1));
%Rotation of FCM_avg needed only if HW can not Insure Delatn=0
[cphasor_dn tmp]=cordic_SW((CFO<<1)*N_delta,0);
cfCM_avg_rot_64=Cmplx_Mul_32_16(cfCM_avg,cphasor_dn);
cfCM_avg_rot_32=fCM_avg_rot_64>>(Ntan);
[0633] Scale_fCM=Ntan-l-N1+Scale_ratio-Scale-6-N2;
[0634] fCM_one_level_32=1<<(Scale_fCM);
cfp_m_32=Cmplx_Real_Add_32_32(cfCM_avg_rot_32,-fCM_one_level_32);
cfp_p_32=Cmplx_Real_Add_32_32(cfCM_avg_rot_32,fCM_one_level_32);
cNUMERATORf_64=Cmplx_Mul_32_32(cfp_m_32,conj(cfp_p_32));
DENOMf_64 =MAG_2_32(cfp_p_32);
%Level Control for division scale denominator down to 32bit signed
Abs_real_Numerator64=abs(real(cNUMERATORf_64);
Abs_imag_Numerator64=abs(imag(cNUMERATORf_64);
if(Abs_real_Numerator64)>Abs_imag_Numerator64)
Scale_fn=30-ceil_log2(Abs_real_Numerator64);
else
Scale_fn=30-ceil_log2(Abs_imag_Numerator64);
end
if(Scale_fn>=0)
cNUMERATORf_32=cNUMERATORf_64<<(Scale_fn);
else
cNUMERATORf_32=cNUMERATORf_64>>(-Scale_fn);
end
%Level Control for division scale denominator down to 16bit unsigned
Scale_fd=16-ceil_log2(DENOMf_64);
if(Scale_fd>=0)
DENOMf_scaled_16=Cmplx_Saturate(DENOMf_64<<(Scale_fd),16);
else
DENOMf_scaled_16=Cmplx_Saturate(DENOMf_64>>(-Scale_fd),16);
end
% Division 32bit complex by 16bit real
cg_exp_mTeta_M_16=Cmplx_real_div_32_16(cNUMERATORf_32,DENOMf_scaled_16);
Scale_g=Scale_fd-Scale_fn;
scale_inv=14-Scale_fd+Scale_fn;
表C-7:矢量估计变量定义
Function 11:Compensation_Params_Estimation
function[theta,rho,Scale_Q]=Compensation_Params_Estimation(cg_exp_mTeta_M_16,
scale_inv,Scale_g)
Mue_bits=4;
if(ProbeII_Num==1)
Mue=12;
elseif(ProbeII_Num=2)
Mue=8;
else
Mue=4;
End
if(ProbeII_Num>=1)
%First Order Loop
Mue_1m=(16-Mue);
cg_ACC_32=cg_exp_mteta<<(-Scale_g-Mue_bits);
cg_Delta_32=(Cmplx_Mul_16_16(cg_exp_mteta *cg_exp_mTeta_M_16))>>4;
cg_ACC_32=Cmplx_Add_32_32(Cmplx_Mul_32_16(cg_ACC_32,Mue_Fix_1m),
Cmplx_Mul_32_16(cg_Delta_32,Mue_Fix))>>(-Scale_g);
cg_exp_mteta=g_ACC_32;
%I/Q Correction Params Calculation
[theta,rho,Scale_Q]=Compute_Fix_Point_IQ_Coeffs(cg_exp_mteta,scale_inv,Scale_g,0);
else
g_exp_mteta=cg_exp_mTeta_M_16;
%I/Q Correction Params Calculation
[theta,rho,Scale_Q]=Compute_Fix_Point_IQ_Coeffs(g_exp_mTeta_M_16,scale_inv,Scale_g,1);
end
ProbeII_Num=ProbeII_Num+1;
表C-8:Compensation_Params_Estimation变量定义
Function 13:Compute_Fix_Point_IQ_Coeffs
function [theta,rho,Scale_Q]=Compute)_Fix_Point_IQ_Coeffs(cg_exp_mTeta_M_16,scale_inv,
scale_g,FirstTime)
if(FirstTime)
scale_delta=0;
if(scale_inv>31)
scale_delta=scale_inv-31;
scale_inv=31;
end
scale_inv_log=scale_inv;
[0704] scale_delta_log=scale_delta;
[0705] scale_g_log=scale_g
else
scale_inv=scale_inv_log;
[0708] scale_delta=scale_delta_log;
[0709] scale_g=scale_g_log;
end
real_g_exp_mTeta_M_16=real(cg_exp_mTeta_M_16);
imag_g_exp_mTeta_M_16=imag(cg_exp_mTeta_M_16);
if(real_g_exp_mTeta_M_16>1<<(-scale_g_log))
Inv_real_g_exp_mTeta_M_16=Cmplx_real_div_32_16(1<<(scale_inv),real_g_exp_mTeta_M_16));
Scale_theta=-14+Teta_bits-1+scale_delta;
If(Scale_theta>=0)
theta=Inv_real_g_exp_mTeta_M_16<<(Scale_theta);
else
theta=Inv_real_g_exp_mTeta_M_16>>(-Scale_theta);
end
Rho_32=Cmplx_Mul_16_16(-imag_g_exp_mTeta_M_16,Inv_real_g_exp_mTeta_M_16);
Scale_rho=-Rho_bits+1+scale_inv;
If(Scale_rho>=0)
rho=Rho_32<<(Scale_rho);
else
rho=Rho_32>>(-Scale_rho);
end
Scale_Q=1;
else
Scale_theta=scale_g_log+Teta_bits-1;
Scale_rho=scale_g_log+Rho_bits-1;
If(Scale_theta>=0)
theta=real_g_exp_mTeta_M_16<<(Scale_theta);
else
theta=real_g_exp_mTeta_M_6>>(-Scale_theta);
end
If(Scale_rho>=0)
rho=(-imag_g_exp_mTeta_M_16)<<(Scale_rho);
else
rho=(-imag_g_exp_mTeta_M_16)>>(-Scale_rho);
end
Scale_Q=0;
end
表C-9:Compute_Fix_Point_IQ_Coeffs变量定义
复变数数学运算操作定义
[C_32_r,C_32_i]=Cmplx_Add_16_16(A_16_r,A_16_i,B_16_r,B_16_i);
C_32_r=A_16_r+B_16_r
C_32_i=A_16_i+B_16_i
[C_32_r,C_32_i]=Cmplx_Add_32_32(A_32_r,A_32_i,B_32_r,B_32_i);
[0751] C_32_r=A_32_r+B_32_r
C_32_i=A_32_i+B_32_i
[R_32]=Real_Add_30_30_30_T(A_30,B_30);
[0754] R_32=A_30+B_30
[C_64_r,C_64_i]=Cmplx_Add_64_32(A_64_r,A_64_i,B_32_r,B_32_i);
C_64_r=A_64_r+B_32_r
C_64_i=A_64_i+B_32_i
[C_32_r,C_32_i=Cmplx_Real_Add_32_16(A_32_r,A_32_i,B_16);
C_32_r=A_32_r+B_16
C_32_i=A_32_i
[C_32_r,C_32_i]=Cmplx_imag_Add_32_16(A_32_r,A_32_i,B_16);
C_32_r=A_32_r
C_32_i=A_32_i+B_16
[C_32_r]=MAG_2_16(A_16_r,A_16_i)
[0765] C_32_r=A_16_r* A_16_r+A_16_i* A_16_i
[C_64_r]=MAG_2_32(A_32_r,A_32_i)
C_64_r=A_32_r* A_32_r+A_32_i* A_32_i
[0768] [C_32_r,C_32_i]=Cmplx_Mut_16_16(A_16_r,A_16_i,B_16_r,B_16_i)
[0769] C_32_r=A_16_r*B_16_r-A_16_i*B_16_i
C_32_i=A_16_r*B_16_i+A_16_i*B_16_r
[0771] [C_64_r,C_64_i]=Cmplx_Mult_32_32(A_32_r,A_32_i,B_32_r,B_32_i)
C_64_r=A_32_r*B_32_r-A_32_i*B_32_i
C_64_i=A_32_r*B_32_i+A_32_i*B_32_r
[C_32_r,C_32_i]=Cmplx_real_Mult_16_16(A_16_r,A_16_i,B_16_r)
C_32_r=A_16_r*B_16_r
C_32_i=A_16_i*B_16_r
[C_64_r,C_64_i]=Cmplx_Mul_32_16(A_32_r,A_32_i,B_16_r)
[0778] C_64_r=A_32_r*B_16_r
C_64_i=A_32_i*B_16_r
[C_16_r,C_16_i]=Cmplx_real_div_32_16(A_32_r,A_32_i,B_16_r)
[0781] C_32_r=A_32_r/B_16_r
C_32_i=A_32_i/B_16_r
[C_32_r,C_32_i]=Cmplx_real_div_64_32(A_64_r,A_64_i,B_32_r)
C_32_r=A_64_r/B_32_r
C_32_i=A_64_i/B_32_r
[C_16_r,C_16_i]=Switch_real_imag(A_16_r,A_16_i);
C_32_r=A_16_i
C_32_i=A_16_r
附录D
示范性的HW-SW接口参数
下表总结了在探测2接收的过程中,HW和SW之间的信息交换。输出指HW的输出,输入指输入到HW。
附录E
频率偏移引入、CP长度、符号数量
function[dF]=Frequency_Offset_Introduction(CFO)
Freq_Th=41; %round((5e3/50e6)*2*pi*2^16)
if(abs(CFO)<Freq_Th)
dF=sign(CFO)*(TBD RF Interface introduce);
附录E
else
dF=0;
end
信号音选择
function[SC]=ProbeII_Tone_Selection(Sigma_2_32)
SC_MIN(0)=146;
SC_MAX(0)=186;
SC_MIN(2)=217;
SC_MAX(2)=249;
SC_DEFAULT(0)=176;
SC_DEFAULT(1)=249;
NLog_In_Bits=6;
NLog_Out_Bits=14;
SC=SC_DEFAULT;
a=-7871;%round(-1.921625277102556*2^(NLog_Out_Bits-2));
b=8071;%round(1.970377382221271*2^(NLog_Out_Bits-2));
C=32656;%round(0.0375*log2(10)*2^(NLog_Out_Bits-2+NLog_In_Bits));
%Find Default NSR log2(Sigma_2)
for i=0:1
Scale_16(i)=ceil_log2(Sigma_2_32(SC_DEFAULT(i)));
Frac_16(i)=Sigma_2_32(SC_DEFAULT(i))>>(Scale_16(i)-NLog_In_Bits);
NSR_Default_32(i)=Scale_16(i)<<(NLog_Out_Bits-2+NLog_In_Bits)+...
(Real_Mult_16_16(b,Frac_16(i))+a<<(NLog_In_Bits));
NSR_Best_32(i)=NSR_Default_32(i);
for k=[SC_MIN(i):SC_MAX(i)]
Scale_k_16=ceil_log2(Sigma_2_32(k));
Frac_k_16=Sigma_2_32(k)>>(Scale_k_16-NLog_In_Bits);
NSR_32=Scale_k_16<<(NLog_Out_Bits-2+NLog_In_Bits)+...
(Real_Mult_16_16(b,Frac_k_16)+a<<(NLog_In_Bits));
if(NSR_32<Add_Real_32_32(NSR_Default_32(i),...
-Real_Mult_16_16(C,Abs_16(Add_Real_16_16(k,-SC_DEFAULT(i)))
if(NSR_32<NSR_Best_32(i))
SC(i)=k;
NSR_Best_32(i)=NSR_32;
end
end
end
end
Where Sigma_32 is a vector of the estimated noise variance of the various FFT tones.
CP和OFDM符号数量选择
function[NUM_OF_SYMS,CP_LENGTH]=Probe2_CP_L_Select(CFO)
CP_Max=126;
CP_Min=64;
L_Max=40;
L_Min=28;
PI=205887; %round(pi*2^Freq_bits-1)
2P=411775; %round(2pi*2^Freq_bits-1)
Phase_Th=41177; %round(2pi/10*2^Freq_bits-1)
dPhase_64=0;
error=0;
Min_Err=Inf;
NUM_OF_SYMS=L_Min;
CP_LENGTH=CP_Min;
for CP=CP_Min:CP_Max
for L=L_Min:L_Max
dPhase_32=L*(CP+Nfft)*(CFO);
while(abs(dPhase_32)>2P)
dPhase_32=dPhase_32-sign(dPhase_32)*2P;
end
if(abs(dPhase_32)>PI)
error_32=abs(2PI-abs(dPhase_32));
else
error_32=abs(dPhase_32);
end
if(error_32<Phase_Th)
Indicator=1;
if(error_32<Min_Err)
Min_Err=error;
NUM_OF_SYMS=L;
CP_LENGTH=CP;
end
end
end
end
Claims (4)
1.一种补偿数据信号的第一分量和第二分量间失衡的方法,所述数据信号具有正值的频率,通过具有频率误差的载波信号对其进行调制,其特征在于,包括以下步骤:
接收数据和载波信号;
选择时域参数值,以使与负值频率相应的频域能量最小化;和
基于所述值在时域中修改至少一个所述分量;
估计与所述载波信号相应的载波信号频率;
估计残余载波频率误差;和
基于所述残余载波频率误差,修改所述载波频率的估计;其中,
根据等式5计算所述残留载波频率误差估计;
等式5:
其中,
根据等式6计算残余频率误差补偿和时间平均;
等式6:
根据等式7、等式8估计至少一个分量失衡相位估计的值;
等式7:
等式8:
依据等式9计算至少一个分量失衡补偿参数ξ、ρ和Scale_Q;
等式9:
2.根据权利要求1所述的方法,其特征在于,所述基于所述时域参数值在时域中修改至少一个所述分量中的修改包括:
为所述分量确定与信号振幅乘法器相应的第一值;和
为所述分量确定与相位偏移相应的第二值。
3.一种用于补偿第一信号和第二信号之间失衡的系统,其特征在于,包括:
第一模块,用于根据所述第一和第二信号,记录第一频域参数、第二频域参数、第一信号音、第二信号音、以及载波频率;所述第一频域参数和第二频域参数相应于所述第一信号音、第二信号音、以及载波频率中的每一个;和
第二模块,用于根据所述第一和第二频域参数,计算至少一个时域补偿参数;
当具有残余载波频率偏移,所述第二模块可:计算残余频率偏移的估计;基于所述估计,计算所述时域补偿参数;其中,
根据等式5计算所述残留载波频率误差估计;
等式5:
其中,
根据等式6计算残余频率误差补偿和时间平均;
等式6:
根据等式7、等式8估计至少一个分量失衡相位估计的值;
等式7:
等式8:
依据等式9计算至少一个分量失衡补偿参数ξ、ρ和Scale_Q;
等式9:
4.根据权利要求3所述的系统,其特征在于,进一步包括:
第三模块,用于根据所述时域补偿参数,输出经补偿的信号。
Applications Claiming Priority (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US86653206P | 2006-11-20 | 2006-11-20 | |
US86652706P | 2006-11-20 | 2006-11-20 | |
US86651906P | 2006-11-20 | 2006-11-20 | |
US60/866,532 | 2006-11-20 | ||
US60/866,527 | 2006-11-20 | ||
US60/866,519 | 2006-11-20 | ||
US90711107P | 2007-03-21 | 2007-03-21 | |
US60/907,111 | 2007-03-21 | ||
US90712607P | 2007-03-22 | 2007-03-22 | |
US60/907,126 | 2007-03-22 | ||
US90781907P | 2007-04-18 | 2007-04-18 | |
US60/907,819 | 2007-04-18 | ||
US94099807P | 2007-05-31 | 2007-05-31 | |
US60/940,998 | 2007-05-31 | ||
US11/938,848 US8090043B2 (en) | 2006-11-20 | 2007-11-13 | Apparatus and methods for compensating for signal imbalance in a receiver |
US11/938,848 | 2007-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101252561A CN101252561A (zh) | 2008-08-27 |
CN101252561B true CN101252561B (zh) | 2012-12-12 |
Family
ID=39632063
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101939125A Active CN101222491B (zh) | 2006-11-20 | 2007-11-20 | 为具有mac层和phy层的共享通信网络节点服务的系统及方法 |
CN2007101939089A Expired - Fee Related CN101252561B (zh) | 2006-11-20 | 2007-11-20 | 补偿数据信号的第一分量和第二分量间失衡的方法及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101939125A Active CN101222491B (zh) | 2006-11-20 | 2007-11-20 | 为具有mac层和phy层的共享通信网络节点服务的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101222491B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101521524B (zh) * | 2008-12-28 | 2013-01-09 | 中国电子科技集团公司第四十一研究所 | 一种td-scdma信号的频率误差测试方法 |
US8380145B2 (en) * | 2011-06-08 | 2013-02-19 | Mediatek Singapore Pte. Ltd. | Integrated circuit, wireless communication unit and method for quadrature power detection |
US10412698B2 (en) * | 2017-02-22 | 2019-09-10 | Samsung Electronics Co., Ltd. | System and method for IQ mismatch calibration and compensation |
CN108830217B (zh) * | 2018-06-15 | 2021-10-26 | 辽宁工程技术大学 | 一种基于模糊均值哈希学习的签名自动判别方法 |
US20210392642A1 (en) * | 2018-10-31 | 2021-12-16 | Zhicong Kong | Ventilated, stackable, pressing molds |
-
2007
- 2007-11-20 CN CN2007101939125A patent/CN101222491B/zh active Active
- 2007-11-20 CN CN2007101939089A patent/CN101252561B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101252561A (zh) | 2008-08-27 |
CN101222491B (zh) | 2011-11-09 |
CN101222491A (zh) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8537925B2 (en) | Apparatus and methods for compensating for signal imbalance in a receiver | |
US8532239B2 (en) | Method for error compensation in an OFDM system with diversity | |
US7466768B2 (en) | IQ imbalance compensation | |
US7020226B1 (en) | I/Q distortion compensation for the reception of OFDM signals | |
CN101627672B (zh) | 用于在无线站处理数据的方法和装置 | |
CN101438553B (zh) | 用于在mimo ofdm中进行时钟校正的方法和装置 | |
CN102057644B (zh) | 用于估计iq不平衡的方法和布置 | |
US20070286268A1 (en) | Digital phase locked loop | |
AU7216298A (en) | Frame structure and frame synchronization for multicarrier systems | |
CN112422473B (zh) | 联合频偏估计策略的系统及方法 | |
CN101252561B (zh) | 补偿数据信号的第一分量和第二分量间失衡的方法及系统 | |
CN112803992B (zh) | 一种低轨宽带卫星系统整数倍子载波间隔频偏估算方法 | |
CN101257470A (zh) | 正交频分复用系统中利用插入导频抑制相位噪声的方法 | |
EP2130345A1 (en) | Method and apparatus for digital signal reception | |
CN101534287A (zh) | 移动通信系统中进行载波频率偏移校正的方法和装置 | |
US7606331B2 (en) | Frequency offset compensation in radio receiver | |
Kumar et al. | Blind symbol timing offset estimation for offset‐QPSK modulated signals | |
Abhayawardhana et al. | Residual frequency offset correction for coherently modulated OFDM systems in wireless communication | |
CN101378382B (zh) | 一种地面数字电视系统中的大频偏盲估计方法及其装置 | |
Assaf et al. | Sample Clock Offset Compensation in the fifth-generation new radio Downlink | |
JP4520825B2 (ja) | ガードインターバル検出装置およびガードインターバル検出方法、並びに、周波数オフセット検出装置 | |
Abari | Low-complexity and filter-tap memory optimized channel estimation in multi-mode and multi-standard OFDM systems | |
Yachil et al. | Low complexity multi‐channel synchronization for satellite systems with adjacent channel interference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1122920 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1122920 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121212 Termination date: 20171120 |