こんにちは、無名です。
今回はAM変調をするコードをPythonで作っていこうと思います。
AM変調はラジオ放送(AMラジオ)や飛行機と地上との通信に使われています。
搬送波の振幅が入力信号によって変化します。
AM変調の公式
AM変調の公式は搬送波をcos(2πfct)、入力信号をm(t)とした時、変調された信号s(t)は
$$s(t)=(Ac+m(t))⋅cos(2πfct) $$
になります。
これをPythonで書いていきます。
コード
import numpy as np
import matplotlib.pyplot as plt
import math
#パラメーター設定
pi = math.pi
f_s = 44100 #サンプリングレート
t_fin = 1 #終了時間(秒)
dt = 1/ f_s #サンプリング周期
N = int(f_s * t_fin) #サンプル数
t = np.arange(0, t_fin, dt)
fre1 = 100 #搬送波の周波数
fre2 = 5 #入力信号の周波数
A_s = 2 #搬送波の振幅
A_m = 1 #入力信号の振幅
搬送波の周波数を100Hz 、入力信号の周波数を5Hzとして今回は変調します。
変調
搬送波と入力信号を生成し、変調します。
#搬送波生成
carrier = A_s * np.cos(2 * pi * fre1 * t)
#入力波生成
modulator = A_m * np.sin(2 * pi * fre2 * t)
#AM変調
am_wave = (A_s + A_m * modulator) * carrier
グラフの描画
生成したグラフを描画します。
搬送波
入力信号
AM変調波
まとめ
今回はAM変調をやってみました。
変調波のグラフですが、本来なら振幅は搬送波と入力信号の振幅の±で表されますが、なぜか値がオーバーしています。原因はわかりません。
気が向いたらPM変調やFM変調、デジタル変調もやろうかなと思っています。