こんにちは、ドルフィンシステムの笹生です。
さて今回はフェージングプロファイル関数の続きとして Selective + Rice+ Jakes 設定の使い方を紹介したいと思います。
どんなフェージングプロファイル?
前回、前々回のおさらいになってしまうのですが、フェージングとして選択できるモデルは大きなところで
・Flat Fading (遅延波なし)
・Selective Fading
(遅延波あり 周波数選択性フェージング)
の2つから選択します。
さらにそれぞれ
・Rayleigh (直接波なし)
・Rician (直接波あり)
の2つから選択でき、さらに生成アルゴリズムのモデルとして
・Gans (フィルタモデル)
・Jakes (サブパスモデル)
の2つのモデルから選択できます。
組み合わせとして合計 8
通りのモデルから選択できることになります。
その組み合わせのうちの
・Selective + Rician +
Jakes を今回は指定します。
この設定で生成されるフェージングは、
・遅延して到来する電波があり(Selective)、 直接波もある移動通信で (Rician)、Jakesという方式
このフェージングの最大の特徴は、遅延波があるので周波数軸で見て部分的に落ち込みながら複雑に変動するところです。
遅延が周波数選択性 (Selective) になるという理由については RF ワールド No.22 の技術解説でも触れていますので興味のある方はご覧ください。
フェージングプロファイル生成
まず、無線信号にフェージングを適用する前に、このフェージングプロファイル関数を実行して実際にフェージングプロファイルを生成する必要があります。
前回の繰り返しになりますが、最終的に無線信号にフェージングを適用するということは、「無線信号と生成したフェージングプロファイルの掛け算」になります。その掛け算する値であるフェージングプロファイルを予め生成をすることに他なりません。
ちなみに前回の Flat フェージングと今回の
Selective フェージングで異なる部分としては、「number
of paths」の追加です。
これは遅延波の数(パス数)と呼ばれるものです。詳細はここでは省きますが、周波数選択性フェージングでは必須のパラメータです。
また前回のRayleigh フェージングから
Ricain フェージングで異なる部分としては、「rician
parameter K(dB)」の追加です。
端子 (引数)
|
意味
|
profile
length (samples)
|
出力されるフェージングプロファイルのサンプル数を指定します。基本的には適用したい無線信号のサンプル数と同数にしたほうがわかりやすいので良いと思います。しかし必ずしも同数でなくてもエラーはしないようです。
|
sampling
frequency (Hz)
|
サンプリング周波数を Hz で設定します。こちらも基本的には無線信号のサンプル周波数と合わせるのが良いと思います。しかし必ずしも同じでなくても設定できますが、わかりにくくなるので同じ設定のほうが良いと思われます。
|
doppler
spread (Hz)
|
ドップラー周波数の広がりを Hz で指定します。この設定が意外とわかりにくく、広がりなしとして 0 Hz を指定するとエラーします。
この引数は設定範囲が決まっており、上記で設定した[サンプリング周波数 * 1e-6]以上 ~ [サンプリング周波数 * 0.5]未満 の値を設定する必要があります。
|
seed in
|
これはフェージングプロファイル生成のシード値で、-1 では毎回ランダムな初期値から生成することになります。
|
fading
variance
|
レイリー分布の分散を指定します。通常はデフォルトのまま 1.0 でよいと思います。
|
reset (T)
|
デフォルトではリセットする設定です。
|
fading
profile
|
生成したフェージングプロファイルの出力です。フェージングを適用する関数で使用します。複素数の配列で生成され、配列要素数はprofile length * number of paths で指定した数の2次元配列になります。
|
seed out
|
フェージングプロファイル生成後のシード値です。
|
number of
paths
|
Selective
フェージングでの必須パラメータです。デフォルトは 1 です。ここで設定した数の遅延波を生成することになります。
|
rician
parameter K(dB)
|
Rician
フェージングでのパラメータです。K ファクターという変数名でよく知られており、直接波とそれ以外の遅延波との電力の比を dB で設定します。
|
前回同様の注意点ですが、ドップラースプレッドの設定には注意が必要です。例えば
100MHz のサンプルレートたと最低でも 100Hz
のドップラーを掛ける必要があり、もし搬送波は低い場合には結構速いスピードで移動していることを想定することになります。
例えば 100Hz のドップラーは 1GHz
の搬送波であれば時速110km/h 程度の移動速度になってしまいます。
また出力である fading profile ですが、前回の
Flat フェージング時は 1次元配列ですが、Selective フェージングにした時には 2次元配列になります。とはいえ、出力の
fading profile はとくに加工せずそのままフェージングの適用の関数に接続できるので普通は気にならないと思います。
フェージングの適用
フェージングの適用では、無線信号と生成したフェージングプロファイルを適用する関数に接続します。
今回は Selective フェージングなので、追加で power delay profile の設定が必要になります。
この power delay profile というのは直接ユーザー側で入力値を決めてあげる必要があります。
制御器で示すと以下のような二次元配列になります。
デフォルトでは、1行2列の配列で、値は [0,0] です。
この行数は、フェージングプロファイル生成関数での number of paths と同じにする必要があります。
そのため、例えば number of paths を 3 にした場合にはこの power delay profile も 3行2列にしないといけません。
↓3パスの設定例
また列数は 2 固定で、それぞれの列には以下の意味があります。
1列目
|
2列目
|
遅延波の相対減衰量 (dB)
|
遅延波の相対遅延時間 (秒)
|
一体どんなパラメータの値を入れればいいのかという疑問を持つ方も多いと思いますが、多くは無線規格 (3GPP や IEEE802.11などのチャネルモデル) で指定されていることも多いのでその場合はそこに記載されている値を設定します。
※細かい話ですが、最近の規格ではクラスターモデル、3D MIMO チャネルモデルなど複雑なモデルもあり、この power delay profile だけでは対応できないものもあります。
サンプルを作成して実行してみます
実際にサンプルを作成して実行してみます。
前回のものを改造して作成してみました。
大きく 4つの部分に分けています。
①無線信号に相当する信号の生成
(送信に相当)
②フェージングプロファイルの生成
③フェージング適用 (伝搬路に相当)
④表示 (受信に相当)
①無線信号に相当する信号の設定
正弦波です。I に対して Q を 90
度位相をずらした複素数信号にしています。
サンプルレート
|
1000 (Hz)
|
一回の生成サンプル数
|
1000サンプル
|
②フェージングプロファイルの生成
生成したいフェージングは先ほどの
・Selective Rician Fading (Jakes)
になります。
その上で以下の設定をします。
項目
|
設定値
|
profile
length
|
1000
サンプル
|
sampling
frequency
|
1000 Hz
|
doppler
spread
|
0.1 Hz
|
fading
variance
|
1
|
reset
|
F
|
number of
paths
|
3
|
rician
parameter K (dB)
|
2
|
パス数は 3、rician parameter K は 2dB の設定です。
③フェージング適用
ここではpower delay profile を設定し、無線信号とフェージングプロファイルを入力してフェージングを適用します。
サンプルレートは 1000Hz なので、1サンプル時間は 1ms (1e-3) です。
振幅はパスごとに半減し、遅延時間は 1サンプル時間づつ遅延させる設定にしました。
1列目
|
2列目
|
0
|
0
|
-6
|
1e-3
|
-12
|
2e-3
|
④表示
ここではフェージングの適用状況を確認するために、
・無線信号のグラフ
・フェージングプロファイルのグラフ
・適用後のグラフ
の3点を表示してみました。
実行結果
このスナップショットではわかりにくいのですが、フェージング適用の波形を見ると、減衰が緩やかに見えます。これは今回の Rician フェージングでは直接波が大きめに存在する設定にしてあるからです。
フェージングプロファイルのグラフでは合計 3パス分の IQ のフェージングの波形(合計 6つの線)が表示されていますが、適用前はそれぞれ電力の大きさは同じになっているようです。
そして各パスの power delay profile の設定で電力が調整されて適用されます。
さて、前回もそうだったのですが次のループでも似たような結果で、フェージングプロファイルが前回の最後と、今回の最初がつながらないような現象が起きてしまいました。本来、reset
=F にしているので、波形はつながるように継続して生成されるはずなのですが、、、
前回同様 doppler spread
を早くしたり、サンプル数を多くすれば、フェージング適用具合としてよりフェージングっぽい振る舞いは確認することはできますが連続していないようでした。
まとめ
今回は Selective Rician Fading (Jakes) を具体的に使ってみました。
今回も前回同様に使用するときには、1回の処理でキリが良いデータで実行させたほうが良いようです。例えば、無線信号の
1フレームのサイズ単位ですとか、不連続でも次に影響がないサイズで実行するのがコツのようです。
また前回同様、広帯域信号の時に遅いドップラーを指定できないので、搬送波が低い想定の場合には注意が必要です。
0 件のコメント :
コメントを投稿