Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

comm.FSKModulator

M-ary FSK 手法を使用した変調

説明

FSKModulator オブジェクトは、M-ary 周波数シフト キーイング メソッドを使用して変調します。出力は、変調信号のベースバンド表現です。

周波数シフト キーイングを変調するには、以下の手順に従います。

  1. FSK 変調器オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.FSKModulator のプロパティに従い、信号を変調します。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

構築

H = comm.FSKModulator は変調器 System object H を作成します。このオブジェクトは、M-ary 周波数シフト キーイング (M-FSK) メソッドを使って入力信号を変調します。

H = comm.FSKModulator(Name,Value) は、指定の各プロパティが指定の値に設定された M-FSK 変調器オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

H = comm.FSKModulator(M,FREQSEP,RS,Name,Value) は、M-FSK 変調器オブジェクト H を作成します。このオブジェクトは、ModulationOrder プロパティを M に設定し、FrequencySeparation プロパティを FREQSEP に、SymbolRate プロパティを RS に設定して、他の指定のプロパティを指定の値に設定しています。

プロパティ

ModulationOrder

変調した信号の周波数の数

変調した信号の周波数の数を、2 のべき乗である数値、正の整数のスカラー値として指定します。既定の設定は 8 です。

BitInput

ビット入力を想定する

入力がビットか整数かを指定します。既定の設定は false です。

このプロパティを false に設定すると、step メソッド入力は 0 から ModulationOrder–1 までの整数値の数値 (単精度データ型を除く) 列ベクトルであることが必要です。この場合、ModulationOrder2 に等しければ入力ベクトルは論理値のデータ型にもできます。

このプロパティを true に設定すると、step メソッド入力は、倍精度またはビット値の論理データ型列ベクトルであることが必要です。このベクトルの長さは、log2(ModulationOrder) の整数倍です。このベクトルは、0 から ModulationOrder–1 までの間の整数のビット表現が含まれています。

SymbolMapping

シンボルの符号化

オブジェクトが、整数または log2(ModulationOrder) ビットのグループを、対応するシンボルの Binary または Gray のいずれか 1 つとしてマップする方法を指定します。既定の設定は Gray です。

このプロパティを Gray に設定すると、オブジェクトはグレイ符号順を使用します。

このプロパティを Binary に設定すると、オブジェクトは通常の 2 値符号の順序を使用します。どちらのタイプのマッピングに対しても、オブジェクトは整数 0 に最も低い周波数をマップし、整数 M–1 に最も高い周波数をマップします。ベースバンド シミュレーションでは、最も低い周波数は絶対値が最大の負の周波数です。

FrequencySeparation

連続トーン間の周波数分離

変調した信号の連続するトーン間の周波数分離を、正の実数スカラー値で Hz 単位で指定します。既定の設定は 6 Hz です。出力信号のエイリアシングを回避するために、出力サンプリング レート Fs = SamplesPerSymbol×SymbolRate を指定します。これは、ModulationOrderFrequencySeparation の積よりも大きな値です。

ContinuousPhase

Phase continuity

出力変調信号の位相が連続的か不連続的かを指定します。既定の設定は true です。

このプロパティを true に設定すると、変調信号は、周波数が変わっても連続位相を維持します。

このプロパティを false に設定すると、変調信号は、異なる周波数の ModulationOrder 正弦波の部分で構成されます。この場合、入力値の変化が、変調された信号の位相の不連続な変化を引き起こすことがあります。

SamplesPerSymbol

出力シンボルあたりのサンプル数

入力内の各整数またはバイナリ ワードに対しオブジェクトが生成する、出力サンプルの数を正の整数のスカラー値で指定します。既定の設定は 17 です。

SymbolRate

シンボル区間

シンボル レートを、毎秒あたりのシンボル数として、正の倍精度、実数スカラーで指定します。既定の設定は 100 です。出力信号のエイリアシングを回避するために、出力サンプリング レート Fs = SamplesPerSymbol×SymbolRate を指定します。これは、ModulationOrder × FrequencySeparation よりも大きな値です。シンボル区間は、入力がビットか整数かにかかわりなく同一です。

OutputDataType

出力のデータ型

出力データ型を double または single のいずれかとして指定します。既定の設定は double です。

メソッド

resetM-FSK 変調器オブジェクトの状態のリセット
stepM-ary FSK 手法を使用した変調
すべての System object に共通
release

System object のプロパティ値の変更の許可

すべて折りたたむ

周波数分離が 100 Hz の 8-FSK 変調を使用して信号を変調および復調します。

変調次数と周波数分離パラメーターを設定します。

M = 8;
freqSep = 100;

変調次数 8、100 Hz の周波数分離で FSK 変調および復調 System object™ を作成します。

fskMod = comm.FSKModulator(M,freqSep);
fskDemod = comm.FSKDemodulator(M,freqSep);

ノイズが S/N 比で指定される加法性ホワイト ガウス ノイズ チャネルを作成します。

ch = comm.AWGNChannel('NoiseMethod', ...
    'Signal to noise ratio (SNR)','SNR',-2);

誤り率計算機オブジェクトを作成します。

err = comm.ErrorRate;

AWGN チャネルで 8-FSK を使用して、50 シンボル フレームを 100 個送信します。

for counter = 1:100
    data = randi([0 M-1],50,1);
    modSignal = step(fskMod,data);
    noisySignal = step(ch,modSignal);
    receivedData = step(fskDemod,noisySignal);
    errorStats = step(err,data,receivedData);
end

誤りの統計を表示します。

es = 'Error rate = %4.2e\nNumber of errors = %d\nNumber of symbols = %d\n';
fprintf(es,errorStats)
Error rate = 1.40e-02
Number of errors = 70
Number of symbols = 5000

スペクトログラムで FSK 変調信号のシンボル マッピングを可視化します。

シンボルごとに 20 個のサンプルを指定します。0 は -50 kHz (負の位相勾配) にマップし、1 は +50 kHz (正の位相勾配) にマップします。

mod = comm.FSKModulator;  
mod.ModulationOrder = 2;  
mod.FrequencySeparation = 100000;  
mod.SamplesPerSymbol = 20;  
mod.SymbolMapping = 'Gray';  
mod.SymbolRate = 1e4  
mod = 
  comm.FSKModulator with properties:

        ModulationOrder: 2
               BitInput: false
          SymbolMapping: 'Gray'
    FrequencySeparation: 100000
        ContinuousPhase: true
       SamplesPerSymbol: 20
             SymbolRate: 10000
         OutputDataType: 'double'

x = mod([0 1 0 1 0 1]');  
figure; subplot(1,2,1); plot(unwrap(angle(x)),0:length(x)-1);  
grid on; xlabel('Phase'); ylabel('Samples') 
subplot(1,2,2);  
spectrogram(x,20,0,[],mod.SymbolRate*mod.SamplesPerSymbol,'centered')

アルゴリズム

このオブジェクトは、M-FSK Modulator Baseband ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。オブジェクト プロパティはブロック パラメーターに対応しますが、以下の場合を除きます。

  • [Symbol set ordering] パラメーターは、SymbolMapping プロパティに対応します。

  • SymbolRate プロパティは、ブロック サンプルレート容量を置き換えます。

拡張機能

R2012a で導入