概要
pythonでgnuradioやってみた。
FM変調を聞く、見る。
信号は、440hzのサイン波、搬送波は、16KHZ。
写真
サンプルコード
from gnuradio import gr
from gnuradio import blocks
from gnuradio import analog
from gnuradio import filter
from gnuradio import audio
from gnuradio import qtgui
from PyQt4 import Qt
from PyQt4 import QtGui, QtCore
import sys
import sip
class my_top_block(gr.top_block):
def __init__(self):
gr.top_block.__init__(self)
self.qapp = QtGui.QApplication(sys.argv)
self.samp_rate = samp_rate = 32000
self.qtgui_sink_x_0 = qtgui.sink_f(1024, filter.firdes.WIN_BLACKMAN_hARRIS, 0, samp_rate, "", True, True, True, True, )
self.blocks_vco_f_0 = blocks.vco_f(32000, 16000, 1)
self.blocks_add_const_vxx_0 = blocks.add_const_vff((1, ))
self.audio_sink_0 = audio.sink(samp_rate, '', True)
self.analog_sig_source_x_1 = analog.sig_source_f(samp_rate, analog.GR_COS_WAVE, 440, 0.3, 0)
self.connect((self.analog_sig_source_x_1, 0), (self.blocks_add_const_vxx_0, 0))
self.connect((self.blocks_add_const_vxx_0, 0), (self.blocks_vco_f_0, 0))
self.connect((self.blocks_vco_f_0, 0), (self.audio_sink_0, 0))
self.connect((self.blocks_vco_f_0, 0), (self.qtgui_sink_x_0, 0))
pyQt = self.qtgui_sink_x_0.pyqwidget()
pyWin = sip.wrapinstance(pyQt, QtGui.QWidget)
self.top_widget = Qt.QWidget()
self.top_layout = Qt.QVBoxLayout(self.top_widget)
self.top_layout.addWidget(pyWin)
self.top_widget.show()
if __name__ == "__main__":
tb = my_top_block();
tb.start()
tb.qapp.exec_()
tb.stop()
以上。