# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: Top Block
# Generated: Wed Jan 30 00:37:24 2019
##################################################
from distutils.version import StrictVersion
if __name__ == '__main__':
import ctypes
import sys
if sys.platform.startswith('linux'):
try:
x11 = ctypes.cdll.LoadLibrary('libX11.so')
x11.XInitThreads()
except:
print "Warning: failed to XInitThreads()"
from PyQt5 import Qt
from PyQt5 import Qt, QtCore
from PyQt5.QtCore import QObject, pyqtSlot
from PyQt5import Qt
from gnuradio import analog
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import filter
from gnuradio import gr
from gnuradio import qtgui
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from grc_gnuradio import blks2 as grc_blks2
from optparse import OptionParser
import MyCustomBlock
import math
import numpy
import sip
import sys
from gnuradio import qtgui
class top_block(gr.top_block, Qt.QWidget):
def __init__(self):
gr.top_block.__init__(self, "Top Block")
Qt.QWidget.__init__(self)
self.setWindowTitle("Top Block")
qtgui.util.check_set_qss()
try:
self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
except:
pass
self.top_scroll_layout = Qt.QVBoxLayout()
self.setLayout(self.top_scroll_layout)
self.top_scroll = Qt.QScrollArea()
self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
self.top_scroll_layout.addWidget(self.top_scroll)
self.top_scroll.setWidgetResizable(True)
self.top_widget = Qt.QWidget()
self.top_scroll.setWidget(self.top_widget)
self.top_layout = Qt.QVBoxLayout(self.top_widget)
self.top_grid_layout = Qt.QGridLayout()
self.top_layout.addLayout(self.top_grid_layout)
self.settings = Qt.QSettings("GNU Radio", "top_block")
if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"):
self.restoreGeometry(self.settings.value("geometry").toByteArray())
else:
self.restoreGeometry(self.settings.value("geometry", type=QtCore.QByteArray))
##################################################
# Variables
##################################################
self.sps = sps = 8
self.nfilts = nfilts = 64
self.samp_rate = samp_rate = 32000
self.excess_bw = excess_bw = 0.35
self.bits_per_symbol = bits_per_symbol = 2
self.EbN0 = EbN0 = 16
self.Delay = Delay = nfilts/sps
##################################################
# Blocks
##################################################
self._EbN0_options = (10, 14, 16, 18, 30, )
self._EbN0_labels = (str(self._EbN0_options[0]), str(self._EbN0_options[1]), str(self._EbN0_options[2]), str(self._EbN0_options[3]), str(self._EbN0_options[4]), )
self._EbN0_tool_bar = Qt.QToolBar(self)
self._EbN0_tool_bar.addWidget(Qt.QLabel('EbN0 (dB)'+": "))
self._EbN0_combo_box = Qt.QComboBox()
self._EbN0_tool_bar.addWidget(self._EbN0_combo_box)
for label in self._EbN0_labels: self._EbN0_combo_box.addItem(label)
self._EbN0_callback = lambda i: Qt.QMetaObject.invokeMethod(self._EbN0_combo_box, "setCurrentIndex", Qt.Q_ARG("int", self._EbN0_options.index(i)))
self._EbN0_callback(self.EbN0)
self._EbN0_combo_box.currentIndexChanged.connect(
lambda i: self.set_EbN0(self._EbN0_options[i]))
self.top_layout.addWidget(self._EbN0_tool_bar)
self.root_raised_cosine_filter_1 = filter.fir_filter_ccf(1, firdes.root_raised_cosine(
1, sps, 1.0, excess_bw, nfilts))
self.root_raised_cosine_filter_0 = filter.fir_filter_ccf(1, firdes.root_raised_cosine(
1, sps, 1.0, excess_bw, nfilts))
self.qtgui_number_sink_0 = qtgui.number_sink(
gr.sizeof_float,
0,
qtgui.NUM_GRAPH_HORIZ,
1
)
self.qtgui_number_sink_0.set_update_time(0.10)
self.qtgui_number_sink_0.set_title("")
labels = ['', '', '', '', '',
'', '', '', '', '']
units = ['', '', '', '', '',
'', '', '', '', '']
colors = [("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"),
("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"), ("black", "black")]
factor = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
for i in xrange(1):
self.qtgui_number_sink_0.set_min(i, -1)
self.qtgui_number_sink_0.set_max(i, 1)
self.qtgui_number_sink_0.set_color(i, colors[i][0], colors[i][1])
if len(labels[i]) == 0:
self.qtgui_number_sink_0.set_label(i, "Data {0}".format(i))
else:
self.qtgui_number_sink_0.set_label(i, labels[i])
self.qtgui_number_sink_0.set_unit(i, units[i])
self.qtgui_number_sink_0.set_factor(i, factor[i])
self.qtgui_number_sink_0.enable_autoscale(False)
self._qtgui_number_sink_0_win = sip.wrapinstance(self.qtgui_number_sink_0.pyqwidget(), Qt.QWidget)
self.top_layout.addWidget(self._qtgui_number_sink_0_win)
self.qtgui_bercurve_sink_0 = qtgui.ber_sink_b(
numpy.arange(0.0, 4.0, .5), #range of esnos
1, #number of curves
100, #ensure at least
-7.0, #cutoff
[], #indiv. curve names
)
self.qtgui_bercurve_sink_0.set_update_time(0.10)
self.qtgui_bercurve_sink_0.set_y_axis(-10, 0)
self.qtgui_bercurve_sink_0.set_x_axis(numpy.arange(0.0, 4.0, .5)[0], numpy.arange(0.0, 4.0, .5)[-1])
labels = ['', '', '', '', '',
'', '', '', '', '']
widths = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
colors = ["blue", "red", "green", "black", "cyan",
"magenta", "yellow", "dark red", "dark green", "blue"]
styles = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
markers = [0, 0, 0, 0, 0,
0, 0, 0, 0, 0]
alphas = [.35, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0]
for i in xrange(1):
if len(labels[i]) == 0:
self.qtgui_bercurve_sink_0.set_line_label(i, "Data {0}".format(i))
else:
self.qtgui_bercurve_sink_0.set_line_label(i, labels[i])
self.qtgui_bercurve_sink_0.set_line_width(i, widths[i])
self.qtgui_bercurve_sink_0.set_line_color(i, colors[i])
self.qtgui_bercurve_sink_0.set_line_style(i, styles[i])
self.qtgui_bercurve_sink_0.set_line_marker(i, markers[i])
self.qtgui_bercurve_sink_0.set_line_alpha(i, alphas[i])
self._qtgui_bercurve_sink_0_win = sip.wrapinstance(self.qtgui_bercurve_sink_0.pyqwidget(), Qt.QWidget)
self.top_layout.addWidget(self._qtgui_bercurve_sink_0_win)
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_char*1, samp_rate,True)
self.blocks_delay_0 = blocks.delay(gr.sizeof_char*1, Delay)
self.blocks_add_xx_0 = blocks.add_vcc(1)
self.blks2_error_rate_0 = grc_blks2.error_rate(
type='BER',
win_size=1000000,
bits_per_symbol=2,
)
self.analog_random_source_x_0 = blocks.vector_source_b(map(int, numpy.random.randint(0, 4, 1000000)), True)
self.analog_noise_source_x_0 = analog.noise_source_c(analog.GR_GAUSSIAN, 1.0 / math.sqrt(bits_per_symbol * 10**(float(EbN0) / 10)), 0)
self.MyCustomBlock_Sample_Down_0 = MyCustomBlock.Sample_Down(sps)
self.MyCustomBlock_SampleUp2_0 = MyCustomBlock.SampleUp2(sps)
self.MyCustomBlock_QPSK_Modulator_1 = MyCustomBlock.QPSK_Modulator(False)
self.MyCustomBlock_QPSK_Demodulator_0 = MyCustomBlock.QPSK_Demodulator(False)
##################################################
# Connections
##################################################
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.blks2_error_rate_0, 1))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 1))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 11))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 13))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 15))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 3))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 5))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 7))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 9))
self.connect((self.MyCustomBlock_QPSK_Modulator_1, 0), (self.MyCustomBlock_SampleUp2_0, 0))
self.connect((self.MyCustomBlock_SampleUp2_0, 0), (self.root_raised_cosine_filter_0, 0))
self.connect((self.MyCustomBlock_Sample_Down_0, 0), (self.MyCustomBlock_QPSK_Demodulator_0, 0))
self.connect((self.analog_noise_source_x_0, 0), (self.blocks_add_xx_0, 1))
self.connect((self.analog_random_source_x_0, 0), (self.blocks_delay_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.blocks_throttle_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 10))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 12))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 14))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 2))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 4))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 6))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 8))
self.connect((self.blks2_error_rate_0, 0), (self.qtgui_number_sink_0, 0))
self.connect((self.blocks_add_xx_0, 0), (self.root_raised_cosine_filter_1, 0))
self.connect((self.blocks_delay_0, 0), (self.blks2_error_rate_0, 0))
self.connect((self.blocks_throttle_0, 0), (self.MyCustomBlock_QPSK_Modulator_1, 0))
self.connect((self.root_raised_cosine_filter_0, 0), (self.blocks_add_xx_0, 0))
self.connect((self.root_raised_cosine_filter_1, 0), (self.MyCustomBlock_Sample_Down_0, 0))
def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "top_block")
self.settings.setValue("geometry", self.saveGeometry())
event.accept()
def get_sps(self):
return self.sps
def set_sps(self, sps):
self.sps = sps
self.set_Delay(self.nfilts/self.sps)
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_nfilts(self):
return self.nfilts
def set_nfilts(self, nfilts):
self.nfilts = nfilts
self.set_Delay(self.nfilts/self.sps)
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.blocks_throttle_0.set_sample_rate(self.samp_rate)
def get_excess_bw(self):
return self.excess_bw
def set_excess_bw(self, excess_bw):
self.excess_bw = excess_bw
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_bits_per_symbol(self):
return self.bits_per_symbol
def set_bits_per_symbol(self, bits_per_symbol):
self.bits_per_symbol = bits_per_symbol
self.analog_noise_source_x_0.set_amplitude(1.0 / math.sqrt(self.bits_per_symbol * 10**(float(self.EbN0) / 10)))
def get_EbN0(self):
return self.EbN0
def set_EbN0(self, EbN0):
self.EbN0 = EbN0
self._EbN0_callback(self.EbN0)
self.analog_noise_source_x_0.set_amplitude(1.0 / math.sqrt(self.bits_per_symbol * 10**(float(self.EbN0) / 10)))
def get_Delay(self):
return self.Delay
def set_Delay(self, Delay):
self.Delay = Delay
self.blocks_delay_0.set_dly(self.Delay)
def main(top_block_cls=top_block, options=None):
if StrictVersion("4.5.0") <= StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"):
style = gr.prefs().get_string('qtgui', 'style', 'raster')
Qt.QApplication.setGraphicsSystem(style)
qapp = Qt.QApplication(sys.argv)
tb = top_block_cls()
tb.start()
tb.show()
def quitting():
tb.stop()
tb.wait()
qapp.aboutToQuit.connect(quitting)
qapp.exec_()
if __name__ == '__main__':
main()
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: Top Block
# Generated: Wed Jan 30 00:37:24 2019
##################################################
from distutils.version import StrictVersion
if __name__ == '__main__':
import ctypes
import sys
if sys.platform.startswith('linux'):
try:
x11 = ctypes.cdll.LoadLibrary('libX11.so')
x11.XInitThreads()
except:
print "Warning: failed to XInitThreads()"
from PyQt5 import Qt
from PyQt5 import Qt, QtCore
from PyQt5.QtCore import QObject, pyqtSlot
from PyQt5 import Qt
from gnuradio import analog
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import filter
from gnuradio import gr
from gnuradio import qtgui
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from grc_gnuradio import blks2 as grc_blks2
from optparse import OptionParser
import MyCustomBlock
import math
import numpy
import sip
import sys
from gnuradio import qtgui
class top_block(gr.top_block, Qt.QWidget):
def __init__(self):
gr.top_block.__init__(self, "Top Block")
Qt.QWidget.__init__(self)
self.setWindowTitle("Top Block")
qtgui.util.check_set_qss()
try:
self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
except:
pass
self.top_scroll_layout = Qt.QVBoxLayout()
self.setLayout(self.top_scroll_layout)
self.top_scroll = Qt.QScrollArea()
self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
self.top_scroll_layout.addWidget(self.top_scroll)
self.top_scroll.setWidgetResizable(True)
self.top_widget = Qt.QWidget()
self.top_scroll.setWidget(self.top_widget)
self.top_layout = Qt.QVBoxLayout(self.top_widget)
self.top_grid_layout = Qt.QGridLayout()
self.top_layout.addLayout(self.top_grid_layout)
self.settings = Qt.QSettings("GNU Radio", "top_block")
if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"):
self.restoreGeometry(self.settings.value("geometry").toByteArray())
else:
self.restoreGeometry(self.settings.value("geometry", type=QtCore.QByteArray))
##################################################
# Variables
##################################################
self.sps = sps = 8
self.nfilts = nfilts = 64
self.samp_rate = samp_rate = 32000
self.excess_bw = excess_bw = 0.35
self.bits_per_symbol = bits_per_symbol = 2
self.EbN0 = EbN0 = 16
self.Delay = Delay = nfilts/sps
##################################################
# Blocks
##################################################
self._EbN0_options = (10, 14, 16, 18, 30, )
self._EbN0_labels = (str(self._EbN0_options[0]), str(self._EbN0_options[1]), str(self._EbN0_options[2]), str(self._EbN0_options[3]), str(self._EbN0_options[4]), )
self._EbN0_tool_bar = Qt.QToolBar(self)
self._EbN0_tool_bar.addWidget(Qt.QLabel('EbN0 (dB)'+": "))
self._EbN0_combo_box = Qt.QComboBox()
self._EbN0_tool_bar.addWidget(self._EbN0_combo_box)
for label in self._EbN0_labels: self._EbN0_combo_box.addItem(label)
self._EbN0_callback = lambda i: Qt.QMetaObject.invokeMethod(self._EbN0_combo_box, "setCurrentIndex", Qt.Q_ARG("int", self._EbN0_options.index(i)))
self._EbN0_callback(self.EbN0)
self._EbN0_combo_box.currentIndexChanged.connect(
lambda i: self.set_EbN0(self._EbN0_options[i]))
self.top_layout.addWidget(self._EbN0_tool_bar)
self.root_raised_cosine_filter_1 = filter.fir_filter_ccf(1, firdes.root_raised_cosine(
1, sps, 1.0, excess_bw, nfilts))
self.root_raised_cosine_filter_0 = filter.fir_filter_ccf(1, firdes.root_raised_cosine(
1, sps, 1.0, excess_bw, nfilts))
self.qtgui_number_sink_0 = qtgui.number_sink(
gr.sizeof_float,
0,
qtgui.NUM_GRAPH_HORIZ,
1
)
self.qtgui_number_sink_0.set_update_time(0.10)
self.qtgui_number_sink_0.set_title("")
labels = ['', '', '', '', '',
'', '', '', '', '']
units = ['', '', '', '', '',
'', '', '', '', '']
colors = [("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"),
("black", "black"), ("black", "black"), ("black", "black"), ("black", "black"), ("black", "black")]
factor = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
for i in xrange(1):
self.qtgui_number_sink_0.set_min(i, -1)
self.qtgui_number_sink_0.set_max(i, 1)
self.qtgui_number_sink_0.set_color(i, colors[i][0], colors[i][1])
if len(labels[i]) == 0:
self.qtgui_number_sink_0.set_label(i, "Data {0}".format(i))
else:
self.qtgui_number_sink_0.set_label(i, labels[i])
self.qtgui_number_sink_0.set_unit(i, units[i])
self.qtgui_number_sink_0.set_factor(i, factor[i])
self.qtgui_number_sink_0.enable_autoscale(False)
self._qtgui_number_sink_0_win = sip.wrapinstance(self.qtgui_number_sink_0.pyqwidget(), Qt.QWidget)
self.top_layout.addWidget(self._qtgui_number_sink_0_win)
self.qtgui_bercurve_sink_0 = qtgui.ber_sink_b(
numpy.arange(0.0, 4.0, .5), #range of esnos
1, #number of curves
100, #ensure at least
-7.0, #cutoff
[], #indiv. curve names
)
self.qtgui_bercurve_sink_0.set_update_time(0.10)
self.qtgui_bercurve_sink_0.set_y_axis(-10, 0)
self.qtgui_bercurve_sink_0.set_x_axis(numpy.arange(0.0, 4.0, .5)[0], numpy.arange(0.0, 4.0, .5)[-1])
labels = ['', '', '', '', '',
'', '', '', '', '']
widths = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
colors = ["blue", "red", "green", "black", "cyan",
"magenta", "yellow", "dark red", "dark green", "blue"]
styles = [1, 1, 1, 1, 1,
1, 1, 1, 1, 1]
markers = [0, 0, 0, 0, 0,
0, 0, 0, 0, 0]
alphas = [.35, 1.0, 1.0, 1.0, 1.0,
1.0, 1.0, 1.0, 1.0, 1.0]
for i in xrange(1):
if len(labels[i]) == 0:
self.qtgui_bercurve_sink_0.set_line_label(i, "Data {0}".format(i))
else:
self.qtgui_bercurve_sink_0.set_line_label(i, labels[i])
self.qtgui_bercurve_sink_0.set_line_width(i, widths[i])
self.qtgui_bercurve_sink_0.set_line_color(i, colors[i])
self.qtgui_bercurve_sink_0.set_line_style(i, styles[i])
self.qtgui_bercurve_sink_0.set_line_marker(i, markers[i])
self.qtgui_bercurve_sink_0.set_line_alpha(i, alphas[i])
self._qtgui_bercurve_sink_0_win = sip.wrapinstance(self.qtgui_bercurve_sink_0.pyqwidget(), Qt.QWidget)
self.top_layout.addWidget(self._qtgui_bercurve_sink_0_win)
self.blocks_throttle_0 = blocks.throttle(gr.sizeof_char*1, samp_rate,True)
self.blocks_delay_0 = blocks.delay(gr.sizeof_char*1, Delay)
self.blocks_add_xx_0 = blocks.add_vcc(1)
self.blks2_error_rate_0 = grc_blks2.error_rate(
type='BER',
win_size=1000000,
bits_per_symbol=2,
)
self.analog_random_source_x_0 = blocks.vector_source_b(map(int, numpy.random.randint(0, 4, 1000000)), True)
self.analog_noise_source_x_0 = analog.noise_source_c(analog.GR_GAUSSIAN, 1.0 / math.sqrt(bits_per_symbol * 10**(float(EbN0) / 10)), 0)
self.MyCustomBlock_Sample_Down_0 = MyCustomBlock.Sample_Down(sps)
self.MyCustomBlock_SampleUp2_0 = MyCustomBlock.SampleUp2(sps)
self.MyCustomBlock_QPSK_Modulator_1 = MyCustomBlock.QPSK_Modulator(False)
self.MyCustomBlock_QPSK_Demodulator_0 = MyCustomBlock.QPSK_Demodulator(False)
##################################################
# Connections
##################################################
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.blks2_error_rate_0, 1))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 1))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 11))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 13))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 15))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 3))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 5))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 7))
self.connect((self.MyCustomBlock_QPSK_Demodulator_0, 0), (self.qtgui_bercurve_sink_0, 9))
self.connect((self.MyCustomBlock_QPSK_Modulator_1, 0), (self.MyCustomBlock_SampleUp2_0, 0))
self.connect((self.MyCustomBlock_SampleUp2_0, 0), (self.root_raised_cosine_filter_0, 0))
self.connect((self.MyCustomBlock_Sample_Down_0, 0), (self.MyCustomBlock_QPSK_Demodulator_0, 0))
self.connect((self.analog_noise_source_x_0, 0), (self.blocks_add_xx_0, 1))
self.connect((self.analog_random_source_x_0, 0), (self.blocks_delay_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.blocks_throttle_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 0))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 10))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 12))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 14))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 2))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 4))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 6))
self.connect((self.analog_random_source_x_0, 0), (self.qtgui_bercurve_sink_0, 8))
self.connect((self.blks2_error_rate_0, 0), (self.qtgui_number_sink_0, 0))
self.connect((self.blocks_add_xx_0, 0), (self.root_raised_cosine_filter_1, 0))
self.connect((self.blocks_delay_0, 0), (self.blks2_error_rate_0, 0))
self.connect((self.blocks_throttle_0, 0), (self.MyCustomBlock_QPSK_Modulator_1, 0))
self.connect((self.root_raised_cosine_filter_0, 0), (self.blocks_add_xx_0, 0))
self.connect((self.root_raised_cosine_filter_1, 0), (self.MyCustomBlock_Sample_Down_0, 0))
def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "top_block")
self.settings.setValue("geometry", self.saveGeometry())
event.accept()
def get_sps(self):
return self.sps
def set_sps(self, sps):
self.sps = sps
self.set_Delay(self.nfilts/self.sps)
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_nfilts(self):
return self.nfilts
def set_nfilts(self, nfilts):
self.nfilts = nfilts
self.set_Delay(self.nfilts/self.sps)
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.blocks_throttle_0.set_sample_rate(self.samp_rate)
def get_excess_bw(self):
return self.excess_bw
def set_excess_bw(self, excess_bw):
self.excess_bw = excess_bw
self.root_raised_cosine_filter_1.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
self.root_raised_cosine_filter_0.set_taps(firdes.root_raised_cosine(1, self.sps, 1.0, self.excess_bw, self.nfilts))
def get_bits_per_symbol(self):
return self.bits_per_symbol
def set_bits_per_symbol(self, bits_per_symbol):
self.bits_per_symbol = bits_per_symbol
self.analog_noise_source_x_0.set_amplitude(1.0 / math.sqrt(self.bits_per_symbol * 10**(float(self.EbN0) / 10)))
def get_EbN0(self):
return self.EbN0
def set_EbN0(self, EbN0):
self.EbN0 = EbN0
self._EbN0_callback(self.EbN0)
self.analog_noise_source_x_0.set_amplitude(1.0 / math.sqrt(self.bits_per_symbol * 10**(float(self.EbN0) / 10)))
def get_Delay(self):
return self.Delay
def set_Delay(self, Delay):
self.Delay = Delay
self.blocks_delay_0.set_dly(self.Delay)
def main(top_block_cls=top_block, options=None):
if StrictVersion("4.5.0") <= StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"):
style = gr.prefs().get_string('qtgui', 'style', 'raster')
Qt.QApplication.setGraphicsSystem(style)
qapp = Qt.QApplication(sys.argv)
tb = top_block_cls()
tb.start()
tb.show()
def quitting():
tb.stop()
tb.wait()
qapp.aboutToQuit.connect(quitting)
qapp.exec_()
if __name__ == '__main__':
main()
Hello. How can I download your .grc file?
ReplyDelete