CPM Demodulator Baseband
CPM 法とビタビ アルゴリズムを使用した信号の復調

ライブラリ:
Communications Toolbox /
Modulation /
Digital Baseband Modulation /
CPM
説明
CPM Demodulator Baseband ブロックは、連続位相変調 (CPM) 方式を使用して変調された入力信号を復調します。
CPM はメモリを使用する変調方式です。ブロックの処理では、相関器の後に、状態トレリスのパスで最小ユークリッド距離のパスを探す最尤系列検出器 (MLSD) が続いています。ブロックはビタビ アルゴリズムを使用して MLSD を実行します。
この復調と適用されるフィルター処理の詳細については、CPM 復調およびパルス整形のフィルター処理を参照してください。
端子
入力
入力信号。スカラーまたは列ベクトルとして指定します。入力信号の長さは、[Samples per symbol] パラメーターで指定されたシンボルあたりのサンプル数の整数倍でなければなりません。詳細については、整数値とバイナリ値の出力信号を参照してください。
データ型: double
| single
出力
出力信号。スカラーまたは列ベクトルとして返されます。詳細については、整数値とバイナリ値の出力信号を参照してください。
サポートされているデータ型
倍精度浮動小数点
Boolean ([Output type] が
[Bit]
に設定されている場合)8、16、32 ビット符号付き整数 ([Output type] が
[Integer]
に設定されている場合)
データ型: double
| Boolean
| int8
| int16
| int32
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
アルファベット サイズを示す変調次数。2 の非ゼロのべき乗である正の整数として指定します。M は、ある正の整数 K に対し 2K の形式をとらなければなりません。ここで K はシンボルあたりのビット数です。
出力が整数で構成されるか、ビットのグループで構成されるかを決めます。[Integer]
または [Bit]
として指定します。
ビット マッピング。[Binary]
または [Gray]
として指定します。
このパラメーターを
[バイナリ]
に設定すると、バイナリ符号の順序を使用してシンボルがマッピングされます。このパラメーターを
[Gray]
に設定すると、グレイ符号の順序を使用してシンボルがマッピングされます。
詳細については、整数値とバイナリ値の出力信号を参照してください。
依存関係
このパラメーターを有効にするには、[Output type] を [Bit]
に設定します。
変調指数 {hi}。非負のスカラーまたは列ベクトルとして指定します。
{h} は変調指数のシーケンスを表します。詳細については、CPM 復調を参照してください。
変調信号の位相遷移を滑らかにするために使用されるパルス整形のタイプ。[Rectangular]
、[Raised Cosine]
、[Spectral Raised Cosine]
、[Gaussian]
、または [Tamed FM]
として指定します。フィルター処理オプションの詳細については、パルス整形のフィルター処理を参照してください。
スペクトル レイズド コサイン パルスの最大ローブのメイン ローブ期間。変調された信号をパルス整形するために復調器が使用するシンボル区間の数を表す正の整数として指定します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Spectral Raised Cosine]
に設定します。
スペクトル レイズド コサイン パルスのロールオフ係数。範囲が [0, 1] のスカラーとして指定します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Spectral Raised Cosine]
に設定します。
ガウス パルス整形の帯域幅とシンボル時間の積。正のスカラーとして指定します。[BT product] を使用すると帯域幅は狭くなりますが、符号間干渉が増加します。
依存関係
このパラメーターを有効にするには、[Frequency pulse shape] を [Gaussian]
に設定します。
周波数パルス整形長。正のスカラーとして指定します。周波数パルス長の詳細については、パルス整形のフィルター処理の LT を参照してください。
シミュレーションの開始前に使用されるデータ シンボル。範囲 [– (M – 1), (M – 1)] の奇数の要素をもつスカラーまたはベクトルとして指定します。M は、[M-ary number] パラメーターで指定される変調次数を表します。[Symbol prehistory] パラメーターは、ブロックの最初の呼び出しより前に、変調器によって使用されるデータ シンボルを新しいものから順番に定義します。
スカラー値は長さ LP – 1 のベクトルに展開されます。LP は、[Pulse length (symbol intervals)] パラメーターで指定されるパルス長を表します。
ベクトルの場合、長さが LP – 1 でなければなりません。
変調波形の初期位相オフセット (ラジアン単位)。スカラーとして指定します。
シンボル サンプル レート。正のスカラーで指定します。このパラメーターは、入力される各整数またはバイナリ ワードごとのサンプル出力の数を表します。パルス整形で定義されているように、すべての非バイナリ スキームに対して、この値は 1 より大きくなければなりません。
詳細については、信号のアップサンプリングとレート変更を参照してください。
ブロック処理レート。以下のいずれかのオプションを指定します。
Enforce single-rate processing
— 入力信号と出力信号の端子サンプル時間は同じです。ブロックは、出力のサイズを入力と比較して変更することによって、レートを変更します。出力幅はシンボルの数と一致します ([Output type] パラメーターが[Integer]
の場合は、入力長を [Samples per symbol] パラメーター値で割った値 )。Allow multirate processing
— 入力信号と出力信号の端子サンプル時間は異なります。出力期間はシンボル区間と等しく、入力期間と [Samples per symbol] パラメーターの値の積になります。
ビタビ アルゴリズムのトレースバック長。ビタビ アルゴリズムが各トレースバック パスの構築に使用するトレリス分岐の数を表す正の整数として指定します。このパラメーターの値はまた出力遅延であり、出力内の復調された最初の有意なシンボルに先立つ 0 シンボルの数です。詳細については、トレースバック長と出力遅延を参照してください。
出力データ型。[double]
、[boolean]
、[int8]
、[int16]
または [int32]
として指定します。詳細については、Out
の「サポートされているデータ型」を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
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 は変調次数です。
復調器への入力は、変調信号のベースバンド表現です。
ここで、
{α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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)