CPFSKのスペクトラムを見る。
まず、「numpyでCPFSK再び」に記載の条件
周波数偏移=1MHz
シンボルレート=1MSym/s
で
pythonコードはASKの時とほぼ同じ(ファイル名だけが違う)。
- # 変数クリア
- from IPython import get_ipython
- get_ipython().magic('reset -sf')
- import matplotlib.pyplot as plt
- import numpy as np
- import scipy.signal as signal
- # よく使う変数
- pi=np.pi
- deg2rad=pi/180.0
- twopi=2*pi
- # 設定
- f_carrier=433.92e6 # 搬送波周波数 in Hz
- f_sym=1e6 # シンボルレート in Hz
- f_samp_simulation=f_carrier*10 # 計算のサンプリングレート in Hz
- # 後で使う変数
- t_sym=1/f_sym
- t_samp_simulation=1/f_samp_simulation
- omega_carrier=twopi*f_carrier
- # 生成して保存しておいた波形を読み出し
- t=np.load('output/fsk_o_t.npy')
- amp_t=np.load('output/fsk_o_amp_t.npy')
- number_of_samples=t.size
- amp_f=np.fft.fft(amp_t)/(number_of_samples/2)
- #amp_f=np.abs(amp_f)
- amp_f=20*np.log10(np.abs(amp_f))
- freq=np.fft.fftfreq(number_of_samples,t_samp_simulation)
- # プロット
- fig=plt.figure()
- fig.add_subplot(2,1,1)
- plt.plot(freq[0:int(number_of_samples/2)]/1e6,amp_f[0:int(number_of_samples/2)])
- plt.xlim(f_carrier*0.995/1e6,f_carrier*1.005/1e6)
- plt.ylim(-50,0)
占有帯域幅が広い(多分)。
調べてみると、
変調指数m=|f1-f2|T=0.5
が、検波効率が良くて、最も小さい変調指数となり、(最もではないが、)狭い占有帯域幅となるらしい。
で、それをMSKという。
コメントをお書きください