gmskについて


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

gmsk.py

  • 送信側
Gnuradioで用意されているgmskは以下のフローで構成される。
self.connect(self, self.nrz, self.gaussian_filter, self.fmmod, self)
それぞれのノードのパラメータは以下のように設定されている。
ntaps = 4 * samples_per_symbol			# up to 3 bits in filter at once
sensitivity = (pi / 2) / samples_per_symbol	# phase change per bit = pi / 2
 
# Turn it into NRZ data.
self.nrz = gr.bytes_to_syms()//NRZ信号に変換

# Form Gaussian filter
# Generate Gaussian response (Needs to be convolved with window below).
self.gaussian_taps = gr.firdes.gaussian(
	1,		       # gain
	samples_per_symbol,    # symbol_rate
	bt,		       # bandwidth * symbol time
	ntaps	               # number of taps
	)

self.sqwave = (1,) * samples_per_symbol       # rectangular window
self.taps = numpy.convolve(numpy.array(self.gaussian_taps),numpy.array(self.sqwave))
self.gaussian_filter = gr.interp_fir_filter_fff(samples_per_symbol, self.taps)

# FM modulation
self.fmmod = gr.frequency_modulator_fc(sensitivity)//周波数変調
  • 受信側
フローは以下。
self.connect(self, self.fmdemod, self.clock_recovery, self.slicer, self)

結果

gmskは結局シミュレーションで、マルチユーザCDMAを実現することができなかった。。
相互相関特性を保存したまま、送信できる変調方式はないのか。。