MATLAB ヘルプ センター
通信シミュレーションのための復調
x = demod(y,fc,fs,method)
x = demod(y,fc,fs,method,opt)
x = demod(y,fc,fs,method) は、method で指定されるメソッドを使用して、搬送周波数 fc およびサンプル レート fs をもつ実数搬送信号 y を復調します。
x
y
fc
fs
method
例
x = demod(y,fc,fs,method,opt) は、opt で指定される追加オプションを使用して、実数搬送信号 y を復調します。
opt
すべて折りたたむ
8 kHz で 1 秒間サンプリングされた 150 Hz 正弦波を生成します。分散 0.1² のホワイト ガウス ノイズに変調信号を組み込みます。
fs = 8e3; t = 0:1/fs:1-1/fs; s = cos(2*pi*150*t) + randn(size(t))/10;
変調定数を 0.1 として 3 kHz の搬送周波数で信号を周波数変調します。
fc = 3e3; rx = modulate(s,fc,fs,"fm",0.1);
同じ搬送周波数および変調定数を使用して信号を周波数復調します。送信信号、受信信号、および復調信号についてのパワー スペクトル推定を計算してプロットします。
y = demod(rx,fc,fs,"fm",0.1); pspectrum([s;rx;y]',fs,Leakage=0.85) legend(["Transmitted" "Received" "Demodulated"] ... + " signal",Location="best")
変調されたメッセージ信号。実数ベクトルまたは行列として指定します。メソッド pwm と ppm を除いて、y は x と同じサイズになります。
pwm
ppm
メッセージ信号を変調するために使用される搬送周波数。実数の正のスカラーとして指定します。
サンプル レート。実数の正のスカラーとして指定します。
'am'
'amdsb-tc'
'amssb'
'fm'
'pm'
'pwm'
'ppm'
'qam'
使用される変調の方法。次のいずれかとして指定します。
am または amdsb-sc — 振幅復調、両側波帯、抑圧搬送波。y を周波数 fc の正弦波で乗算し、filtfilt を使用して 5 次バタワース ローパス フィルターを適用します。
am
amdsb-sc
filtfilt
x = y.*cos(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x = filtfilt(b,a,x);
amdsb-tc — 振幅復調、両側波帯、伝送搬送波。y を周波数 fc の正弦波で乗算し、filtfilt を使用して 5 次バタワース ローパス フィルターを適用します。
amdsb-tc
opt を指定した場合、demod で x からスカラー opt の値が差し引かれます。opt の既定値は 0 です。
demod
amssb — 振幅復調、片側波帯。y を周波数 fc の正弦波で乗算し、filtfilt を使用して 5 次バタワース ローパス フィルターを適用します。
amssb
fm — 周波数復調。周波数 -fc Hz の複素指数によって y のヒルベルト変換を変調することにより、周波数変調 (FM) 波形を復調し、結果として瞬時周波数を取得します。
fm
-fc
y=cos(2*pi*fc*t + opt*cumsum(x))
cumsumは x の積分の四角形近似です。modulateでは、周波数変調の定数として opt が使用されます。opt パラメーターを指定しない場合、modulate では、既定として opt = (fc/fs)*2*pi/(max(max(x))) が使用されます。このとき、fc からの最大周波数偏差は fc Hz となります。
cumsum
modulate
opt = (fc/fs)*2*pi/(max(max(x)))
pm — 位相復調。周波数 -fc Hz の複素指数によって y のヒルベルト変換を変調することにより、位相変調 (PM) 波形を復調し、結果として瞬間位相を取得します。
pm
y=cos(2*pi*fc*t + opt*x)
modulateでは、位相変調の定数として、opt が使用されます。opt パラメーターを指定しない場合、modulate では、既定として opt = pi/(max(max(x))) が使用されます。このとき、最大位相偏位は π ラジアンです。
opt = pi/(max(max(x)))
pwm — パルス幅復調。パルス幅変調されている信号 y のパルス幅を求めます。demod では、各パルス幅の周期の割合を要素とするベクトル x が返されます。y のパルスは、各搬送波の周期の開始点で始まらなければなりません。つまり、左に位置合わせされていなければなりません。modulate(x,fc,fs,'pwm','centered') では、パルスの中心が各周期の開始点に揃えられます。y の長さは length(x)*fs/fc です。
modulate(x,fc,fs,'pwm','centered')
length(x)*fs/fc
ppm — パルス位置復調。パルス位置変調された信号 y のパルス位置を求めます。復調を正しく行うために、パルスのオーバーラップはできません。x は、長さ length(t)*fc/fs です。
length(t)*fc/fs
qam — 直交振幅復調。[x1,x2] = demod(y,fc,fs,'qam') では、y が周波数 fc の余弦および正弦で乗算され、filtfilt を使用して 5 次バタワース ローパス フィルターが適用されます。
qam
[x1,x2] = demod(y,fc,fs,'qam')
x1 = y.*cos(2*pi*fc*t); x2 = y.*sin(2*pi*fc*t); [b,a] = butter(5,fc*2/fs); x1 = filtfilt(b,a,x1); x2 = filtfilt(b,a,x2);
入力引数 opt は、y と同じサイズでなければなりません。
オプションの入力。一部のメソッドで指定します。opt を使用する方法の詳細については、method を参照してください。
復調されたメッセージ信号。実数ベクトルまたは行列として返されます。
すべて展開する
関数 demod は C/C++ コード生成をサポートしています。この機能を使用するには、MATLAB® Coder™ が必要です。
modulate | vco | fskdemod (Communications Toolbox) | genqamdemod (Communications Toolbox) | mskdemod (Communications Toolbox) | pamdemod (Communications Toolbox) | pmdemod (Communications Toolbox) | qamdemod (Communications Toolbox)
vco
fskdemod
genqamdemod
mskdemod
pamdemod
pmdemod
qamdemod
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 のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ