Main Content

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

comm.FMModulator

FM 方式を使用した変調

説明

FMModulator System object™ は、FM 変調を入力信号に適用します。

信号の FM 変調は次によって行います。

  1. FMModulator オブジェクトを定義して設定します。構築を参照してください。

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

メモ

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

構築

H = comm.FMModulator は、入力信号を周波数変調する変調器 System object、H を作成します。

H = comm.FMModulator(demod) は、FM 変調器オブジェクトを作成します。このオブジェクトのプロパティは対応する FM 復調器オブジェクト demod によって決まります。

H = comm.FMModulator(Name,Value) は、指定の各 Name プロパティを指定の Value に設定して FM 変調器オブジェクトを作成します。Name は一重引用符で囲まなければなりません。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

FrequencyDeviation

出力信号周波数のピーク偏差 (Hz)

FM 変調器の周波数偏差を Hz 単位で、正の実数スカラーとして指定します。既定値は 75e3 です。システムの帯域幅は、周波数偏差とメッセージ帯域幅の合計の 2 倍と等しくなります。このプロパティは調整不可能です。

SampleRate

入力信号のサンプルレート (Hz)

サンプルレートを Hz 単位で、正の実数スカラーとして指定します。既定値は 240e3 です。出力サンプルレートは、入力サンプルレートと等しくなります。このプロパティは調整不可能です。

メソッド

resetFM 変調器オブジェクトの状態のリセット
stepFM ベースバンド変調の適用
すべての System object に共通
release

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

すべて折りたたむ

ベースバンド変調を正弦波入力信号に適用し、その応答をプロットします。

例のパラメーターを設定します。

fs = 1e3;              % Sample rate (Hz)
ts = 1/fs;             % Sample period (s)
fd = 50;               % Frequency deviation (Hz)

持続時間が 0.5 秒で周波数が 4 Hz の正弦波入力信号を作成します。

t = (0:ts:0.5-ts)';
x = sin(2*pi*4*t);

FM 変調器 System object™ を作成します。

MOD = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd);

入力信号を FM 変調し、実数部をプロットします。変調された信号の周波数が入力信号の振幅によって変化することが確認できます。

y = step(MOD,x);
plot(t,[x real(y)])

FM ベースバンド変調をホワイト ガウス ノイズ源に適用し、そのスペクトルをプロットします。

例のパラメーターを設定します。

fs = 1e3;              % Sample rate (Hz)
ts = 1/fs;             % Sample period (s)
fd = 10;               % Frequency deviation (Hz)

持続時間が 5 秒のホワイト ガウス ノイズ源を作成します。

t = (0:ts:5-ts)';
x = wgn(length(t),1,0);

FM 変調器 System object? を作成し、入力信号を変調します。

MOD1 = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd);
y = step(MOD1,x);

周波数偏差が 5 倍大きい別の変調器オブジェクト MOD2 を作成し、FM 変調を適用します。

MOD2 = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',5*fd);
z = step(MOD2,x);

2 つの変調された信号のスペクトルをプロットします。チャネル 2 と関連付けられた大きい方の周波数偏差のノイズ レベルは 10 dB 高くなります。

SA = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true);
step(SA,[y z])

正弦波信号を変調および復調します。復調された信号をプロットし、元の信号と比較します。

例のパラメーターを設定します。

fs = 100; % Sample rate (Hz)
ts = 1/fs; % Sample period (s)
fd = 25; % Frequency deviation (Hz)

持続時間が 0.5 秒で周波数が 4 Hz の正弦波入力信号を作成します。

t = (0:ts:0.5-ts)';
x = sin(2*pi*4*t);

FM 変調器および復調器 System object を作成します。

fmmod = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd);
fmdemod = comm.FMDemodulator('SampleRate',fs,'FrequencyDeviation',fd);

入力信号を FM 変調し、実数部をプロットします。変調された信号の周波数が入力信号の振幅によって変化することが確認できます。

y = fmmod(x);
plot(t,[x real(y)])

FM 変調された信号を復調します。

z = fmdemod(y);

入力信号と復調された信号をプロットします。復調器の出力信号は、入力信号と完全に一致します。

plot(t,x,'r',t,z,'ks')
legend('Input Signal','Demod Signal')
xlabel('Time (s)')
ylabel('Amplitude')

参考文献

[1] Chakrabarti, I. H., and Hatai, I. “A New High-Performance Digital FM Modulator and Demodulator for Software-Defined Radio and Its FPGA Implementation.” International Journal of Reconfigurable Computing. Vol. 2011, No. 10.1155/2011, 2011, p. 10.

[2] Taub, Herbert, and Donald L. Schilling. Principles of Communication Systems. New York: McGraw-Hill, 1971, pp. 142–155.

アルゴリズム

周波数変調を行ったパスバンド信号 Y(t) を次のように表します。

Y(t)=Acos(2πfct+2πfΔ0tx(τ)dτ),

ここで、A は搬送波振幅、fc は搬送周波数、x(τ) はベースバンド入力信号、fΔ はヘルツ単位の周波数偏差です。|x(t)| ≤ 1 と仮定した場合、周波数偏差は、fc からの単方向への最大シフト値になります。

ベースバンド FM 信号は、以下の条件を満たす fc でダウンコンバートすることによってパスバンド表現から導出できます。

ys(t)=Y(t)ej2πfct=A2[ej(2πfct+2πfΔ0tx(τ)dτ)+ej(2πfct+2πfΔ0tx(τ)dτ)]ej2πfct=A2[ej2πfΔ0tx(τ)dτ+ej4πfctj2πfΔ0tx(τ)dτ].

-2fc の成分を ys(t) から除去すると、次のように表されるベースバンド信号表現 y(t) が残ります。

y(t)=A2ej2πfΔ0tx(τ)dτ.

y(t) の式は次のように書き換えられます。

y(t)=A2ejϕ(t),

ここで、ϕ(t)=2πfΔ0tx(τ)dτ であり、これは入力信号が位相 ϕ(t) の導関数をスケーリングしたものであることを意味します。

ベースバンド遅延復調器は、入力信号を y(t) から復元するために使用します。

受信信号の遅延および共役の部分が信号自体から減算されます。

w(t)=A24ejϕ(t)ejϕ(tT)=A24ej[ϕ(t)ϕ(tT)],

ここで T はサンプリング周期です。離散項では wn=w(nT) であり、次のようになります。

wn=A24ej[ϕnϕn1],vn=ϕnϕn1.

信号 vn は、vn ≈ xn を満たす ϕn の近似微分です。

拡張機能

R2015a で導入