1/15ページ
ダウンロード
アナログ・デバイセズは、広帯域に対応するRFトランシーバーIC「ADRV9002」を提供しています。本稿では、同製品が備えるデジタル・プリディストーション(DPD)機能について解説します。
最初に、DPDが使用されるようになった背景について、システムの実験を行う際にユーザが遭遇するよくある問題を取り上げながら説明します。その上で、DPDの性能を解析するためのソフトウェア・ツールを利用してDPD用アルゴリズムのチューニングを実施する方法を紹介します。なお、本稿で紹介するデバッグ手法の一部は、一般的なDPDシステムにも適用可能です。
このカタログについて
ドキュメント名 | デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド |
---|---|
ドキュメント種別 | 製品カタログ |
取り扱い企業 | アナログ・デバイセズ株式会社 (この企業の取り扱いカタログ一覧) |
この企業の関連カタログ
このカタログの内容
Page1
Technical Article
デジタル・
プリディストーションの
微調整とトラブルシューティングの
ための完全ガイド
著者:Wangning Ge、プロダクト・アプリケーション・エンジニア
概要 はじめに
アナログ・デバイセズは、広帯域に対応するRFトランシーバー DPDは、ワイヤレス通信システムで広く利用されているアルゴリ
IC「ADRV9002」を提供しています。本稿では、同製品が備 ズムです。その目的は、RF対応のパワー・アンプ(PA)に入力
えるデジタル・プリディストーション(以下、DPD)機能につ される広帯域の信号のスペクトル再生を抑えることで、PAの全
いて解説します。最初に、DPDが使用されるようになった背 体的な効率を改善することです1。一般に、PAでは、大電力の入
景について、システムの実験を行う際にユーザが遭遇するよく 力信号を処理する際に非線形性が生じます。その結果として、効
ある問題を取り上げながら説明します。その上で、DPDの性 率が低下するという問題があります。この非線形性と周波数干渉
能を解析するためのソフトウェア・ツールを利用してDPD用 が生じるのは、隣接する帯域にスペクトル再生の影響が及ぶから
アルゴリズムのチューニングを実施する方法を紹介します。な です。図1に、DPDの効果を示す評価結果を示しました。これは、
お、本稿で紹介するデバッグ手法の一部は、一般的なDPDシ ADRV9002においてDPDを適用した場合と適用しない場合のス
ステムにも適用可能です。 ペクトル再生の様子を表しています。
図1. DPDの効果。ADRV9002において、DPDを適用した場合と適用しない場合の結果を示しています。
この評価はTETRA 1の条件を適用して実施しました。
VISIT ANALOG.COM/JP
Page2
評価に際しては、TETRA(Terrestrial Trunked Radio) 1規格 アーキテクチャ
で定められた条件を適用しています。 DPDの機能の実行方法は、大きく2つに分けることができます。
1つは、間接DPDと呼ばれるものです。この方法では、PAの前
ADRV9002は、プログラムが可能で消費電力の観点から最適化
後で信号をキャプチャします。もう1つの方法は、直接DPDと
されたDPDのアルゴリズムを内蔵しています。これをカスタマ
呼ばれています。直接DPDでは、DPDの処理を実行するブロッ
イズすることにより、PAの非線形性を補償し、ACPR(Adjacent
ク(DPDブロック)の前とPAの後で信号をキャプチャします。
Channel Power Ratio:隣接チャンネル漏洩電力比)を改善す
両者にはそれぞれ長所と短所がありますが、ここでは詳細は割愛
ることができます。つまり、DPDは通信システムに対して望まし
します。間接DPDでは、PAの前後の信号を確認することにより、
いメリットをもたらします。しかし、DPDの扱いに慣れていない
その非線形性について把握します。その上で、DPDブロックの
ユーザにとって、適切な設定を行うのは容易なことではありませ
前段にそれとは逆の効果が得られるよう処理を加えます。一方、
ん。その理由は、DPDに関連する誤差を生み出し、性能を低下さ
直接DPDでは、上記のとおりDPDブロックの前とPAの後の信
せるおそれのある要因が数多く存在するからです。ハードウェア
号を確認します。その上でDPDブロックにプリディストーショ
を適切に設定した後、DPDの微調整を行うための適切なパラメー
ンを適用することにより、両者の間に生じる誤差を除去します。
タを特定し、最適なソリューションを完成させるまでの作業も容
ADRV9002は、間接DPDを採用しています。そのため、以下で
易ではありません。本稿の目的は、ADRV9002のDPD機能を使
は、間接DPDに伴う影響について詳しく解説します。MATLAB
用する技術者を支援することです。それに向けて、まずはユーザ
ベースのツールを使用する場合、キャプチャされたデータは間接
がよく遭遇するいくつかの典型的な問題を示します。その上で、
DPDによって得られたものだということに注意してください。
適切なパラメータを使用してDPDのモデルを微調整し、最適な
性能を得るための一般的な手法を紹介します。ADRV9002は、 図2は、ADRV9002のDPD処理に関連するブロックを示したも
ユーザによるDPDの解析を支援するMATLAB®ベースのツール のです。ご覧のように、入力信号u(n)はDPDブロックに引き渡
に対応しています。それらのツールは、一般的な誤りの多くを修 されます。DPDブロックでは、この信号にプリディストーション
正し、DPDの動作についての洞察を得る上で役に立つはずです。 が適用され、x(n)が生成されます。ここでは、この信号をTx(送
本稿では、DPDの概念について理論の面から解説すると共に、 信)キャプチャと呼ぶことにします。つまり、Txキャプチャは、
現実に起きる問題の解決方法も紹介します。そうした有益な情報 送信信号にプリディストーションを適用した結果得られる信号で
を提供することで、DPDに初めて触れるユーザを支援すること す。Txキャプチャは、PAに引き渡されてy(n)として出力されま
を目指します。 す。つまり、アンテナから大気中に送出されることになります。
ここでは、y(n)をRx(受信)キャプチャと呼ぶことにします。Rx
ADRV9002のDPD機能を有効にした場合、最大信号帯域幅は
キャプチャは、PAを通過した後の送信信号です。その後、y(n)
20MHzになります。これは、受信帯域幅が100MHzに制限され
はオブザベーション・レシーバーとして使用されるレシーバーの
るためです。一般に、DPDでは受振帯域幅を送信帯域幅の5倍
ポートにフィードバックされます。DPDエンジンは、x(n)とy(n)
に設定して動作させます。その理由は、3次と5次の相互変調信
の各キャプチャを入力とし、次のDPD処理に適用する係数を生
号を確認して補償できるようにしたいからです。ADRV9002は、
成します。
PAの最大ピーク電力信号がP1dB(1dB圧縮ポイント)付近の圧
縮領域に存在する状況に対応します。ここで、P1dBはPAの圧縮
特性を表す指標です。P1dBを超えるポイントでPAの信号が圧縮
されると、DPDが適切に機能することは保証されなくなります。
但し、必ず問題が生じるとは限りません。P1dBのポイントを超
える領域でDPDが機能していて、しかも非常に良好なACPRが 入力 x(n)
u(n) Txキャプチャ
得られるということはよくあります。とはいえ、そうした状況は DPD PA
ケースバイケースで生じるものなので、何らかの解析を行わなけ
ればなりません。一般的には、過剰に圧縮が行われるとDPDの
動作が不安定になり、最終的には破綻に至るおそれがあります。
これについては、MATLABベースのツールを使用してPAの現在 y(n)
の圧縮状態を観測する方法も含めて後述します。 DPD Rxキャプチャ
エンジン
なお、DPDの詳細については、UG-1828(ADRV9001 System 図2. 間接DPDに関連するブロック
Development User Guide)の「Digital Predistortion」の章
をご覧ください。
2 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
Page3
動作モード モデルの選択
ADRV9002は、TDD(Time Division Duplex)モードとFDD ADRV9002では、デフォルトのモデルがオプションとして提供
(Frequency Division Duplex)モードの両方においてDPDを されています(図3)。それを選択すれば、一般的なケースのほ
サポートします。TDDモードの場合、DPDの処理は送信フレー とんどに対応できるはずです。また、各項を有効化/無効化する
ムごとに更新されます。これは、1つの送信フレームに対応する ことで、ユーザが独自のモデルを構築することも可能になってい
期間に、レシーバーがオブザベーション・パスとして機能すると ます。最初の3つのタップ(0~2)はメモリ項タップで、Tap 1
いうことを意味します。一方、FDDモードでは、トランスミッ は中央のタップです。一方、Tap 3はクロス項タップです。Tap
タとレシーバーが同時に動作します。したがって、専用のレシー 3(クロス項タップ)では、0次の項を有効にしてはなりません。
バー・チャンネルが必要になります。ADRV9002は、2T2R(ト メモリ項タップと区別できるようにするためです。この点には注
ランスミッタとレシーバーを2個ずつ搭載)の製品です。した 意してください。
がって、2T2R/1T1RのTDDモードと1T1RのFDDモードにお
図3のLUT Size、Pre-LUT Scaleの意味は、それぞれ以下のとお
いてDPDを利用できます。
りです。
DPDモデル X LUT Size:LUT のサイズを設定します。ADRV9002 の場合、
続いては、DPDモデルについて詳しく説明していきます。 256 または 512 を設定することが可能です。512 を選んだ方
が量子化ノイズのレベルが低くなるので、ACPR は良化します。
構造 一般に、LUT のサイズが大きいほど信号の分解能が高くなる
からです。狭帯域のアプリケーションにおいては、512 をデ
ADRV9002の送信パスに実装されているDPDモデルは、以下に
フォルトのオプションとして使用することを推奨します。256
示す式で表されます。
というサイズは、狭帯域のアプリケーションと比べて高いノイ
T – 1 ズ性能は求められない広帯域のアプリケーションで使用する
x (n) = Ψt (|u (n – l t )|) u (n – k t ) とよいでしょう。そうすれば、演算量と消費電力を削減するこ
t = 0
(1) とができます。
7 X Pre-LUT Scale:プリ LUT スケーラの設定を行うことで、コ
Ψt (|u (n – l t )|) = b i
t, l
i = t ,i at, l |u n – l )
t ,i ( t | ンパンダにフィットするよう入力データをスケーリングするこ
0
とができます。コンパンダは、トランスミッタからの信号を受
各変数の意味は以下のとおりです。 け取り、LUT の 8 ビットのアドレスに収まるように圧縮しま
す。入力信号のレベルに応じて Pre-LUT Scale の値を調整す
u(n):DPDブロックへの入力信号 ることにより、LUT の利用効率を最適化することが可能です。
x(n):DPDブロックからの出力信号 Pre-LUT Scale の値は、(0, 4) の範囲、0.25 ステップで設定
することができます。コンパンダの詳細については後述します。
T:DPDモデルのタップの総数
ψt:タップtのルックアップ・テーブル(LUT)を実装するため
の多項式関数
lt:振幅遅延
kt:データ遅延
at,lt,i:DPDエンジンによって計算された係数
bt,lt,i:項の有効化/無効化を切り替えるためのスイッチ
図3. DPDモデルの多項式の設定
i:多項式の項のインデックスおよび乗数
多項式の項の数はタップごとに設定できます。ADRV9002では、
3つのメモリ項タップと1つのクロス項タップが、それぞれ0~7
の次数で提供されています。
VISIT ANALOG.COM/JP 3
Page4
コンフィギュレーション 値が適用され、より安定したソリューションが得られる可能性
DPDの機能を実行するには、次のような設定を行う必要があり があります。
ます。それは、PAの外部ループバック・パスを有効にした上で、 X Rx/Tx Normalization:レシーバー/トランスミッタにおい
フィードバックする電力が所定の範囲内に収まるようにするとい ては正規化を実施し、データが線形になる領域を使用できる
うものです。ここで言う電力はピーク電力であり、平均電力では よう設定する必要があります。図 6 では、その線形の領域を
ないことに注意してください。電力が多すぎたり少なすぎたりす 赤色で示しています。この領域における電力(のデータ)は、
ると、DPDの性能に影響が生じます。 まだ圧縮領域には達しておらず、ゲインを計算できるだけの
加えて、外部パスで生じる遅延についての設定も行わなければな 十分な大きさを維持しています。領域が選択されたら、DPD
りません。その値は、External_Delay_Measurement.pyを使用 機能はトランスミッタとレシーバーのゲインを見積もり、アル
することによって取得できます。このスクリプトは、ADRV9002 ゴリズムによる処理を前に進めます。標準的な PA を使用する
の評価用ソフトウェアに含まれています。そのインストール・パ 場合、このパラメータの値を -25dBFS ~ -15dBFS に設定す
スのIronPythonフォルダに保存されています。この遅延の設定 ればほぼ対応できるはずです。但し、特殊な PA については、
が必要になるのは、高いサンプル・レートを使用するプロファイ AM/AM 曲線の形状が全く異なる可能性があるので注意が必
ル(LTEの10MHzなど)の場合だけであることに注意してくだ 要です。その場合には適切な変更を加える必要があります(詳
さい。低いサンプル・レートのプロファイル(例えばTETRA 1 細は後述)。
の25kHz)に対しては、0を設定することができます。これにつ
いては、後ほどソフトウェア・ツールを使用してキャプチャ・デー
タを観測し、外部の遅延の影響を確認することにします。
図5. DPDに関するその他の設定
18,000
16,000
14,000
12,000
10,000
8000
図4. DPDを有効にするための 6000
基本的な設定 4000
2000
その他の設定 0
図5のように、サンプルの数も設定することができます。ただ、 0 2000 4000 6000 8000 10,000 12,000 14,000 16,000 18,000
入力振幅(リニア・スケール)
これについてはデフォルトの値を使用することが推奨されます。
図6. 標準的なAM/AM曲線。
その値は4096であり、ほとんどの場合、これがDPD向けの最 線形の領域を赤色で示しています。
適な値になります。その他のパラメータの詳細は以下のとおりで
す。
X Additional Power Scale:より高度なパラメータですが、ほ
とんどの場合はデフォルトの値である 4 を使用することが推
奨されます。このパラメータは、内部相関行列に関連するもの
です。アナログ・デバイセズが実験を行った結果、デフォルト
の値を使うことで、テストに使用した既存の信号波形と PA に
対して最高の性能が得られることを確認できています。ただ、
入力信号の振幅が非常に小さい、あるいは非常に大きいといっ
た、まれなケースに遭遇することもあるでしょう。その場合、
この値を大きくしたり小さくしたりするという調整を試してみ
る価値はあります。その結果、相関行列に適切な条件となる
4 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
出力振幅(リニア・スケール)
Page5
外付けのLO1
Tx1 可変
アッテネータ フィルタ PA
ADRV9001
Rx1B 10dB アッテネータ
30dB
スペクトラム・
アナライザ スプリッタ
図7. DPDに関連するハードウェアの
一般的なブロック図
ハードウェアの設定 トランスミッタとレシーバーのキャプチャ・データを取得す
図7に示したのは、DPDに関連するハードウェアの一般的な構成 るためには、MATLABベースのツールと共に提供されている
です。局部発振器(LO)の信号の高調波を防ぐためには、信号 dpd_capture.pyを使用します。これは、図8に示したように
をPAに引き渡す前にローパス・フィルタを適用しなければなり IronPythonのGUIウィンドウで実行することができます。DPD
ません。内蔵LOの位相ノイズ性能がアプリケーションの要件を のサンプル・レートに関する情報も、キャプチャ・ファイルに含
満たさない場合は、外付けのLOが必要になるケースがあります。 まれています。このスクリプトは、準備済みの状態またはキャリ
その場合、外付けのLOとDEV_ CLKの同期をとらなければなり ブレーション済みの状態で実行する必要があることに注意してく
ません。通常、このような対応が必要になるのは、狭帯域のアプ ださい。
リケーションにDPDを適用するケースです。その場合、近接す
る帯域のノイズの要件がより厳しくなるからです。一般に、PA
が破損する可能性を防ぐためには、PAの上流に可変アッテネー
タを配置するべきです。先述したようにピーク電力を設定するた
めには、フィードバック信号を適切に減衰させる必要があります。
ソフトウェアの設定
続いては、ソフトウェアの設定について詳しく説明します。
IronPython
こ こ で は、GUI(Graphical User Interface) を 使 っ て
IronPythonのコードを実行できるようにします。まずは
IronPythonのライブラリをダウンロードしてください。
図8. IronPythonの
GUIウィンドウ
VISIT ANALOG.COM/JP 5
Page6
MATLABベースのツール 図9の中央には、2つのAM/AM曲線が表示されています。一方
dpd_capture.pyでキャプチャしたデータの解析には、MATLAB はリニア・スケール、もう一方はdBスケールの表示です。これ
ベースのツールを使用します。このツールを利用すれば、シグナ らは、DPDの性能とPAの圧縮状態に関する重要な指標になりま
ル・インテグリティ、信号のアライメント(整合)、PAの圧縮レ す。
ベルの確認をしたり、DPDの微調整を行ったりすることができま
図9の右には、AM/PM曲線ならびにレシーバーとトランスミッ
す。
タの位相差が表示されています。また、右上には上限/下限
MATLABベースのツールを実行するには、MATLAB Runtime の閾値も示されています。これらの値は、ADRV9002に対応
が必要です。これを初めてインストールする際には、ダウン する評価用ソフトウェアであるTES(Transceiver Evaluation
ロードにやや時間がかかります。インストールが完了したら、 Software)を使って設定した値と一致するはずです。
IronPythonのスクリプトによってキャプチャしたデータを読み
更に、データをキャプチャに利用できるAPI(Application
込み、各種のグラフを確認することができます(図9)。
Programming Interface)も提供されています。そのため、必
データの正規化に使用する上限/下限の閾値を設定し、「Reload」 要に応じて独自のプロットや解析モデルを作成することも可能
(リロード)をクリックして変化を確認することも可能です。 です。MATLABベースのツールは、DPDについて解析するため
のいくつかの一般的なチェック機能を備えています。そのための
図9を見ると、左上にトランスミッタとレシーバーの正規化済み
APIには、以下のようなものがあります。
データが時間領域でプロットされています。それを拡大表示すれ
ば、トランスミッタとレシーバーが整合しているか否かを確認す X adi_ADRV9002_dpd_CaptureData_Read:DPD のキャプ
ることが可能です。図9ではデータの実数部しか表示されていま チャ・データを読み込みます。キャリブレーション済みの状態
せんが、虚数部も簡単にプロットすることができます。通常、実 または準備済みの状態で実行する必要があります。
数部と虚数部は、どちらも整合している状態か、どちらも整合し X adi_ADRV9002_DpdCfg_t の dpdSamplingRate_Hz:
ていない状態になるはずです。 DPD のサンプル・レートを表す読み出し専用のパラメータで
図9の左下には、トランスミッタとレシーバーのスペクトルが表 す。
示されています。青色がトランスミッタで、赤色がレシーバーで
す。ここでは間接DPDが適用されている点に注意してください。 よくある問題
トランスミッタのデータは、プリディストーションを行った後の DPDは、様々な要因から影響を受ける可能性があります。その
データです。SSI(シリアル同期インターフェース)のポートを介 ため、以下に挙げるすべての潜在的な問題について、検討と調査
してトランスミッタのデータパスで取得したデータではありませ を行わなければなりません。なお、問題について検討する際には、
ん。 ハードウェアが正しく接続されていることを必ず確認してくださ
い。
図9. MATLABベースのDPDアナライザ
6 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
Page7
トランスミッタのデータのオーバーロード 号波形です。ご覧のように、ピーク値はフル・スケール(デジタ
図10は、ADRV9002が内蔵する回路のブロック図です。DPD ル)には全く達していません。ADRV9002では、DACがオー
機能に関連する部分のみを示しています。このシステムでは、イ バーロードする可能性を回避するために、フル・スケールから少
ンターフェースから入力されるTxデータによってD/Aコンバー なくとも数dBのマージンを確保することを推奨しています。但
タ(DAC)がオーバーロード(過負荷)になる可能性があります。 し、確保すべきマージンの値を定量的に把握するのは困難です。
DACがオーバーロードの状態になると、トランスミッタのRF信 DPDでは、プリディストーションの適用によって信号のピークが
号はPAに引き渡される前に歪んでしまいます。したがって、オー 増大します。それによってDACがオーバーロードする可能性が
バーロードが生じないようにすることが非常に重要です。 あるからです。どれだけのマージンが必要なのかは、特定のPA
に対してDPDがどのように反応するのかということに依存しま
トランスミッタのDACがオーバーロードしているかどうかは、
す。一般に、PAにおける圧縮が大きいほど、ピークの増大に対
GUIで簡単に確認できます。図11は、TETRA 1の25kHzの信
して大きなマージンを確保する必要があります。
アンテナ
ADRV9001
DAC ディレクショナル・
Txデータ カプラ
Tx側のアナログ・フロント・
エンド + バラン デュプレクサ
DPD
アクチュエータ DAC PA
LO
シンセサイザ
係数の
計算用 ADC
エンジン ORx側のアナログ・フロント Elbのタイプ2
・エンド バラン
DPD ADC
LO
シンセサイザ
図10. DPDに関連する
ハードウェアのブロック図
図11. TETRA 1規格で定められた信号波形。
時間領域のプロットです。
VISIT ANALOG.COM/JP 7
Page8
レシーバーのデータのオーバーロード TDDモードとFDDモード
よくあるもう1つの問題が、レシーバーのデータのフィードバッ TDDモードにおいて、DPDは自動ステート・マシンで実行する
クに用いるA/Dコンバータ(ADC)がオーバーロードするとい 必要があります。TESを使って評価を実施する場合、TDDモー
うものです(図12)。これは、レシーバーのポートに返される信 ドにおいてもマニュアル(手作業)でDPDを有効にすることは
号が十分に減衰していない場合に発生します。その影響をデバッ 可能です。但し、DPDの性能は低くなります。なぜなら、DPD
グ用のツールで観測すると、レシーバーのデータのクリッピング 機能はフレーム・ベースでしか動作しないからです。TDDモー
が見てとれるはずです。その結果、トランスミッタとレシーバー ドにおいてマニュアルでDPDを有効にする場合、フレームの長
が適切に整合せず、DPDにおいてキャリブレーション・エラーが さは送受信のイネーブル信号のトグルによって決まります。言い
生じます。そうすると、DPDの性能は非常に低くなり、スペクト 換えると、再生、停止のそれぞれが1つのフレームになります。
ル全体でノイズが増加します。 しかし、人間が手作業でトグルするのには時間がかかります。そ
の間に、PAは温度の面で既に異なる状態にチューニングされて
レシーバーのデータのアンダーロード いることになります。したがって、TDDモードでは、送信側のイ
レシーバーのオーバーロードと比べると、アンダーロードの問題 ネーブル信号を自動的に頻繁にトグルしなければ、DPDの状態
は見落とされがちです。アンダーロードは、フィードバック信号 を維持することは不可能です。一方、FDDモードではマニュア
の減衰量が適切に設定されていないことが原因で発生します。 ルで操作を行ってもDPDは正常に機能するはずです。
フィードバック・パスでの減衰量が大きすぎると、レシーバーの TETRA 1の信号波形を使用する場合、TDDに似たフレームのス
データは小さくなりすぎてしまいます。ADRV9002の場合、デ キームに従うことになります(実際にはTDM-FDDです)。その
フォルトではピークの値として-18dBmが推奨されています。そ 場合も、TDDモードを選択してDPDの機能をマニュアルで確認
れにより、アナログ信号からデジタル・データに至るまで、DPD するのは望ましい方法ではありません。DPDの性能はおそらく低
向けに良好な電力レベルが得られることがわかっています。ただ、 下するはずです。適切な方法は、「Custom FDD」のプロファイ
この値は個々のニーズに応じて調整することも可能です。レシー ルを使用してTETRA 1と同じサンプル・レートと帯域幅を選択
バーにおいて、DPD向けのフィードバック経路に配置されたアッ することです。あるいは、TETRA 1のTDDフレームのタイミン
テネータは、レシーバーの通常のアッテネータと同じものではあ グを設定して自動的に機能するようにします。どちらの方法を選
りません。そうではなく、ステップ・サイズがはるかに大きいこ んだ場合でも、マニュアルで操作するよりもはるかに高い性能が
とに注意してください。減衰量は、ユーザが設定するピーク電力 得られます。
のレベルに応じて調整されます。最小電力レベル(減衰量が0の
場合)である-23dBmよりも電力レベルが低くなると、DPDの トランスミッタとレシーバーの不整合
性能に影響が及びます。経験則になりますが、フィードバックす
ADRV9002は、トランスミッタとレシーバーのデータについて
る電力の量は必ず測定し、正しく設定を行わなければなりません。
時間方向で整合させることを試みます。また、ユーザがキャプ
よくあるミスは、電力レベルを変更した状態を試す際、フィード
チャするデータは、互いに整合していることが期待されます。遅
バックする電力量を適切に設定するのを忘れてしまうというもの
延の測定は、最初のキャリブレーションが実行される際に行われ
です。そうすると、アンダーロードの問題が発生してしまいます。
ます。しかし、サンプル・レートの高いプロファイルについては、
サブサンプル・アライメントをより高い精度で個別に実施する必
要があります。
上限の閾値 下限の閾値
キャプチャ・データのロード C:\Users\WGe\Documents\MATLAB\DPD_Analyzer\dpd_capture.csv d -15 d -25 リロード
Tx/Rxの実数部 AM/AM AM/PM
1 1.5 10
5
0.5
1
0
0
-5
0.5
-0.5
-10
-1 0 -15
0 1000 2000 3000 4000 5000 0 0.5 1 1.5 0 0.5 1 1.5
サンプル 絶対値(Tx) 絶対値(Tx)
Tx/Rxのスペクトル(Tx:青、Rx:赤) AM/AM(dBスケール) Rx/Txの位相差
60 10 0.2
40 0.1
0
20
0
0 -10
-0.1
-20
-20
-40 -0.2
-60 -30 -0.3
-4 -2 0 2 4 -30 -20 -10 0 10 0 1000 2000 3000 4000 5000
105 絶対値(Tx) サンプル
図12. レシーバーのデータのオーバーロード
8 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
振幅
絶対値(Rx) 絶対値(Rx)
位相 位相
Page9
上限の閾値 下限の閾値
キャプチャ・データのロード C:\Users\WGe\Documents\MATLAB\DPD_Analyzer\dpd_capture.csv d -15 d -25 リロード
Tx/Rxの実数部 AM/AM AM/PM
0.6 0.6 200
0.4 0.5
100
0.2 0.4
0 0.3 0
-0.2 0.2
-100
-0.4 0.1
-0.6 0 -200
0 1000 2000 3000 4000 5000 0 0.2 0.4 0.6 0 0.2 0.4 0.6
サンプル 絶対値(Tx) 絶対値(Tx)
Tx/Rxのスペクトル(Tx:青、Rx:赤) AM/AM(dBスケール) Rx/Txの位相差
50 0 5
-10
0
-20 0
-50 -30
-40 -5
-100
-50
-150 -60 -10
-1 -0.5 0 0.5 1 -60 -40 -20 0 0 1000 2000 3000 4000 5000
108 絶対値(Tx) サンプル
図13. 整合していないDPDのキャプチャ
DPDは、2つのエンティティ(トランスミッタとレシーバー)の
誤差を入力として使用する適応型のアルゴリズムです。トラン
スミッタとレシーバーの誤差を取得するにあたっては、事前に2
つの信号を適切に整合させておく必要があります。サンプル・
レートの高いプロファイル(LTE10など)を使用する場合には、
サンプリングの間隔が短いので、特にこの条件を満たすことが
不可欠です(図14)。この問題に対処するためには、External_
Delay_Measurement.pyというスクリプトを実行し、外部パ
スで生じる遅延を抽出します(図15)。得られた値は、「Board
Configuration」→「Path Delay」に入力します。
Tx/Rxの実数部
0.6
0.4
0.2 図15. 外部パスで生じる遅延の測定。
IronPythonを利用しています。
0 トランスミッタとレシーバーのデータが整合していない場合、
–0.2 AM/AM曲線に非常に大きなノイズが現れます。
–0.4
–0.6
2900 2950 3000 3050 3100
サンプル
図14. トランスミッタ/レシーバーのデータの不整合。
LTE10のデータを例にとっています。
VISIT ANALOG.COM/JP 9
振幅
振幅
絶対値(Rx) 絶対値(Rx)
位相 位相
Page10
上限の閾値 下限の閾値
キャプチャ・データのロード C:\Users\WGe\Documents\MATLAB\DPD_Analyzer\dpd_capture.csv d -15 d -25 リロード
Tx/Rxの実数部 AM/AM AM/PM
1 0.8 40
20
0.5 0.6
0
0 0.4
-20
-0.5 0.2
-40
-1 0 -60
0 1000 2000 3000 4000 5000 0 0.2 0.4 0.6 0.8 0 0.2 0.4 0.6 0.8
サンプル 絶対値(Tx) 絶対値(Tx)
Tx/Rxのスペクトル(Tx:青、Rx:赤) AM/AM(dBスケール) Rx/Txの位相差
40 0 0.5
20 -10
0 -20 0
-20 -30
-40 -40 -0.5
-60 -50
-80 -60 -1
-1 -0.5 0 0.5 1 -60 -40 -20 0 0 1000 2000 3000 4000 5000
108 絶対値(Tx) サンプル
図16. 整合しているDPDのキャプチャ
パスで生じる遅延の値を設定すると、AM/AM曲線とAM/PM曲 PAのオーバーロード
線のノイズは小さくなり、はるかにクリーンになります。また、 PA製品は、どれだけの圧縮に対応できるかという仕様がそれぞ
位相の差もはるかに小さくなります(図16、図17)。 れに異なります。通常、データシートにはP1dBのデータが記載
されています。ただ、PA製品を選択する際には、実際にDPDに
Tx/Rxの実数部
0.6 対する高精度な測定を行い、圧縮ポイントがP1dBにあることを
確認すべきです。
0.4
0.2
0
–0.2
–0.4
–0.6
2700 2750 2800 2850 2900
サンプル
図17. トランスミッタとレシーバーの整合がとれた状態。
LTE10のデータを例にとっています。
10 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
振幅
振幅
絶対値(Rx) 絶対値(Rx)
位相 位相
Page11
上限の閾値 下限の閾値
キャプチャ・データのロード C:\Users\WGe\Documents\MATLAB\DPD_Analyzer\dpd_capture.csv d d
-15 -25 リロード
Tx/Rxの実数部 AM/AM AM/PM
1 0.8 8
6
0.5 0.6
4
0 0.4
2
-0.5 0.2
0
-1 0 -2
0 1000 2000 3000 4000 5000 0 0.2 0.4 0.6 0.8 0 0.2 0.4 0.6 0.8
サンプル 絶対値(Tx) 絶対値(Tx)
Tx/Rxのスペクトル(Tx:青、Rx:赤) AM/AM(dBスケール) Rx/Txの位相差
50 0 0.15
-5
0.1
0 -10
-15 0.05
-50 -20
0
-25
-100 -30 -0.05
-4 -2 0 2 4 -30 -20 -10 0 0 1000 2000 3000 4000 5000
×10 5 絶対値(Tx) サンプル
図18. PAがオーバーロードしている場合のデータ
DPDに対応するソフトウェアを使用すれば、キャプチャしたデー モデルの選択とチューニングのための一般的な手法
タに基づくAM/AM曲線を容易に表示することが可能です(図 間接DPDでは、PAの前後でデータをキャプチャします。そし
18)。そうすれば、圧縮ポイントがP1dBにどれだけ近いのかと て、DPDエンジンは、PAの特性と逆の効果を加えようとしま
いう確認を実施できます。 す。LUTは、係数を使用してその効果を適用するために用いら
れます。一方、モデルは多項式に基づいたものになります。つま
信号がP1dBを超えている場合、DPDが不安定になります。更に
り、DPDはカーブ・フィッティングに似たものだと言えます。各
は破綻に至り、スペクトルが非常に高いレベルに跳ね上がって二
項を使用することで、非線形性を補正するためのカーブ・フィッ
度と低下しないおそれがあります。図19では、ピークにおいて
トを行う処理だということです。ただ、カーブ・フィッティング
圧縮レベルが1dBの領域を大きく超えています。また、曲線の形
では1本の曲線に対する補正を行います。一方、DPDではメモ
状も平らになり始めています。これは、PAが過剰に駆動されて
リ効果も考慮しなければなりません。この点に違いがあります。
いることを示しています。出力電力を高めるために、入力がより
ADRV9002は、DPD用のLUTをモデル化するために、3つのメ
強く駆動されているということです。このまま入力電力を高め続
モリ・タップと1つのクロス・タップを備えています。
けると、DPDの性能は低下します。
AM/AM(dBスケール)
–2
-4
-6
–8
–5 -4 -3 -2 –1
絶対値(Tx)
図19. AM/AM曲線(dBスケールの拡大図)
VISIT ANALOG.COM/JP
11
絶対値(Rx)
振幅
絶対値(Rx) 絶対値(Rx)
位相 位相
Page12
メイン項 中心軸
サイド項
クロス項
|x(t)|kのtの
x(t‒2)x|(t‒2)|k‒1 増加方向 x(t‒1)|x(t‒1)|k‒1 x(t)|x(t)|k‒1
k = 1:3 k = 1:7 k = 1:3
Tap2 Tap Tap
3 7 1 0 3
通常、遅延時間の
メモリ項はすべて x(t)のtの減少方向 x(t)のtの増加方向
この軸上にある
x(t‒1)|x(t‒2)|k‒1
|x(t)|kのtの
減少方向 なし、またはk = 2:3
3 Tap3
クロス項のほとんどはこの負の軸上にある
図20. メモリ項とクロス項の関係
図20は、ADRV9002で提供されている3つのメモリ・タップと 高度なチューニング
1つのクロス・タップについて示したものです。一般的な手法は、 ここからは、やや高度なチューニング方法をいくつか紹介してい
カーブ・フィッティングの場合と同様のものになります。すなわ きます。
ち、何らかのベースラインから開始し、項を追加または削除して
いきます。一般に、中央のタップは必ず存在します(Tap1)。項 コンパンダとプリLUTスケーラ
を1つずつ追加したり削除したりすることで、DPDにどのような コンパンダについては、本稿の前半で簡単に触れました。ユー
影響が及ぶのかを確認します。更に2つのメモリ・タップ(Tap0 ザ・ガイドを初めて読むときには、その概念について理解するの
とTap2)を追加することで、メモリ効果の補償に対して影響を はやや難しいかもしれません。また、256と512のうちどちらを
加えることができます。ADRV9002には2つのサイド・タップ 選択すべきなのかということも理解しづらいでしょう。ここでは、
がありますが、それらのタップは同一、すなわち対称でなければ コンパンダについて改めて詳しく説明します。
ならないことに注意してください。ここでも、項の追加と削除は
1つずつ行う必要があります。最後に、クロス項を調整します。 コンパンダを使用する目的は、簡単に言えば入力データを圧縮し
クロス項によって、数学的な観点からのカーブ・フィッティング てLUTにフィットさせることです。コンパンダは一般的には平方
は完了し、DPDの性能が改善されます。 根の形を成しており、I/Qデータを入力として使用します。それ
らのデータをLUTに与える前に、√(i(n)2+q(n)2)という式を使
なお、項を空白のまま放置してはなりません。それは、DPDの望 用して信号の振幅を計算します。ただ、平方根の演算には時間が
ましくない動作につながります。この点には注意してください。 かかるので、それらの値もLUT(8ビットまたは9ビット)にマッ
また、クロス項のタップについては0次の項を設定するべきでは ピングしておく必要があります。そこで使用されるのがコンパン
ありません。その設定は、数学的な観点から見て不適切であるか ダです。
らです。
図21. 不適切なモデル項の設定
12 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
Page13
図22に示したのは、理想的な平方根の曲線です。ここでは実装 図23、図24に、TETRA 1規格に対応する信号波形のヒストグ
の詳細には触れませんが、コンパンダはこうした平方根の曲線に ラムを示しました。ご覧のように、中~大振幅の領域に値の多く
近似する処理を担います。 が分布していることがわかります。これは、同規格では変調方式
としてDQPSK(Differential Quadrature Phase-Shift Keying)
コンパンダは平方根の概算を実施
600 を採用しているからです。このことから、信号の包絡線は一定に
なります。ピーク電力と平均電力にはそれほど大きな差はありま
500 せん。これは、DPDにとって望ましいことです。先述したとおり、
DPDの機能には大振幅のサンプルがより多く取り込まれ、PAの
400 動作特性をより適切に評価することが可能になります。
300
TETRA 1の信号の振幅
400
200
350
100
300
0 250
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
入力データの電力 200
図22. 平方根の曲線。 150
コンパンダは平方根の概算を実施します。
100
データをLUTにフィットさせる方法を理解すれば、よりイン
50
テリジェントにデータをチューニングすることができます。
ADRV9002では、LUTのサイズとして8ビット(256)または9 0
2000 4000 6000 8000 10,000 12,000 14,000 16,000 18,000
ビット(512)を選択することができます。8ビットではなく、9 図23. TETRA 1で規定された信号の
ビットのLUTを選択すれば、2倍の数のデータのアドレスに対応 振幅のヒストグラム
できます。つまり、データの分解能をより高めることが可能であ
り、量子化ノイズのレベルを改善できます。狭帯域のアプリケー TETRA 1の信号の電力
300
ションでは、ノイズが非常に重要な意味を持ちます。したがって、
必ず512を選択するべきです。それに対し、広帯域のアプリケー 250
ションではノイズのレベルの重要度は下がります。したがって、
256と512のうちどちらを使用しても構いません。なお、512を 200
選択すると、消費電力が少し多くなり、演算速度は少し遅くなり
150
ます。
100
ヒストグラムとCFR
50
Pre-LUT Scaleについても、本稿の前半で少し触れました。この
パラメータは、LUTの入力データに増幅の処理を適用するために 0
使用します。この増幅が必要になる理由は、DPDによってデー 0 0.5 1 1.5 2 2.5 3
×108
タが適切に利用されないケースがあるからです。先述したように、 図24. TETRA 1で規定された信号の
PAでは圧縮の問題が生じることがありますが、その問題を引き 電力のヒストグラム
起こすのは振幅の大きいサンプルです。そのため、すべてのサン 次は、LTE10の規格で定められた信号について見てみます。LTE
プルを平等に扱うわけにはいかないのです。言い換えれば、振幅 は、膨大な数のサブキャリアを結合するために、変調方式として
の大きいサンプルには特に注意を払わなければなりません。 OFDM(Orthogonal Frequency Division Multiplexing)を採
用しています。
VISIT ANALOG.COM/JP 1
3
LUT
Page14
図25、図26に、LTE10の信号の振幅と電力のヒストグラムを示 LTE10の信号の電力(CFRなし)
しました。TETRA 1とは明らかに異なり、ピーク値と平均値がか 200
け離れていることがわかります。 180
160
LTE10の信号の振幅(CFRなし)
140
10,000
120
9000
100
8000
80
7000
60
6000
40
5000
20
4000
0
3000 1.8 2 2.2 2.4 2.6 2.8 3 3.2
×104
2000
図27. 大振幅のサンプルの部分を
1000 拡大した結果
0
0 0.5 1 1.5 2 2.5 3
×104 CFR(Crest Factor Reduction)は、信号のピークを許容可能
なレベルまで低減するための手法です。通常は、OFDMの信号
図25. LTE10で規定された信号の
振幅のヒストグラム(CFRなし) に適用されます。ADRV9002は、CFRの機能は備えていません。
したがって、同機能は外付けで実装する必要があります。この状
×104 LTE10の信号の電力(CFRなし) 況に対処するために、ADRV9002向けのTESには、CFRに対応
4.5
するLTEの信号が含まれています。図28に示したのは、CFR_
4
sample_rate_15p36M_bw_10M.csvによって得られるヒスト
3.5 グラムです。大電力の領域では、CFRによって信号のピークが一
3 定のレベルに制限されていることが見てとれます(いちばん端で
2.5 再び増加しています)。それによってPAPRは約6.7dBとなりま
2 す。つまり、CFRを適用しない場合と比べて5dB近くの改善が
1.5 得られているということです。ただ、CFRを適用すると、EVM
1 (Error Vector Magnitude)が劣化します。つまり、データに悪
影響が及ぶと言うこともできます。しかし、波形全体をそのまま
0.5
処理する場合と比べて、大振幅のピークが発生する確率はかなり
0
0 0.5 1 1.5 2 2.5 3 3.5 低くなります。したがって、そのメリットは非常に大きいと言え
×104
ます。
図26. LTE10で規定された信号の
電力のヒストグラム(CFRなし)
LTE10の信号の振幅(CFRあり)
電力のヒストグラム(図26)のいちばん端の部分を拡大すると、 450
確率は非常に低いものの、非常に高いピーク電力が発生している 400
ことがわかります。これは、DPDにとって都合の良いことではあ 350
りません。その理由としては以下の2つが挙げられます。 300
1つ目の理由は、低い確率で発生する大きなピーク(大振幅のサ 250
ンプル)によって、PAの効率が非常に低くなるというものです。 200
例えば、LTEの場合、PAPR(Peak to Average Power Ratio) 150
は約11dBです。つまり、ピーク電力と平均電力には大きな差が 100
あります。したがって、PAの破損を防ぐためには、非常に大き 50
なマージンを確保して入力レベルを抑えなければなりません。そ 0
うすると、PAは電力を増幅するためのゲインをほとんど活用で 0 2000 4000 6000 8000 10,000 12,000 14,000 16,000 18,000
きないことになります。 図28. LTE10で規定された信号の
振幅のヒストグラム(CFRあり)
2つ目の理由は、大きなピークによってLUTの利用効率に無駄が
生じるというものです。大きなピークにLUTの多くのリソースが
割り当てられ、大部分のデータに割り当てられるリソースがほん
のわずかになってしまうのです。その結果、DPDの性能は低下
します。
14 デジタル・プリディストーションの微調整とトラブルシューティングのための完全ガイド
Page15
LTE10の信号の電力(CFRあり)
1000 著者について
900 Wangning Geは、アナログ・デバイセズ(ニュージャー
800 ジー州サマセット)のプロダクト・アプリケーション・エン
700 ジニアです。2019年に入社しました。担当は広帯域対応の
600 トランシーバーIC「ADRV9001ファミリ」です。以前は、
500 Alcatel-Lucent(現Nokia)にソフトウェア・エンジニアと
400 して所属。デジタル・プリディストーション向けのアルゴ
300 リズム設計や基地局向けの無線アプリケーションに関する
200 経験を有しています。
100
0
0 0.5 1 1.5 2 2.5 3
×108
EngineerZone®
図29. LTE10で規定された信号の
電力のヒストグラム(CFRあり) オンライン・サポート・コミュニティ
アナログ・デバイセズのオンライン・サポート・コミュ
まとめ ニティに参加すれば、各種の分野を専門とする技術者と
の連携を図ることができます。難易度の高い設計上の問
DPDは、多くの人にとって扱いにくい複雑なアルゴリズムで
題について問い合わせを行ったり、FAQを参照したり、
す。ハードウェアとソフトウェアの両方を適切に設定して最適
ディスカッションに参加したりすることが可能です。
な結果を得るには、かなりの労力と注意が必要になります。
ADRV9002はDPD機能を内蔵しており、その複雑さを大幅に軽
減しています。また、同ICには、DPD性能の解析作業を支援す
るソフトウェア・ツールも付属しています。 Visit ez.analog.com
参考資料 *
1 D. R. Morgan、Z. Ma, J. Kim、M. G. Zierdt、J. 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月
VISI T A N A L O G . C O M /JP
お住いの地域の本社、販売代理店などの情報は、analog. ©2022 Analog Devices, Inc. All rights reserved.
com/jp/contact をご覧ください。 本紙記載の商標および登録商標は、各社の所有に属します。
Ahead of What’s Possibleはアナログ・デバイセズの商標です。
オンラインサポートコミュニティEngineerZoneでは、アナ
ログ・デバイセズのエキスパートへの質問、FAQの閲覧がで
きます。 TA23341-2/22