RF通信向けのデジタル・プリディストーション:数式による理解から実装まで

概要

本稿では、まずデジタル・プリディストーション(DPD:Digital Predistortion)の基礎理論について数学的な観点から説明します。その上で、トランシーバーが備えるマイクロプロセッサなどのハードウェアにDPDの機能を実装するにはどうすればよいのか解説を加えます。本稿により、現代の通信システムにはなぜDPDが必要なのか、また数学的なモデルによって現実の信号を扱うにはどうすればよいのかご理解いただけるはずです。

はじめに

DPDというのは、RF技術者、信号処理を担当する技術者、組み込みソフトウェアの開発者にはよく知られている略語です。実際、この技術はセルラ式携帯電話の分野では広く普及しています。この技術を活用すれば、アンテナに対し、パワー・アンプ(PA)から最大の出力を効率的に供給できるようになるからです。5Gの導入によって基地局のアンテナの数が増加し、周波数スペクトルはますます混雑した状態になりました。そうした状況下でも、DPDを利用すれば、優れた効率と高い費用対効果で仕様に準拠したセルラ・システムを構築することができます。通信分野において、DPDは非常に重要性の高い技術です。

ただ、多くの技術者は、自身の観点に基づいて自分なりにDPDについて理解しているはずです。例えば、純粋に数学的な観点で理解している人もいれば、制約の厳しいマイクロプロセッサへの実装という観点から理解している人もいます。DPDには、担当分野の異なる多くの技術者が関わります。例えば、基地局製品におけるDPDの性能を評価している技術者もいれば、数学的なモデルを実際のシステムに適用する方法を知りたがっているアルゴリズム開発者も存在するでしょう。本稿では、そうした多くの技術者の知識を拡充し、DPDについてあらゆる角度から把握できるようにすることを目標とします。

DPDとは何か? なぜ使用されるのか?

基地局の無線装置からRF信号を出力する際には、アンテナから送出する前に信号を増幅する必要があります(図1)。そのためには、RFに対応可能なPAを使用します。理想的なPAであれば、受け取った入力信号に比例する大電力の信号を出力できるでしょう。また、その処理を可能な限り高い電力効率で実現し、アンプに供給されるDC電源のほとんどを出力信号の電力に変換できるはずです。

図1. RF対応の送信側システム。DPDを適用していない場合と適用した場合の違いを示しています。
図1. RF対応の送信側システム。DPDを適用していない場合と適用した場合の違いを示しています。

しかし、理想と現実には違いがあります。PAはアクティブ・デバイスであり、本質的に非線形なトランジスタをベースとして実現されます。図2に示すように、PAを「線形」(ここでは、相対的な意味で線形という言葉を使用しています)な領域で使用する場合、出力電力は入力電力に比較的比例します。但し、ほとんどの場合、PAは非常に効率の悪い領域で使用され、供給電力の大部分は熱として失われてしまいます。そのため、多くの技術者は、圧縮が始まろうとするポイントでPAを使用したいと考えます。その場合、入力信号が一定の量(例えば3dB)増加したとしても、PAの出力は同じ量だけ増加するわけではありません(例えば、1dBといった値になります)。このポイントでは、アンプによって明らかに信号が大きく歪みます。

図2. PAの入力電力と出力電力。入力信号の例に対する出力信号の投影も示しています。
図2. PAの入力電力と出力電力。入力信号の例に対する出力信号の投影も示しています。

上述した歪みは、入力信号に応じ、周波数軸上の既知の場所で生じます。図3は、基本周波数に対してその歪みがどのような位置に現れるのかを示したものです。RFシステムにおいて補償する必要があるのは、基本信号の近傍の歪みだけです。具体的には、奇数次の相互変調歪みが問題になります。帯域外の成分(高調波と偶数次の相互変調歪み)は、システムが備えるフィルタによって除去できるからです。図4に示したのは、圧縮ポイントの近くでPAを動作させた場合の出力です。ご覧のように、相互変調歪み(特に3次)がはっきりと確認できます。それらは、対象とする信号の周りにスカートのような形状で現れます。

図3. 2つのトーン入力によって生じる相互変調歪みと高調波歪み
図3. 2つのトーン入力によって生じる相互変調歪みと高調波歪み
図4. 圧縮ポイントの近くでPAを動作させた場合の出力。20MHzの2つのキャリアがPA(Skyworks Solutionsの「SKY66391-12」)を通過した場合の結果です。中心周波数は1850MHzに設定しています。
図4. 圧縮ポイントの近くでPAを動作させた場合の出力。20MHzの2つのキャリアがPA(Skyworks Solutionsの「SKY66391-12」)を通過した場合の結果です。中心周波数は1850MHzに設定しています。

DPDでは、まずPAの出力を観察して上記の歪みの評価を行います。続いて、必要な出力信号を把握し、それに応じて入力信号を変化させます。結果として、PAの出力が理想に近づくようにします。これを効果的に実現できるのは、特定の状況に限られます。PAと入力信号については、PAにおいて多少圧縮が生じているものの、完全には飽和していないように設定しなければなりません。

PAの歪みのモデルについて数学的に理解する

ギリシャ文字などを含む数式を見ると、過ぎし日、大学で経験した恐ろしい試験の記憶が蘇るという方もいるでしょう。最初に与えられた参考資料の1つが数学的な要素が満載の学術論文であった場合、その内容が基礎的な事柄だったとしても閉口させられるものです。稿末に参考資料1「A Generalized Memory Polynomial Model for Digital Predistortion of RF Power Amplifiers(RFパワー・アンプ向けのデジタル・プリディストーションにおける一般化されたメモリ多項モデル)」として挙げた文献では、DPDで広く使われているGMP(Generalized Memory Polynomial)のアプローチについて独創的な形で論じています。信号処理について入門レベルで学びたいという場合には、この文献は少し重く感じられるかもしれません。そこで本稿では、GMPのアプローチについて分析を行い、数学的に何を行っているのか、より直感的に理解できるように解説しようと思います。

DPDの数学的な基盤はボルテラ級数です。これは、メモリ効果を備えた非線形なシステムをモデリングするために使用されます。ここで言うメモリ効果とは、システムの現在の出力が現在と過去の入力によって決まる可能性があるということを表しています。ボルテラ級数は、非常に一般的(そのため、強力)なので、電子工学に限らず多くの分野で使用されています。PA向けのDPDでは、ボルテラ級数をよりスリムにすることで、リアルタイム対応のデジタル・システムの実装の可能性と安定性を高めることができます。GMPは、そうしたスリム化されたアプローチの1つです。

図5は、GMPを使ってPAの入力xと出力yの関係をモデリングする方法を示したものです。図中に示した式には、3つの独立した加算ブロック(項)が存在します。そして、それらは非常に似ていることがわかります。ここでは、まず1つ目の項に注目することにしましょう。¦x(n - l)¦kの項は、入力信号のエンベロープと呼ばれています。ここで、kは多項式の次数に相当します。lは、システムにメモリ効果を取り入れるためのものです。La = {0,1,2}である場合、このモデルでは現在の入力x(n)と過去の入力x(n - 1)、x(n - 2)によって出力yGMP(n)が決まります。図6は、サンプルのベクトルに対する多項式の次数kの影響について調べたものです。ベクトルxは単一の20MHzのキャリアであり、複素ベースバンドでプロットされています。GMPによるモデルリングの式は、メモリ効果の成分を排除することで簡素化されています。x¦x¦kのプロットは、明らかに図4に示した現実の歪みとの類似性を示します。

多項式の各次数kとメモリ効果による遅延lには、それぞれに対応する複素数が重みづけ(akl)されています。このモデルにおいてどの程度の複雑さを許容するか(kとlのどの値を含めるか)を選択したら、既知の入力信号に対するPAの出力の実際の観測結果に基づいて、各重みづけの値を求めます。図7は、そのようにして簡素化した式を行列の形式に変換したものです。この数学的な表現を使うことにより、モデルを簡潔に表現することができます。デジタル・データのバッファにDPDを実装する場合には、行列の表現を用いるのが最も簡単でより代表的な手法になります。

次に、簡素化することを目的として無視していた図6の式の2つ目と3つ目の項について簡単に説明しましょう。なお、mをゼロに設定した場合、これらは1つ目の項と同一になります。2つ目、3つ目の項により、エンベロープの項と複素ベースバンド信号の間に(正、負両方の)遅延を加えることができます。これらの項は、それぞれ遅行交差項(lagging crossterm)、先行交差項(leading crossterm)と呼ばれます。これらの項によって、DPDのモデルの精度を大幅に高めることができます。また、PAの挙動をモデリングしようとする試みにおいて自由度が向上します。なお、Mb、Mc、Kb、Kcにはゼロは含まれていません。ゼロが含まれている場合、1つ目の項を繰り返すことになります。

図5. PAの歪みをモデリングするために使われるGMP1
図5. PAの歪みをモデリングするために使われるGMP1
図6. 次数kが信号xに与える影響。周波数領域のプロットを示しています。
図6. 次数kが信号xに与える影響。周波数領域のプロットを示しています。
図7. データ・バッファにおける簡素化した式から行列演算への変換。デジタル的に実装する方法に近いものになります。
図7. データ・バッファにおける簡素化した式から行列演算への変換。デジタル的に実装する方法に近いものになります。

続いて、モデルの次数、メモリ効果の項の数、加えるべき交差項を決定します。その決定は、どのようにして行えばよいのでしょうか。ここで、ちょっとしたコツを導入することにします。歪みに関する物理的な知識があれば、決定に向かってある程度前進することが可能です。PAの種類、その材料、PAによって再生される信号の帯域幅は、どれもモデルの項に影響を及ぼします。この分野において豊富な経験を持つ技術者であれば、どのようなモデルを使うべきか絞り込むことができます。とはいえ、ある程度の試行錯誤は伴います。

ここまでで、モデルの構造は固まってきました。数学的な観点から取り組むべき最後の問題は、重みづけの値(係数)をどのようにして求めるのかということです。そのためによく行われるのは、上述したモデルの逆変換を求めるというものです。これらのモデルの係数には相互関係があります。つまり、同じ重みづけを使用することで、取得したPAの出力ベクトルに対してポストディストーションを適用し、非線形性を排除できるということです。また、PAから送信される信号に対してプリディストーションを実施することにより、PAの出力をできるだけ線形に近づけることも可能です。図8は、重みづけの値(係数)の推定とプリディストーションがどのように行われるのかを示したものです。

図8. モデルとプリディストーションの実装(概念図)
図8. モデルとプリディストーションの実装(概念図)

逆変換したモデルでは、図7に示した行列式を入れ替えて X ̂ = Ywになるようにします。すると、行列Yは、Xが形成されたのと同じ方法で形成されます(図9)。この例には、メモリ効果の項が含まれています。また、含まれる多項式の次数は低くなっています。ここで、wについて解くにはYの逆行列を求める必要があります。Yは正方行列ではないので(縦長の行列)、以下の式のように逆行列は「疑似逆行列」を用いて求めます。ここでは、最小二乗法のような形でwを求めます。つまり、X ̂とYwの差の2乗が最小になるようにします。それにより、必要な結果が得られます。

数式 1

現実の環境には、様々な信号が存在します。そのことを考慮すると、上記の方法にはもう少し改良の余地があります。係数は、前の値から更新されることによる制約を受けます。以下の式において、µは0と1の間の定数です。µは、反復されるごとに重みづけをどの程度変化させられるかを制御するように働きます。µ = 1でw0 = 0の場合、上記の式は直ちに基本的な最小二乗解に戻ります。µを1未満の値に設定した場合には、係数が収束するまでに何回か反復処理を実施する必要があります。

数式 2

ここで説明したモデリングと推定の手法は、DPDを利用するための唯一の方法というわけではありません。この点には注意してください。例えば、DDR(Dynamic Deviation Reduction)をベースとしたモデリング手法を利用するといったことも可能です。係数を求めるために説明した推定の手法も、他の方法に置き換えることができます。これについて説明すると長くなるので、本稿では詳細は割愛します。

マイクロプロセッサへの実装方法

ここまでで、数学的な解説を終えることができました。次に問題になるのは、実際の通信システムにそれをどうやって適用すればよいのかということです。DPDの処理は、一般にマイクロプロセッサやFPGAで実現されるデジタル・ベースバンド部に実装します。アナログ・デバイセズのRadioVerse®トランシーバー製品「ADRV902xファミリ」などは、マイクロプロセッサのコアを内蔵しています。また、DPDを簡単に実装できるように特別な機構が用意されています。

図9. 行列形式による逆変換用の式。いくつかのメモリ項が含まれています。
図9. 行列形式による逆変換用の式。いくつかのメモリ項が含まれています。
図10. 3次のプリディストーションの計算。1つのメモリ・タップと1つの3次交差項を備えています。
図10. 3次のプリディストーションの計算。1つのメモリ・タップと1つの3次交差項を備えています。

組み込みソフトウェアによってDPDを実現する際には、2つの異なる要素を実装することになります。1つは、DPDアクチュエータです。これは、送信データのプリディストーションをリアルタイムに実行します。もう1つは適応型DPDエンジンです。こちらは、PAの出力の観測結果に基づいてDPDの係数を更新する役割を果たします。

DPDを含む多くの信号処理の概念をマイクロプロセッサなどでリアルタイムに実行する際には、ルックアップ・テーブル(LUT)を利用することが鍵になります。LUTを使うことにより、コストのかかる計算を単純な配列インデックスの作成処理で置き換えることができます。ここで、DPDアクチュエータは、送信データのサンプルに対し、どのようにプリディストーションを適用するのか考えてみましょう。以下で使用する各信号は図8に対応しています。すなわち、u(n)は送信側の未処理のサンプル・データ、x(n)はそれに対してプリディストーションを適用した結果です。図10に、特定の状況下でプリディストーションをかけたサンプルを1つ取得するために必要な計算を示しました。これは、多項式の最高次数が3次で、メモリ効果のタップが1つ、交差項が1つしかない比較的限定的な処理の例だと言えます。それでも、1つのサンプルを取得するためには、多くの乗算、べき乗、加算の処理が必要になることがわかります。

ここで役に立つのがLUTです。LUTを使うことで、リアルタイムの演算負荷を軽減することができます。図10を図11のように描き直すと、LUTに入力されるデータがより明確になります。各LUTには、¦u(n)¦が取り得る多くの値に対し、式中の網掛けした部分の計算結果が格納されています。分解能は、使用するハードウェアに実装可能なLUTのサイズによって決まることになります。現在の入力サンプルの大きさは、LUTの分解能に応じて量子化されます。また、その大きさは、特定の入力に対してLUTの適切な要素にアクセスが行われるようにするためのインデックスとして使用されます。

図11. LUTの構成を示すために再グループ化した式
図11. LUTの構成を示すために再グループ化した式

図12は、この例において、完全なプリディストーション用のアクチュエータにLUTがどのように実装されるのかを示したものです。ただ、これは実装方法の一例にすぎません。例えば、遅延素子z-1はLUT2の右に移すことができます。そのようにしても、同じ出力結果を得ることが可能です。

図12. LUTを使用したDPDの実装例
図12. LUTを使用したDPDの実装例

適応型DPDエンジンは、DPDアクチュエータにおいてLUTの値を計算するために使用する係数を算出する役割を担います。その際には、式(1)と式(2)で使われているベクトルwも算出されます。疑似逆行列演算である(YH Y)-1 YHでは、多くの演算を行う必要があります。式(1)は、以下のように書き換えることができます。

数式 3

CYY = YHYかつCYx = YH xである場合、式(3)は以下のように書き換えられます。

数式 4

CYYは正方行列であり、コレスキー分解によって上三角行列Lとその共役転置行列の積に分解することができます(CYY = LH L)。ここでダミー変数zを導入することにより、wを求めることが可能になります。すなわち、次式が得られます。:

数式 5

ここでダミー変数を代入し直すと、次式が得られます。

数式 6

LとLHは、それぞれ上三角行列と下三角行列です。そのため、式(5)と式(6)を使って最小限の時間で簡単にwを算出することができます。なお、適応型DPDエンジンによる処理が実行され、wの新たな値が見つかるたびに、DPDアクチュエータのLUTを更新してそれらを反映する必要があります。適応型DPDエンジンは、設定した一定の間隔で実行することができます。あるいは、PAの出力の観測結果または送信する信号の変化に関するオペレータの知識に基づいて、不規則な間隔で実行することも可能です。

組み込みシステムにDPDの処理を実装する際には、システムの安定性を確保しなければなりません。そのためには、多くの確認を行い、バランスをとることが必須です。送信データのバッファとキャプチャ用のバッファのデータは、時間的に同期していることが非常に重要です。なぜなら、それらの間に成り立つ数学的な関係が適切で、なおかつ長期にわたる適用期間が正しく維持され続けるようにしなければならないからです。その同期が失われた場合、適応型DPDエンジンが生成した係数を使ってプリディストーションを正しく適用することができなくなります。その結果、システムが不安定になってしまうかもしれません。また、信号によってD/Aコンバータが飽和しないことを確認するために、プリディストーションを実施した後のアクチュエータの出力もチェックする必要があります。

まとめ

本稿では、DPDの基礎となる数学的な理論とハードウェアへの実装方法について解説しました。ただ、本稿によって、DPDに関するあらゆる事柄について解説できたというわけではありません。それでも、通信システムにおける信号処理の手法やアプリケーションについて更に詳しく学ぶための出発点にはなったでしょう。本稿がDPDに対する理解につながれば幸いです。なお、参考資料2として稿末に挙げた記事は、有線の通信システムをベースとする超広帯域アプリケーションにDPDを適用する際に役立つ優れた情報源だと言えます。また、アナログ・デバイセズのRadioVerseトランシーバー製品は、集積度の高いRF対応のハードウェアと構成が可能なソフトウェア・ツールから成ります。これを利用すれば、DPDなどのアルゴリズムをシステムに容易に組み込むことができます。

参考資料

1 Dennis R. Morgan、Zhengxiang Ma、Jaehyeong Kim、Michael G. Zierdt、John Pastalan「A Generalized Memory Polynomial Model for Digital Predistortion of RF Power Amplifiers(RFパワー・アンプ向けのデジタル・プリディストーションにおける一般化されたメモリ多項モデル)」IEEE Transactions on Signal Processing、Vol. 54、No. 10、2006年10月

2 Patrick Pratt、Frank Kearney「超広帯域に対応するデジタル・プリディストーション、この技術をケーブル・システムに実装するメリットと課題を解き明かす」Analog Dialogue、Vol. 51、No. 3、2017年7月

著者

Claire Masterson

Claire Masterson

Claire Masterson は、アナログ・デバイセズ(リムリック)のシステム・エンジニアです。2011年に入社しました。ワイヤレス・システム・グループで、システムの実装、ソフトウェアの開発、アルゴリズムの開発と検証を担当。デジタル信号処理のアプリケーションに関心を持っており、特に5G/6Gのシステム開発と次世代のDPDの実装に注目しています。トリニティ・カレッジ・ダブリンで学士号と博士号を取得しました。