comm.PAMDemodulator
(非推奨) M-ary パルス振幅復調を使用した復調
説明
comm.PAMDemodulator System object™ は、M-ary パルス振幅変調 (M-PAM) 手法を使用して変調された信号を復調します。入力は、変調信号のベースバンド表現です。
M-PAM 手法を使用して変調された信号を復調するには、次のようにします。
comm.PAMDemodulatorオブジェクトを作成し、そのプロパティを設定します。関数と同様に、引数を指定してオブジェクトを呼び出します。
System object の機能の詳細については、System object とはを参照してください。
作成
構文
説明
は、M-PAM 手法を使用して入力信号を復調する復調器 System object を作成します。pamdemodulator = comm.PAMDemodulator
は、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、pamdemodulator = comm.PAMDemodulator(Name=Value)ModulationOrder=2 は、信号コンスタレーションの点の数を 2 に設定します。
は、入力引数 pamdemodulator = comm.PAMDemodulator(M,Name=Value)M を使用して ModulationOrder プロパティを設定します。
入力引数
変調次数。正の偶数として指定します。M は信号コンスタレーションの点の数を表します。
データ型: double
プロパティ
特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。
プロパティが "調整可能" の場合、その値をいつでも変更できます。
プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。
一般的なプロパティ
信号コンスタレーション点の数。次のオプションのいずれかとして指定します。
comm.PAMDemodulatorSystem object は、NormalizationMethod プロパティの設定に基づいて信号コンスタレーションをスケーリングします。
ビット出力。数値または logical の 0 (false) または 1 (true) として指定します。
1(true) — このオプションを使用して、オブジェクト出力Yを、整数を表すビット値からなる列ベクトルに設定します。バイナリ値の信号は K = log2(M) ビットにグループ化されます。ここで、K はシンボルあたりのビット数、M は変調次数です。出力ベクトルの長さは K の整数倍でなければなりません。0(false) — このオプションを使用して、オブジェクト出力Yを、入力ベクトルXと同じ長さの列ベクトルに設定します。この値には、[0, M - 1] の範囲の整数シンボル値が含まれます。M は変調次数です。
データ型: logical
コンスタレーション符号化。"Gray" または "Binary" として指定します。
シンボル マッピングは、オブジェクトが整数または log2(ModulationOrder) 入力ビットのグループを対応するシンボルにマッピングする方法を指定します。
このプロパティを
"Gray"に設定すると、オブジェクトはグレイ符号化された信号コンスタレーションを使用します。このプロパティを
"Binary"に設定すると、入力整数 m は複素数値 2m – M + 1 にマップされます。M はプロパティ ModulationOrder の値であり、m は [0, (M – 1)] の範囲内にあります。
信号コンスタレーションを正規化するために使用されるコンスタレーション正規化メソッド。"Minimum distance between symbols"、"Average power"、または "Peak power" として指定します。
2 つのシンボル間の最小距離。正のスカラーとして指定します。
依存関係
このプロパティを有効にするには、NormalizationMethod プロパティを "Minimum distance between symbols" に設定します。
データ型: double
コンスタレーション内のシンボルの平均電力。正のスカラーとして指定します。
依存関係
このプロパティを有効にするには、NormalizationMethod プロパティを "Average power" に設定します。
データ型: double
コンスタレーション内のシンボルのピーク電力。正のスカラーとして指定します。
依存関係
このプロパティを有効にするには、NormalizationMethod プロパティを "Peak power" に設定します。
データ型: double
出力のデータ型。"Full precision"、"Smallest unsigned integer"、"double"、"single"、"int8"、"uint8"、"int16"、"uint16"、"int32"、"uint32"、または "logical" として指定します。
このプロパティを
"Full precision"に設定し、入力データ型が単精度または倍精度の場合、出力データは入力と同じデータ型になります。入力信号が整数データ型のとき、
"Smallest unsigned integer"または"Full precision"モードでこのプロパティを使用するには Fixed-Point Designer™ ユーザー ライセンスがなければなりません。入力データが固定小数点データ型の場合、出力データ型は
OutputDataTypeプロパティを"Smallest unsigned integer"に設定した場合と同様に動作します。BitOutput プロパティを
trueに設定すると、"logical"データ型が有効なオプションになります。
固定小数点プロパティ
固定小数点演算に対する完全精度オーバーライド。数値または logical の 0 (false) または 1 (true) として指定します。
このプロパティを
trueに設定した場合、オブジェクトは完全精度規則を使用してすべての内部演算と出力データ型を計算します。これらの規則は、最も正確な固定長数値を提供します。また、他の固定長プロパティは個別には適用されないため、それらの表示はオフにされます。これらの規則は、オブジェクト内で量子化が発生しないことを保証します。必要に応じてビットが追加されて、丸めやオーバーフローが発生しないことを確実にします。このプロパティを
falseに設定した場合、固定長データ型は個別の固定長プロパティ設定によって制御されます。
詳細については、固定小数点 System object の完全精度を参照してください。
データ型: logical
非正規化係数のデータ型。"Same word length as input" または "Custom" として指定します。
非正規化係数の固定小数点データ型。名前と値の引数 Signedness を "Auto" に設定した、スケールされていない関数 numerictype (Fixed-Point Designer) として指定します。
依存関係
このプロパティを有効にするには、DenormalizationFactorDataType プロパティを "Custom" に設定します。
積のデータ型。"Full precision" または "Custom" として指定します。このプロパティを "Full precision" に設定すると、comm.PAMDemodulator は完全精度の積の語長と小数部の長さを計算します。
依存関係
このプロパティを有効にするには、FullPrecisionOverride プロパティを false に設定します。
積の固定小数点データ型。名前と値の引数 Signedness を "Auto" に設定した、スケールされていない関数 numerictype (Fixed-Point Designer) として指定します。
依存関係
このプロパティを有効にするには、FullPrecisionOverride プロパティを false に、ProductDataType プロパティを "Custom" に設定します。
積の固定小数点値の丸め。"Ceiling"、"Convergent"、"Floor"、"Nearest"、"Round"、"Simplest"、または "Zero" のいずれかとして指定します。
このプロパティは、オブジェクトが完全精度構成ではないときに適用されます。
積の固定小数点値がオーバーフローした場合の積のオーバーフロー アクション。"Wrap" または "Saturate" として指定します。
このプロパティは、オブジェクトが完全精度構成ではないときに適用されます。
加算のデータ型。"Full precision"、"Same as product"、または "Custom" のいずれかとして指定します。このプロパティを "Full precision" に設定すると、オブジェクトは完全精度の加算の語長と小数部の長さを計算します。
依存関係
このプロパティを有効にするには、FullPrecisionOverride プロパティを false に設定します。
加算の固定小数点データ型。名前と値の引数 Signedness を "Auto" に設定した、スケールされていない関数 numerictype (Fixed-Point Designer) として指定します。
依存関係
このプロパティを有効にするには、FullPrecisionOverride プロパティを false に、SumDataType プロパティを "Custom" に設定します。
使用法
入力引数
M-PAM 変調されたベースバンド信号。スカラーまたは列ベクトルとして指定します。
データ型: single | double | int8 | int16 | int32 | int64 | signed fi
複素数のサポート: あり
出力引数
復調されたデータ。スカラーまたは列ベクトルとして返されます。
BitOutput プロパティの値に応じて、Y は整数またはビット値になります。復調された信号の次元は、OutputDataType プロパティに指定した値によって異なります。
オブジェクト関数
オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。
release(obj)
例
16-PAM 変調方式を使用して、信号を変調および復調します。
hMod = comm.PAMModulator(16); hAWGN = comm.AWGNChannel("NoiseMethod", ... "Signal to noise ratio (SNR)", ... SNR=20, SignalPower=85); hDemod = comm.PAMDemodulator(16); % Create an error rate calculator hError = comm.ErrorRate; for counter = 1:100 % Transmit a 50-symbol frame data = randi([0 hMod.ModulationOrder-1],50,1); modSignal = hMod(data); noisySignal = hAWGN(modSignal); receivedData = hDemod(noisySignal); errorStats = hError(data,receivedData); end fprintf('Error rate = %f\nNumber of errors = %d\n', ... errorStats(1), errorStats(2))
Error rate = 0.112600 Number of errors = 563
アルゴリズム
この復調器のアルゴリズムは、受信した入力信号のコンスタレーション値を範囲 [0, M – 1] の M-ary 整数のシンボル インデックスにマッピングしてから、これらの復調されたシンボル インデックスを形式を整えた出力値にマッピングします。
復調器は、正規化方式と関連するパラメーターで指定される非正規化係数により、受信した入力信号の実数部をまずスケーリングすることによって、整数シンボル インデックスを計算します。
受信信号を近似的に [0, 2(M – 1)] プラス ノイズの範囲に平行移動するには、非正規化した値を (M – 1) に追加します。
近似的に [0, M – 1] プラス ノイズの範囲に入れるには、結果の値を 2 による除算で再スケーリングします (または、固定小数点演算の場合は、等価な処理として 1 ビット右シフトします)。
ノイズを含んだインデックス値を最も近い整数に丸めて飽和によって切り捨て、[0 M – 1] の範囲に正確に入れます。
最後に、その他のブロック パラメーターに基づいて、整数インデックスを形式を整えたシンボル値にマッピングし、選択された出力データ型にキャストします。
以下の図では、浮動小数点と固定小数点のアルゴリズム演算における信号の流れ図を横に並べて示しています。
浮動小数点のダイアグラムは、入力信号のデータ型が
doubleかsingleの場合に適用されます。固定小数点のダイアグラムは、入力信号のデータ型が符号付き固定小数点の場合に適用されます。
これらの信号の流れ図では、非正規化係数が単位元に設定されている場合とそうでない場合が示されています。非正規化係数を 1 に設定すると、コンスタレーションが正規化されて信号の流れが簡単になります。
次の図は、非正規化係数が単位元である場合の浮動小数点と固定小数点の復調における信号の流れ図を示しています。

次の図は、非正規化係数が単位元でない場合の浮動小数点と固定小数点の復調における信号の流れ図を示しています。

FullPrecisionOverride は便利なプロパティで、true に設定することで、オブジェクトが固定小数点入力の処理に完全精度を使用するように、適切なプロパティを自動的に設定します。
System object では、完全精度の固定小数点演算とは、理想的な完全精度の結果を計算するために十分な数の追加ビットを増やすことを表します。この演算には、最小範囲または最大範囲のオーバーフローや、丸めやアンダーフローによる桁落ちはありません。また、ハードウェア固有の設定にも依存しません。選択されるデータ型は既知のデータ型の範囲のみに基づいており、実際の数値には基づいていません。System object の完全精度は、係数値を最適化しません。FullPrecisionOverride プロパティを true に設定すると、制御する他の固定小数点プロパティは適用されなくなり、既定値以外の値はすべて無視されます。また、これらのプロパティは非表示になります。個々の固定小数点プロパティを指定するには、まず FullPrecisionOverride を false に設定します。
拡張機能
使用上の注意および制限:
MATLAB コード生成における System object (MATLAB Coder)を参照してください。
バージョン履歴
R2012a で導入comm.PAMDEmodulator は推奨されません。代わりに pamdemod を使用してください。
n = 10000; % Number of symbols to process M = 8; % Modulation order x = randi([0 M-1],n,1); % Create message signal %% Using PAM modulation and demodulation system objects pammodObj = comm.PAMModulator(M); pamdemodObj = comm.PAMDemodulator(M); yOld = pammodObj(x); % Modulate % ... channel filtering ... zOld = pamdemodObj(complex(yOld)); % Demodulate %% Using PAM modulation and demodulation functions yNew = pammod(x,M); % Modulate % ... channel filtering ... zNew = pamdemod(y,M); % Demodulate isequal(zOld,zNew)
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)