このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
OVSF Code Generator
OVSF 符号の生成
ライブラリ:
Communications Toolbox /
Comm Sources /
Sequence Generators
説明
OVSF Code Generator ブロックは、直交変数拡散係数 (OVSF) 行列から符号を生成します。OVSF 符号を使用して、スペクトル拡散通信システムの異なるチャネル間の直交性を維持します。詳細については、アルゴリズムを参照してください。
例
Simulink での OVSF 符号の生成
拡散係数 32 の OVSF 符号を 10 サンプル生成します。
cm_generate_ovsf_code
モデルは、[符号長] を 32 に設定し、[符号インデックス] を 12 に設定し、[フレームあたりのサンプル数] を 10 に設定します。その他のパラメーターは既定の設定を使用します。
モデルを実行し、生成された OVSF 符号を表示します。
ans = 1 1 -1 -1 -1 -1 1 1 1 1
端子
出力
Out — 出力データ
列ベクトル
出力データ。一連の直交符号から生成された OVSF 符号から成るバイナリ値の列ベクトルとして返されます。
データ型: double
| int8
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
符号長 — 符号長
64
(既定値) | 正の整数
生成符号の長さ。2 の正の整数乗として指定します。符号長の値は符号の拡散係数です。詳細については、スペクトル拡散を参照してください。
拡散係数は、OVSF 符号行列から選択された符号の長さです。OVSF 符号は N 行 N 列の行列 CN の行として定義されます。[符号インデックス] パラメーターは、行列 CN の行を対象符号として指定します。詳細については、直交変数拡散係数符号を参照してください。
符号インデックス — OVSF 符号行列の行インデックス
60
(既定値) | 整数
OVSF 符号行列の行インデックス。範囲 [0, (N – 1)] の整数として指定します。ここで、N は、[符号長] パラメーターの値で指定された拡散係数です。OVSF 符号は N 行 N 列の行列 CN の行として定義されます。このプロパティの値は、行列 CN の行を対象符号として指定します。詳細については、OVSF 符号の復元および再構築を参照してください。
サンプル時間 — サンプル時間 (秒単位)
1
(既定値) | 正のスカラー
正のスカラーは、出力信号の各サンプル間の時間を秒単位で指定します。[サンプル時間] を -1
に設定すると、出力信号は下流からサンプル時間を継承します。[サンプル時間] パラメーターと [フレームあたりのサンプル数] パラメーターの関係の詳細については、サンプル タイミングを参照してください。
フレームあたりのサンプル数 — OVSF のチップ出力の数
1
(既定値) | 正の整数
OVSF 符号のチップ出力の数。正の整数として指定します。このブロックは、実行されるたびに、[符号長] プロパティと [符号インデックス] プロパティの値で指定された OVSF 符号の最初の [フレームあたりのサンプル数] チップを出力します。詳細については、スペクトル拡散を参照してください。
[サンプル時間] と [フレームあたりのサンプル数] の関係の詳細については、サンプル タイミングを参照してください。
出力データ型 — 出力タイプ
double
(既定値) | int8
出力データ型。double
または int8
として指定します。
シミュレーション実行方法 — 実行するシミュレーションのタイプ
コード生成
(既定値) | インタープリター型実行
実行するシミュレーションのタイプ。[コード生成]
または [インタープリター型実行]
として指定します。
コード生成
— 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は[インタープリター型実行]
オプションを使用した場合よりも速くなります。インタープリター型実行
— MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、起動時間が短縮されますが、以降のシミュレーションの速度は[コード生成]
オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。
詳細については、シミュレーション モード (Simulink)を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
サンプル タイミング
出力更新間の時間は、[フレームあたりのサンプル数] と [サンプル時間] パラメーター値の積に等しくなります。たとえば、[サンプル時間] と [フレームあたりのサンプル数] のそれぞれが 1
に等しい場合、ブロックは毎秒 1 サンプルを出力します。[フレームあたりのサンプル数] を 10 に増やすと、ブロックは 10 秒ごとに 10 行 1 列のベクトルを出力します。このタイミングにより、同等の出力レートが [フレームあたりのサンプル数] パラメーターに依存しないことが確実になります。
アルゴリズム
[1]で説明されているように、OVSF 符号は、3G 通信システムで最初に導入され、主にスペクトル拡散通信システムの異なるチャネル間の直交性を維持するために使用されています。
直交変数拡散係数符号
拡散係数が N、OVSF 符号行列が N 行 N 列の行列 CN の OVSF 符号は、N 行 N 列の行列 CN の各行になります。これは再帰的に定義されます。まず、C1 = [1] を定義します。次に、CN が定義されていると仮定し、CN(k) で CN の k 番目の行を示します。C2N を次のように定義します。
CN は、2 の非負のべき乗である N についてのみ定義されます。したがって、数学的帰納法により、CN の行が直交していることがわかります。
OVSF 符号は、また、ツリー構造によって再帰的に定義できます。
ツリーの根を 0 の深さとして、[C] がツリーの深さ r で符号長 2r である場合、C から伸びる 2 つの枝はシーケンス [C C] および [C –C] というラベルが付けられ、これらは 2r+1 の長さになります。N = 2r のとき、行列 CN の行が、ツリーの深さ r の符号になります。
2 つの OVSF 符号は、どちらの符号ももう一方の符号から根へのパス上にない場合に限り直交しています。同一のセル内の異なるユーザーに割り当てられた符号は直交していなければなりません。この要件に基づいて、指定のセル内で利用可能な符号の数が制限されます。たとえば、ツリーの中の符号 C41 があるユーザーに割り当てられた場合、符号 C10、C20、C82、C83 などを同一のセル内の他のユーザーに割り当てることはできません。
OVSF 符号の復元および再構築
出力する OVSF 符号を選択するには、拡散係数および符号インデックスを指定します。符号インデックスは、ツリーにおいて符号が出現する列の深さ r を指定します。ツリー構造ダイアグラムの CN, k の場合、N が拡散係数で、k が符号インデックスです。符号インデックスは、範囲 [0, N – 1] の整数でなければなりません。ツリー構造において、符号が深さ r で出現する場合、拡散係数は 2r となります。
符号の復元は、拡散係数および符号インデックスに基づいて次のように行います。
符号インデックスを、対応する 2 進数に変換します。
結果として得られるバイナリ シーケンス x1 x2 ... xr の長さが r となるように、必要に応じて左側に 0 を追加します。ここで、r は 2 を底とする拡散係数の対数です。このバイナリ シーケンスは、根から符号までのパスを表します。
このパスは、xi = 0 の場合は深さ i にある符号から上の枝を通り、xi = 1 の場合は下の枝を通ります。
符号を再構築するには、符号のシーケンス Ci を次のように再帰的に定義します。
C0 を根 [1] とします。
Ci が定義済みであると仮定したとき、i < r である i について Ci+1 を次のように定義します。
符号 CN は、指定した拡散係数と符号インデックスをもちます。
たとえば、拡散係数が 16
で符号インデックスが 6
である符号を調べるには、次の操作を行います。
6 を 2 進数 110 に変換します。
1 つの 0 を左に追加して 0110 を得ます。これは長さ 4 = log2(16) になります。
次の表に従い、シーケンス Ci を構築します。
i xi Ci 0 C0 = [1]
1 0 C1 = C0 C0 = [1] [1]
2 1 C2 = C1 –C1 = [1 1] [–1 –1]
3 1 C3 = C2 -C2 = [1 1 –1 –1] [–1 –1 1 1]
4 0 C4 = C3 C3 = [1 1 –1 –1 –1 –1 1 1] [1 1 –1 –1 –1 –1 1 1]
符号 C4 は、拡散係数が 16
で符号インデックスが 6
です。
スペクトル拡散
スペクトル拡散では、一般に、各データ メッセージのサンプルにチップのコード セットが乗算されます。データ メッセージのサンプルとの混同を防ぐため、"チップ" という用語は、デジタル通信においてデータを広いスペクトルに拡散するために使用される符号のサンプルまたはビットを指すものとします。符号の長さが拡散係数です。
拡散係数 SF = Rchip/Rdata について次のようになります。
Rchip はチップ レートです。符号のチップ レートは、1 秒あたりで送信または受信されるチップの数です。拡散係数は 2 の正のべき乗で、かつ 1 より大きくなければなりません。そのため、各データ サンプルは複数のチップで表されます。
Rdata はメッセージ データのサンプル レートです。
参照
[1] S. Kasapović and N. Sarajlić, "OVSF code assignment in UMTS networks," 2010 20th International Crimean Conference "Microwave & Telecommunication Technology", Sevastopol, Ukraine, 2010, pp. 429–432, doi: 10.1109/CRMICO.2010.5632706.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
整数のみのコード生成はサポートされません。
バージョン履歴
R2006a より前に導入R2020a: 自動的にこのブロックを現在のバージョンに更新する既存モデル
R2020a 以降、Simulink では R2015b より前で利用可能だったバージョンの OVSF Code Generator ブロックは使用できなくなりました。
既存のモデルはソース ブロックは連続する時間サンプルのフレームをフレーム属性を使用せずに出力するで通知されたバージョンの OVSF Code Generator ブロックを読み込むように自動的に更新されます。ブロック転送の詳細については、転送テーブルを使用したライブラリ ブロックの互換性の維持 (Simulink)を参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)