Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

modulate

通信シミュレーション用の変調

説明

y = modulate(x,fc,fs) は搬送周波数 fc とサンプル レート fs をもつ実際のメッセージ信号 x を変調します。x が行列の場合、変調信号は列ごとに個別に計算され、y の対応する列に保存されます。

[y,t] = modulate(x,fc,fs) は、内部時間ベクトル t も返します。

[___] = modulate(x,fc,fs,method) は、method によって指定された変調方式を使用して実際のメッセージ信号を変調します。これらの入力は、前のいずれの出力構文でも使用できます。

[___] = modulate(x,fc,fs,method,opt) は変調法の opt で指定された追加オプションを使用します。

すべて折りたたむ

200 Hz で 1 秒間サンプリングされた 10 Hz の正弦波信号を生成します。分散 0.01 のホワイト ガウス ノイズに正弦波を組み込みます。

fs = 200;
t = 0:1/fs:1;
x = sin(2*pi*10*t) + randn(size(t))/10;

50 Hz の搬送周波数を使用して、信号を単側波帯振幅変調します。新しいウェルチのパワー スペクトル密度推定を計算および表示します。

y = modulate(x,50,fs,'amssb');

pwelch([x;y]',hamming(100),80,1024,fs,'centered')

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains 2 objects of type line.

200 Hz のレートで 1 秒間サンプリングされた 10 Hz と 20 Hz の 2 つの正弦波信号の周波数を生成します。分散 0.01 のホワイト ガウス ノイズに正弦波を組み込みます。

fs = 200;
t = 0:1/fs:1;
i = sin(2*pi*10*t) + randn(size(t))/10;
q = sin(2*pi*20*t) + randn(size(t))/10;

70 Hz の搬送周波数を使用して、信号 iq から直交振幅変調された信号を作成します。元のシーケンスと変調したシーケンスのウェルチ パワー スペクトル密度推定を計算します。80 サンプルがオーバーラップする 100 サンプルのハミング ウィンドウを使用します。FFT 長に 1024 を指定します。

y = modulate(i,70,fs,'qam',q);

pwelch([i;q;y]',hamming(100),80,1024,fs,'centered') 
legend('In-phase signal','Quadrature signal','Modulated signal')

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains 3 objects of type line. These objects represent In-phase signal, Quadrature signal, Modulated signal.

入力引数

すべて折りたたむ

メッセージ信号。実数ベクトルまたは行列として指定します。

例: sin(2*pi*25*[0:(1/200):1])

メッセージ信号を変調するために使用される搬送周波数。実数の正のスカラーとして指定します。

サンプル レート。実数の正のスカラーとして指定します。

使用された変調の方法。次のいずれかとして指定します。

  • amdsb-sc または am — 振幅変調、両側波帯、抑圧搬送波。周波数 fc の正弦波を x で乗算します。

    y = x.*cos(2*pi*fc*t)
    
  • amdsb-tc — 振幅変調、両側波帯、伝送搬送波。x からスカラー opt を減算し、その結果に周波数 fc の正弦波が乗算されます。

    y = (x-opt).*cos(2*pi*fc*t)
    

    opt パラメーターを指定しない場合、modulate では、メッセージ信号 (x-opt) が全体的に非負で、最小値がゼロになるように、min(min(x)) の既定値が使用されます。

  • amssb — 振幅変調、単側波帯。周波数 fc の正弦波を x で乗算し、その結果に、x のヒルベルト変換を周波数 fc の位相をシフトした正弦波で乗算したものに加算します。

    y = x.*cos(2*pi*fc*t)+imag(hilbert(x)).*sin(2*pi*fc*t)
    

    これにより、上側波帯が効率的に除去されます。

  • fm — 周波数変調。メッセージ信号 x と共に変化する瞬時周波数をもつ正弦波が作成されます。

    y = cos(2*pi*fc*t + opt*cumsum(x))

    cumsumx の積分の四角形近似です。modulate では、周波数変調の定数として opt が使用されます。opt パラメーターを指定しない場合、modulate では、既定として opt = (fc/fs)*2*pi/(max(max(x))) が使用されます。このとき、fc からの最大周波数偏差は fc Hz となります。

  • pm — 位相変調。メッセージ信号 x と共に位相が変化する周波数 fc の正弦波が作成されます。

    y = cos(2*pi*fc*t + opt*x)

    modulate では、位相変調の定数として、opt が使用されます。opt パラメーターを指定しない場合、modulate では、既定として opt = pi/(max(max(x))) が使用されます。このとき、最大位相偏位は π ラジアンです。

  • pwm — パルス幅変調。x のパルス幅からパルス幅変調された信号が作成されます。x の要素は、0 ~ 1 の間で、各パルスの幅を周期の割合で指定しなければなりません。パルスは、各周期の開始点で始まります。つまり、左に位置合わせされます。modulate(x,fc,fs,'pwm','centered') では、パルスの中心が各周期の開始点に揃えられます。y の長さは length(x)*fs/fc です。

  • ppm — パルス位置変調。x のパルス幅からパルス位置変調された信号が作成されます。x の要素は、0 ~ 1 の間になければならず、1 周期の細分化切片内の各パルスの左端を指定します。opt は、0 ~ 1 の間のスカラー値で、1 周期の細分化切片内の各パルスの長さを指定します。opt の既定値は 0.1 です。y の長さは length(x)*fs/fc です。

  • qam — 直交振幅変調。信号 xopt から直交振幅変調された信号が作成されます。

    y = x.*cos(2*pi*fc*t) + opt.*sin(2*pi*fc*t)

    入力引数 opt は、x と同じサイズでなければなりません。

オプションの入力。一部のメソッドで指定します。opt を使用する方法の詳細については、method を参照してください。

出力引数

すべて折りたたむ

変調されたメッセージ信号。実数ベクトルまたは行列として返されます。メソッド pwmppm を除いて、yx と同じサイズになります。

計算で modulate によって使用される内部時間配列。実数ベクトルとして指定します。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

|