[1.第1実施例]
以下、第1実施例に係る無線通信装置及び歪補償装置について説明する。
[1−1.無線通信装置300の構成例]
図3は、複数LUT型の歪補償装置302を有する無線通信装置300の構成の一例を示す図である。図3に示したように、無線通信装置300は、歪補償装置302、デジタル/アナログ変換器(DAC)304、アップコンバータ306、基準搬送波発生器308、電力増幅器310、ダウンコンバータ312、基準搬送波発生器314及びアナログ/デジタル変換器(ADC)316を含む。
歪補償装置302は、複数LUT型の歪補償装置であり、プリディストーション信号生成部322及び歪補償係数更新部324を含む。プリディストーション信号生成部322は、複数のLUTを含み、不図示の送信信号発生装置から送信信号Tx(t)を受けとる。プリディストーション信号生成部322は、複数のLUTに格納された複数の歪補償係数を合成することにより、合成後係数を生成し、受けとった送信信号Tx(t)と生成した合成後係数に基づいて、プリディストーション信号PD(t)を生成する。プリディストーション信号生成部322の詳細については後で説明する。
プリディストーション信号PD(t)は、DAC304によってアナログ信号に変換される。アップコンバータ306は、変換されたプリディストーション信号を受けとり、基準搬送波発生器308から供給される基準搬送波を用いて直交変調を行うとともに、無線周波数への周波数変換を行う。電力増幅器310は、直交変調及び周波数変換が施されたプリディストーション信号を受けとり、受けとったプリディストーション信号の電力増幅を行って、無線送信信号を生成する。電力増幅器310は、不図示のアンテナを介して無線送信信号を空中へ無線送信するとともに、ダウンコンバータ312に無線送信信号をフィードバックする。
ダウンコンバータ312はフィードバックされた無線送信信号を受けとり、基準搬送波発生器314を用いて直交検波を行うとともに、元のベースバンド周波数への周波数変換を行う。直交検波及び周波数変換が施された信号は、ADC316によってデジタル信号に変換され、フィードバック信号Fb(t)として歪補償係数更新部324に供給される。
歪補償係数更新部324は、フィードバック信号Fb(t)を受けとるとともに、プリディストーション信号生成部322からプリディストーション信号PD(t)を受けとる。また、歪補償係数更新部324は、プリディストーション信号生成部322内の複数のLUTから、歪補償係数h(p)を受けとる。歪補償係数更新部324は例えば、LMS(Least Mean Square)アルゴリズムを用いた適応信号処理を行うことにより、プリディストーション信号生成部322に含まれる複数のLUTの各々に格納された歪補償係数の値を更新する。
歪補償係数更新部324は、フィードバック信号Fb(t)に送信信号Tx(t)と同様の歪補償処理を施すことによって、参照プリディストーション信号PDref(t)を生成する。歪補償係数更新部324は、LMSアルゴリズムを用いた適応信号処理により、受けとったプリディストーション信号PD(t)と生成した参照プリディストーション信号PDref(t)との差が零となるように、各LUTに対して、受けとった歪補償係数h(p)の更新値を算出する。歪補償係数更新部324は、算出した更新値に基づいて、各LUT内の歪補償係数の値を、対応する送信信号の電力値に関連付けて更新する。歪補償係数更新部324は、上述の歪補償係数更新処理を繰り返し実行することによって、各LUT内の歪補償係数の値を送信信号の各電力値に対応した一定の値に収束させるように動作する。尚、歪補償係数更新部324において実行される歪補償係数の更新処理については、本願出願人による先願(特願2010‐236432号)の明細書及び図面において、説明されたものを用いることができる。
尚、歪補償装置302は例えば、FPGAやASIC等のデジタル信号処理処置、又はDSP等のプロセッサによって実現することができる。また、歪補償装置302は、単一の素子として実現してもよく、それぞれが歪補償装置302の一部の機能を有する複数の素子の組合せとして実現してもよい。また、歪補償装置302に含まれるLUTについては、独立したRAM等の記憶装置によって実現してもよい。
[1−2.プリディストーション信号生成部322の構成例]
図4は、プリディストーション信号生成部322の内部構成の一例を示す図である。図5は、プリディストーション信号生成部322における歪補償係数の補正処理を説明するための図である。以下、図4及び図5を用いて、プリディストーション信号生成部322の構成例について説明する。
図4に示したように、プリディストーション信号生成部322は、歪補償係数供給部450、歪補償処理部460及びオフセット補正処理部470を含む。
歪補償係数供給部450は、アドレス生成部402、遅延部404、LUT(ルックアップテーブル)a406、LUTb408、LUTc410及びLUTd412を含む。歪補償処理部460は、加算器414、416、乗算器418、420、遅延部422及び加算器424を含む。
ルックアップテーブルLUTa406〜LUTd412は、歪補償係数を格納する歪補償係数記憶部であり、例えばRAMである。LUTa406〜LUTd412はそれぞれ、送信信号Tx(t)の電力値p(t)に関連付けられたアドレスに、複数の歪補償係数ha(p(t))〜hd(p(t))を格納している。各LUTは例えば、送信信号Tx(t)の電力値p(t)と各LUTのアドレスを一対一に対応させ、送信信号Tx(t)の電力値p(t)が大きいほど、大きな値を有するアドレスに、対応する歪補償係数h(p(t))を格納する。
オフセット補正処理部470は、オフセット制御部432、補償値記憶部436、440、オフセット補償部438、442を含む。オフセット制御部432は平均値算出部434を含む。
オフセット補正処理部470において、オフセット制御部432は、LUTa406〜LUTd412の各々について個別に、以下のオフセット量算出処理及びオフセット補正処理を実行する。
オフセット制御部432は、LUTa406〜LUTd412の中から処理対象となるLUTを選択する。オフセット制御部432は、選択した処理対象LUTにおいて、補正対象となる歪補償係数が格納されたアドレスの領域(補正対象アドレス領域)内のアドレスAiから、全ての歪補償係数h(pi)を読み出す。
平均値算出部434は、図5に示したように、読み出された全ての歪補償係数h(pi)について、以下の式1で示される加算平均演算を行い、平均値を算出する。オフセット制御部432は、平均値算出部434によって歪補償係数の平均値を算出することにより、処理対象のLUT_xに対して、歪補償係数のオフセット量LUTofst_xの算出処理を行う(xはa〜dのいずれかである)。
ここで、式1において、LUTofst_xはLUT_x内の歪補償係数のオフセット量、adrsMaxは補正対象アドレスの最大値、adrsMinは補正対象アドレスの最小値、h(pi)はLUT_xのアドレスAiに格納されている歪補償係数、Nは補正対象アドレス最小値adrsMinから最大値adrsMaxまでのアドレスの数である。
尚、歪補償係数h(p(t))は複素数で表現されることから、上述のオフセット量算出処理は、歪補償係数の実部(Iチャネル成分)及び虚部(Qチャネル成分)のそれぞれに対して個別に実行される。また、オフセット補正値設定処理、オフセット補正処理、オフセット補償値更新処理、オフセット補償処理などの後述する処理、歪補償処理及び歪補償係数更新処理などの処理についても同様である。
オフセット制御部432は、算出されたオフセット量LUTofst_xに基づいて、処理対象のLUT_xに対してオフセット補正値Ofst_xの設定処理を行う。オフセット制御部432は、算出されたオフセット量LUTofst_xが正の値であるか負の値であるかに応じて、オフセット補正値Ofst_xを異なる値に変更する。オフセット補正値設定処理の詳細については後で説明する。
オフセット制御部432は、処理対象のLUT_xにおいて、設定されたオフセット補正値Ofst_xに基づいて、補正対象アドレス領域内に格納された全ての歪補償係数に対してオフセット補正処理を行う。オフセット制御部432は、例えば図5に示したように、設定されたオフセット補正値Ofst_xに基づいて、処理対象LUTに格納された各々の歪補償係数のオフセット量の大きさ(絶対値)が小さくなるように、各歪補償係数のオフセットの補正処理を行う。オフセット制御部432は、オフセット補償処理が施された後の歪補償係数を処理対象のLUT_xの対応するアドレスに書き込むことにより、処理対象LUT内の歪補償係数のオフセットを補正する。オフセット補正処理の詳細については後で説明する。
以上の処理をLUTa406〜LUTd412について繰り返すことにより、オフセット制御部432は、LUTa406〜LUTd412に対して、オフセット量LUTofst_a〜LUTofdt_dを算出し、オフセット補正値Ofst_a〜Ofst_dを設定する処理を行うとともに、LUTa406〜LUTd412の各々に対してオフセット補正処理を行う。
オフセット制御部432は、算出されたオフセット量LUTofst_a及びオフセット量LUTofst_bに基づいて、補償値記憶部436内のオフセット補償値の更新処理を行う。オフセット制御部432は、オフセット量LUTofst_a及びLUTofst_bに基づいて、オフセット補償値Ofst_m1の更新値を算出し、算出されたオフセット補償値Ofst_m1の更新値を補償値記憶部436に格納する。オフセット補償値Ofst_m1は、LUTa406における、上述のオフセット補正処理の前後の歪補償係数の差分値(オフセット補正値)と、LUTb408におけるオフセット補正処理の前後の歪補償係数の差分値(オフセット補正値)を累積的に加算した値に対応するものである。オフセット補償値の更新処理の詳細については、後で説明する。
同様に、オフセット制御部432は、算出されたオフセット量LUTofst_c及びオフセット量LUTofst_dに基づいて、補償値記憶部440内のオフセット補償値の更新処理を行う。オフセット制御部432は、オフセット量LUTofst_c及びLUTofst_dに基づいて、オフセット補償値Ofst_m2の更新値を算出し、算出されたオフセット補償値Ofst_m2の更新値を補償値記憶部440に格納する。オフセット補償値Ofst_m2は、LUTc410におけるオフセット補正処理の前後の歪補償係数の差分値(オフセット補正値)と、LUTb412におけるオフセット補正処理の前後の歪補償係数の差分値(オフセット補正値)を累積的に加算した値に対応するものである。
歪補償係数供給部450において、アドレス生成部402は送信信号Tx(t)を受けとり、送信信号Tx(t)の電力値p(t)に対応するアドレスAdrs(Tx(t))を生成する。アドレス生成部402は例えば、送信信号Tx(t)の電力値p(t)とアドレスAdrs(Tx(t))を一対一に対応させ、送信信号Tx(t)の電力値p(t)が大きいほど、大きな値を有するアドレスAdrs(Tx(t))を生成する。生成されたアドレスAdrs(Tx(t))はLUT406及び410に供給される。
遅延部404は、アドレス生成部402によって生成されたアドレスAdrs(Tx(t))を受けとる。遅延部404は、受けとったアドレスAdrs(Tx(t))を1つ前の参照時刻に相当する時間だけ遅延させて出力することにより、1つ前の参照時刻t−1における送信信号Tx(t−1)の電力値p(t−1)に対応するアドレスAdrs(Tx(t−1))を生成する。生成されたアドレスAdrs(Tx(t−1))はLUT408及び412に供給される。
LUTa406は、アドレスAdrs(Tx(t))を受けとり、受けとったアドレスAdrs(Tx(t))から、対応する歪補償係数ha(p(t))を読み出す。LUTa406は読み出した歪補償係数ha(p(t))を加算器414に出力する。LUTa406から出力される歪補償係数ha(p(t))は、オフセット制御部432によるオフセット補正処理後の歪補償係数である。また、同様に、LUTc410は、アドレスAdrs(Tx(t))を受けとり、対応する歪補償係数hc(p(t))を加算器416に出力する。LUTc410から出力される歪補償係数hc(p(t))は、オフセット補正処理後の歪補償係数である。
LUTb408は、アドレスAdrs(Tx(t−1))を受けとり、受けとったアドレスAdrs(Tx(t−1))から、対応する歪補償係数hb(p(t−1))を読み出す。LUTb408は読み出した歪補償係数hb(p(t−1))を加算器414に出力する。LUTb408から出力される歪補償係数hb(p(t))は、オフセット制御部432によるオフセット補正処理後の歪補償係数である。また、同様に、LUTd412は、アドレスAdrs(Tx(t−1))を受けとり、対応する歪補償係数hd(p(t−1))を加算器416に出力する。LUTd412から出力される歪補償係数hd(p(t))は、上述のオフセット補正処理後の歪補償係数である。
歪補償処理部460において、加算器414はLUTa406及びLUTb408から歪補償係数ha(p(t))とhb(p(t−1))を受けとる。加算器414は歪補償係数ha(p(t))とhb(p(t−1))を加算することにより合成し、合成後係数h1(p(t))を生成する。加算器414は合成後係数h1(p(t))を、オフセット補償部438に出力する。
h1(p(t)=ha(p(t))+hb(p(t−1))
同様に、加算器416はLUTc410及びLUTd412から歪補償係数hc(p(t))とhd(p(t−1))を受けとる。加算器416は歪補償係数hc(p(t))とhd(p(t−1))を加算することにより合成し、合成後係数h2(t)を生成する。加算器416は生成した合成後係数h2(p(t))をオフセット補償部442に出力する。
h2(p(t)=hc(p(t))+hd(p(t−1))
オフセット補償部438は、加算器414より合成後係数h1(p(t))を受けとるとともに、補償値記憶部436よりオフセット補償値Ofst_m1を受けとる。オフセット補償部438は、受けとった合成後係数h1(p(t))にオフセット補償値Ofst_m1を加算することにより、合成後係数h1(p(t))に対してオフセット補償処理を行い、オフセット補償後係数h3(p(t))を生成する。
h3(p(t))=h1(p(t))+Ofst_m1
オフセット補償部438は、生成したオフセット補償後係数h3(p(t))を乗算器418に出力する。オフセット補償後係数h3(p(t))は、図1に示す従来構成のLUTa106において、オフセット補正処理が行われない場合の歪補償係数と、LUTb108において、オフセット補正処理が行われない場合の歪補償係数を加算した値に対応するものである。よって、オフセット補償後係数h3(p(t))は、オフセット補償値Ofst_m1を用いて、図1に示す従来構成でのオフセット補正処理が行われない場合に対する、オフセットの加算値を生成したものである。
オフセット補償部442は、加算器416より合成後係数h2(p(t))を受けとるとともに、補償値記憶部440よりオフセット補償値Ofst_m2を受けとる。オフセット補償部442は、受けとった合成後係数h2(p(t))にオフセット補償値Ofst_m2を加算することにより、合成後係数h2(p(t))に対してオフセット補償処理を行い、オフセット補償後係数h4(p(t))を生成する。
h4(p(t))=h2(p(t))+Ofst_m2
オフセット補償部442は、生成したオフセット補償後係数h4(p(t))を乗算器420に出力する。オフセット補償後係数h4(p(t))は、図1に示す従来構成のLUTc110において、オフセット補正処理が行われない場合の歪補償係数と、LUTd112において、オフセット補正処理が行われない場合の歪補償係数を加算した値に対応するものである。よって、オフセット補償後係数h4(p(t))は、オフセット補償値Ofst_m2を用いて、図1に示す従来構成でのオフセット補正処理が行われない場合に対する、オフセットの加算値を生成したものである。
乗算器418は送信信号Tx(t)を受けとるとともに、オフセット補償部438よりオフセット補償後係数h3(p(t))を受けとる。乗算器418は送信信号Tx(t)とオフセット補償後係数h3(p(t))を乗算し、Tx1(t)を生成する。乗算器418は生成した送信信号Tx1(t)を加算器424に出力する。
Tx1(t)=Tx(t)×h3(p(t))
遅延部422は送信信号Tx(t)を1つ前の参照時刻に相当する時間だけ遅延させて出力することにより、1つ前の参照時刻t−1における送信信号Tx(t−1)を生成する。遅延部422は生成した送信信号Tx(t−1)を乗算器420に出力する。
乗算器420は遅延部422より送信信号Tx(t−1)を受けとるとともに、オフセット補償部442よりオフセット補償後係数h4(p(t))を受けとる。乗算器420は送信信号Tx(t−1)とオフセット補償後係数h4(p(t))を乗算し、送信信号Tx2(t−1)を生成する。乗算器420は生成した送信信号Tx2(t−1)を加算器424に出力する。
Tx2(t−1)=Tx(t−1)×h4(p(t))
加算器424は送信信号Tx1(t)及びTx2(t−1)を加算することにより、プリディストーション信号PD(t)を生成する。プリディストーション信号PD(t)は、歪補償装置302に入力された送信信号Tx(t)に対して歪補償処理が施された後の送信信号である。
PD(t)=Tx1(t)+Tx2(t−1)
上述したように、複数LUT型の歪補償装置302においては、送信信号Tx(t)に対して遅延部404及び422によって遅延項を生成することによって、送信信号Tx(t)に対する歪補償処理に、1つ前の参照時刻t−1における送信信号Tx(t−1)の情報を反映させるようにしているので、電力増幅器の非線形歪に加えて、電力増幅器のメモリ効果に起因する歪を補償することができる。
また、歪補償装置302のプリディストーション信号生成部322では、ルックアップテーブルLUTa406〜LUTd412の各々において、歪補償係数のオフセット量を算出し、算出されたオフセット量に基づいて、歪補償係数のオフセット量が小さくなるように、各歪補償係数のオフセット補正処理を行っている。よって、各LUTにおいては、歪補償係数の更新が進んでいった場合でも、歪補償係数のオフセットが一方向に単調増加又は単調減少していき、その結果、歪補償係数が係数設定範囲の上限値又は下限値にクリップされるのを防止することができる。従って、歪補償装置302においては、歪補償性能が低下するのを防止することができる。
さらに、歪補償装置302においては、オフセット補償部438及び442により、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数に対応した歪補償係数を生成し、生成されたオフセット補正処理後の歪補償係数に基づいて、送信信号Tx(t)の歪補償処理を行っている。よって、歪補償装置302においては、オフセット補正処理により、各LUTにおいて格納された歪補償係数の値を補正した場合であっても、生成された歪補償係数を用いて適切な歪補償処理を行うことができ、歪補償処理の精度を維持することができる。
[1−3.歪補償装置302における歪補償係数の補正・更新動作の例]
図6は、歪補償装置302における歪補償係数の補正・更新処理のフローチャートの一例を示す図である。以下、図6のフローチャートを用いて、歪補償装置302が実行する歪補償係数の補正・更新処理について説明する。尚、図6のフローチャートおいては、点線で囲まれた部分に、対応するステップの処理に関連する数式が示してある。
まず、ステップS602において、歪補償装置302は一連の歪補償係数の補正・更新処理を開始する。
次に、ステップS604において、オフセット補正処理部470のオフセット制御部432は、初期設定として、後述するオフセット補正値設定処理660、オフセット補償値更新処理670及びオフセット補正処理680に用いられるパラメータを設定する。設定されるパラメータは、例えば、オフセット補正値設定処理に用いられるオフセット補正単位Ofst_u、オフセット補正処理において補正対象となる歪補償係数が格納される各LUT内のアドレスの最小値adrsMin及び最大値adrsMax、並びにオフセット補償値更新処理において補償値記憶部436、440に格納されるオフセット補償値Ofst_m1、Ofst_m2である。
特に限定されるものではないが、オフセット補正単位Ofst_uには一定の正の値u0が設定され、オフセット補償値Ofst_m1、Ofst_m2には0(零)が設定される。
Ofst_u=u0
Ofst_m1=0、Ofst_m2=0
また、補正対象アドレス最小値adrsMin及び最大値adrsMaxには、特に限定されるものではないが、各LUTにおいて補正係数が格納されているアドレスの最小値Amin及び最大値Amaxがそれぞれ設定される。
adrsMin=Amin
adrsMax=Amax
次に、ステップS606において、オフセット制御部432は、LUTa406〜LUTd412の中から処理対象となる1つのLUTを選択する。オフセット制御部432は、例えば、LUTa406、LUTb408、LUTc410、LUTd412、LUTa406、LUTb408、・・・の順番で、対応するLUTを周期的に選択していく。
次に、ステップS608において、オフセット制御部432は、ステップS606において選択した処理対象LUTから、歪補償係数h(pi)を読み出す。このとき、オフセット制御部432は、アドレス最小値adrsMinから最大値adrsMaxまでの範囲の全てのアドレスから、歪補償係数h(pi)を読み出す。
次に、ステップS610において、オフセット制御部432は、ステップS608において読み出した全ての歪補償係数h(p(t))について、上述の式1で示された加算平均演算を行う。この加算平均演算により、オフセット制御部432は、処理対象のLUTxに対する歪補償係数のオフセット量LUTofst_xを算出する処理を行う(xはa〜dのいずれかである)。
尚、歪補償係数h(p)は複素数で表現されることから、上述のオフセット量算出処理は、歪補償係数の実部(Iチャネル成分)及び虚部(Qチャネル成分)のそれぞれに対して個別に実行される。また、後述するステップにおいて実行される、オフセット補正値設定処理、オフセット補正処理、及びオフセット補償値更新処理などの処理についても同様である。
次に、ステップS612において、オフセット制御部432は、算出したオフセット量LUTofst_xが0(零)であるか、正の値であるか、若しくは負の値であるかを判定する。
オフセット制御部432はオフセット量LUTofst_xが正の値である(LUTofst_x>0)と判定したときは、オフセット補正単位Ofst_uを用いて、処理対象のLUTxに対するオフセット補正値Ofst_xを以下のように設定する処理を行う。すなわち、オフセット制御部432は、一定の正の値u0をオフセット補正値として設定する。
Ofst_x=+Ofst_u=+u0
オフセット制御部432はオフセット量LUTofst_xが負の値である(LUTofst_x<0)と判定したときは、オフセット補正単位Ofst_uを用いて、処理対象のLUTxに対するオフセット補正値Ofst_xを以下のように設定する処理を行う。すなわち、オフセット制御部432は、一定の負の値−u0をオフセット補正値として設定する。
Ofst_x=−Ofst_u=−u0
オフセット制御部432はオフセット量LUTofst_xが0(零)である(LUTofst_x=0)と判定したときは、処理対象のLUTxに対するオフセット補正値Ofst_xを以下のように設定する処理を行う。すなわち、オフセット制御部432は、オフセット補正値を0(零)に設定する。
Ofst_x=0
以上のS608〜S612のステップにより、オフセット補正処理部470において、オフセット量算出処理650及びオフセット補正値設定処理660が行われる。
次に、ステップS614において、オフセット制御部432は、補償値記憶部436又は440から、オフセット補償値Ofst_m1又はOfst_m2を読み出し、読み出したオフセット補償値をオフセット補償値の更新値Ofst_mとして設定する。
ここで、ステップS606において選択された処理対象LUTがLUTa又はLUTbである場合は、補償値記憶部436に格納されたオフセット補償値Ofst_m1を読み出し、読み出したオフセット補償値Ofst_m1を更新値Ofst_mとする。
Ofst_m=Ofst_m1
また、選択された処理対象LUTがLUTc又はLUTdである場合は、補償値記憶部440に格納されたオフセット補償値Ofst_m2を読み出す。読み出したオフセット補償値Ofst_m2を更新値Ofst_mとする。
Ofst_m=Ofst_m2
次に、ステップS616において、オフセット制御部432は、ステップS614で設定した更新値Ofst_mにステップS612で設定したオフセット補正値Ofst_xを加算し、加算値を新たな更新値Ofst_mとして算出する。
Ofst_m=Ofst_m+Ofst_x
次に、ステップS618において、オフセット制御部432は、ステップS616で算出したオフセット補償値の更新値Ofst_mを補償値記憶部436又は440に格納し、補償値記憶部436又は440内のオフセット補償値Ofst_m1又はOfst_m2を更新する。
ここで、ステップS606において選択された処理対象LUTがLUTa又はLUTbである場合は、オフセット制御部432は、オフセット補償値の更新値Ofst_mを補償値記憶部436に格納し、補償値記憶部436内のオフセット補償値Ofst_m1を更新する。
また、ステップS606において選択された処理対象LUTがLUTc又はLUTdである場合は、オフセット制御部432は、オフセット補償値の更新値Ofst_mを補償値記憶部440に格納し、補償値記憶部440内のオフセット補償値Ofst_m2を更新する。
以上のS614〜S618のステップにより、オフセット補正処理部470において、オフセット補償値更新処理670が行われる。
次に、ステップS620において、オフセット制御部432は、ステップS606で選択された処理対象LUT内のアクセス対象のアドレスAiの値に、ステップS604で設定された補正対象アドレス最小値adrsMin(=Amin)を指定する。処理対象LUT内のアクセス対象のアドレスは、オフセット補正処理が施される歪補償係数が格納されたアドレスに対応する。
Ai=adrsMin=Amin
次に、ステップS622において、オフセット制御部432は、指定されたアクセス対象アドレスAiの値がステップS604で設定された補正対象アドレス最大値adrsMax以下であるか否かを判定する。指定されたアクセス対象アドレスAiが最大値adrsMax以下である場合は、処理はステップS624に移行する。指定されたアドレスが最大値adrsMax以下でない場合は、処理はステップS628に移行する。
次に、ステップS624において、オフセット制御部432は、処理対象LUT内の指定されたアクセス対象アドレスAiから、対応する歪補償係数h(pi)を読み出す。オフセット制御部432は、読み出した歪補償係数h(pi)から、ステップS612で設定したオフセット補正値Ofst_xを減算し、減算値を補正後の歪補償係数h(pi)の値として算出する。オフセット制御部432は、算出した補正後の歪補償係数h(pi)の値を、処理対象内のアクセス対象アドレスアドレスAiに書き込むことにより、歪補償係数h(pi)を補正する。
h(pi)=h(pi)−Ofst_x
次に、ステップS626において、オフセット制御部432は、処理対象LUT内のアドレスAiの値を例えば1だけ増加させることにより、現在のアドレス値の次に大きい値を有し、かつ、アクセス対象として指定可能なアドレスの値を、処理対象LUT内の次のアクセス対象アドレスの値に指定する。次のアドレスAiの値が指定された後、処理はステップS622に戻る。
Ai=Ai+1
次に、ステップS628において、オフセット制御部432は、アドレス最小値adrsMinから最大値adrsMaxまでの範囲の全てのアドレスについて、処理対象LUTのアドレスAiに、ステップS624で算出された補正後の歪補償係数値h(pi)を格納し、アドレスAiにおける歪補償係数の値を補正する。これにより、処理対象LUT内の補正対象となっている歪補償係数の全てに対して、オフセット補正処理が施される。
以上のS620〜S628のステップにより、オフセット補正処理部470において、オフセット補正処理680が行われる。
以上のS604〜S628のステップにより行われる一連の処理が、歪補償装置302が実行する歪補償係数の補正処理である。
次に、ステップS630において、歪補償係数更新部324は、プリディストーション信号生成部322内の複数のLUTから、歪補償係数h(p(t))を受けとる。歪補償係数更新部324が受けとる歪補償係数は、オフセット補正処理680が施された後の係数である。歪補償係数更新部324はさらに、ADC316からフィードバック信号Fb(t)を受けとるとともに、プリディストーション信号生成部322からプリディストーション信号PD(t)を受けとる。プリディストーション信号PD(t)は、オフセット補償値の更新処理670によって更新されたオフセット補償値によりオフセット補償処理が施された後の歪補償係数に基づいて生成されたものである。
ステップ630において、歪補償係数更新部324は、受けとった歪補償係数h(p(t))、プリディストーション信号PD(t)及びフィードバック信号Fb(t)に基づいて、各LUTに対して、歪補償係数の更新値を算出する。歪補償係数の更新値の算出については、上述したとおりである。歪補償係数更新部324は、受けとった歪補償係数が格納されていた各LUT内のアドレスにおいて、算出した更新値に基づいて、歪補償係数の値を更新する。歪補償係数の更新処理後、処理はステップS606に戻る。
ステップS606において、オフセット制御部432は、LUTa406〜LUTd412の中から別のLUTを次の処理対象LUTとして選択する。オフセット制御部432は、選択した処理対象LUTについて、上述のステップS608〜S628の処理を行い、オフセット量算出処理650、オフセット補正値設定処理660、オフセット補償値更新処理670、及びオフセット補正処理680をそれぞれ行う。
以上説明したように、図6に示した歪補償係数の補正・更新処理においては、オフセット量算出処理650により、LUTa406〜LUTd412の各々において歪補償係数のオフセット量を算出し、オフセット補正処理680により、算出されたオフセット量に基づいて、そのオフセット量の大きさ(絶対値)が小さくなるように、各歪補償係数の値を補正することができる。
よって、各LUTにおいて歪補償係数の更新処理が進んでいった場合でも、歪補償係数のオフセットが一方向に単調増加又は単調減少していくのを防止することができるので、歪補償係数が係数設定範囲の上限値又は下限値にクリップされることにより歪補償性能が低下するのを防止することができる。
さらに、図6の歪補償係数の補正・更新処理においては、オフセット補償値更新処理670により、LUTa及びLUTbからの歪補償係数の加算値(加算器414の出力値)とLUTc及びLUTdからの歪補償係数の加算値(加算器416の出力値)に対するオフセット補償値を適切に設定することができる。これにより、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数を生成し、生成されたオフセット補正処理後の歪補償係数に基づいて、送信信号の歪補償処理を行うことができる。
よって、オフセット補正処理680によって各LUTにおいて格納された歪補償係数の値を補正した場合であっても、生成された歪補償係数を用いて適切な歪補償処理を行うことができるので、歪補償処理の精度を維持することができる。
さらに、図6の歪補償係数の補正・更新処理においては、オフセット補正値設定処理660により、各LUT内の歪補償係数に対するオフセット補正値を、オフセット量算出処理650により算出したオフセット量に応じた適切な値に設定することができる。これにより、各LUTにおいて、歪補償係数のオフセット量を、その大きさ(絶対値)が小さくなるように適切に制御することができる。
また、オフセット補正処理680では、歪補償係数更新部324における歪補償係数の更新処理とは独立して、各LUT内の歪補償係数のオフセットを補正していることから、更新処理における歪補償係数の収束性に影響を及ぼすことが考えられる。しかしながら、図6に示した歪補償係数の補正・更新処理においては、オフセット補正値設定処理660において使用されるオフセット補正単位Ofst_uの値を適切に調整することにより、オフセット補正処理680が歪補償係数更新処理における歪補償係数の収束性に与える影響を小さく抑えることができる。
従って、図6に示した歪補償係数の補正・更新処理においては、歪補償処理の精度を維持しながら、歪補償係数のクリップによる歪補償性能が低下するのを防止することができる。
尚、上述の実施例においては、送信信号Tx(t)及びアドレスAdrs(Tx(t)に対して、遅延部をそれぞれ1段ずつ設け、遅延項をそれぞれ1項だけ設けた構成を示したが、これには限定されない。送信信号Tx(t)及びアドレスAdrs(Tx(t)に対して、遅延項の構成については、遅延部をそれぞれi段及びj段だけ設けることにより、それぞれi項構成及びj項構成としてもよい(但し、i及びjを1以上の整数)。
[2.第2実施例]
以下、第2実施例に係る無線通信装置及び歪補償装置について説明する。
[2−1.プリディストーション信号生成部722の構成例]
第2実施例に係る無線通信装置700の構成は、図3に示した無線通信装置300の構成と、歪補償装置302及びプリディストーション信号生成部322の代わりに、歪補償装置702及びプリディストーション信号生成部722を有する点で異なるが、それ以外の部分は同様である。よって、無線通信装置700の構成については、図示は省略している。
図7は、プリディストーション信号生成部722の内部構成の一例を示す図である。プリディストーション信号生成部722の内部構成は、図4に示したプリディストーション信号生成部322の内部構成と、オフセット制御部432及びオフセット補正処理部470の代わりに、オフセット制御部732及びオフセット補正処理部770を有する点で異なっているが、それ以外の部分については同様である。図7において、図4に示したプリディストーション信号生成部322と同一又は対応する部分は、同一の符号で示されている。
図7に示したように、プリディストーション信号生成部722は、歪補償係数供給部450、歪補償処理部460及びオフセット補正処理部770を含む。オフセット補正処理部770は、オフセット制御部732、補償値記憶部436、440、オフセット補償部438、442を含む。オフセット制御部732は、オフセット制御部432と同様に、平均値算出部434を含む。
オフセット補正処理部770において、オフセット制御部732は、LUTa406〜LUTd412の各々について個別に、以下のオフセット量算出処理、オフセット量判定処理及びオフセット補正処理を実行する。
オフセット制御部732は、LUTa406〜LUTd412の中から処理対象となるLUTを選択する。オフセット制御部432は、選択した処理対象LUT内の、補正対象となる歪補償係数が格納された全てのアドレスAiから、歪補償係数h(pi)を読み出す。
オフセット制御部732の平均値算出部434は、読み出された全ての歪補償係数h(pi)について、上述の式1で示される加算平均演算を行う。オフセット制御部732は、平均値算出部434によって平均値を算出することにより、処理対象LUTに対する歪補償係数のオフセット量LUTofstの算出処理を行う。
オフセット制御部732は、オフセット補正値設定処理に先立って、算出された歪補償係数のオフセット量LUTofstが所定の範囲内の値であるか否かを判定することにより、オフセット量LUTofstの判定処理を行う。
オフセット制御部732は、算出されたオフセット量LUTofstが所定の範囲内の値であると判定したときは、処理対象LUTの歪補償係数に対するオフセット補正処理は行わない。一方、オフセット制御部732は、算出されたオフセット量LUTofstが所定の範囲外の値である(所定の範囲内の値でない)と判定したときは、処理対象LUTの歪補償係数に対してオフセット補正処理を実行する。
よって、歪補償装置702においては、算出したオフセット量の大きさ(絶対値)が一定の閾値よりも小さく、各LUTにおいて歪補償係数のオフセット補正処理を行う必要性が低いときには、オフセット補正処理を行わず、算出したオフセット量の大きさ(絶対値)が一定の閾値よりも大きく、各LUTにおいて歪補償係数のオフセット補正処理を行う必要性が高いときに選択的に、オフセット補正処理を実行するように、オフセット制御部732を制御することができるので、オフセット制御部732においてオフセット補正処理をより効率的に行うことができる。
従って、歪補償装置702においては、オフセット補正処理部770及び歪補償係数供給部450の消費電力を低減することができる。
[2−2.歪補償装置702における歪補償係数の補正・更新動作の例]
図8は、第2実施例に係る歪補償装置702における歪補償係数の補正・更新処理のフローチャートの一例を示す図である。図8に示した歪補償係数の補正・更新処理のフローチャートにおいて、図6に示したフローチャートのステップと、同一又は対応する処理を行うステップは同一の符号で示されている。以下、図8のフローチャートを用いて、歪補償装置702が実行する歪補償係数の補正・更新処理について説明する。尚、図8のフローチャートおいては、点線で囲まれた部分に、対応するステップの処理に関連する数式が示してある。
まず、ステップS602において、歪補償装置702は一連の歪補償係数の補正・更新処理を開始する。
次に、ステップS804において、オフセット制御部732は、初期設定として、後述するオフセット量判定処理855、オフセット補正値設定処理860、オフセット補償値更新処理670及びオフセット補正処理680に用いられるパラメータを設定する。設定されるパラメータは、例えば、オフセット補正値設定処理に用いられるオフセット補正単位Ofst_u、オフセット補正処理において補正対象となる歪補償係数が格納される各LUT内のアドレスの最小値adrsMin及び最大値adrsMax、オフセット補償値更新処理において補償値記憶部436、440に格納されるオフセット補償値Ofst_m1、Ofst_m2、並びに、オフセット量判定処理において判定基準となるオフセット量の範囲を定めるためのオフセット量判定閾値Ofst_thである。
特に限定されるものではないが、オフセット補正単位Ofst_uには一定の正の値u0が設定され、オフセット補償値Ofst_m1、Ofst_m2には0(零)が設定される。
Ofst_u=u0
Ofst_m1=0、Ofst_m2=0
また、補正対象アドレス最小値adrsMin及び最大値adrsMaxには、特に限定されるものではないが、各LUTにおいて補正係数が格納されているアドレスの最小値Amin及び最大値Amaxがそれぞれ設定される。
adrsMin=Amin
adrsMax=Amax
また、オフセット量判定閾値Ofst_thには、特に限定されるものではないが、一定の正の値th0が設定される。
Ofst_th=th0
次に、S606〜S610のステップにより、処理対象となるLUTを選択し、選択した処理対象のLUTxに対してオフセット量LUTofst_xの算出処理650を行う(xはa〜dのいずれかである)。ステップS606〜S610で行われる処理の詳細については、図6のフローチャートにおいて説明したとおりである。
次に、ステップS811において、オフセット制御部732は、算出したオフセット量LUTofst_xがステップS804で設定したオフセット判定閾値Ofst_thによって定められる範囲内の値である否か、すなわち、以下の式2を満たすか否かを判定する。
−Ofst_th≦LUTOfst_x≦+Ofst_th ・・・式2
(−th0≦LUTOfst_x≦+th0)
ステップS811において、オフセット制御部732が、算出したオフセット量LUTofst_xが上述の式2で示された範囲内の値であると判定したときは、処理はステップS813に移行する。
ステップS813において、オフセット制御部732は、処理対象のLUTxに対するオフセット補正値Ofst_xを、0(零)に設定する。オフセット補正値を設定した後、処理はステップS630に移行する。
Ofst_x=0
すなわち、オフセット制御部732は、オフセット量LUTofst_xが上述の式2で示された範囲内の値であると判定したときは、オフセット補償値更新処理670及びオフセット補正処理680を実行することなく、ステップS630における歪補償係数の更新処理を行う。
一方、ステップS811において、オフセット制御部732が、算出したオフセット量LUTofst_xが上述の式2で示された範囲外の値である(上述の式2で示された範囲内の値でない)と判定したときは、処理はステップS812に移行する。
ステップS812において、オフセット制御部732は、オフセット量LUTofst_xが上限値+Ofst_th(=+th0)より大きい値であると判定したときは、オフセット補正単位Ofst_uを用いて、処理対象のLUTxに対するオフセット補正値Ofst_xを以下のように、0(零)でない値に設定する処理を行う。すなわち、オフセット制御部432は、一定の正の値u0をオフセット補正値として設定する。
Ofst_x=+Ofst_u=+u0
ステップS812において、オフセット制御部732は、オフセット量LUTofst_xが下限値−Ofst_th(=−th0)より小さい値であると判定したときは、オフセット補正単位Ofst_uを用いて、処理対象のLUTxに対するオフセット補正値Ofst_xを以下のように、0(零)でない値に設定する処理を行う。すなわち、オフセット制御部432は、一定の負の値−u0をオフセット補正値として設定する。
Ofst_x=−Ofst_u=−u0
ステップS812においてオフセット補正値を設定した後、処理はステップS614に移行する。
以上のS811〜S813のステップにより、オフセット補正処理部770において、オフセット量判定処理855及びオフセット補正値設定処理860が行われる。
次に、S614〜S628のステップにより、処理対象のLUTxに対してオフセット補償値更新処理670及びオフセット補正処理680を行う(xはa〜dのいずれかである)。ステップS614〜S628で行われる処理の詳細については、図6のフローチャートにおいて説明したとおりである。
以上のS604〜S628、S811〜S813のステップにより行われる一連の処理が、歪補償装置702が実行する歪補償係数の補正処理である。
また、ステップS630において、歪補償係数更新部324は、各LUTに対して、歪補償係数の更新処理を行う。歪補償係数の更新処理については、図6のフローチャートにおいて説明したとおりである。歪補償係数の更新処理の後、処理はステップS606に戻る。
以上説明したように、図8に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット量算出処理650及びオフセット補正処理680により、歪補償係数が係数設定範囲の上限値又は下限値にクリップされることにより歪補償性能が低下するのを防止することができる。さらに、オフセット補償値更新処理670により、オフセット補正処理680によって各LUTにおいて格納された歪補償係数の値を補正した場合であっても、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数を生成し、生成された歪補償係数を用いて適切な歪補償処理を行うことができる。
さらに、図8に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット補正値設定処理860により、歪補償係数のオフセット補正値を、算出したオフセット量に応じた適切な値に設定することができるとともに、オフセット補正単位Ofst_uの値を適切に調整することにより、オフセット補正処理680が歪補償係数更新処理における歪補償係数の収束性に与える影響を小さく抑えることができる。
加えて、図8に示した歪補償係数の補正・更新処理においては、オフセット量判定処理855により、算出したオフセット量が所定の範囲内の値であるか否かを判定しているので、その判定結果に応じて、オフセット補正処理680及びオフセット補償値更新処理670を実行するか否かを選択的に制御することができる。
よって、算出したオフセット量の大きさ(絶対値)が一定の閾値よりも小さく、各LUTにおいて歪補償係数のオフセット補正処理を行う必要性が低いときには、オフセット補正処理680及びオフセット補償値更新処理670を行わず、算出したオフセット量の大きさ(絶対値)が一定の閾値よりも大きく、各LUTにおいて歪補償係数のオフセット補正処理を行う必要性が高いときに選択的に、オフセット補正処理680及びオフセット補償値更新処理670を実行するように、オフセット制御部732を制御することができるので、オフセット制御部732だけでなく、補償値記憶部436、440や各LUT406〜412においても、より効率的に各々の処理を実行させることができる。
従って、図8に示した歪補償係数の補正・更新処理においては、オフセット補正処理部770及び歪補償係数供給部450の消費電力を低減することができ、歪補償装置702の消費電力を低減することができる。
[3.第3実施例]
以下、第3実施例に係る無線通信装置及び歪補償装置について説明する。
[3−1.プリディストーション信号生成部922の構成例]
第3実施例に係る無線通信装置900の構成は、図3に示した無線通信装置300の構成と、歪補償装置302及びプリディストーション信号生成部322の代わりに、歪補償装置902及びプリディストーション信号生成部922を有する点で異なるが、それ以外の部分は同様である。よって、無線通信装置900の構成については、図示は省略している。
図9は、プリディストーション信号生成部922の内部構成の一例を示す図である。プリディストーション信号生成部922の内部構成は、図4に示したプリディストーション信号生成部322の内部構成と、オフセット制御部432及びオフセット補正処理部470の代わりに、オフセット制御部932及びオフセット補正処理部970を有する点で異なっているが、それ以外の部分については同様である。図9において、図4に示したプリディストーション信号生成部322と同一又は対応する部分は、同一の符号で示されている。
図9に示したように、プリディストーション信号生成部922は、歪補償係数供給部450、歪補償処理部460及びオフセット補正処理部970を含む。オフセット補正処理部970は、オフセット制御部932、補償値記憶部436、440、オフセット補償部438、442を含む。オフセット制御部932は、オフセット制御部432と同様に、平均値算出部434を含むとともに、送信信号Tx(t)の最大電力を探索する最大電力探索部950を含む。
オフセット補正処理部970において、オフセット制御部932は、オフセット量算出処理やオフセット補正処理などの一連の処理が実行された後で、送信信号Tx(t)の最大電力を探索する処理を実行する。
オフセット制御部932の最大電力探索部950は、送信信号Tx(t)を受けとり、受けとった送信信号Tx(t)の振幅に基づいて、送信信号Tx(t)の電力値p(t)を算出する。最大電力探索部950は、一定の期間、送信信号Tx(t)の電力値p(t)を監視し、その一定の期間において得られた電力値p(t)の中の最大電力値p_specを特定する。
最大電力探索部950は、特定された最大電力値p_specが、現在の補正対象アドレス最大値adrsMaxに対応する、現在の最大電力値p_maxよりも大きいか否かを判定する。
最大電力探索部950は、特定された最大電力値p_specが、現在の補正対象アドレス最大値adrsMaxに対応する、現在の最大電力値p_maxより大きいと判定したときは(p_spec>p_max)、補正対象アドレス最大値adrsMaxの値を、特定された最大電力値p_specに対応するアドレス値に更新する。
一方、最大電力探索部950は、特定された最大電力値p_specが、現在の補正対象アドレス最大値adrsMaxに対応する、現在の最大電力値p_max以下である(p_spec≦p_max、現在の最大電力値p_maxより大きくない)と判定したときは、補正対象アドレス最大値adrsMaxの値は更新せず、現在の値を維持する。
オフセット制御部932は、最大電力探索部950による最大電力探索処理の後の補正対象アドレス最大値adrsMaxの値を用いて、再度、オフセット量算出処理やオフセット補正処理などの一連の処理を実行する。
ここで、各LUT内の全補償係数h(p(t))のうち、送信信号Tx(t)の最大電力値p_maxより大きい電力値に対応するアドレスに格納された歪補償係数は、歪補償装置902の動作中、対応する電力値を有する送信信号Tx(t)が入力されていないため、一度も使用されていない係数であり、更新処理も行われていない係数である。このため、最大電力値p_maxより大きい電力値に対応するアドレスに格納された歪補償係数については、オフセット補正処理を行わなくてもよいと考えられる。
これに対し、歪補償装置902においては、補正対象アドレス最大値adrsMaxを、現在までに入力された送信信号Tx(t)の最大電力値p_maxによって決定しているので、オフセット量算出処理やオフセット補正処理においてアクセスされる各LUTの補正対象アドレス領域を、送信信号Tx(t)の最大電力値p_maxに基づいて設定することができる。これにより、オフセット補正処理を行わなくてもよい歪補償係数が格納されたアドレスについては、アクセス対象から外すことができるので、オフセット制御部932におけるオフセット量算出処理やオフセット補正処理の動作をより効率的にすることができる。
従って、歪補償装置902においては、オフセット補正処理部970及び歪補償係数供給部450の消費電力を低減することができる。
尚、上述の実施例では、送信信号Tx(t)の電力値を一定の期間監視することにより、その一定期間における最大電力値p_specを特定し、特定した最大電力値p_specに基づいて、アクセスされる各LUTの補正対象アドレス領域を設定したが、さらにその一定期間における最小電力値を特定し、特定した最小電力値に基づいて、アクセスされる各LUTの補正対象アドレス領域を設定するようにしてもよい。この場合は、オフセット制御部932により、特定された最小電力値が、現在の補正対象アドレス最小値adrsMinに対応する、現在の最小電力値p_minよりも小さいか否かを判定し、特定された最小電力値が、現在の最小電力値p_minより小さいと判定したときは、補正対象アドレス最小値adrsMinを、特定された最小電力値に対応するアドレスの値に更新するようにすればよい。
[3−2.歪補償装置902における歪補償係数の補正・更新動作の例]
図10は、第3実施例に係る歪補償装置902における歪補償係数の補正・更新処理のフローチャートの一例を示す図である。図10に示した歪補償係数の補正・更新処理のフローチャートにおいて、図6に示したフローチャートのステップと、同一又は対応する処理を行うステップは同一の符号で示されている。以下、図10のフローチャートを用いて、歪補償装置902が実行する歪補償係数の補正・更新処理について説明する。尚、図10のフローチャートおいては、点線で囲まれた部分に、対応するステップの処理に関連する数式が示してある。
まず、ステップS602において、歪補償装置902は一連の歪補償係数の補正・更新処理を開始する。
次に、ステップS604において、オフセット補正処理部970のオフセット制御部932は、初期設定として、オフセット補正値設定処理660、オフセット補償値更新処理670及びオフセット補正処理680に用いられるパラメータを設定する。設定されるパラメータは、例えば、オフセット補正値設定処理に用いられるオフセット補正単位Ofst_u、オフセット補正処理において補正対象となる歪補償係数が格納される各LUT内のアドレスの最小値adrsMin及び最大値adrsMax、並びにオフセット補償値更新処理において補償値記憶部436、440に格納されるオフセット補償値Ofst_m1、Ofst_m2である。
特に限定されるものではないが、オフセット補正単位Ofst_uには一定の正の値u0が設定され、オフセット補償値Ofst_m1、Ofst_m2には0(零)が設定される。
Ofst_u=u0
Ofst_m1=0、Ofst_m2=0
また、補正対象アドレス最小値adrsMinには、特に限定されるものではないが、各LUTにおいて補正係数が格納されているアドレスの最小値Aminが設定される。
adrsMin=Amin
また、補正対象アドレス最大値adrsMaxには、特に限定されるものではないが、歪補償装置902が受けとる送信信号Tx(t)の電力値の最大値として予測される予測値Aexpが設定される。
adrsMin=Aexp
次に、S606〜S628のステップにより、処理対象となるLUTを選択し、オフセット制御部932は、選択した処理対象のLUTxに対して、オフセット量算出処理650、オフセット補正値設定処理660、オフセット補償値更新処理670、オフセット補正処理680を実行する(xはa〜dのいずれかである)。
次に、ステップS630において、歪補償係数更新部324は、各LUTに対して歪補償係数更新処理を実行する。ステップS606〜S630で行われる処理の詳細については、図6のフローチャートにおいて説明したとおりである。
次に、ステップS1032において、オフセット制御部932の最大電力探索部950は、送信信号Tx(t)を受けとり、受けとった送信信号Tx(t)の振幅に基づいて、送信信号Tx(t)の電力値p(t)を算出する。最大電力探索部950は、一定の期間、送信信号Tx(t)の電力値p(t)の監視を継続し、その一定の期間において得られた電力値p(t)の中から最大値を探索することにより、最大電力値p_specを特定する。
次に、ステップS1034において、最大電力探索部950は、現在設定されている補正対象アドレス最大値adrsMaxに基づいて、対応する現在の最大電力値p_maxを求める。最大電力探索部950は、ステップS1032において特定された最大電力値p_specが、対応する現在の最大電力値p_maxよりも大きいか否かを判定する。
最大電力探索部950が、特定された最大電力値p_specが、現在の最大電力値p_maxよりも大きいと判定したときは(p_spec>p_max)、処理はステップS1036に移行する。
一方、最大探索部950が、特定された最大電力値p_specが、現在の最大電力値p_max以下である(p_spec≦p_max、現在の最大電力値p_maxより大きくない)と判定したときは、処理はステップS606に戻る。このとき、最大電力探索部950は、補正対象アドレス最大値adrsMaxの値を更新せず、補正対象アドレス最大値adrsMaxの値として現在設定されている値を維持する。
次に、ステップS1036において、最大電力探索部950は、ステップS1032において特定された最大電力値p_specに基づいて、対応するアドレス値adrsUpdを生成する。最大電力探索部950は、補正対象アドレス最大値adrsMaxを、生成されたアドレス値adrsUpdに更新する。
adrsMax=adrsUpd
アドレス最大値adrsMaxの更新処理の後、処理はステップS606に戻る。
以上のS1032〜S1036のステップにより、オフセット補正処理部970において、最大電力探索処理1090が行われる。
以上のS604〜S628及びS1032〜S1036のステップにより行われる一連の処理が、歪補償装置902が実行する歪補償係数の補正処理である。
ステップS606以降のステップにおいて、オフセット制御部932は、更新された補正対象アドレス最大値adrsMaxを用いて、再度、一連の歪補償係数の補正・更新処理を実行する。
以上説明したように、図10に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット量算出処理650及びオフセット補正処理680により、歪補償係数が係数設定範囲の上限値又は下限値にクリップされることにより歪補償性能が低下するのを防止することができる。さらに、オフセット補償値更新処理670により、オフセット補正処理680によって各LUTにおいて格納された歪補償係数の値を補正した場合であっても、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数を生成し、生成された歪補償係数を用いて適切な歪補償処理を行うことができる。
さらに、図10に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット補正値設定処理760により、歪補償係数のオフセット補正値を、算出したオフセット量に応じた適切な値に設定することができるとともに、オフセット補正単位Ofst_uの値を適切に調整することにより、オフセット補正処理680が歪補償係数更新処理における歪補償係数の収束性に与える影響を小さく抑えることができる。
加えて、図10に示した歪補償係数の補正・更新処理においては、最大電力探索処理1090により、補正対象アドレス最大値adrsMaxを、現在までに入力された送信信号Tx(t)の最大電力値p_maxによって決定しているので、オフセット量算出処理やオフセット補正処理においてアクセスされる各LUTの補正対象アドレス領域を、送信信号Tx(t)の最大電力値p_maxに基づいて設定することができる。
よって、送信信号Tx(t)の最大電力値p_maxより大きい電力値に対応し、オフセット補正処理を行う必要性が低い歪補償係数が格納されたアドレスについては、最大電力探索処理1090によりアクセス対象から外すことができるので、オフセット制御部932だけでなく、各LUT406〜412においても、より効率的に各々の処理を実行させることができる。
従って、図10に示した歪補償係数の補正・更新処理においては、オフセット補正処理部970及び歪補償係数供給部450の消費電力を低減することができ、歪補償装置902の消費電力を低減することができる。
尚、図10のフローチャートでは、最大電力探索処理1090を除く処理については、図6に示した第1実施例に係る歪補償係数の補正・更新処理を用いた例を示したが、これに限定されることはなく、例えば図8に示した第2実施例に係る歪補償係数の補正・更新処理を用いてもよい。
[4.第4実施例]
以下、第4実施例に係る無線通信装置及び歪補償装置について説明する。
[4−1.プリディストーション信号生成部1122の構成例]
第4実施例に係る無線通信装置1110の構成は、図3に示した無線通信装置300の構成と、歪補償装置302及びプリディストーション信号生成部322の代わりに、歪補償装置1102及びプリディストーション信号生成部1122を有する点で異なるが、それ以外の部分は同様である。よって、無線通信装置1110の構成については、図示は省略している。
図11は、プリディストーション信号生成部1122の内部構成の一例を示す図である。図12は、プリディストーション信号生成部1122における歪補償係数の補正処理を説明するための図である。以下、図11及び図12を用いて、プリディストーション信号生成部1122の構成例について説明する。
プリディストーション信号生成部1122の内部構成は、図4に示したプリディストーション信号生成部322の内部構成と、オフセット制御部432及びオフセット補正処理部470の代わりに、オフセット制御部1132及びオフセット補正処理部1170を有し、補償値記憶部436、440の代わりに、補償値記憶部1135〜1137、1139〜1141を有し、オフセット補償部438、442の代わりに、オフセット補償部1138、1142を有する点で異なっているが、それら以外の部分については同様である。図11において、図4に示したプリディストーション信号生成部322と同一又は対応する部分は、同一の符号で示されている。
図11に示したように、プリディストーション信号生成部1122は、歪補償係数供給部450、歪補償処理部460及びオフセット補正処理部1170を含む。オフセット補正処理部1170は、オフセット制御部1132、補償値記憶部1135〜1137、1139〜1141、及びオフセット補償部1138、1142を含む。オフセット制御部1132は、オフセット制御部432と同様に、平均値算出部434を含む。
一般に、歪補償装置が受けとる送信信号Tx(t)の発生頻度は、その電力値p(t)について偏りを持っている。すなわち、送信信号Tx(t)は、補正対象アドレス領域に対応する電力値の範囲において、中間程度の大きさの電力値を有する送信信号の発生頻度が高く、電力値の小さい送信信号と大きい送信信号の発生頻度が低いという傾向を有する。発生頻度の低い電力値p(t)に対応する歪補償係数h(p(t))については、係数の更新処理が行われる頻度も低い。
このため、上述の中程度の大きさの電力値より小さいか、もしくは、大きい電力値に対応する歪補償係数については、その実際のオフセット量は、補正対象アドレス領域全体の歪補償係数の平均値として算出した場合のオフセット量LUTofstよりも、一般に小さくなる傾向にある。逆に、上述の中間程度の大きさの電力値p(t)に対応する歪補償係数h(p(t))の実際のオフセット量は、補正対象アドレス領域全体の歪補償係数の平均値として算出した場合のオフセット量LUTofstよりも、一般に大きくなる傾向にある。このように、一般に、補正対象アドレス領域の中でオフセット量についてのアンバランスが生じる。
これに対し、オフセット補正処理部1170において、オフセット制御部1132は、送信信号Tx(t)の電力値p(t)に基づいて、各LUT内の補正対象アドレス領域の中に複数の分割されたアドレス領域を設定し、設定された複数のアドレス領域ごとに独立して、歪補償係数の補正処理に関連する各々の処理を実行する。
すなわち、例えば図12に示したように、オフセット制御部1132は、各LUTの補正対象アドレス領域の中に、発生頻度のより高い電力値に対応する、中間程度の大きさのアドレスを有するアドレス領域1202と、発生頻度のより低い電力値に対応する、アドレス領域1202よりも小さいアドレスを有するアドレス領域1201と、及び発生頻度のより低い電力値に対応する、アドレス領域1202よりも大きいアドレスを有するアドレス領域1203の3つの分割領域を設定する。
オフセット制御部1132は、各LUTにおいて、3つのアドレス領域1201〜1203ごとに独立して、オフセット量算出処理、オフセット補正値設定処理、オフセット補償値更新処理及びオフセット補正処理を含む一連の処理を実行する。
オフセット制御部1132は、オフセット量算出処理において、各LUTに対して、アドレス領域1201〜1203に対応した、3つのオフセット量LUTosft_x1〜LUTosft_x3を算出する。オフセット制御部1132は、各LUTに対して、算出されたオフセット量LUTosft_x1〜LUTosft_x3に基づいて、アドレス領域1201〜1203ごとに独立して、オフセット補正値Ofst_x1〜Ofst_x3の設定処理を行う。オフセット制御部1132は、各LUTに対して、設定されたオフセット補正値Ofst_x1〜Ofst_x3に基づいて、アドレス領域1201〜1203ごとに独立して、各アドレス領域内に格納された歪補償係数に対してオフセット補正処理を行う。
また、オフセット制御部1132は、3つのオフセット量LUTosft_x1〜LUTosft_x3が算出されることに対応して、オフセット補償部1138に供給されるオフセット補償値としても、アドレス領域1201、1202及び1203に対応した、3つのオフセット補償値Ofst_m11、Ofst_m12及びOfst_m13を設定する。オフセット補償値Ofst_m11〜Ofst_m13はそれぞれ、3つの補償値記憶部1135〜1137に格納されている。
オフセット制御部1132は、オフセット補償値更新処理においては、3つのアドレス領域1201〜1203ごとに独立して、オフセット補償値Ofst_m11〜Ofst_m13の更新値を算出し、算出されたオフセット補償値Ofst_m11〜Ofst_m13の更新値を補償値記憶部1135〜1137に格納する。
同様に、オフセット制御部1132は、オフセット補償部1142に供給されるオフセット補償値としても、アドレス領域1201、1202及び1203に対応した、3つのオフセット補償値Ofst_m21、Ofst_m22及びOfst_m23を設定する。オフセット補償値Ofst_m21〜Ofst_m23はそれぞれ、3つの補償値記憶部1139〜1141に格納されている。
オフセット制御部1132は、オフセット補償値更新処理においては、3つのアドレス領域1201〜1203ごとに独立して、オフセット補償値Ofst_m21〜Ofst_m23の更新値を算出し、算出されたオフセット補償値Ofst_m21〜Ofst_m23の更新値を補償値記憶部1139〜1141に格納する。
オフセット補償部1138は、補償値記憶部1135〜1137からオフセット補償値Ofst_m11〜Ofst_m13を受けとる。また、オフセット補償部1138は、アドレス生成部402からアドレスAdrs(Tx(t))を受けとり、受けとったアドレスAdrs(Tx(t))の値がアドレス領域1201〜1203のいずれに対応するものであるかを判定する。オフセット補償部1138は、その判定結果に応じて、受けとったオフセット補償値Ofst_m11〜Ofst_m13の中から、1つの値を選択する。オフセット補償部1138は、選択したオフセット補償値を用いて、加算器414から出力された合成後係数h1(p(t))に対してオフセット補償処理を行う。
同様に、オフセット補償部1142は、補償値記憶部1139〜1141からオフセット補償値Ofst_m21〜Ofst_m23を受けとる。また、オフセット補償部1142は、遅延部404から、1つ前の参照時刻t−1に対応するアドレスAdrs(Tx(t‐1))を受けとり、受けとったアドレスAdrs(Tx(t‐1))がアドレス領域1201〜1203のいずれに対応するものであるかを判定する。オフセット補償部1142は、その判定結果に応じて、受けとったオフセット補償値Ofst_m21〜Ofst_m23の中から、1つの値を選択する。オフセット補償部1142は、選択したオフセット補償値を用いて、加算器416から出力された合成後係数h2(p(t))に対してオフセット補償処理を行う。
よって、歪補償装置1102においては、各LUTに対して、補正対象アドレス領域の中に複数のアドレス領域を設定し、設定された複数のアドレス領域に対応した複数のオフセット量を算出しているので、送信信号Tx(t)の発生頻度が電力値p(t)について偏りを有する場合であっても、各LUT内の歪補償係数に対して、その電力値(アドレス値)に対応した、より正確なオフセット量を算出することができる。これにより、各LUT内の補正対象アドレス領域の中で生じるオフセット量についてのアンバランスを低減することができるので、各LUT内における歪補償係数のオフセット補正処理をより精密に制御することができる。
従って、歪補償装置1102においては、各LUT内の歪補償係数のオフセット補正処理の精度を向上させることができる。
尚、上述の実施例では、3つのアドレス領域1201〜1203に対応して、3つの補償値記憶部1135〜1137を設けた構成を示したが、これに限定されることなく、例えば1つのオフセット補償記憶部の中に、アドレス領域1201〜1203に対応する3つの記憶領域を設け、これら3つの記憶領域にオフセット補償値Ofst_m11〜Ofst_m13を格納するようにしてもよい。補償値記憶部1139〜1141についても同様である。
また、補正対象アドレス領域に設定されるアドレス領域の数は3つに限定されることはなく、アドレス領域の数は適宜変更可能である。
[4−2.歪補償装置1102における歪補償係数の補正・更新動作の例]
図13は、第4実施例に係る歪補償装置1102における歪補償係数の補正・更新処理のフローチャートの一例を示す図である。以下、図13のフローチャートを用いて、歪補償装置1102が実行する歪補償係数の補正・更新処理について説明する。尚、図13のフローチャートおいては、点線で囲まれた部分に、対応するステップの処理に関連する数式が示してある。
まず、ステップS1302において、歪補償装置1102は一連の歪補償係数の補正・更新処理を開始する。
次に、ステップS1304において、オフセット補正処理部1170のオフセット制御部1132は、初期設定として、後述するステップS1308〜S1330におけるオフセット補正値設定処理、オフセット補償値更新処理及びオフセット補正処理に用いられるパラメータを設定する。
設定されるパラメータは、例えば、オフセット補正値設定処理に用いられるオフセット補正単位Ofst_u、オフセット補正処理において補正対象となる歪補償係数が格納される各LUT内のアドレスの最小値adrsMin及び最大値adrsMax、アドレス領域1201とアドレス1202の境界となるアドレスの値を指定する境界アドレス値ardsTh1及びアドレス領域1202とアドレス1203の境界となるアドレスの値を指定する境界アドレス値ardsTh2、並びにオフセット補償値更新処理において補償値記憶部1135〜1137、1139〜1141に格納されるオフセット補償値Ofst_m11〜Ofst_m13、Ofst_m21〜Ofst_m23である。
特に限定されるものではないが、オフセット補正単位Ofst_uには一定の正の値u0が設定される
Ofst_u=u0
また、オフセット補償値Ofst_m11〜Ofst_m13、Ofst_m21〜Ofst_m23にはそれぞれ0(零)が設定される。
Ofst_m11=0、Ofst_m12=0、
Ofst_m13=0、
Ofst_m21=0、Ofst_m22=0、
Ofst_m23=0
また、補正対象アドレス最小値adrsMin及び最大値adrsMaxには、特に限定されるものではないが、各LUTにおいて補正係数が格納されているアドレスの最小値Amin及び最大値Amaxがそれぞれ設定される。
adrsMin=Amin
adrsMax=Amax
また、境界アドレス値adrsTh1及びadrsTh2には、特に限定されるものではないが、予め決められた一定のアドレス値Ath1及びAth2がそれぞれ設定される。
adrsTh1=Ath1
adrsTh2=Ath2
次に、ステップS1306において、オフセット制御部1132は、LUTa406〜LUTd412の中から処理対象となる1つのLUTを選択する。オフセット制御部1132は、例えば、LUTa406、LUTb408、LUTc410、LUTd412、LUTa406、LUTb408、・・・の順番で、対応するLUTを周期的に選択していく。
次に、ステップS1308において、オフセット制御部1132は、ステップS1306において選択した処理対象のLUT_xのアドレス領域1201に対して、歪補償係数のオフセット量LUTofst_x1を算出する処理を行う(xはa〜dのいずれかである)。このオフセット量算出処理は、上述の式1で示された加算平均演算を行う対象の歪補償係数h(p(t))が、アドレス最小値adrsMinから境界アドレス値adrsTh1までのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット量算出処理650と同様である。
次に、ステップS1310において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1201に対するオフセット補正値Ofst_x1を設定する処理を行う。このオフセット補正値設定処理については、図6のフローチャートにおいて説明したオフセット補正値設定処理660と同様である。
次に、ステップS1312において、オフセット制御部1132は、各LUTのアドレス領域1201に対応するオフセット補償値Ofst_m11及びOfst_m21を更新する処理を行う。このオフセット補償値更新処理については、図6のフローチャートにおいて説明したオフセット補償値更新処理670と同様である。
ここで、ステップS1306において選択された処理対象LUTがLUTa又はLUTbである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1135に格納し、補償値記憶部1135内のオフセット補償値Ofst_m11を更新する。
また、ステップS606において選択された処理対象LUTがLUTc又はLUTdである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1139に格納し、補償値記憶部1139内のオフセット補償値Ofst_m21を更新する。
次に、ステップS1314において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1201に格納された歪補償係数h(p(t))に対して、オフセット補正処理を行う。このオフセット補正処理については、補正処理の対象となる歪補償係数h(p(t))が、アドレス最小値adrsMinから境界アドレス値adrsTh1までのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット補正処理680と同様である。
以上のS1308〜S1314のステップにより、オフセット補正処理部1170において、アドレス領域1201に対する歪補償係数の補正処理1350が行われる。
次に、ステップS1316において、オフセット制御部1132は、ステップS1306において選択した処理対象のLUT_xのアドレス領域1202に対して、歪補償係数のオフセット量LUTofst_x2を算出する処理を行う(xはa〜dのいずれかである)。このオフセット量算出処理は、上述の式1で示された加算平均演算を行う対象の歪補償係数h(p(t))が、境界アドレス値adrsTh1から境界アドレス値adrsTh2までのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット量算出処理650と同様である。
次に、ステップS1318において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1202に対するオフセット補正値Ofst_x2を設定する処理を行う。このオフセット補正値設定処理については、図6のフローチャートにおいて説明したオフセット補正値設定処理660と同様である。
次に、ステップS1320において、オフセット制御部1132は、各LUTのアドレス領域1202に対応するオフセット補償値Ofst_m13及びOfst_m22を更新する処理を行う。このオフセット補償値更新処理については、図6のフローチャートにおいて説明したオフセット補償値更新処理670と同様である。
ここで、ステップS1306において選択された処理対象LUTがLUTa又はLUTbである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1136に格納し、補償値記憶部1136内のオフセット補償値Ofst_m12を更新する。
また、ステップS1306において選択された処理対象LUTがLUTc又はLUTdである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1140に格納し、補償値記憶部1139内のオフセット補償値Ofst_m22を更新する。
次に、ステップS1322において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1202に格納された歪補償係数h(p(t))に対して、オフセット補正処理を行う。このオフセット補正処理については、補正処理の対象となる歪補償係数h(p(t))が、境界アドレス値adrsTh1から境界アドレス値adrsTh2までのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット補正処理680と同様である。
以上のS1316〜S1322のステップにより、オフセット補正処理部1170において、アドレス領域1202に対する歪補償係数の補正処理1360が行われる。
次に、ステップS1324において、オフセット制御部1132は、ステップS1306において選択した処理対象のLUT_xのアドレス領域1203に対して、歪補償係数のオフセット量LUTofst_x3を算出する処理を行う(xはa〜dのいずれかである)。このオフセット量算出処理は、上述の式1で示された加算平均演算を行う対象の歪補償係数h(p(t))が、境界アドレス値adrsTh2からアドレス最大値adrsMaxまでのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット量算出処理650と同様である。
次に、ステップS1326において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1203に対するオフセット補正値Ofst_x3を設定する処理を行う。このオフセット補正値設定処理については、図6のフローチャートにおいて説明したオフセット補正値設定処理660と同様である。
次に、ステップS1328において、オフセット制御部1132は、各LUTのアドレス領域1203に対応するオフセット補償値Ofst_m13及びOfst_m23を更新する処理を行う。このオフセット補償値更新処理については、図6のフローチャートにおいて説明したオフセット補償値更新処理670と同様である。
ここで、ステップS1306において選択された処理対象LUTがLUTa又はLUTbである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1137に格納し、補償値記憶部1137内のオフセット補償値Ofst_m13を更新する。
また、ステップS1306において選択された処理対象LUTがLUTc又はLUTdである場合は、オフセット制御部1132は、オフセット補償値の更新値Ofst_mを補償値記憶部1141に格納し、補償値記憶部1141内のオフセット補償値Ofst_m23を更新する。
次に、ステップS1330において、オフセット制御部1132は、処理対象のLUTxのアドレス領域1203に格納された歪補償係数h(p(t))に対して、オフセット補正処理を行う。このオフセット補正処理については、補正処理の対象となる歪補償係数h(p(t))が、境界アドレス値adrsTh2からアドレス最大値adrsMaxまでのアドレス領域に格納された係数である点を除いては、図6のフローチャートにおいて説明したオフセット補正処理680と同様である。
以上のS1324〜S1330のステップにより、オフセット補正処理部1170において、アドレス領域1203に対する歪補償係数の補正処理1370が行われる。
以上のS1304〜S1330のステップにより行われる一連の処理が、歪補償装置1102が実行する歪補償係数の補正処理である。
次に、ステップS1332において、補償係数更新部324は、各LUTに対して、歪補償係数の更新処理を行う。この歪補償係数の更新処理の詳細については、図6のフローチャートにおいて説明したとおりである。歪補償係数の更新処理の後、処理はステップS1306に戻る。
ステップS1306において、オフセット制御部1132は、LUTa406〜LUTd412の中から別のLUTを次の処理対象LUTとして選択する。オフセット制御部1132は、選択した処理対象のLUTについて、アドレス領域1201〜1203に対する歪補償係数の補正処理1350〜1370を実行する。
以上説明したように、図13に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット量算出処理及びオフセット補正処理により、歪補償係数が係数設定範囲の上限値又は下限値にクリップされることにより歪補償性能が低下するのを防止することができる。さらに、オフセット補償値更新処理670により、オフセット補正処理680によって各LUT内の歪補償係数の値を補正した場合であっても、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数を生成し、生成された歪補償係数を用いて適切な歪補償処理を行うことができる。
さらに、図13に示した歪補償係数の補正・更新処理においては、図6に示した歪補償係数の補正・更新処理と同様に、オフセット補正値設定処理により、歪補償係数のオフセット補正値を、算出したオフセット量に応じた適切な値に設定することができるとともに、オフセット補正単位Ofst_uの値を適切に調整することにより、オフセット補正処理が歪補償係数更新処理における歪補償係数の収束性に与える影響を小さく抑えることができる。
加えて、図13に示した歪補償係数の補正・更新処理においては、各LUTに対して、補正対象アドレス領域の中に複数の分割されたアドレス領域1201〜1203を設定し、アドレス領域1201〜1203に対して歪補償係数の補正処理1350〜1370を個別に実行しているので、アドレス領域1201〜1203に対応したオフセット量LUTofst_x1〜LUTofst_x3を算出することができる。
よって、送信信号Tx(t)の発生頻度が電力値p(t)について偏りを有する場合であっても、各LUT内の歪補償係数に対して、その電力値(アドレス値)に対応した、より正確なオフセット量を算出することができる。これにより、各LUTの補正対象アドレス領域の中で生じるオフセット量についてのアンバランスを低減することができるので、各LUT内における歪補償係数のオフセット補正処理をより精密に制御することができる。
従って、図13に示した歪補償係数の補正・更新処理においては、各LUT内の歪補償係数のオフセット補正処理の精度を向上させることができる。
尚、図13のフローチャートでは、歪補償係数の補正処理1350〜1370については、図6に示した第1実施例に係る歪補償係数の補正処理を用いた例を示したが、これに限定されることはなく、例えば、図8に示した第2実施例に係る歪補償係数の補正処理、又は図10に示した第3実施例に係る歪補償係数の補正処理を用いてもよい。
[5.第5実施例]
以下、第5実施例に係る無線通信装置及び歪補償装置について説明する。
[5−1.プリディストーション信号生成部1422の構成例]
第5実施例に係る無線通信装置1400の構成は、図3に示した無線通信装置300の構成と、歪補償装置302及びプリディストーション信号生成部322の代わりに、歪補償装置1402及びプリディストーション信号生成部1422を有する点で異なるが、それ以外の部分は同様である。よって、無線通信装置1100の構成については、図示は省略している。
図14は、プリディストーション信号生成部1422の内部構成の一例を示す図である。図15は、プリディストーション信号生成部1422における、各LUTの補正対象アドレス領域の分割処理を説明するための図である。以下、図14及び図16を用いて、プリディストーション信号生成部1422の構成例について説明する。
プリディストーション信号生成部1422の内部構成は、図11に示したプリディストーション信号生成部1122の内部構成と、オフセット制御部1132及びオフセット補正処理部1170の代わりに、オフセット制御部1432及びオフセット補正処理部1470を有し、さらにアドレス領域決定部1460を有する点で異なっているが、それら以外の部分については同様である。図14において、図11に示したプリディストーション信号生成部1122と同一又は対応する部分は、同一の符号で示されている。
図14に示したように、プリディストーション信号生成部1422は、歪補償係数供給部450、歪補償処理部460及びオフセット補正処理部1470を含む。オフセット補正処理部1470は、オフセット制御部1432、補償値記憶部1135〜1137、1139〜1141、オフセット補償部1138、1142及びアドレス領域決定部1460を含む。オフセット制御部1432は、オフセット制御部1132と同様に、平均値算出部434を含む。
オフセット補正処理部1470において、アドレス領域決定部1460は、アドレス生成部402から、送信信号Tx(t)の電力値p(t)に基づいて生成されたアドレスAdrs(Tx(t))を受けとる。アドレスAdrs(Tx(t))は、送信信号Tx(t)の電力値p(t)に対応するアドレス値を有する信号である。アドレス領域決定部1460は、一定の期間(もしくは一定のカウント回数分)、受けとったアドレスAdrs(Tx(t))を監視し、アドレス値ごとの発生頻度をカウントする。アドレス領域決定部1460は、カウントした発生頻度の結果に基づいて、図15に示したように、アドレスAdrs(Tx(t))に対するアドレス値の発生頻度分布を算出する。
アドレス領域決定部1460は、算出されたアドレス値の発生頻度分布に基づいて、各LUTの補正対象アドレス領域を複数のアドレス領域に分割する。アドレス領域決定部1460は、分割後の複数のアドレス領域におけるアドレス値の発生頻度の合計が相互に等しくなるように、補正対象アドレス領域を所定の個数の領域に分割する処理を行うことにより、各々の分割されたアドレス領域の領域を決定する。アドレス領域決定部1460は、例えば、各LUTの補正対象アドレス領域を、図15に示したように、3つのアドレス領域1501〜1503に分割する。
アドレス領域決定部1460は、複数の分割されたアドレス領域の境界となるアドレスの値を取得し、取得したアドレス値を境界アドレス値adrsThn(nは1以上の整数)として設定する。アドレス領域決定部1460は、例えば、図15に示したように、アドレス領域1501とアドレス領域1502の境界となるアドレスの値(アドレス領域1502内のアドレスの最小値)Ath12を取得し、取得したアドレス値Ath12を境界アドレス値ardsTh1として設定する。また、アドレス領域1460は、アドレス領域1502とアドレス1503の境界となるアドレスの値(アドレス領域1503のアドレスの最小値)Ath23を取得し、取得したアドレス値Ath23を境界アドレス値ardsTh2として設定する。アドレス領域決定部1460は、設定した境界アドレス値adrsThnを含むアドレス領域情報ADRをオフセット制御部1432に出力する。
オフセット制御部1432は、アドレス領域決定部1460よりアドレス領域情報ADRを受けとり、受けとったアドレス領域情報ADRに基づいて、各LUTの補正対象アドレス領域の中に複数の分割されたアドレス領域を設定する。オフセット制御部1432は、アドレス領域情報ADRに含まれる境界アドレス値adrsThnを、オフセット補正処理等の処理に用いるパラメータとして設定することにより、複数のアドレス領域を設定する。
オフセット制御部1432は、例えば、上述の境界アドレス値ardsTh1及び境界アドレス値ardsTh2により、図15に示した3つのアドレス領域1501〜1503を設定する。
よって、歪補償装置1400においては、送信信号Tx(t)の電力値p(t)に基づいて生成されたアドレスAdrs(Tx(t))を監視することによって得られたアドレス値の発生頻度分布に基づいて、補正対象アドレス領域内の各々のアドレス領域の範囲を決定しているので、歪補償装置1400や歪補償装置1400を含む無線通信装置が置かれた通信環境の違いに応じて、補正対象アドレス領域のアドレス領域の分割の態様を変えることができ、各々のアドレス領域の範囲を最適化することができる。これにより、歪補償装置1102と比べて、各LUT内における歪補償係数のオフセット補正処理をより精密に制御することができる。
従って、歪補償装置1402においては、各LUT内の歪補償係数のオフセット補正処理の精度を、歪補償装置1102よりもさらに向上させることができる。
尚、上述の実施例においては、アドレス領域決定部1460は、アドレス生成部402から受けとったアドレスAdrs(Tx(t))に基づいてアドレス値の発生頻度分布を算出しているが、これには限定されない。アドレス領域決定部1460は例えば、遅延部404からアドレスAdrs(T(t−1))を受けとり、受けとったアドレスAdrs(T(t−1))に基づいてアドレス値の発生頻度分布を算出するようにしてもよい。
また、上述の実施例においては、補正対象アドレス領域を3つのアドレス領域に分割する例を示したが、これに限定されることはなく、分割するアドレス領域の数は適宜変更可能である。
[5−2.歪補償装置1402における歪補償係数の補正・更新動作の例]
図16は、第5実施例に係る歪補償装置1402における歪補償係数の補正・更新処理のフローチャートの一例を示す図である。以下、図16のフローチャートを用いて、歪補償装置1402が実行する歪補償係数の補正・更新処理について説明する。尚、図16のフローチャートおいては、点線で囲まれた部分に、対応するステップの処理に関連する数式が示してある。
まず、ステップS1602において、歪補償装置1402は一連の歪補償係数の補正・更新処理を開始する。
次に、ステップS1604において、アドレス領域決定部1460は、初期設定として、発生頻度カウント処理に用いられるパラメータを設定する。設定されるパラメータは、例えば、アドレスAdrs(Tx(t))に基づいて、アドレス値ごとに発生頻度をカウントする処理(発生頻度カウント処理)を行う回数(頻度カウント回数)Nである。ここでは、この頻度カウント回数をN0(N0は正の整数)とする。また、アドレス領域決定部1460は、発生頻度カウント処理の処理回数iの初期値として、“0”を設定する。
N=N0
i=0
次に、ステップS1606において、アドレス領域決定部1460は、処理回数iが頻度カウント回数Nより大きい否かを判定する。アドレス領域決定部1460が、処理回数iが頻度カウント回数Nより大きいと判定した場合は、処理はステップS1612に移行する。アドレス領域決定部1460が、処理回数iが頻度カウント回数N以下である(頻度カウント回数Nより大きくない)と判定した場合は、処理はステップS1608に移行する。
次に、ステップS1608において、アドレス領域決定部1460は、アドレス生成部402から、アドレスAdrs(Tx(t))を受けとる。アドレスAdrs(Tx(t))は、現在の参照時刻tにおける、送信信号Tx(t)の電力値p(t)に基づいて生成されたアドレス値を有するものである。アドレス領域決定部1460は、受けとったアドレスAdrs(Tx(t))に基づいて、アドレス値ごとに、その発生頻度をカウントする。
次に、ステップS1610において、アドレス領域決定部1460は、処理回数iの値を“1”だけ増加させることにより、処理回数iを更新する。処理回数iの更新の後、処理はステップS1606に戻る。
i=i+1
次に、ステップS1612において、アドレス領域決定部1460は、ステップS1606〜S1610においてカウントした発生頻度の結果に基づいて、アドレスAdrs(Tx(t))に対するアドレス値の発生頻度分布を算出する。アドレス領域決定部1460は、算出されたアドレス値の発生頻度分布に基づいて、各LUTの補正対象アドレス領域を3つのアドレス領域に分割する。アドレス領域決定部1460は、分割後の複数のアドレス領域におけるアドレス値の発生頻度の合計が相互に等しくなるように、補正対象アドレス領域を3つの領域に分割する処理を行うことにより、補正対象アドレス領域を図16に示したように、3つのアドレス領域1501〜1503に分割する。
アドレス領域決定部1460は、複数の分割されたアドレス領域の境界となるアドレスの値を取得し、取得したアドレス値を境界アドレス値adrsThn(nは1以上の整数)として設定する。アドレス領域決定部1460は、図16に示したアドレス領域1501とアドレス領域1502の境界となる境界となるアドレス値Ath12を取得し、取得したアドレス値を境界アドレス値adrsTh1として設定するとともに、アドレス領域1502とアドレス領域1503の境界となる境界となるアドレス値Ath23を取得し、取得したアドレス値を境界アドレス値adrsTh2として設定する。
adrsTh1=Ath12
adrsTh2=Ath23
以上のS1604〜S1612のステップにより、オフセット補正処理部1470において、補正対象アドレス領域に対するアドレス領域決定処理1640が行われる。
次に、ステップS1614において、オフセット制御部1432は、初期設定として、後述するステップS1618〜S1622におけるオフセット補正値設定処理、オフセット補償値更新処理及びオフセット補正処理に用いられるパラメータを設定する。設定されるパラメータの詳細については、図13のフローチャートにおいて説明したとおりである。但し、境界アドレス値adrsTh1及びadrsTh2には、ステップS1612において設定した境界アドレス値がそれぞれ設定される。
次に、ステップS1616において、オフセット制御部1432は、LUTa406〜LUTd412の中から処理対象となる1つのLUTを選択する。オフセット制御部1432は、例えば、LUTa406、LUTb408、LUTc410、LUTd412、LUTa406、LUTb408、・・・の順番で、対応するLUTを周期的に選択していく。
次に、ステップS1618において、オフセット制御部1432は、選択した処理対象のLUT_xのアドレス領域1501に対する歪補償係数の補正処理1650を実行する。この歪補償係数の補正処理1650は、図13のフローチャートのステップS1308〜S1314において説明した歪補償係数の補正処理1350と同様である(xはa〜dのいずれかである)。
次に、ステップS1620において、オフセット制御部1432は、選択した処理対象のLUT_xのアドレス領域1502に対する歪補償係数の補正処理1660を実行する。この歪補償係数の補正処理1660は、図13のフローチャートのステップS1316〜S1322において説明した歪補償係数の補正処理1360と同様である。
次に、ステップS1622において、オフセット制御部1432は、選択した処理対象のLUT_xのアドレス領域1503に対する歪補償係数の補正処理1670を実行する。この歪補償係数の補正処理1670は、図13のフローチャートのステップS1324〜S1330において説明した歪補償係数の補正処理1370と同様である。
以上のS1604〜S1622のステップにより行われる一連の処理が、歪補償装置1402が実行する歪補償係数の補正処理である。
次に、ステップS1632において、補償係数更新部324は、各LUTに対して、歪補償係数の更新処理を行う。この歪補償係数の更新処理の詳細については、図6のフローチャートにおいて説明したとおりである。歪補償係数の更新処理の後、処理はステップS1616に戻る。
ステップS1616において、オフセット制御部1432は、LUTa406〜LUTd412の中から別のLUTを次の処理対象LUTとして選択する。オフセット制御部1432は、選択した処理対象のLUTについて、アドレス領域1501〜1503に対する歪補償係数の補正処理1650〜1670を実行する。
以上説明したように、図16に示した歪補償係数の補正・更新処理においては、図6及び図13に示した歪補償係数の補正・更新処理と同様に、オフセット量算出処理及びオフセット補正処理により、歪補償係数が係数設定範囲の上限値又は下限値にクリップされることにより歪補償性能が低下するのを防止することができる。さらに、オフセット補償値更新処理により、オフセット補正処理によって各LUT内の歪補償係数の値を補正した場合であっても、各LUTにおいて、図1に示す従来構成でのオフセット補正処理が行われない場合の歪補償係数を生成し、生成された歪補償係数を用いて適切な歪補償処理を行うことができる。
さらに、図16に示した歪補償係数の補正・更新処理においては、図6及び図13に示した歪補償係数の補正・更新処理と同様に、オフセット補正値設定処理により、歪補償係数のオフセット補正値を、算出したオフセット量に応じた適切な値に設定することができるとともに、オフセット補正単位の値を適切に調整することにより、オフセット補正処理が歪補償係数更新処理における歪補償係数の収束性に与える影響を小さく抑えることができる。
さらに、図16に示した歪補償係数の補正・更新処理においては、図13に示した歪補償係数の補正・更新処理と同様に、各LUTに対して、補正対象アドレス領域のアドレス領域1501〜1503に対応したオフセット量LUTofst_x1〜LUTofst_x3を個別に算出することができるので、送信信号Tx(t)の発生頻度が電力値p(t)について偏りを有する場合であっても、各LUT内における歪補償係数のオフセット補正処理をより精密に制御することができる。
加えて、図16に示した歪補償係数の補正・更新処理においては、アドレス領域決定処理1640により、アドレスAdrs(Tx(t))に基づいてアドレス値ごとに発生頻度をカウントすることによってアドレス値の発生頻度分布を算出し、算出したアドレス値の発生頻度分布に基づいて、補正対象アドレス領域内の各々のアドレス領域の範囲を決定している。よって、歪補償係数の補正・更新処理が行われる通信環境の違いに応じて、補正対象アドレス領域のアドレス領域の分割の態様を変えることができ、各々のアドレス領域の範囲を最適化することができる。これにより、図13に示した歪補償係数の補正・更新処理の場合と比べて、各LUT内における歪補償係数のオフセット補正処理をより精密に制御することができる。
従って、図16に示した歪補償係数の補正・更新処理においては、各LUT内の歪補償係数のオフセット補正処理の精度を、図13に示した歪補償係数の補正・更新処理よりも向上させることができる。
尚、上述の実施例では、アドレス値ごとの発生頻度のカウントを一定のカウント回数分だけ実施することによりアドレス値の発生頻度分布を算出しているが、これに限定されるものではなく、例えば、アドレス値ごとの発生頻度のカウントを一定の期間だけ実施することによりアドレス値の発生頻度分布を算出するようにしてもよい。
以上、本発明の例示的な実施形態の無線通信装置、歪補償装置及び歪補償方法ついて説明したが、本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の第1ないし第5実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
電力増幅器に入力される送信信号に対して、前記電力増幅器の歪特性の逆特性を予め与えることで歪補償処理を行う歪補償装置であって、
前記歪補償処理に用いられる複数の歪補償係数を格納する複数の歪補償係数記憶部と、
前記複数の歪補償係数記憶部の各々に格納された前記歪補償係数に対してオフセット補正処理を行うともに、前記複数の歪補償係数記憶部の各々に対応する、前記オフセット補正処理が行われなかった場合の歪補償係数を疑似的に生成するオフセット補正処理部と、
前記疑似的に生成された歪補償係数に基づいて、前記送信信号に対して前記歪補償処理を行う歪補償処理部と、
を有することを特徴とする歪補償装置。
(付記2)
前記オフセット補正処理部は、
前記複数の歪補償係数記憶部の各々に対して前記歪補償係数のオフセット量を算出し、前記算出されたオフセット量に基づいて前記オフセット補正処理を行うとともに、前記算出されたオフセット量に基づいて、前記オフセット補正処理後の歪補償係数に対するオフセット補償値を算出するオフセット制御部と、
前記複数の歪補償係数記憶部から出力された前記オフセット補正処理後の歪補償係数と、前記オフセット補償値に基づいて、前記オフセット補正処理が行われなかった場合の歪補償係数を疑似的に生成し、前記疑似的に生成された歪補償係数を前記歪補償処理部に供給するオフセット補償部と
を有することを特徴とする付記1記載の歪補償装置。
(付記3)
前記オフセット補正処理部は、
前記複数の歪補償係数記憶部の各々に対して前記歪補償係数のオフセット量を算出し、前記算出されたオフセット量が所定の範囲外の値であるときに、対応する前記歪補償係数記憶部に格納された前記歪補償係数に対して前記オフセット補正処理を行う
ことを特徴とする付記1又は2記載の歪補償装置。
(付記4)
前記送信信号の最大電力値を探索する最大電力探索部をさらに有し、
前記オフセット補正処理部は、
前記オフセット補正処理が行われる、前記歪補償係数記憶部内の補正対象アドレス領域を、前記探索により特定された前記送信信号の最大電力値に基づいて変更する
ことを特徴とする付記1ないし3のいずれか一つ記載の歪補償装置。
(付記5)
前記歪補償係数記憶部は、前記オフセット補正処理が行われる、複数の補正対象アドレス領域を有し、
前記オフセット補正処理部は、前記複数の補正対象アドレス領域ごとに独立して、前記オフセット補正処理を行う
ことを特徴とする付記1ないし4のいずれか一つ記載の歪補償装置。
(付記6)
前記送信信号の電力値に基づいて、前記歪補償係数記憶部のアドレスを生成するアドレス生成部と、
前記生成されたアドレスのアドレス値ごとの発生頻度をカウントし、前記カウントされた発生頻度に基づいて、前記歪補償係数記憶部内の前記複数の補正対象アドレス領域を決定するアドレス領域決定部と
をさらに有することを特徴とする付記5記載の歪補償装置。
(付記7)
送信信号に対して、電力増幅器の歪を補償する歪補償処理を行う歪補償方法であって、
複数の歪補償係数記憶部の各々に格納された歪補償係数に対してオフセット補正処理を行う工程と、
前記複数の歪補償係数記憶部から、前記送信信号の電力値に応じた前記歪補償係数を読み出す工程と、
前記複数の歪補償係数記憶部の各々に対応する、前記オフセット補正処理が行われなかった場合の歪補償係数を疑似的に生成する工程と、
前記疑似的に生成された歪補償係数に基づいて、前記送信信号に対して前記歪補償処理を行う工程と
を有することを特徴とする歪補償方法。
(付記8)
前記複数の歪補償係数記憶部の各々に対して前記歪補償係数のオフセット量を算出する工程と、
前記算出されたオフセット量に基づいて、前記オフセット補正処理後の歪補償係数に対するオフセット補償値を算出する工程と
をさらに有し、
前記オフセット補正処理を行う工程においては、前記算出されたオフセット量に基づいて前記オフセット補正処理を行い、
前記歪補償係数を前記疑似的に生成する工程においては、前記歪補償係数を読み出す工程において読み出された、前記オフセット補正処理後の歪補償係数と、前記オフセット補償値に基づいて、前記オフセット補正処理が行われなかった場合の歪補償係数を疑似的に生成する
ことを特徴とする付記7記載の歪補償方法。
(付記9)
前記複数の歪補償係数記憶部の各々に対して前記歪補償係数のオフセット量を算出する工程と、
前記算出されたオフセット量が所定の範囲外の値であるときに、対応する前記歪補償係数記憶部に格納された前記歪補償係数に対して前記オフセット補正処理を行う工程と
をさらに有することを特徴とする付記7又は8記載の歪補償方法。
(付記10)
前記送信信号の最大電力値を探索する工程と、
前記オフセット補正処理が行われる、前記歪補償係数記憶部内の補正対象アドレス領域を、前記探索により特定された前記送信信号の最大電力値に基づいて変更する工程と
をさらに有することを特徴とする付記7ないし9のいずれか一つ記載の歪補償方法。
(付記11)
前記歪補償係数記憶部には、前記オフセット補正処理が行われる、複数の補正対象アドレス領域が設定され、
前記オフセット補正処理を行う工程においては、前記複数の補正対象アドレス領域ごとに独立して、前記オフセット補正処理を行う
ことを特徴とする付記7ないし10のいずれか一つ記載の歪補償方法。
(付記12)
前記送信信号の電力値に基づいて、前記歪補償係数記憶部のアドレスを生成する工程と、
前記生成されたアドレスのアドレス値ごとの発生頻度をカウントし、前記カウントされた発生頻度に基づいて、前記歪補償係数記憶部内の前記複数の補正対象アドレス領域を決定する工程と
ことを特徴とする付記11記載の歪補償方法。
(付記13)
電力増幅器に入力される送信信号に対して、前記電力増幅器の歪特性の逆特性を予め与えることで歪補償処理を行う歪補償装置と、
前記歪補償装置の出力信号に対して、直交変調処理を行うとともに、無線周波数への周波数変換処理を行うアップコンバータと、
前記アップコンバータの出力信号に対して電力増幅処理を行う電力増幅器と、
を有する無線通信装置であって、
前記歪補償装置は、
前記歪補償処理に用いられる複数の歪補償係数を格納する複数の歪補償係数記憶部と、
前記複数の歪補償係数記憶部の各々に格納された前記歪補償係数に対してオフセット補正処理を行うともに、前記複数の歪補償係数記憶部の各々に対応する、前記オフセット補正処理が行われなかった場合の歪補償係数を疑似的に生成するオフセット補正処理部と、
前記疑似的に生成された歪補償係数に基づいて、前記送信信号に対して前記歪補償処理を行う歪補償処理部と
を有することを特徴とする無線通信装置。