Python 基于pyqt5的脉冲积累

Python 基于pyqt5的脉冲积累

一、GUI框架原码

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'pulseAccumulation.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(800, 550)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
        Form.setSizePolicy(sizePolicy)
        Form.setMinimumSize(QtCore.QSize(800, 550))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/startImage/purple.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        Form.setStyleSheet("QWidget#Form{\n"
"    border-image: url(:/formulation_img/formulation_img.jpg);\n"
"}")
        self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.widget = QtWidgets.QWidget(Form)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy)
        self.widget.setStyleSheet("")
        self.widget.setObjectName("widget")
        self.gridLayout = QtWidgets.QGridLayout(self.widget)
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.pt_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.pt_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pt_dsb.sizePolicy().hasHeightForWidth())
        self.pt_dsb.setSizePolicy(sizePolicy)
        self.pt_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.pt_dsb.setDecimals(0)
        self.pt_dsb.setProperty("value", 4.0)
        self.pt_dsb.setObjectName("pt_dsb")
        self.gridLayout.addWidget(self.pt_dsb, 0, 1, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
        self.freq_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.freq_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.freq_dsb.sizePolicy().hasHeightForWidth())
        self.freq_dsb.setSizePolicy(sizePolicy)
        self.freq_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.freq_dsb.setPrefix("")
        self.freq_dsb.setDecimals(1)
        self.freq_dsb.setProperty("value", 94.0)
        self.freq_dsb.setObjectName("freq_dsb")
        self.gridLayout.addWidget(self.freq_dsb, 1, 1, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
        self.label_3.setSizePolicy(sizePolicy)
        self.label_3.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
        self.g_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.g_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.g_dsb.sizePolicy().hasHeightForWidth())
        self.g_dsb.setSizePolicy(sizePolicy)
        self.g_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.g_dsb.setDecimals(0)
        self.g_dsb.setMinimum(-50.0)
        self.g_dsb.setMaximum(50.0)
        self.g_dsb.setSingleStep(5.0)
        self.g_dsb.setStepType(QtWidgets.QAbstractSpinBox.DefaultStepType)
        self.g_dsb.setProperty("value", 47.0)
        self.g_dsb.setObjectName("g_dsb")
        self.gridLayout.addWidget(self.g_dsb, 2, 1, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
        self.label_4.setSizePolicy(sizePolicy)
        self.label_4.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_4.setFont(font)
        self.label_4.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
        self.sigma_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.sigma_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sigma_dsb.sizePolicy().hasHeightForWidth())
        self.sigma_dsb.setSizePolicy(sizePolicy)
        self.sigma_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.sigma_dsb.setDecimals(0)
        self.sigma_dsb.setMaximum(400.0)
        self.sigma_dsb.setSingleStep(10.0)
        self.sigma_dsb.setProperty("value", 20.0)
        self.sigma_dsb.setObjectName("sigma_dsb")
        self.gridLayout.addWidget(self.sigma_dsb, 3, 1, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy)
        self.label_5.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_5.setFont(font)
        self.label_5.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_5.setAlignment(QtCore.Qt.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
        self.te_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.te_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.te_dsb.sizePolicy().hasHeightForWidth())
        self.te_dsb.setSizePolicy(sizePolicy)
        self.te_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.te_dsb.setDecimals(0)
        self.te_dsb.setMaximum(1500.0)
        self.te_dsb.setProperty("value", 290.0)
        self.te_dsb.setObjectName("te_dsb")
        self.gridLayout.addWidget(self.te_dsb, 4, 1, 1, 1)
        self.label_6 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
        self.label_6.setSizePolicy(sizePolicy)
        self.label_6.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_6.setFont(font)
        self.label_6.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_6.setAlignment(QtCore.Qt.AlignCenter)
        self.label_6.setObjectName("label_6")
        self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1)
        self.b_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.b_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.b_dsb.sizePolicy().hasHeightForWidth())
        self.b_dsb.setSizePolicy(sizePolicy)
        self.b_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.b_dsb.setDecimals(0)
        self.b_dsb.setMaximum(50.0)
        self.b_dsb.setProperty("value", 20.0)
        self.b_dsb.setObjectName("b_dsb")
        self.gridLayout.addWidget(self.b_dsb, 5, 1, 1, 1)
        self.label_7 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
        self.label_7.setSizePolicy(sizePolicy)
        self.label_7.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_7.setFont(font)
        self.label_7.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_7.setAlignment(QtCore.Qt.AlignCenter)
        self.label_7.setObjectName("label_7")
        self.gridLayout.addWidget(self.label_7, 6, 0, 1, 1)
        self.nf_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.nf_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.nf_dsb.sizePolicy().hasHeightForWidth())
        self.nf_dsb.setSizePolicy(sizePolicy)
        self.nf_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.nf_dsb.setDecimals(0)
        self.nf_dsb.setMaximum(50.0)
        self.nf_dsb.setProperty("value", 7.0)
        self.nf_dsb.setObjectName("nf_dsb")
        self.gridLayout.addWidget(self.nf_dsb, 6, 1, 1, 1)
        self.label_8 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth())
        self.label_8.setSizePolicy(sizePolicy)
        self.label_8.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_8.setFont(font)
        self.label_8.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_8.setAlignment(QtCore.Qt.AlignCenter)
        self.label_8.setObjectName("label_8")
        self.gridLayout.addWidget(self.label_8, 7, 0, 1, 1)
        self.loss_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.loss_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.loss_dsb.sizePolicy().hasHeightForWidth())
        self.loss_dsb.setSizePolicy(sizePolicy)
        self.loss_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.loss_dsb.setDecimals(0)
        self.loss_dsb.setSingleStep(0.1)
        self.loss_dsb.setProperty("value", 10.0)
        self.loss_dsb.setObjectName("loss_dsb")
        self.gridLayout.addWidget(self.loss_dsb, 7, 1, 1, 1)
        self.label_9 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth())
        self.label_9.setSizePolicy(sizePolicy)
        self.label_9.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_9.setFont(font)
        self.label_9.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_9.setAlignment(QtCore.Qt.AlignCenter)
        self.label_9.setObjectName("label_9")
        self.gridLayout.addWidget(self.label_9, 8, 0, 1, 1)
        self.r_dsb = QtWidgets.QDoubleSpinBox(self.widget)
        self.r_dsb.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.r_dsb.sizePolicy().hasHeightForWidth())
        self.r_dsb.setSizePolicy(sizePolicy)
        self.r_dsb.setMinimumSize(QtCore.QSize(100, 25))
        self.r_dsb.setDecimals(1)
        self.r_dsb.setSingleStep(0.1)
        self.r_dsb.setProperty("value", 5.0)
        self.r_dsb.setObjectName("r_dsb")
        self.gridLayout.addWidget(self.r_dsb, 8, 1, 1, 1)
        self.label_10 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
        self.label_10.setSizePolicy(sizePolicy)
        self.label_10.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_10.setFont(font)
        self.label_10.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_10.setAlignment(QtCore.Qt.AlignCenter)
        self.label_10.setObjectName("label_10")
        self.gridLayout.addWidget(self.label_10, 9, 0, 1, 1)
        self.el_dsb_2 = QtWidgets.QDoubleSpinBox(self.widget)
        self.el_dsb_2.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.el_dsb_2.sizePolicy().hasHeightForWidth())
        self.el_dsb_2.setSizePolicy(sizePolicy)
        self.el_dsb_2.setMinimumSize(QtCore.QSize(100, 25))
        self.el_dsb_2.setDecimals(0)
        self.el_dsb_2.setSingleStep(0.1)
        self.el_dsb_2.setProperty("value", 1.0)
        self.el_dsb_2.setObjectName("el_dsb_2")
        self.gridLayout.addWidget(self.el_dsb_2, 9, 1, 1, 1)
        self.label_11 = QtWidgets.QLabel(self.widget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth())
        self.label_11.setSizePolicy(sizePolicy)
        self.label_11.setMinimumSize(QtCore.QSize(0, 0))
        font = QtGui.QFont()
        font.setPointSize(10)
        font.setBold(True)
        font.setWeight(75)
        self.label_11.setFont(font)
        self.label_11.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
        self.label_11.setAlignment(QtCore.Qt.AlignCenter)
        self.label_11.setObjectName("label_11")
        self.gridLayout.addWidget(self.label_11, 10, 0, 1, 1)
        self.el_dsb_3 = QtWidgets.QDoubleSpinBox(self.widget)
        self.el_dsb_3.setEnabled(False)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.el_dsb_3.sizePolicy().hasHeightForWidth())
        self.el_dsb_3.setSizePolicy(sizePolicy)
        self.el_dsb_3.setMinimumSize(QtCore.QSize(100, 25))
        self.el_dsb_3.setDecimals(0)
        self.el_dsb_3.setSingleStep(0.1)
        self.el_dsb_3.setProperty("value", 1.0)
        self.el_dsb_3.setObjectName("el_dsb_3")
        self.gridLayout.addWidget(self.el_dsb_3, 10, 1, 1, 1)
        self.horizontalLayout.addWidget(self.widget)
        self.widget_2 = QtWidgets.QWidget(Form)
        self.widget_2.setStyleSheet("")
        self.widget_2.setObjectName("widget_2")
        self.horizontalLayout.addWidget(self.widget_2)
        self.horizontalLayout.setStretch(1, 7)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "脉冲积累"))
        self.label.setText(_translate("Form", "pt"))
        self.pt_dsb.setSuffix(_translate("Form", " W"))
        self.label_2.setText(_translate("Form", "freq"))
        self.freq_dsb.setSuffix(_translate("Form", " GHz"))
        self.label_3.setText(_translate("Form", "g"))
        self.g_dsb.setSuffix(_translate("Form", " dB"))
        self.label_4.setText(_translate("Form", "sigma"))
        self.sigma_dsb.setSuffix(_translate("Form", " m2"))
        self.label_5.setText(_translate("Form", "te"))
        self.te_dsb.setSuffix(_translate("Form", " K"))
        self.label_6.setText(_translate("Form", "b"))
        self.b_dsb.setSuffix(_translate("Form", " MHz"))
        self.label_7.setText(_translate("Form", "nf"))
        self.nf_dsb.setSuffix(_translate("Form", " dB"))
        self.label_8.setText(_translate("Form", "loss"))
        self.loss_dsb.setSuffix(_translate("Form", " dB"))
        self.label_9.setText(_translate("Form", "range"))
        self.r_dsb.setSuffix(_translate("Form", " Km"))
        self.label_10.setText(_translate("Form", "np"))
        self.el_dsb_2.setSuffix(_translate("Form", "-10000个"))
        self.label_11.setText(_translate("Form", "ci_nci"))
        self.el_dsb_3.setSuffix(_translate("Form", "-2"))
import resources.resource_rc


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

计算公式原码

from PyQt5.Qt import *
from submenu.pulseAccumulation import Ui_Form
from submenuPane.formulation_pane import RadarEqu
import numpy as np
import matplotlib

matplotlib.use("Qt5Agg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib as plt


class PulseIntegrate:
    def __init__(self, pt, freq, g, sigma, te, b, nf, loss, r, n, ci_nci):
        self.pt = pt
        self.freq = freq
        self.g = g
        self.sigma = sigma
        self.te = te
        self.b = b
        self.nf = nf
        self.loss = loss
        self.r = r
        self.np = n
        self.ci_nci = ci_nci
        # self.pt = 10*np.log10(pt)
        # self.freq = 10 * np.log10(freq*1e9)
        # self.g = g
        # self.sigma = 10 * np.log10(sigma)
        # self.te = 10 * np.log10(te)
        # self.b = 10 * np.log10(b*1e6)
        # self.nf = nf
        # self.loss = loss
        # self.r = 10 * np.log10(r*1e3)

    def pulse_integration(self):
        radar_eq = RadarEqu(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss, self.r)
        snr1 = radar_eq.calculate_snr()
        if self.ci_nci == 1:  # 相干积累
            snrout = snr1 + 10 * np.log10(self.np)
            return snrout
        if self.ci_nci == 2:  # 非相干积累
            snr1 = 10 ** (snr1 / 10)
            # val1 = snr / 2 * self.np
            # val2 = snr ** 2 / 4 * (self.np ** 2)
            # val3 = snr / self.np
            # snr1 = val1 + np.sqrt(val2 + val3)
            LNCI = (1 + snr1) / snr1
            snrout = 10 * np.log10(self.np) + 10 * np.log10(snr1) - 10 * np.log10(LNCI)
            return snrout


class MyFigure(FigureCanvas):
    def __init__(self, value_dict={}):
        plt.rcParams['font.sans-serif'] = ["SimHei"]
        plt.rcParams['axes.unicode_minus'] = False
        self.fig = Figure()
        super().__init__(self.fig)
        self.calculate_dict = value_dict

        self.pt = self.calculate_dict['pt']
        self.freq = self.calculate_dict['freq']
        self.g = self.calculate_dict['g']
        self.sigma = self.calculate_dict['sigma']
        self.te = self.calculate_dict['te']
        self.b = self.calculate_dict['b']
        self.nf = self.calculate_dict['nf']
        self.loss = self.calculate_dict['loss']
        self.r = self.calculate_dict['r']
        self.np = self.calculate_dict['np']

        axes1 = self.fig.add_subplot(111)
        axes1.grid(b='True', linestyle='dotted')
        axes1.set_title('使用积累时的SNR改善')
        axes1.set_ylabel("SNR /dB")
        axes1.set_xlabel("积累脉冲数")

        self.axes1 = axes1

    def plot_accu_np(self):
        calculate_snr_ci = PulseIntegrate(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss,
                                          self.r, self.np, ci_nci=1)
        snrout_ci = calculate_snr_ci.pulse_integration()
        calculate_snr_nci = PulseIntegrate(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss,
                                           self.r, self.np, ci_nci=2)
        snrout_nci = calculate_snr_nci.pulse_integration()
        self.axes1.semilogx(self.np, snrout_ci, 'r-', label='ci')
        self.axes1.legend(loc=2)


class PulseAccumulationPane(QWidget, Ui_Form):
    def __init__(self):
        super().__init__()
        self.setAttribute(Qt.WA_StyledBackground, True)
        self.setupUi(self)

        pt = self.pt_dsb.value() / 1e6
        freq = self.freq_dsb.value()
        g = self.g_dsb.value()
        sigma = self.sigma_dsb.value()
        te = self.te_dsb.value()
        b = self.b_dsb.value()
        nf = self.nf_dsb.value()
        loss = self.loss_dsb.value()
        r = self.r_dsb.value()
        n = np.linspace(1, 10000, 1000)

        current_dict = {'pt': pt, 'freq': freq, "g": g, "sigma": sigma, "te": te, "b": b, "nf": nf, "loss": loss,
                        "np": n, "r": r}
        self.current_dict = current_dict

        self.F = MyFigure(value_dict=self.current_dict)
        self.layout = QGridLayout(self.widget_2)
        self.layout.addWidget(self.F)
        self.F.plot_accu_np()


if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)

    window = PulseAccumulationPane()
    window.show()

    sys.exit(app.exec_())

实现效果图

Python 基于pyqt5的脉冲积累_第1张图片
扫描下方二维码,关注“海海读书”公众号,回复“脉冲积累”,即可获得程序原代码
Python 基于pyqt5的脉冲积累_第2张图片

你可能感兴趣的:(Python 基于pyqt5的脉冲积累)