專利名稱:補償數(shù)據(jù)信號的第一分量和第二分量間失衡的方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及信息網(wǎng)絡,更具體地說,涉及通過通信線路例如同軸電纜,發(fā)送信息例如多媒體信息,以形成通信網(wǎng)絡。
背景技術:
許多建筑物,包括家庭,都有基于同軸電纜的網(wǎng)絡。
同軸電纜多媒體聯(lián)盟(“MoCATM”)在其網(wǎng)站(www.mocalliance.org)上提供了通過同軸電纜聯(lián)播數(shù)字視頻和娛樂信息的規(guī)范(即,其在MoCA內(nèi)所使用,并在此全文引用)的一例子。該規(guī)范分發(fā)給公開注冊的用戶。
基于MoCA和其它規(guī)范的技術、以及相關的技術(“現(xiàn)有的技術”)常常使用同軸電纜上可使用的并且未使用的帶寬。例如,在美國,已超過70%的家庭安裝了同軸電纜。一些家庭在一個或多個娛樂消耗區(qū)域已有現(xiàn)成的同軸電纜,例如家庭活動室、視聽室、和主臥室。現(xiàn)有的技術使得屋主可使用已安裝的同軸電纜,作為網(wǎng)絡系統(tǒng),并發(fā)送具有高服務質(zhì)量(QoS)的娛樂和信息程序。
現(xiàn)有的技術可提供高速度(270mbps)、高QoS、以及最高級別的封包級加密和屏蔽的有線連接兩者所固有的安全性。同軸電纜是設計用于發(fā)送高帶寬視頻。目前,同軸電纜通常用于安全傳送數(shù)百萬美元的按次計費及優(yōu)質(zhì)視頻內(nèi)容。基于現(xiàn)有技術的網(wǎng)絡可用作多個無線接入點的骨干網(wǎng),從而擴展無線服務在建筑物內(nèi)的覆蓋范圍。
現(xiàn)有的技術通過現(xiàn)有的同軸電纜提供了到達目前安裝在家庭中的視頻設備所在地的吞吐量,而不影響線纜中的其它服務信號?,F(xiàn)有的技術為數(shù)字娛樂提供鏈路,并與別的有線或無線網(wǎng)絡保持一致,從而將娛樂流量擴展到整個建筑物。
現(xiàn)有技術與接入技術協(xié)同工作,如非對稱數(shù)字用戶線路(“ADSL”)、甚高速率數(shù)字用戶線(“VDSL”)和光纖到戶(“FTTH”),進而提供一般通過雙絞線或光纖進入該建筑物的信號,對于ADSL而言,其操作頻帶從幾十萬赫茲到8.5M赫茲,而對于VDSL是到12M赫茲。當服務通過任何數(shù)字用戶線(“xDSL”)或FTTH到達該建筑物時,這些服務可通過現(xiàn)有技術和同軸電纜轉(zhuǎn)發(fā)到視頻設備。有線電視運營商可通過線纜為該建筑物提供諸如視頻、音頻和因特網(wǎng)接入等有線功能,并利用在該建筑物中運行的同軸電纜到達該建筑物中的各個有線服務使用設備。一般地,現(xiàn)有技術的功能與有線功能并行,不過是在不同頻率上。
建筑物中的同軸電纜設施一般包括同軸電纜、分配器和出口。分配器一般有一個輸入和兩個或多個輸出,用于前向(輸入到輸出)或后向(輸出到輸入)傳送信號,并將來自不同分配器的輸出相隔離,從而防止信號從一個同軸電纜出口流向另一個。進行隔離是非常有用的,因為它可以a)減少來自其它設備的干擾和b)最大化從入口點(“POE”)到出口的功率傳輸以獲得最佳TV接收。
現(xiàn)有技術的部件(elements)被專門用于通過隔離器進行后向傳播(“插入”)以及從輸出到輸出的后向傳播(“隔離”)。通過特定“隔離跳”和多個“插入跳”可從建筑物中的一個出口到達另一個。一般隔離跳的衰減為5到40dB,而每個插入跳大約將衰減3dB。MoCATM技術具有55dB盈余的動態(tài)范圍,同時支持200Mbps的吞吐量。因此,MoCATM技術可通過大量隔離器高效運行。
管理網(wǎng)絡策略,諸如MoCATM技術,專門設計用于支持沒有數(shù)據(jù)包丟失的流視頻,進而提供出口間的優(yōu)質(zhì)視頻。
當網(wǎng)絡連接設備從網(wǎng)絡接收到數(shù)據(jù)信號時,該信號在下變頻為設備基帶頻率時,常常分解為同相(“I”)和正交(“Q”)分量;當該I和Q分量再組合,以進行數(shù)據(jù)解密時,它們常常是振幅、相位或兩者失衡的。再平衡I和Q分量將涉及計算基于載波頻率的頻域簽名以及I和Q分量的補償因子。在載波頻率不確定的情況下,通過使用數(shù)字計算方法,很難分析接收到的信號的頻域簽名。因此,期望提供在載波頻率不確定的情況下使用數(shù)字計算方法的補償信號的系統(tǒng)和方法。
發(fā)明內(nèi)容
一種用于通信網(wǎng)絡中在節(jié)點補償I/Q失衡的系統(tǒng)和/或方法,在至少一張附圖中進行了描述,并在權利要求中進行了完整的說明。
根據(jù)本發(fā)明的一個方面,提供一種用于補償數(shù)據(jù)信號的第一分量和第二分量之間失衡的方法,所述數(shù)據(jù)信號具有正值的頻率,并通過具有頻率誤差的載波信號對其進行調(diào)制,包括以下步驟 接收數(shù)據(jù)和載波信號; 選擇時域參數(shù)值,以使與負值頻率相應的頻域能量最小化;和 基于所述值,在時域中修改至少一個所述分量。
優(yōu)選的,所述的方法進一步包括 估計與所述載波信號相應的載波信號頻率; 估計殘余載波頻率誤差;和 基于所述殘余載波頻率誤差,修改所述載波頻率的估計。
優(yōu)選的,所述修改包括 為所述分量確定與信號振幅乘法器相應的第一值;和 為所述分量確定與相位偏移相應的第二值。
優(yōu)選的,所述選擇包括 為第一信號音、第二信號音、以及所述載波信號中的每一個記錄第一頻域參數(shù)和第二頻域參數(shù)。
優(yōu)選的,對于所述第一信號音、所述第二信號音、以及所述載波信號,其中至少有一個其所述第一和第二頻域參數(shù)分別對應于離散值頻譜中的第一和第二窗口; 所述第一窗口順次地鄰近所述第二窗口。
優(yōu)選的,所述的方法進一步包括發(fā)送取決于所述第一和第二頻域參數(shù)的輸出信號。
優(yōu)選的,所述接收包括接收正交頻分復用(OFDM)符號;和 在所述選擇中,所述值對應于所述OFDM符號;和 對于所述OFDM符號,執(zhí)行所述修改。
優(yōu)選的,所述接收包括接收多個正交頻分復用(OFDM)符號; 對每一個所述OFDM符號,執(zhí)行所述選擇;和 對每一個所述OFDM符號,執(zhí)行所述修改。
優(yōu)選的,所述第一和第二分量,其中一個是同相分量;另一個是正交分量;所述失衡是同相/正交失衡。
根據(jù)本發(fā)明的一個方面,提供一種可記錄與接收到的信號的頻率分量相應的復數(shù)參數(shù)的系統(tǒng),所述信號攜帶有至少一個正交頻分復用(OFDM)符號,所述參數(shù)符合 具有頻率誤差的載波頻率; 第一信號音;和 第二信號音。
優(yōu)選的,所述系統(tǒng)還用于估計與所述載波頻率、所述第一信號音、以及所述第二信號音中的每一個相應的頻率窗口。
優(yōu)選的,當具有與所述載波頻率、所述第一信號音、以及所述第二信號音中的每一個相應的第一和第二復數(shù)參數(shù)時,所述系統(tǒng)進一步用于 估計與所述載波頻率、所述第一信號音、以及所述第二信號音中的每一個相應的第二頻率窗口; 為所述載波頻率、第一信號音、以及第二信號音記錄所述第一和第二復數(shù)參數(shù)。
優(yōu)選的,所述系統(tǒng)進一步用于根據(jù)所述載波頻率、所述第一信號音、以及所述第二信號音中的每一個的估計值,為所述載波頻率、所述第一信號音、以及所述第二信號音,記錄所述復數(shù)參數(shù);所有的所述估計值相應于單一OFDM符號。
優(yōu)選的,當所述接收到的信號攜帶多個OFDM符號時,所述系統(tǒng)進一步可對于每一個所述OFDM符號,估計所述載波頻率、所述第一信號音、和所述第二信號音中的每一個的值。
根據(jù)本發(fā)明的一個方面,提供一種用于補償?shù)谝恍盘柡偷诙盘栔g失衡的系統(tǒng),該系統(tǒng)包括 第一模塊,用于根據(jù)所述第一和第二信號記錄第一頻域參數(shù)、第二頻域參數(shù);所述第一頻域參數(shù)和第二頻域參數(shù)相應于所述第一信號音、第二信號音、以及載波頻率中的每一個;和 第二模塊,用于根據(jù)所述第一和第二頻域參數(shù),計算至少一個時域補償參數(shù)。
優(yōu)選的,所述系統(tǒng)進一步包括 第三模塊,用于根據(jù)所述時域補償參數(shù),輸出經(jīng)補償?shù)男盘枴?br>
優(yōu)選的,所述至少一個時域補償參數(shù)包括三個時域補償參數(shù)。
優(yōu)選的,所述載波頻率是接收器載波頻率; 所述第一和第二信號接收自發(fā)送器,所述發(fā)送器可使用發(fā)送器載波頻率發(fā)送所述信號;和 由于載波頻率偏移,所述接收器和發(fā)送器載波頻率不同。
優(yōu)選的,當所述第一和第二頻域參數(shù)相應于所述第一和第二信號音的其中之一時, 所述第一頻域參數(shù)對應于離散值頻譜中的第一窗口; 所述第二頻域參數(shù)對應于離散值頻譜中的第二窗口; 所述第一窗口鄰近所述第二窗口。
優(yōu)選的,所述第一模塊根據(jù)所述第一點在頻譜中的位置選擇所述第二窗口。
優(yōu)選的,所述第二窗口在頻譜中的位置是基于所述偏移的。
優(yōu)選的,所述第二窗口在頻譜中的位置是基于所述偏移,以弧度表示,到Pi弧度。
優(yōu)選的,當具有殘余載波頻率偏移,所述第二模塊可 計算殘余頻率偏移的估計; 基于所述估計,計算所述時域補償參數(shù)。
優(yōu)選的,當所述第一模塊為按時間順序接收到的多個符號中的每一個記錄所述第一和第二頻域估計參數(shù)時,所述第二模塊為第一頻率參數(shù)計算第一平均值;并為所述第二頻域參數(shù)計算第二平均值;所述平均值分別基于與所述符號 相應的所述第一和第二頻域參數(shù)。
優(yōu)選的,所述第一模塊是硬件模塊;所述第二模塊是軟件模塊。
優(yōu)選的,所述第三模塊是硬件模塊。
優(yōu)選的,所述第一模塊是硬件模塊;所述第二模塊是硬件模塊。
通過以下的描述和附圖,可以更深入地理解本發(fā)明的各種優(yōu)點、各個方面、創(chuàng)新特征、及其實施例的細節(jié),附圖中 圖1是依據(jù)本發(fā)明原則的所使用的例證性的單或多芯片設備的結構框圖; 圖2是依據(jù)本發(fā)明原則的接收器的一部分的例證性的結構框圖; 圖3是依據(jù)本發(fā)明原則的接收器的一部分的另一例證性的結構框圖; 圖4是依據(jù)本發(fā)明原則的電路的例證性的結構框圖; 圖5是依據(jù)本發(fā)明原則的電路的另一例證性的結構框圖; 圖6是依據(jù)本發(fā)明原則的例證性的流程圖; 圖7是依據(jù)本發(fā)明原則的所處理的例證性的數(shù)據(jù)包的簡圖; 圖8是依據(jù)本發(fā)明原則的與信號處理相關的例證性的一部分離散值頻譜的示意圖; 圖9是依據(jù)本發(fā)明原則的另一電路的例證性結構框圖; 圖10是依據(jù)本發(fā)明原則的存儲結構的示意圖; 圖11是總結作為所使用的窗口的數(shù)量的函數(shù)的損耗的示意圖; 圖12是將第一項作為g和θ的函數(shù)進行描述的示意圖; 圖13是將第二項作為
和k的函數(shù)進行描述的示意圖; 圖14是在k=249時,對第二項描述的示意圖; 圖15是累加相位起始位置示意圖; 圖16是3[dB]振幅失衡、10°相位失衡、200ppm頻率偏移、理想信道和沒有AWGN的仿真結果示意圖; 圖17是圖16參數(shù)下第一次迭代之后的仿真結果示意圖; 圖18是圖16參數(shù)下兩次迭代之后的仿真結果示意圖; 圖19是圖16參數(shù)下三次迭代之后的仿真結果示意圖; 圖20是圖16參數(shù)下四次迭代之后的仿真結果示意圖; 圖21是I/Q平衡的限幅SNR的示意圖; 圖22是3[dB]振幅失衡、10°相位失衡、200ppm頻率偏移、MoCA10408信道和15[dB]AWGN的仿真結果示意圖; 圖23是圖22參數(shù)下第一次迭代之后的頻率示意圖; 圖24是圖22參數(shù)下第一次迭代之后的限幅器輸入示意圖; 圖25是圖22參數(shù)下第二次迭代之后的頻率示意圖; 圖26是圖22參數(shù)下第二次迭代之后的限幅器輸入示意圖; 圖27是圖22參數(shù)下第三次迭代之后的頻率示意圖; 圖28是圖22參數(shù)下第三次迭代之后的限幅器輸入示意圖; 圖29是限幅器輸入示意圖; 圖30是在TX和RX I/Q失衡下,限幅器輸入示意圖; 圖31是在TX和RX I/Q失衡下,第三次迭代后的頻率示意圖; 圖32是在TX和RX I/Q失衡下,第三次迭代后的限幅器輸入示意圖; 圖33是在TX I/Q失衡下,限幅器輸入示意圖。
具體實施例方式 依據(jù)本發(fā)明原則,提供用于補償I/Q失衡的裝置和方法。該方法包括補償數(shù)據(jù)信號的第一分量和該數(shù)據(jù)信號的第二分量之間的失衡。通過具有頻率誤差的載波信號調(diào)制該數(shù)據(jù)信號??赏ㄟ^至少一個參數(shù)表征該第一分量。該方法可包括接收數(shù)據(jù)和載波信號;選擇參數(shù)值以便降低頻域能量;該頻域能量相應于負的頻率;基于所選擇的值,修改至少一分量。
該裝置包括一電路,其可記錄與接收到的信號的頻率分量相應的信號值。該信號攜帶至少一個正交頻分復用(“OFDM”)符號。該信號的值可對應于具有頻率誤差的載波頻率、第一信號音(tone)和第二信號音。
該裝置包括一系統(tǒng),其用于補償數(shù)據(jù)信號的第一分量和該數(shù)據(jù)信號的第二分量??赏ㄟ^具有頻率誤差的載波信號調(diào)制該數(shù)據(jù)信號??赏ㄟ^至少一參數(shù)表征該第一分量。該系統(tǒng)包括用于量化信號值的硬件模塊,和用于從該硬件模塊接收該信號值的軟件模塊,其中該信號值相應于數(shù)據(jù)和載波信號的其中之一。
可通過前述的MoCA規(guī)范中所列的MoCA協(xié)議探測2(probe2)傳輸,發(fā)送第一和第二信號音。
下面將結合附圖1~8及附錄A~E對本發(fā)明作進一步說明。
圖1示出了依據(jù)本發(fā)明的單或多芯片模塊102,其可以是一個或多個集成電路,且位于依據(jù)本發(fā)明的例證性的數(shù)據(jù)處理系統(tǒng)100中。數(shù)據(jù)處理系統(tǒng)100可包括一個或多個如下的部件I/O電路104、外圍設備102、處理器108和存儲器110。這些部件可通過系統(tǒng)總線或別的互連112連接在一起,并設置在終端用戶系統(tǒng)中的電路板上。模塊102的組件可執(zhí)行涉及I/Q失衡補償?shù)娜蝿铡?br>
在一些實施例中,可在MoCA探測2猝發(fā)接收(burst reception)過程中,執(zhí)行I/Q失衡補償。探測2是一2-信號音信號,其用于接收器中的I/Q失衡計算或別的RF校準。PHY層執(zhí)行窗口(bin)選擇和記錄,所得的結果將上載到CPU,用于I/Q補償參數(shù)的計算。
圖2示出例證性的接收器200的一部分的結構框圖。接收器200可包括射頻(“RF”)處理模塊202、時域處理模塊204和頻域處理模塊206。在增益210,接收RF信號208,并進行增益調(diào)節(jié)。在212,將信號208下變頻為基帶(“BB”)頻率。在212,將人為頻率誤差(intentional frequency error)213添加到信號208。模數(shù)轉(zhuǎn)換器214將信號208轉(zhuǎn)換為以模數(shù)采樣率采樣的數(shù)字信號,并將其發(fā)送到失衡補償模塊218。I/Q失衡補償模塊218可執(zhí)行與I/Q補償相關的步驟。I/Q失衡補償模塊218輸出信號209,其對應于等式1(如下)。
信號209發(fā)送到可變速率內(nèi)插器224,該可變速率內(nèi)插器224以一合適的采樣率,對信號209進行再采樣。
可變速率內(nèi)插器224可接收數(shù)控振蕩器(“NCO”)定時發(fā)生器236輸出的定時信號237。定時信號237是基于前同步碼處理器240輸出的載波頻率偏移估計(“CFOE”)241。CFOE 241可基于前同步碼處理器240估計。內(nèi)插器224輸出信號225,然后其可通過高通濾波器(“HPF”)228,去除直流(“DC”)信號分量。
載波恢復環(huán)229可執(zhí)行對人為頻率誤差213的頻率補償。載波恢復環(huán)可接收NCO頻率發(fā)生器234的輸入,其中NCO頻率發(fā)生器234由接收器控制器232進行控制。NCO頻率發(fā)生器234可接收前同步碼處理器240輸出的載波頻率偏移估計241。在CP移除器246,可將循環(huán)前綴從信號225去除。
在頻域處理模塊206中,使用快速傅立葉變換模塊298將信號225轉(zhuǎn)換成頻域信息(“FFT輸出”),其可存儲在存儲器299中,并發(fā)送到探測2軟件處理程序250,其可輸出修正參數(shù)252,以返回給I/Q失衡補償模塊218。
圖3示出例證性的接收器300的一部分的結構框圖。接收器300可包括射頻(“RF”)處理模塊302、時域處理模塊304和頻域處理模塊306。在增益310,接收RF信號308,并調(diào)節(jié)其增益。在312,信號308下變頻為基帶頻率。在312,將人為頻率誤差313添加到信號308。模數(shù)轉(zhuǎn)換器314將信號308為轉(zhuǎn)換數(shù)字信號,并將其發(fā)送到100 MHz FIFO(“先進先出”)緩沖器316。緩沖器316發(fā)送信號308到I/Q失衡補償模塊318。I/Q失衡補償模塊318可執(zhí)行與在此的I/Q補償相關的步驟。I/Q失衡補償模塊318輸出信號309,其對應于等式1(如下)。
信號309可發(fā)送到基帶模式分層器320。接收器300可包括自動增益控制器322,其可基于信號309給增益310提供反饋。通過分層器320,信號309可發(fā)送到Farrow內(nèi)插器324,其以較低的采樣率,對100MHz信號309進行再采樣。
Farrow內(nèi)插器324可接收數(shù)控振蕩器(“NCO”)定時發(fā)生器336輸出的定時信號337。定時信號337是基于前同步碼控制處理器340輸出的載波頻率偏移估計341的。載波頻率偏移估計341是基于經(jīng)過前同步碼處理器340所發(fā)送的TD相位旋轉(zhuǎn)器(下面討論)的輸出。在一些實施例中,內(nèi)插器324以100MHz輸出信號325。經(jīng)過定時恢復環(huán)(未示出),信號325可與發(fā)送器時鐘(未示出)同步。經(jīng)過半帶濾波器抽取器(“HB DEC2→1”)236,使用因子2,將信號325向下采樣為50MHz。然后通過高通濾波器(“HPF”)328,去除信號325的直流(“DC”)信號分量。
時域(“TD”)相位旋轉(zhuǎn)器330可執(zhí)行對人為頻率誤差313的頻率補償。TD相位旋轉(zhuǎn)器可接收NCO頻率發(fā)生器334的輸入,該NCO頻率發(fā)生器334可由接收器控制器332控制。NCO頻率發(fā)生器334可接收前同步碼處理器340輸出的載波頻率偏移估計341。信號325然后發(fā)送到延遲緩沖器342。在子電路346,可去除循環(huán)前綴。在一些實施例中,子電路346可執(zhí)行接收器開窗操作,以降低窄帶干擾噪音的損害,該窄帶干擾噪音否則可滲透到相鄰的信號音。
在頻域處理模塊306中,可使用快速傅立葉變換模塊398將信號325轉(zhuǎn)換成頻域信息,其可發(fā)送到探測2計算器350,該探測2計算器350可輸出探測2結果352,并發(fā)送到I/Q補償模塊318。
一些實施例包括旁路模式,在其中將信號輸入路由到I/Q失衡補償模塊318周邊的輸出。
在一些實施例中,通過數(shù)字信號分析和處理可實現(xiàn)I/Q補償。在這些實施例中,在探測2期間,
,ρ和Scale_Q為估計的I/Q補償參數(shù)。
等式1示出補償信號的補償實部和虛部,該補償信號是I/Q補償模塊的輸出(見圖2)。
等式1 圖4示出例證性的電路400,其包括在執(zhí)行等式1所列的補償?shù)脑O備中。
圖5示出例證性的電路500,其包括在執(zhí)行等式1所列的補償?shù)脑O備中。附錄A列出了等式1所列的補償?shù)睦碚摶A。附錄B示出與在此所描述的裝置和方法相聯(lián)系的示范性的失衡和補償度量。
圖6示出用于補償I/Q失衡的例證性的過程600。過程600涉及硬件(“HW”)和軟件(“SW”)操作。初始的硬件操作602的輸出是數(shù)據(jù)組Z(k,m),其是快速傅立葉變換(“FFT”)在對應于探測2的OFDM符號m的窗口k的輸出。
初始的硬件操作602可包括數(shù)控振蕩器(“NCO”)相位復位604。確定FFT窗口的第一樣本的相位,該FFT窗口是時域單元(“TDU”)頻域補償?shù)慕Y果。為此,在計算出精確的頻率補償后的任意時間,將接收器TDU中的相位旋轉(zhuǎn)器的NCO相位復位為零。計算NCO復位和FFT窗口的第一樣本之間的樣本數(shù)量(相位累加數(shù)量),且定義為Δn,并發(fā)送到SW程序。最好是零相位累加(即Δn=0),因為其可降低SW程序的復雜度。對于設置Δn=0,一旦356點FFT窗口的第一樣本傳輸通過TD相位旋轉(zhuǎn)器330(見圖3)(因此第一樣本將乘以一整數(shù)),應復位NCO相位累加器335(位于NCO頻率發(fā)生器334中-見圖3)。
圖7示出數(shù)據(jù)包700、NCO復位、Δn和FFT窗口的開始。
在一些實施例中,窗口選擇606(見圖6)的執(zhí)行作為浮點計算,其中i1和i2是頻率窗口系數(shù),如等式2進行計算 等式2 其中,CFO/(2π)是發(fā)射器和接收器之間的經(jīng)估計的載波頻率偏移,N是FFT窗口的數(shù)量(例如256)。
在一些實施例中,窗口選擇606(見圖6)的執(zhí)行可作為定點計算。在這些實施例中,CFO是17比特帶符號整數(shù),其中‘1’=214。通過與固定閾值比較,計算i1和i2。等式3給出了在定點表示中,F(xiàn)FT柵格(grid)的值 等式3 其中,k=[-3,3] 其中,F(xiàn)req_bits可設置為14或任意合適的數(shù)字。通過找到最接近2CFO的兩個FFT窗口,選擇系數(shù)i1和i2。
圖8示出對應于等式3的決策區(qū)域(由于對稱僅給出絕對值)。
圖9示出用于決策區(qū)域邊界選擇的例證性的硬件(“HW”)的實施。表1示出例證性的邊界值。
表1
等式4定義為標記(sign)操作。
等式4 在一些實施例中,窗口記錄(步驟408,見圖4)涉及在窗口k1、-k1+i1、-k1+i2、k2、-k2+i1、-k2+i2的16比特FFT輸出,然后為每一個LOFDM符號記錄該輸出??梢岳斫獾氖荈FT的輸出可為任意合適的數(shù)量的比特。MoCAFFT中的地址對應于表2所列的窗口。
表2 ADDRk1 Z[k1,m] k1∈[146,186] ADDRk2 Z[k2,m] k2∈[217,249] ADDR256-k1+i1 Z[-k1+i1,m], -k1+i1=256-k1+i1∈[67,113] ADDR256-k1+i2 Z[-k1+i2,m], -k1+i2=256-k2+i2∈[66,112] ADDR256-k2+i1 Z[-k2+i1,m], -k2+i1=256-k2+i1∈[4,36] ADDR256-k2+i2 Z[-k2+i2,m] -k2+i2=256-k2+i2 ∈ [3,37] 圖10示出在探測2猝發(fā)末端處的例證性的存儲圖。
在步驟608記錄CFO估計(如圖6所示)。該估計可為17-比特估計。
在一些實施例中,可通過軟件模塊執(zhí)行殘留頻率誤差
估計610(見圖6)。在一些實施例中,可通過硬件模塊執(zhí)行殘留頻率誤差估計。在一些實施例中,可如等式5所示計算殘留頻率誤差估計。
等式5 其中, 在一些實施例,可依據(jù)等式6,計算殘余頻率誤差補償和時間平均,其取決于
,并且附錄A列出其導數(shù)。
等式6 等式7用于估計I/Q失衡相位估計的值,其使用等式8計算。
等式7 等式8 然后依據(jù)等式9計算I/Q失衡補償參數(shù)ξ、ρ和Scale_Q(見例如等式1)。
等式9 等式9避免接收器處的飽和,因為ξ總是小于或等于一整數(shù),因此削弱較強的I/Q信號,而不是放大較弱的I/Q信號。在一些實施例中,上述的計算可在幾個探測2傳輸上以迭代方式執(zhí)行。等式10示出新的相位估計如何用于更新前一估計。
等式10 在等式10中,(ge-jθ)i是在第i探測2傳輸中所計算的相位估計。一些實施例可包括更新程序,其可使用具有μi∈
環(huán)增益的第一級環(huán)。環(huán)增益可提供收斂速度和環(huán)帶寬(“BW”)控制的噪音濾波之間的折衷。在收斂的過程中,環(huán)BW動態(tài)地改變中可使用變速(gear-shifting)方法。對于快速收斂,在第一2/3迭代過程中,可使用高環(huán)BW。對于連續(xù)的探測2傳輸,可使用小環(huán)BW。等式11所列的值可用于μii定義為探測2猝發(fā)系數(shù)。
等式11 等式12所列的I/Q補償參數(shù)可在第i探測2接收的過程中使用。
等式12 對于I/Q失衡,3到4個迭代(相當于3到4個探測2傳輸)常常是足夠補償?shù)摹?br>
附錄C所列的偽碼用于補償?shù)亩c實施。
附錄D所列的參數(shù)用于I/Q失衡補償?shù)南到y(tǒng)中的硬件-軟件接口。
當網(wǎng)絡節(jié)點處理一個或多個網(wǎng)絡協(xié)調(diào)器(“NC”)輸出的探測1猝發(fā)時,根據(jù)每一信號音和載波頻率偏移(相對于一相關的網(wǎng)絡協(xié)調(diào)器),網(wǎng)絡節(jié)點可獲得信噪比(“SNR”)估計。該節(jié)點可使用SNR估計告知NC,哪兩個窗口中一個用于將探測2發(fā)送到該節(jié)點。該節(jié)點可使用CFO估計計算OFDM符號的數(shù)量,及探測2傳輸過程中循環(huán)前綴(“CP”)的長度,并發(fā)送到NC。
附錄E所列的偽碼,用于計算頻率偏移引入、CP以及OFDM符號數(shù)量的選擇。在一些實施例中,附錄E所列的探測2、CP以及L算法可在發(fā)送MoCATM探測2報告之前和接收器RF發(fā)生器引入任意需要的、必要的或人為的載波偏移之后執(zhí)行。
為了清楚的緣故,前面的描述,包括參數(shù)或參數(shù)值的特定例子,有時是針對一特定的協(xié)議,例如那些標識名稱為MoCATM和/或以太網(wǎng)協(xié)議。然而,不限于此,本發(fā)明可普遍到別的協(xié)議和/或數(shù)據(jù)包協(xié)議。所使用的術語是針對一特定的協(xié)議,例如其標識為MoCATM或以太網(wǎng),以描述一特定特點或?qū)嵤├皇翘貏e地用于限制該特點或?qū)嵤├姆秶谠搮f(xié)議;取代通常所使用的術語,并包括每一個在別的協(xié)議下所定義的平行和類似的術語。
可以理解的,本發(fā)明的軟件組件包括程序和數(shù)據(jù),如果期望的話,可以ROM(只讀存儲器)形式,包括CD-ROM、EPROM和EEPROM,進行實施,或可存儲在任意合適的計算機可讀媒介,例如但不限于各種不同的光盤、各種不同的磁帶和RAM。在此描述為軟件的組件可選擇地、全部或部分地實施在硬件中,如果期望的話,可使用傳統(tǒng)技術。
因此,已對用于補償I/Q失衡的系統(tǒng)和方法進行了描述。本發(fā)明是通過一些實施例進行描述的,本領域技術人員知悉,在不脫離本發(fā)明的精神和范圍的情況下,可以對這些特征和實施例進行各種改變或等效替換。本發(fā)明不僅僅限于如下的權利要求。
附錄A 探測2理論 I/Q失衡可模擬為倍增的增益因子,用于I/Q分量的其中之一,也可模擬為相對的相位差。在探測2接收的過程中,MoCA規(guī)定在RF下變頻過程中,接收器必須引入頻率誤差,我們定義該偏移為
。經(jīng)轉(zhuǎn)換的信號為
一些代數(shù)式可將上述表達為
在接收器,執(zhí)行I/Q補償,I/Q補償后的信號為
假設以頻率窗口k,發(fā)送單一頻率,經(jīng)幾個代數(shù)過程后的補償信號為
信號經(jīng)過頻率補償,然后經(jīng)過FFT操作轉(zhuǎn)換到頻域。經(jīng)過幾個代數(shù)過程后在窗口k和-k的頻域信號為
在沒有I/Q失衡的系統(tǒng)中,在負窗口的能量為零。由于I/Q失衡,在負窗口的能量為
因此,我們的目標是使用ρ,ξ,最小化窗口-k的能量。使用拉格朗日乘數(shù)法進行最小化,給出如下等式 解出上面的量 容易得出,這樣的選擇實際上使得窗口-k的能量等于0,因此完全消除了I/Q失衡的影響?,F(xiàn)在,我們的目的是從探測2傳輸估計出I/Q失衡參數(shù)。
I/Q參數(shù)估計 因為I/Q失衡破壞了輸入的信號,所以其導致了受到破壞的載波頻率估計,及受到破壞的信道估計。在I/Q失衡下的信道估計為 在窗口k和-k,F(xiàn)FT的輸出不具有I/Q失衡補償,但是在頻率補償后,假設ε的頻率估計誤差為
載波頻率偏移大于50Khz的影響 在載波頻率誤差出現(xiàn)的情況下,由I/Q失衡所導致的鏡像分量(imagecomponent)正好在所發(fā)送的信號音的鏡像數(shù)字頻率(-k/N)出現(xiàn)。在載波頻率誤差(在探測II過程中是強制的)下,I/Q鏡像在(-k/N-
)數(shù)字頻率出現(xiàn),其中
是標準化的載波頻率誤差,
在1.5e9Hz=300kkHz下,載波頻率誤差的范圍可在±200ppm之間,而OFDM信號音間隔為50e6/256=195.3kHz。因此,在頻域中,鏡像分量可落在[-k-3,k+3]的時間間隔之間。對于窗口-k+i,F(xiàn)FT輸出為
并且由于補償頻率誤差
導致在鏡像位置有
的偏移,我們需要從時間間隔[-k-3,...,k+3]收集鏡像能量。實際地,因為我們知道頻率誤差
(等于ε),所以我們知道鏡像將以以下的數(shù)字頻率出現(xiàn)
以[dB]表示的鏡像能量的損耗是用于收集能量的窗口的數(shù)量的函數(shù),其為 最壞的損耗情況是當鏡像落在窗口(r=1/(2N))之間。使用最接近鏡像的窗口將導致3.9223[dB]的最壞損耗;使用兩個窗口導致0.9120[dB]的損耗。圖11總結了作為所使用的窗口的數(shù)量的函數(shù)的損耗。
我們使用2個窗口,似乎是負責度和執(zhí)行之間合理的折衷。
探測2的FFT處理(單OFDM符號) 為了簡單起見,考慮單一OFDM符號,稍后將給出擴展到多OFDM符號。我們已經(jīng)示出在點k和-k的FFT輸出為 容易看出,每一表達式中包括期望信號項和來自鏡像頻率的ICI項。現(xiàn)在,我們將示出ICI項遠小于信號項,并可忽略。
頻率離FFT刪格越遠
ICI就越大。因為k限制在時間間隔{[146,186],[217,249]},因此,所生成的鏡像與期望的信號差別很大,并且以頻率
生成的ICI噪音就非常小。為了了解這個,要考慮在窗口k的信號和ICI項之間的比率。我們定義該比率為期望和ICI項之間的SNR,為
關于{g,θ,k,
},通過最小化上面的表達式,將得到最壞的SNR。容易得知,最小化如上表達式是可分離的,因此可通過如下實現(xiàn)最小化 ●在約束條件
(最多3[dB]振幅失衡),以及
下,最小化關于g和θ的第一項 ●在約束條件
,以及
下,最大化第二項 可使用Matlab仿真數(shù)字化地執(zhí)行以上的最小化操作。如圖12所示,其將第一項作為g和θ的函數(shù)進行描述 容易看出(也可分析出),最小值在自變量時間間隔的邊沿,即g=0.5,2和Teta=±10°,因此 如圖13所示,其將第二項作為
和k的函數(shù)進行描述 從上圖,容易看
出,在k=249時,第二項取得最大值,如圖14所示,其對此時的第二項進行了描述。
當Df=±245Khz時取得最大值,因此 所以,由ICI項所導致的SNR最壞的情況為40.3816[dB]
因此,ICI項最壞為40[dB],小于信號項,所以可以忽略。對負窗口可以進行類似的分析。在忽略ICI項后,在窗口k和-k+i,F(xiàn)FT的輸出為 Z[k]=hAK1+Wk Z[-k+i]=h*BiK2W-k+i
因為我們不能估計信道響應h,我們不能解決ge-jθ的線性LS問題,所以我們先從兩個負窗口-k+i1和-k+i2,解決hK2*估計的LS問題 在不知道信道h的情況下,我們能估計
因為探測2是由兩個信號音組成,其中一個在k1,另一個在k2,因此根據(jù)這兩個信號音,平均該結果,得 容易看出 因此其估計為 接著可以計算出I/Q估計 探測2的FFT處理(多OFDM符號) 當我們注意多OFDM符號時,我們需要考慮由殘余頻率誤差ε所導致的相位誤差。容易示出第m個OFDM符號相對于第一個的相位為
注意到上式?jīng)]有考慮采樣頻率誤差,假設其影響很小,所以在整個分析過程中忽略。
如圖15所示,從載波頻率補償開始到第一FFT窗口開始,所累加的相位應該考慮到。因為我們的算法是計算Zk和conj(Z-k)之間的比率,所以任意的常數(shù)相位項不僅不能刪除,而且要將其加倍。
因此,對于第mOFDM符號,在窗口+k、-k+i,F(xiàn)FT輸出設為
殘余載波頻率估計 為了使用從所有L OFDM符號中得出的信息,我們需要補償殘余頻率偏移ε,接著為每一個窗口,計算補償信號的平均數(shù),以降低AWGN方差。因為ε可以足夠大,以便在L OFDM符號期間,可發(fā)生多次相位纏繞(phasewrapping)。我們提出的如下估計器,其不受相位纏繞的影響(只要在兩個連續(xù)的樣本之間發(fā)生一次纏繞,就運用該估計器) 殘余頻率估計 可通過計算得到殘余頻率誤差估計 其中 殘余頻率誤差和時間平均設為 殘余頻率補償和時間平均
使用如上相同的估計器設備,接著可估計矢量ge-jθ,即
其中,相位項
用于補償從頻率補償開始時間直到第一FFT窗口開始所累加的初始相位誤差。
簡化系數(shù)Bi和A 對于實際執(zhí)行,我們需要簡化Bi和A的表達式;通過引入一些近似值,可以實現(xiàn)簡化。讓我們看 殘余頻率誤差通常小于10khz(7ppm),對這樣的一個誤差 因此我們可以作如下的近似 對于Bi
其中
因為伴隨殘余頻率誤差的頻率偏移小于(200+7)ppm,并且在-3≤i≤3,分母中的sin()的自變量是較小的。
對于這樣小的角度,簡單的線性近似只有很小的誤差
因此接著
應此簡化的系數(shù)為 A=N 附錄B 示范性度量 具有200ppm載波和采樣頻率偏移的理想信道,無AWGN。
圖16總結了3[dB]振幅失衡、10°相位失衡、200ppm頻率偏移、理想信道和沒有AWGN的仿真結果。在調(diào)用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失衡的表現(xiàn)降低到大約為0.4[dB]。
圖21限幅器輸入理想信道、沒有AWGN,沒有I/Q失衡 下表總結了,在四次迭代中每一次結束之后,I/Q失衡參數(shù)估計 信道MoCA10408、SNR AWGN15[dB] 圖22總結了3[dB]振幅失衡、10°相位失衡、200ppm頻率偏移、MoCA10408信道和15[dB]AWGN的仿真結果。在調(diào)用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失衡遠小于解調(diào)器的本底噪音,并且即使在哈希(harsh)信道條件下,估計和補償算法都是很有用的。
圖29限幅器輸入、MoCA10408信道、15[dB]AWGN SNR、沒有I/Q失衡 TX和RX I/Q失衡的消除 MoCA所規(guī)定的認為頻率偏移產(chǎn)生TX和RX I/Q失衡參數(shù)的消除,為了顯示我們的算法可以在X失衡出現(xiàn)的情況下,估計RX參數(shù),我們仿真結果作如下說明 ●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次迭代后,經(jīng)估計的RX I/Q失衡參數(shù)是 因此,對參數(shù)作了正確的估計,與說明中的SNR相比,其中僅TX失衡出現(xiàn),大約為21.2[dB]。
圖33在僅僅TX I/Q失衡下,限幅器輸入、理想信道、沒有AWGN 因此,在TX I/Q失衡出現(xiàn)的情況下,所提出的算法是有用的。
附錄C 定點偽碼 如下的偽碼給出了上述算法的定點實施。注意復變數(shù)由字母“c”表示。
Function 1Probe2Processing 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 Coeff Computation [theta,rho,Scale_Q]=Compensation_Params_Estimation(cg_exp_mTeta_M_16,scale_inv,Scale_g); 表C-1探測2處理變量定義表
Function 2Residual_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_mult_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;%1rad=2^(Fr_bits-1) %Generate′Exp_Vec_m′ [cphasor_m tmp]=cordic_SW(angle_m,0);%gives-phasor(angle) Function 3Scale 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 4ceil_log2 function[i]=ceil_log2(X) i=0; while(X?。?) X=X>>1; i=i+1;end Function5Signfunction[Y]=Sign(X)y=1;if(X<0) y=-1; end Function 6Cmplx_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-2Residual_Frequency_Estimation,Scale_Complex_64變量定義表
表C-3SW CORDIC變量定義
Function 7Cordic_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; Sgr_real=sign(real(data_in)); Sgn_imag=sign(imag(data_in)); if(Sgn_real==-1) data_in=-data_in; if(Sgn_imag==1)X=QUARTER<<1; elseX=-(QUARTER<<1); end end end 表C-4Cordic_SW,Cordic_Pre_Process變量定義
Function 8Residual_frequency_Compensation function[cZ_16]=Residual_frequency_Correction(cIQparameters_log,cphasor_p,cphasor_m) cdphasor_p=cphssor_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=1:Nsym-1cZ_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(cIQparmeters_log(i+1,4),cphasor_m); cZ_ACC_64(5)=Cmplx_Add_64_32(cZ_ACC_64(5),Cmplx_Mukt_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 32bitfor i=1:6cZ_ACC_32(i)=cZ_ACC_64(i)>>(Nfft_out);end%Level control vector so that max fits in 16bitMax_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-5Residual_frequency_Compensation變量
Function9Coeff 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); elsecfB1_32=Cmplx_real_div_32_16((cfs11<<(Nfft_out-N1)),fs21); end if(fs22==0)cfB2_32=1<<(Nfft_out+Log2Nfft); elsecfB2_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;endScale_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),Nfft_out-2); cfB2=Cmplx_Saturate((cfB2_32>>-Scale_ratio),Nfft_out-2); end 表C-6系數(shù)計算變量定義
Function 10Phasor 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 % % 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 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)),(cfB 1)), 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); Scale_fCM=Ntan-1-N1+Scale_ratio-Scale-6-N2; 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); elseScale_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 11Compensation_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;elseMue=4;Endif(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);endProbeII_Num=ProbeII_Num+1; 表C-8Compensation_Params_Estimation變量定義
Function 13Compute_Fix_Point_IQ_Coeffs function[theta,rho,Scale_Q]=Compute_Fix_Point_IQ_Coeffs(cg_exp_mTeta_M_16,scale_inv, scale_g,F(xiàn)irstTime) if(FirstTime) scale_delta=0; if(scale_inv>31)scale_delta=scale_inv-31;scale_inv=31; end scale_inv_log=scale_inv; scale_delta_log=scale_delta; scale_g_log=scale_g else scale_inv=scale_inv_log; scale_delta=scale_delta_log; 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); elsetheta=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_16>>(-Scale_theta);end If(Scale_rho>=0) rho=(-imag_g_exp_mTeta_M_16)<<(Scale_rho); elserho=(-imag_g_exp_mTeta_M_16)>>(-Scale_rho); endScale_Q=0;end 表C-9Compute_Fix_Point_IQ_Coeffs變量定義
復變數(shù)數(shù)學運算操作定義 [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); C_32_r=A_32_r+B_32_r C_32_i=A_32_i+B_32 [R_32]=Real_Add_30_30_T(A_30,B_30);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_rC_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_16C_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_rC_32_i=A_32_i+B_16 [C_32_r]=MAG_2_16(A_16_r,A_16_i)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 [C_32_r,C_32_i]=Cmplx_Mult_16_16(A_16_r,A_16_i,B_16_r,B_16_i)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[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_iC_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_rC_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)C_64_r=A_32_r*B_16_rC_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)C_32_r=A_32_r/B_16_rC_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_rC_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_iC_32_i=A_16_r 附錄D 示范性的HW-SW接口參數(shù) 下表總結了在探測2接收的過程中,HW和SW之間的信息交換。輸出指HW的輸出,輸入指輸入到HW。
附錄E 頻率偏移引入、CP長度、符號數(shù)量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);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,F(xiàn)rac_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,F(xiàn)rac_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 endendendWhere Sigma_32 is a vector of the estimated noise variance of the various FFT tones. CP和OFDM符號數(shù)量選擇 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_Mm; forCP=CP_Min:CP_Max for L=L_Min:L_MaxdPhase_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
權利要求
1. 一種補償數(shù)據(jù)信號的第一分量和第二分量間失衡的方法,所述數(shù)據(jù)信號具有正值的頻率,通過具有頻率誤差的載波信號對其進行調(diào)制,其特征在于,包括以下步驟
接收數(shù)據(jù)和載波信號;
選擇時域參數(shù)值,以使與負值頻率相應的頻域能量最小化;和
基于所述值在時域中修改至少一個所述分量。
2. 根據(jù)權利要求1所述的方法,其特征在于,進一步包括
估計與所述載波信號相應的載波信號頻率;
估計殘余載波頻率誤差;和
基于所述殘余載波頻率誤差,修改所述載波頻率的估計。
3. 根據(jù)權利要求2所述的方法,其特征在于,所述修改包括
為所述分量確定與信號振幅乘法器相應的第一值;和
為所述分量確定與相位偏移相應的第二值。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述選擇包括
為第一信號音、第二信號音、以及所述載波信號中的每一個記錄第一頻域參數(shù)和第二頻域參數(shù)。
5. 根據(jù)權利要求4所述的方法,其特征在于,對于所述第一信號音、所述第二信號音、以及所述載波信號,其中至少有一個其所述第一和第二頻域參數(shù)分別相應于離散值頻譜中的第一和第二窗口;
所述第一窗口順次地鄰近所述第二窗口。
6. 根據(jù)權利要求4所述的方法,其特征在于,進一步包括發(fā)送取決于所述第一和第二頻域參數(shù)的輸出信號。
7. 一種可記錄與接收到的信號的頻率分量相應的復數(shù)參數(shù)的系統(tǒng),其特征在于,所述信號攜帶有至少一個正交頻分復用(OFDM)符號,所述參數(shù)相應于
具有頻率誤差的載波頻率;
第一信號音;和
第二信號音。
8. 根據(jù)權利要求7所述的系統(tǒng),其特征在于,還用于估計與所述載波頻率、所述第一信號音、以及所述第二信號音中的每一個相應的頻率窗口。
9. 一種用于補償?shù)谝恍盘柡偷诙盘栔g失衡的系統(tǒng),其特征在于,包括
第一模塊,用于根據(jù)所述第一和第二信號,記錄第一頻域參數(shù)、第二頻域參數(shù)、第一信號音、第二信號音、以及載波頻率;所述第一頻域參數(shù)和第二頻域參數(shù)相應于所述第一信號音、第二信號音、以及載波頻率中的每一個;和
第二模塊,用于根據(jù)所述第一和第二頻域參數(shù),計算至少一個時域補償參數(shù)。
10. 根據(jù)權利要求9所述的系統(tǒng),其特征在于,進一步包括
第三模塊,用于根據(jù)所述時域補償參數(shù),輸出經(jīng)補償?shù)男盘枴?br>
全文摘要
本發(fā)明涉及用于補償I/Q失衡的裝置、方法和系統(tǒng),可包括補償數(shù)據(jù)信號的第一分量和該數(shù)據(jù)信號的第二分量之間的失衡。通過具有頻率誤差的載波信號可調(diào)制該數(shù)據(jù)信號??墒褂弥辽僖粎?shù)表征所述第一分量。該方法可包括接收數(shù)據(jù)和載波信號;選擇參數(shù)值,以便降低負頻率形式的頻率能量;和基于所述值,修改至少一所述分量。
文檔編號H04L27/26GK101252561SQ200710193908
公開日2008年8月27日 申請日期2007年11月20日 優(yōu)先權日2006年11月20日
發(fā)明者扎克·利瓦, 伊利亞·舒斯特曼 申請人:美國博通公司