CPM Demodulator Baseband
CPM 法とビタビ アルゴリズムを使用した信号の復調
ライブラリ:
Communications Toolbox /
Modulation /
Digital Baseband Modulation /
CPM
説明
CPM Demodulator Baseband ブロックは、連続位相変調 (CPM) 法を使用して変調された入力信号を復調します。
CPM はメモリを使用する変調法です。ブロックの処理では、相関器の後に、状態トレリスのパスで最小ユークリッド距離のパスを探す最尤系列検出器 (MLSD) が続いています。ブロックはビタビ アルゴリズムを使用して MLSD を実行します。
この復調と適用されるフィルター処理の詳細については、CPM 復調およびパルス整形のフィルター処理を参照してください。
端子
入力
In — 入力信号
スカラー | 列ベクトル
入力信号。スカラーまたは列ベクトルとして指定します。入力信号の長さは、[Samples per symbol] パラメーターで指定されたシンボルあたりのサンプル数の整数倍でなければなりません。詳細については、整数値とバイナリ値の出力信号を参照してください。
データ型: double
| single
出力
Out — 出力信号
スカラー | 列ベクトル
出力信号。スカラーまたは列ベクトルとして返されます。詳細については、整数値とバイナリ値の出力信号を参照してください。
サポートされているデータ型
倍精度浮動小数点
Boolean ([Output type] が
[Bit]
に設定されている場合)8、16、32 ビット符号付き整数 ([Output type] が
[Integer]
に設定されている場合)
データ型: double
| Boolean
| int8
| int16
| int32
パラメーター
M-ary number — 変調次数
4
(既定値) | 正の整数
アルファベット サイズを示す変調次数。2 の非ゼロのべき乗である正の整数として指定します。M は、ある正の整数 K に対し 2K の形式をとらなければなりません。ここで K はシンボルあたりのビット数です。
Output type — 出力が整数で構成されるか、ビットのグループで構成されるかを決めます。
Integer
(既定値) | ビット
出力が整数で構成されるか、ビットのグループで構成されるかを決めます。[Integer]
または [Bit]
として指定します。
Symbol set ordering — ビット マッピング
バイナリ
(既定値) | Gray
ビット マッピング。[Binary]
または [Gray]
として指定します。
このパラメーターを
[バイナリ]
に設定すると、バイナリ符号の順序を使用してシンボルがマッピングされます。このパラメーターを
[Gray]
に設定すると、グレイ符号の順序を使用してシンボルがマッピングされます。
詳細については、整数値とバイナリ値の出力信号を参照してください。
依存関係
このパラメーターを有効にするには、[Output type] を [Bit]
に設定します。
Modulation index — 変調指数 {hi}
0.5
(既定値) | 非負のスカラー | 列ベクトル
変調指数 {hi}。非負のスカラーまたは列ベクトルとして指定します。
{h} は変調指数のシーケンスを表します。詳細については、CPM 復調を参照してください。
Frequency pulse shape — パルス整形のタイプ
Rectangular
(既定値) | Raised Cosine
| Spectral Raised Cosine
| Gaussian
| Tamed FM
変調信号の位相遷移を滑らかにするために使用されるパルス整形のタイプ。[Rectangular]
、[Raised Cosine]
、[Spectral Raised Cosine]
、[Gaussian]
、または [Tamed FM]
として指定します。フィルター処理オプションの詳細については、パルス整形のフィルター処理を参照してください。
Main lobe pulse duration (symbol intervals) — メイン ローブ期間
1
(既定値) | 正の整数
スペクトル レイズド コサイン パルスの最大ローブのメイン ローブ期間。変調された信号をパルス整形するために復調器が使用するシンボル区間の数を表す正の整数として指定します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Spectral Raised Cosine]
に設定します。
Rolloff — スペクトル レイズド コサイン パルス整形のロールオフ係数
0.2
(既定値) | 範囲 [0,1] のスカラー
スペクトル レイズド コサイン パルスのロールオフ係数。範囲が [0, 1] のスカラーとして指定します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Spectral Raised Cosine]
に設定します。
BT product — ガウス パルスの帯域幅とシンボル時間の積
0.3
(既定値) | 正のスカラー
ガウス パルス整形の帯域幅とシンボル時間の積。正のスカラーとして指定します。[BT product] を使用すると帯域幅は狭くなりますが、符号間干渉が増加します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Gaussian]
に設定します。
Pulse length (symbol intervals) — 周波数パルス整形の長さ
1
(既定値) | 正の整数
周波数パルス整形長。正のスカラーとして指定します。周波数パルス長の詳細については、パルス整形のフィルター処理の LT を参照してください。
Symbol prehistory — シミュレーション開始前に使用されるデータ シンボル
1
(既定値) | スカラー | ベクトル
シミュレーションの開始前に使用されるデータ シンボル。範囲 [– (M – 1), (M – 1)] の奇数の整数要素をもつスカラーまたはベクトルとして指定します。M は、[M-ary number] パラメーターで指定される変調次数を表します。[Symbol prehistory] パラメーターは、ブロックの最初の呼び出しより前に、変調器によって使用されるデータ シンボルを新しいものから順番に定義します。
スカラー値は長さ LP – 1 のベクトルに展開されます。LP は、[Pulse length (symbol intervals)] パラメーターで指定されるパルス長を表します。
ベクトルの場合、長さが LP – 1 でなければなりません。
Phase offset (rad) — 初期位相オフセット
0
(既定値) | スカラー
変調波形の初期位相オフセット (ラジアン単位)。スカラーとして指定します。
Samples per symbol — シンボル サンプリング レート
8
(既定値) | 正のスカラー
シンボル サンプリング レート。正のスカラーで指定します。このパラメーターは、入力される各整数またはバイナリ ワードごとのサンプル出力の数を表します。パルス整形で定義されているように、すべての非バイナリ スキームに対して、この値は 1 より大きくなければなりません。
詳細については、信号のアップサンプリングとレート変更を参照してください。
レート オプション — ブロック処理レート
シングルレート処理を適用
(既定値) | マルチレート処理を許可
ブロック処理レート。以下のいずれかのオプションを指定します。
Enforce single-rate processing
— 入力信号と出力信号の端子サンプル時間は同じです。ブロックは、出力のサイズを入力と比較して変更することによって、レートを変更します。出力幅はシンボルの数と一致します ([Output type] パラメーターが[Integer]
の場合は、入力長を [Samples per symbol] パラメーター値で割った値 )。Allow multirate processing
— 入力信号と出力信号の端子サンプル時間は異なります。出力期間はシンボル区間と等しく、入力期間と [Samples per symbol] パラメーターの値の積になります。
Traceback depth — ビタビ アルゴリズムのトレースバック長
16
(既定値) | 正の整数
ビタビ アルゴリズムのトレースバック長。ビタビ アルゴリズムが各トレースバック パスの構築に使用するトレリス分岐の数を表す正の整数として指定します。このパラメーターの値はまた出力遅延であり、出力内の復調された最初の有意なシンボルに先立つ 0 シンボルの数です。詳細については、トレースバック長と出力遅延を参照してください。
出力データ型 — 出力データ型
double
(既定値) | boolean
| int8
| int16
| int32
出力データ型。[double]
、[boolean]
、[int8]
、[int16]
または [int32]
として指定します。詳細については、Out
の「サポートされているデータ型」を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
CPM 復調
CPM 復調法のプロセスは、相関器とそれに続く最尤系列検出器 (MLSD) で構成されます。MLSD は、状態トレリスのパスから最小ユークリッド距離のパスを求めます。変調指数が有理数 (h = m/p) の場合、シンボル内の位相状態の数は有限です。実装では、ビタビ アルゴリズムを使用して MLSD を実行します。
{hi} は、一連の指数 {h0, h1, h2, …,hH-1} を巡回する変調指数のシーケンスです。
hi = mi / pi は適切な有理式で示した変調指数です。
mi は変調指数の分子です。
pi は変調指数の分母です。
mi および pi は互いに素である正の数値です。
{p0, p1, p2, …,pH-1} の最小公倍数 (LCM) は p で表されます。
hi= m'i / p.
{hi} によって、位相状態の数が次のように決まります。
また、トレリス状態の数にも影響します。
numStates = numPhaseStates×M(L-1),
L はパルスの長さです。
M は変調次数です。
CPM 法
復調器への入力は、変調信号のベースバンド表現です。
ここで、
{αi} はアルファベット ±1、±3、±(M–1) から選択した M-ary データ シンボルのシーケンスです。
M は、ある正の整数 k に対する 2k の形式をとらなければなりません。ここで、M は変調次数であり、シンボル アルファベットのサイズを指定します。
{hi} は変調指数のシーケンスです。hi は、一連の指数 {h0, h1, h2, …,hH-1} を巡回します。H=1 の場合、変調指数は h0 の 1 つのみで、h として表されます。
パルス整形のフィルター処理
CPM 法では、変調された信号の位相遷移を滑らかにするためにパルス整形を使用します。関数 q(t) は、 の関係によって周波数パルス g(t) から得られる位相応答です。
指定された周波数パルス整形は、g(t) のこれらのパルス整形式に対応します。
パルス整形 | 式 |
---|---|
Rectangular | |
Raised Cosine | |
Spectral Raised Cosine | |
Gaussian | |
Tamed FM (管理された周波数変調) |
Lmain は、シンボル区間におけるメイン ローブ パルス存続時間です。
β はスペクトル レイズド コサインのロールオフ係数です。
Bb は帯域幅とガウス パルスの積です。
パルスの持続時間 LT は、シンボル区間におけるパルス長です。式で定義されているとおり、スペクトル レイズド コサイン、ガウス、および Tamed FM のパルス整形は無限長をもちます。実用性のため、LT は切り捨てられた有限長を指定します。
T はシンボル持続時間です。
Q(t) は相補累積分布関数です。
パルス整形のフィルター処理の詳細については、[1]を参照してください。
整数値とバイナリ値の出力信号
[Output type] パラメーターが [Integer]
に設定されている場合:
ブロックは –(M–1) ~ M–1 の間の奇数の整数を生成します。変調次数 M は、[M-ary number] パラメーターで指定します。
[Output datatype] パラメーターは
[boolean]
に設定できません。
[Output type] パラメーターが [Bit]
に設定されている場合:
ブロックは、長さ k のバイナリ ワードのグルーピングを生成します。バイナリ ワード マッピング オプションは、バイナリ符号の順序またはグレイ符号の順序です。
[Output datatype] は
[double]
または[boolean]
のみにできます。バイナリ出力モードでは、ブロック処理は次の手順に従います。
各入力シンボルを整数出力モードとして中間値に割り当てます。
奇数の整数 L を非負の整数 (L+M–1)/2 にマッピングします。
[Symbol set ordering]
パラメーターで指定されているとおりに、[Binary]
または [Gray] マッピングを使用して、各非負の整数をバイナリ ワードに割り当てます。
シングルレート処理
シングルレート処理モードの場合、入力信号および出力信号における端子のサンプル時間は同じになります。ブロックは、入力と比較する際に出力でのサイズ変更を行うことによってレート変更を暗黙的に実装します。入力幅は [Samples per symbol] パラメーター値の整数倍でなければならず、入力は列ベクトルとすることができます。
[Output type] を
[Bit]
に設定した場合、出力幅は入力シンボルの数の K 倍となります。[Output type] を
[Integer]
に設定した場合、出力幅は入力シンボルの数と一致します。
マルチレート処理
マルチレート処理モードでは、入力信号と出力信号の端子サンプル時間は異なっています。入力はスカラーでなければなりません。出力のサンプル時間は、入力のサンプル時間と [Samples per symbol] パラメーターの値の積になります。
[Output type] を
[Bit]
に設定した場合、出力幅はシンボルあたりのビット数と一致します。[Output type] を
[Integer]
に設定した場合、出力幅はスカラー値となります。
トレースバック長と出力遅延
トレースバック長とは、各トレースバック パスの構築に使用するトレリス分岐の数です。トレースバック長は出力の遅延に影響します。これは出力内の復調された最初の有意な値に先立つ 0 シンボルの数です。
最適なトレースバック長設定は、ユークリッド距離の最小二乗値に依存します。別の方法として、状態数に依存する標準値を選択することも可能で、その際に使用する "拘束長の 5 倍" ルールは 5log2(numStates) に対応します。
パルス長 3、h=2/3 のバイナリ レイズド コサイン パルス整形の場合、このルール (5log2(3×22) = 18 により、最適値の 20 に近い結果が生成されます。
[Rate options] パラメーターを
[Allow multirate processing]
に設定し、モデルにて可変ステップ ソルバーまたは固定ステップ ソルバーを使用して [Tasking Mode] パラメーターを[SingleTasking]
に設定した場合、遅延ベクトルは (Traceback depth+1) 個のゼロ値シンボルで構成されます。[Rate options] パラメーターを
[Enforce single-rate processing]
に設定した場合、遅延ベクトルは Traceback depth 個のゼロ値シンボルで構成されます。
参照
[1] Anderson, John B., Tor Aulin, and Carl-Erik Sundberg. Digital Phase Modulation. New York: Plenum Press, 1986.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入
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)